Joomla 5.3 (17 dub 2025)
15. dubna 2025 byla oficiálně vydána nová verze populárního CMS Joomla – verze 5.3. Tato aktualizace přináší celou řadu vylepšení, vyšší bezpečnost a lepší výkon.
pozicování
07. říj 2015 18:46 - 07. říj 2015 18:47 #123838
Odpověď od Ernst

Joomla Expert
tak to jsem se zase trochu ztratil .
kde se v tom $models bere hodnota FrontendModelMessage?
Když totiž to if ohvězdičkuji tak se po odeslat objeví undefined a okno se nezavře.
Když přiřadím navtrdo $models = FrontendModelpoznamka (zkopíroval jsem si v models message.php na poznamka.php a dal jí třídu FrontendModelpoznamka, tak se také nic neděje.
ale to asi není ono, protože v nich není funkce send
třída je však definována - class FrontendModelpoznamka extends FactoryModel a z FactoryModel jsem zkopíroval funkci do poznamka.php. Tu by to v tu chvíli mělo volat? Ale i tak se nic neděje.
A navíc mám problém se zápisem do databáze v construktoru poznamka.php.
Přesně podle příkladu - docs.joomla.org/Inserting,_Updating_and_...data_using_JDatabase
tam mám kód
ale do databáze se nic nezapíše. Co s tím, použít jiný způsob?
kde se v tom $models bere hodnota FrontendModelMessage?
Když totiž to if ohvězdičkuji tak se po odeslat objeví undefined a okno se nezavře.
Když přiřadím navtrdo $models = FrontendModelpoznamka (zkopíroval jsem si v models message.php na poznamka.php a dal jí třídu FrontendModelpoznamka, tak se také nic neděje.
ale to asi není ono, protože v nich není funkce send
třída je však definována - class FrontendModelpoznamka extends FactoryModel a z FactoryModel jsem zkopíroval funkci do poznamka.php. Tu by to v tu chvíli mělo volat? Ale i tak se nic neděje.
A navíc mám problém se zápisem do databáze v construktoru poznamka.php.
Přesně podle příkladu - docs.joomla.org/Inserting,_Updating_and_...data_using_JDatabase
tam mám kód
Code:
$user = JFactory::getUser()->id;
$on= $data[1];
$poznamka= $data[0];
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$columns = array('id-ja','id-on','poznamka');
$values = array($db->quote($user),$db->quote($on),$db->quote($poznamka));
$query
->insert($db9->quoteName('#__lovefactory_poznamka'))
->columns($db9->quoteName($columns))
->values(implode(',', $values));
$db->setQuery($query);
$db->query();
ale do databáze se nic nezapíše. Co s tím, použít jiný způsob?
07. říj 2015 22:20 #123842
Odpověď od Cony

Moderátor
Jaký $models?? Jaká hodnota FrontendModelMessage?? Není to náhodou třída FrontendModelMessage?
Zápis do databáze v construct??? Snad ve funkci send...
V controlleru získáváte model
Model Message nechcete, musíte si udělat svůj model Poznamka, tedy v adresáři models odkopírujete soubor message.php jako poznamka.php a uděláte z něj model FrontendModelPoznamka.
Ve funkci send si pak pořešíte svoje ukládání. V controlleru si jen zaměníte vyvolání modelu
A co v tom kódu pro uložení do dtabáze dělá to $db9???
Zápis do databáze v construct??? Snad ve funkci send...
V controlleru získáváte model
Code:
$model = $this->getModel('Message');
Ve funkci send si pak pořešíte svoje ukládání. V controlleru si jen zaměníte vyvolání modelu
Code:
$model = $this->getModel('Poznamka');
07. říj 2015 22:44 - 07. říj 2015 22:52 #123844
Odpověď od Ernst

Joomla Expert
postupně:
ano je to název třídy a tu mám v poznámka,php v models, když jsem chtel vědet název třídy, musel jsem si do logu vypsat proměnnou $models
Zápis do databáze jsem už vyřešil
místo
má být
a to již funguje, Nevím, proč ten první přklad nefungoval, ale v tom odkazu na příklad psali: This was the old method in Joomla 1.5 and 2.5 and will throw a deprecated notice in Joomla 3.0+.
za další
Funkce send v těchto PHP není
db9 byl jen pokus a to klidně může být pokud je to všady, a já to z DB9 na DB měnil až tady a ty dvě db9 jsem zapomněl změnit.
Teď už jen zrušit ten zápis do původní tabulky databáze a mám hotovo.
Tedy ještě musím vyřešit vkládání a edit databáze (pokud je id_ja a id_on stejný jako je již v tabulce, tak se nezakládá nový řádek, ale jen se zedituje ta poznámka,
Pak ještě správné zobrazení na jednotlivých stránkách atd.
Ale to je již brnkačka
Pro vysvětlení:
Každý uživatel si ke každému jinému uživateli může napsat soukromou poznámku, kterou u něj vidí jen ten, kdo ji napsal. Poznámku může editovat.
Ani uživatel ke kterému jsem si ji napsal ji nevidí
ano je to název třídy a tu mám v poznámka,php v models, když jsem chtel vědet název třídy, musel jsem si do logu vypsat proměnnou $models
Zápis do databáze jsem už vyřešil
místo
Code:
$user = JFactory::getUser()->id;
$on= $data[1];
$poznamka= $data[0];
$db = JFactory::getDbo();
$query = $db->getQuery(true);
$columns = array('id-ja','id-on','poznamka');
$values = array($db->quote($user),$db->quote($on),$db->quote($poznamka));
$query
->insert($db9->quoteName('#__lovefactory_poznamka'))
->columns($db9->quoteName($columns))
->values(implode(',', $values));
$db->setQuery($query);
$db->query();
má být
Code:
$user = intval(JFactory::getUser()->id);
$on= intval($data[user_id]);
$poznamka = $data[text];
$db = JFactory::getDBO();
$query = $db->getQuery(true);
$fields = array($db->quoteName('id_ja') . ' = ' . $db->quote($user),$db->quoteName('id_on') . ' = ' . $db->quote($on),$db->quoteName('poznamka') . ' = ' . $db->quote($poznamka));
// $conditions = array($db->quoteName('id_ja') . ' > 0');
$query->insert($db->quoteName('#__lovefactory_poznamka'))->set($fields); //->where($conditions);
$db->setQuery($query);
$db->query();
a to již funguje, Nevím, proč ten první přklad nefungoval, ale v tom odkazu na příklad psali: This was the old method in Joomla 1.5 and 2.5 and will throw a deprecated notice in Joomla 3.0+.
za další
(zkopíroval jsem si v models message.php na poznamka.php a dal jí třídu FrontendModelpoznamka,
Funkce send v těchto PHP není
třída je však definována - class FrontendModelpoznamka extends FactoryModel a z FactoryModel jsem zkopíroval funkci do poznamka.php. Tu by to v tu chvíli mělo volat?
db9 byl jen pokus a to klidně může být pokud je to všady, a já to z DB9 na DB měnil až tady a ty dvě db9 jsem zapomněl změnit.
Teď už jen zrušit ten zápis do původní tabulky databáze a mám hotovo.
Tedy ještě musím vyřešit vkládání a edit databáze (pokud je id_ja a id_on stejný jako je již v tabulce, tak se nezakládá nový řádek, ale jen se zedituje ta poznámka,
Pak ještě správné zobrazení na jednotlivých stránkách atd.
Ale to je již brnkačka
Pro vysvětlení:
Každý uživatel si ke každému jinému uživateli může napsat soukromou poznámku, kterou u něj vidí jen ten, kdo ji napsal. Poznámku může editovat.
Ani uživatel ke kterému jsem si ji napsal ji nevidí
08. říj 2015 01:05 #123846
Odpověď od Ernst

Joomla Expert
Tak už je to funkční, hotový coltroler models, vše funguje jak má, jen dočesat
ještě potřebuji tu výchozí hodnotu vstupního pole. Neporadíte?
Zítra pro ostatní čtenáře ještě napíšu podrobněji postup
ještě potřebuji tu výchozí hodnotu vstupního pole. Neporadíte?
Zítra pro ostatní čtenáře ještě napíšu podrobněji postup
09. říj 2015 23:41 #123864
Odpověď od Ernst

Joomla Expert
Můžete mi prosím poradit ještě s tímhle -
www.joomlaportal.cz/forum/71-joomla-3-0-...hozi-hodnota?start=6
, nějak jsem se na tom zasekl