Přihlásit se

Joomla 5.1.0 a Joomla 4.4.4 (17 dub 2024)

Dnes byla uvolněna nová verze Joomla 5.1.0, společně s Joomla 4.4.4. Tato verze přináší spoustu nových funkcí, vylepšení v oblasti bezpečnosti a kódu a díky těmto vylepšením i vyšší rychlost.

Ina pozicia casti modulu

16. čvn 2015 18:14 #122243
Ina pozicia casti modulu od Marek
Uživatel
Ahojte,
ja som Marek a rad by som sa opytal na jednu vec. Pomohli by ste mi. Mam v Joomle nainstalovany kontaktny formular s nazvom Fox contact. Mam trochu specialnu stranku, tak som si musel vytvorit iny vlastny modul ktory ma na zaciathu php a potom pokracuje html kod. V tom html kode mam skript, ktory robi accordion sliderovy efekt. Ak kliknem na buton, rozroluje sa mi text. Do tohoto accordionu som si dal s pomocov modulu Modules anywhere tento kontaktny formular Fox contact. Po kliknuti na buton sa mi ukaze Fox contact a po odoslani sa automaticky refresne stranka a tym sa aj accordion da na default a tym sa zroluje. Ak sa napriklad vyplnilo zle policko, accordion sa zatvoril a mail sa neodosle, a alert je zobrazeny pri Fox module vo vnutri accordionu. Alert vidno iba po opetovnom kliknuti na buton. Mozno by sa dal napisat javascript, html, alebo php kod, ktori by som vlozil mimo accordionu a urobil mi zobrazovanie alertov hoci sa mi stranka refresne. Alert ma po vytvoreni chyby kod
<div class="alert alert-error"><ul class="fox_messages"><li>Invalid field: Security code</li></ul></div>
a Fox contact pouziva na alerty svoj messageboard.php v ktorom maju takyto kod
<?php defined('_JEXEC') or die('Restricted access');
class FoxMessageBoard
{
const success = 0x01;
const info = 0x02;
const warning = 0x04;
const error = 0x08;
protected $Level = 0;
protected $Messages = array();
public static $Levels = array(
FoxMessageBoard::success => "success",
FoxMessageBoard::info => "info",
FoxMessageBoard::warning => "warning",
FoxMessageBoard::error => "error"
);
public function Add($message, $level = 0)
{
$this->Messages[] = $message;
$this->RaiseLevel($level);
}
public function Append($messages, $level = 0)
{
$this->Messages += $messages;
$this->RaiseLevel($level);
}
public function Clear()
{
$this->Messages[] = array();
$this->Level = 0;
}
public function RaiseLevel($level)
{
if ($level > $this->Level) $this->Level = $level;
}
public function Display()
{
echo $this->__toString();
}
public function __toString()
{
$result = "";
if (!count($this->Messages)) return $result;

/* Don't remove the following code, or you will loose system messages too, like
"Invalid field: email" or "Your messages has been received" and so on.
If you have problems related to language files, simply fix your language files. */

$result .= '<div class="alert alert-' . FoxMessageBoard::$Levels[$this->Level] . '">' .
'<ul class="fox_messages">';

foreach ($this->Messages as $message)
{
$result .= '<li>' . $message . '</li>';
}

$result .= '</ul>' .
'</div>';

return $result;
}
}

a v css ma alert nazov
div#foxcontainer<?php echo $uid ?> .alert
{}
Pomohli by ste mi, prosim. Dakujem.
Marek

17. čvn 2015 18:12 #122259
Odpověď od Marek
Uživatel
Ahojte,
pisal som o Fox contact formulari. On odosiela maily v poriadku. Ma v sebe cast kodu o chybovych spravach. Oni sa odoslu do divka asi z nazvom foxcontainer, mozno s nazvom alert alert-error. V tom divku je ul s classou fox_messages. V messageboard.php prilozenom v Fox contact adresari Joomly maju takyto kod na konci a takto sa nacita ta chyba podla mna

public function __toString()
{
$result = "";
if (!count($this->Messages)) return $result;
$result .= '<div class="alert alert-' . FoxMessageBoard::$Levels[$this->Level] . '">' .
'<ul class="fox_messages">';
foreach ($this->Messages as $message)
{
$result .= '<li>' . $message . '</li>';
}
$result .= '</ul>' .
'</div>';
return $result;
}

Skusil som nahradit to $message za ine slovo a zobrazilo sa mi to slovo ako chybovy text. Rozmyslal som dat do html dajaky kod, iba prazdne divko s dajkym php scriptom a potom by mi Joomla automaticky pri nacitani chyby v Fox contact formulari nacitala chybu do mojho divka s rovnakym nazvom. Skusil som tam dat dajaky taky kod

<div class="alert alert-' . FoxMessageBoard::$Levels[$this->Level] . '">
<ul class="fox_messages">
<li><?php echo $message ?></li>
</ul>
</div>

a nic. Pridal som vsak do css mojho html modulu vlastnost .fox_messges{border:solid red 3px} a ramik ulka sa mi zmenil aj pre chybu vo Fox formulari. Tak by stacilo napisat asi script na nacitanie obsahu classi fox_messages dakam do mojho html modulu. Pomoholi by ste mi. Dakujem.
Marek

17. čvn 2015 20:57 - 17. čvn 2015 20:58 #122263
Odpověď od zpetr
Zkušený uživatel
Přiznávám se ne uplně jsem pochopil proč tak složitě řešíte formulář. Asi by bodnul link.
Nedávno jsem náhodou narazil na celkem pěkný článek o formulářích.
Určitě bych ho doporučil přečíst přijdete na to, že na druhé straně jsou jen lidi.

18. čvn 2015 15:18 #122271
Odpověď od Marek
Uživatel
Ahoj Zpetr,
dakujem ti za odpoved ja som spojil dve casti do mojho modulu. Urobil som to koli vzhladu. Prvu cast som pouzil accordion zo stranky ruseller.com/lessons/les228/example/ a druhu cast som dal s pomocou Module anywhere do toho accordionu a to kontaktny formular Fox contact a da sa vidiet napriklad tuna www.fox.ra.it/contact-me.html . Po zadani zlych udajov vyskoci aj tu chybova sprava. Rozmyslal som nad skriptom, ktory by sa vykonal po kliknuti na buton Odoslat a script by otvoril accordion. Asi by sa aj tak vykonal a stranka by sa refresla az po tom aj tak. Mozno sa da ta funkcia vykonavajuca chybovu spravu zduplikovat a vlozit inam v html. Mozno by si mi vedel pomoct. Prosim, dakujem.
Marek

23. čvn 2015 18:30 #122338
Odpověď od Marek
Uživatel
Ahojte,
nasol som ako urobit rozrolovanie okna funkciou. Robi sa to onClick="{nestedAccordion.pr(0,0)}" />
Skusal som tu funkciu dat natvrdo do Submit buttona v php fsubmitter.php vo Fox contacte. Dal som to takto
$icon = $this->Params->get("submiticon");
$result .= '<button class="btn btn-success" type="submit" onClick="{ nestedAccordion.pr(0,0) }" style="margin-' . $GLOBALS["right"] . ':32px;" name="' . $this->GetId() . '">' . PHP_EOL .
a aj tak submit button potom refresne stranku a iba ta moja funkcia urobi blik a aj tak sa to policko zroluje. Maju tam funkciu potom onClick="ResetFoxControls();". Mozno sa da dat ta funkcia na rozrolovanie az po ich funkcii na fefresnutie. Pomohol by si mi. Dakujem,
Marek

Powered by Fórum