Přihlásit se

formulář výchozí hodnota

08. říj 2015 18:30 #123858
Odpověď od Ernst
Joomla Expert
Tak to studuji.
ve views je to voláno ze souboru default_interact.tpl
a v tom je:
Code:
<!-- poznamka button --> <li>{jhtml _='LoveFactory.Quickpoznamka' userId=$profile->user_id test="12345"}</li>

to test jsem si tam doplnil jen na zkoušku

Ta guickpoznamka.tpl je:
Code:
<div id="lovefactory-dialog" title="{jtext _='dialog_quickpoznamka_dialog_title'}"> <div class="lovefactory-dialog-quickpoznamka lovefactory-view"> <div class="lovefactory-dialog-content"> <form action="{jroute task='poznamka.send'}" method="post"> <table> <tr> <th><label>{jtext _='dialog_quickpoznamka_label_to'}</label></th> <td>{$username}</td> </tr> <tr> <th><label for="text">{jtext _='dialog_quickpoznamka_label_message'}</label></th> <td><textarea rows="7" cols="12" id="text" name="message[text]" >{$test}</textarea></td> </tr> </table> <input type="hidden" name="message[user_id]" value="{$userId}"> </form> </div> <div class="lovefactory-dialog-buttons"> <a href="#" class="dialog-button dialog-button-submit ui-state-hover"><i class="factory-icon icon-poznamka"></i>{jtext _='dialog_quickpoznamka_button_submit'}</a> <a href="#" class="dialog-button dialog-button-close"><i class="factory-icon icon-cross-button"></i>{jtext _='dialog_button_cancel'}</a> </div> </div> </div>

a já si myslel, že tam tu proměnnou test budu moci použít, ale tak to zjevně není

11. říj 2015 23:18 #123880
Odpověď od Cony
Moderátor
Jak jsem ji psal dříve, toto není standard Joomly. Komponenta používán pro šablony template systém Smarty.
Zkuste si projí dokumentaci k Smarty . Dokumentace přímo k šablonám Love facory je zde .

19. říj 2015 23:52 #124034
Odpověď od Ernst
Joomla Expert
tak jsem si to přečetl, vše našel a před
$smarty->display($layout . '.tpl');
jsem dal
$smarty->assign('prpoz', $parametr), který jsem si předtím požadovaně naplnil, dejme tomu '1234'

když mám v tpl
<td><textarea rows="7" cols="12" id="text" name="message[text]"> {$prpoz} </textarea></td>

tak se tam 1234 nepředvyplní.

pokud uvedu
$smarty->assign('prpoz','1234'), tak se tam to 1234 předvyplní

Nějak nechápu. poradíte?

20. říj 2015 00:47 #124037
Odpověď od Cony
Moderátor

ernst napsal: $smarty->assign('prpoz', $parametr), který jsem si předtím požadovaně naplnil, dejme tomu '1234'

No tady bude asi zakopanej pes. Jak přesně "požadovaně naplnil"?

20. říj 2015 09:09 #124039
Odpověď od Ernst
Joomla Expert
ano máte pravdu, ale momentálně to nechápu
Code:
$user = intval(JFactory::getUser()->id); $on= intval($this->profile->user_id); $db = JFactory::getDbo(); $query = $db->getQuery(true); $conditions = array($db->quoteName('id_ja') . ' = '.$user .' and '.$db->quoteName('id_on') . ' = '.$on); $query->select(array('id_ja','id_on','poznamka')) ->from($db->quoteName('#__lovefactory_poznamka')) ->where($conditions); $db->setQuery($query); $row = $db->loadRow(); $parametr=$row[2]; // $parametr='123456'; var_dump($parametr); $smarty->assign('prpoz', $parametr);

pokud tam nechám ten řádek $parametr='123456'; tak to funguje, pokud
$parametr=$row[2];, což je taky řetězec, tak ne

20. říj 2015 09:22 #124041
Odpověď od Ernst
Joomla Expert
jediný, co mně napadá je, že to pole poznámka je textarea

20. říj 2015 10:39 #124042
Odpověď od Ernst
Joomla Expert
zkusmo jsem si změnil v databázi to pole poznámka na char nebo varchar nebo text a výsledek je pořád stejný.
Jsem z toho nešťastný a nefunguje to.

Poradíte?

20. říj 2015 11:57 #124044
Odpověď od Cony
Moderátor
A var_dump ukaze co?

20. říj 2015 12:10 #124046
Odpověď od Ernst
Joomla Expert
ukáže správný string (buď ten z databáze nebo na místě přiřazený)
gettype také ukáže, že obojí je string
dal jsem raději i
$parametr = trim($row[2]);
nic nepomáhá, nerozumím tomu.
že by něco s dědičností? To ale nedává smysl

20. říj 2015 13:53 #124050
Odpověď od Cony
Moderátor
Takže
Code:
$parametr=$row[2]; var_dump($parametr); $smarty->assign('prpoz', $parametr);
a
Code:
$parametr='123456'; var_dump($parametr); $smarty->assign('prpoz', $parametr);
Ukáže kompletně stejný var_dump, hodnotu i typ? A pak to v šabloně, bez jakékoliv jiné změny nefunguje? To opravdu nedává smysl, spíš tam budete mít nějaký drobný překlep nebo něco. Občas člověk do kódu kouká hodiny a pak narazí na to že místo parametr napsal parameter.

20. říj 2015 15:21 #124056
Odpověď od Ernst
Joomla Expert
stejnou hodnotu ne, v databázi mám '1234'
ale var_dump a typ ano, jdu čučet do kódu, a ještě napíšu

20. říj 2015 16:07 #124059
Odpověď od Ernst
Joomla Expert
čumím na to již několik hodin a nic nevidím

v methods.php je
Code:
public function display($tpl = null) { $app = JFactory::getApplication(); $this->loadAssets(); if ($app->isSite()) { $smarty = LoveFactoryApplication::getInstance()->getSmarty($this->getName()); // Assign variables. foreach ($this->get as $get) { $method = 'get' . ucfirst($get); $value = method_exists($this, $method) ? $this->$method() : $this->get($get); $smarty->assign($get, $value); $this->$get = $value; } // Assign view name. $smarty->assign('viewName', $this->getName()); $layout = $this->getLayout(); if (!is_null($this->tpl)) { $layout .= '_' . $this->tpl; } $path = LoveFactoryApplication::getInstance()->getPath('component').DS.'views'.DS.$this->getName().DS.'tmpl'; // Check if layout exists // jimport('joomla.filesystem.file'); // if (!JFile::exists($path.DS.$layout.'.tpl')) { // $layout = 'default'; // } $smarty->addPluginsDir(JPATH_SITE . '/components/com_lovefactory/lib/ThePhpFactory/LoveFactory/Smarty/Plugins'); $smarty ->addTemplateDir(JPATH_THEMES . '/' . $app->getTemplate() . '/html/com_lovefactory/' . $this->getName()) ->addTemplateDir(LoveFactoryApplication::getInstance()->getPath('component') . '/views') ->addTemplateDir($path); foreach ($this->extraTplViewPaths as $view) { $smarty ->addTemplateDir(JPATH_THEMES . '/' . $app->getTemplate() . '/html/com_lovefactory/' . $view) ->addTemplateDir(LoveFactoryApplication::getInstance()->getPath('component').DS.'views'.DS.$view.DS.'tmpl'); } $user = intval(JFactory::getUser()->id); $on= intval($this->profile->user_id); $db = JFactory::getDbo(); $query = $db->getQuery(true); $conditions = array($db->quoteName('id_ja') . ' = '.$user .' and '.$db->quoteName('id_on') . ' = '.$on); $query->select(array('id_ja','id_on','poznamka')) ->from($db->quoteName('#__lovefactory_poznamka')) ->where($conditions); $db->setQuery($query); $row = $db->loadRow(); $mujparametr=$row[2]; //$mujparametr='123456'; var_dump($mujparametr); var_dump($row[2]); $smarty->assign('prpozice', $mujparametr); $smarty->display($layout . '.tpl'); } else { foreach ($this->get as $get) { $this->$get = $this->get($get); } $this->sidebar = JHtmlSidebar::render(); ob_start(); parent::display($tpl); $contents = ob_get_contents(); ob_end_clean(); $html = array(); $html[] = '<div id="j-sidebar-container" class="span2">'; $html[] = $this->sidebar; $html[] = '</div>'; $html[] = '<div id="j-main-container" class="span10">'; $html[] = $contents; $html[] = '</div>'; echo implode("\n", $html); $viewHelp = new LoveFactoryViewHelp(); $viewHelp->render($this->getName()); } $this->addToolbar(); return true; }

v tpl souboru je
Code:
<div id="lovefactory-dialog" title="{jtext _='dialog_quickpoznamka_dialog_title'}"> <div class="lovefactory-dialog-quickpoznamka lovefactory-view"> <div class="lovefactory-dialog-content"> <form action="{jroute task='poznamka.send'}" method="post"> <table> <tr> <th><label>{jtext _='dialog_quickpoznamka_label_to'}</label></th> <td>{$username}</td> </tr> <tr> <th><label for="text">{jtext _='dialog_quickpoznamka_label_message'}</label></th> <td><textarea rows="7" cols="12" id="text" name="message[text]" >{$prpozice}</textarea></td> </tr> </table> <input type="hidden" name="message[user_id]" value="{$userId}"> </form> </div> <div class="lovefactory-dialog-buttons"> <a href="#" class="dialog-button dialog-button-submit ui-state-hover"><i class="factory-icon icon-poznamka"></i>{jtext _='dialog_quickpoznamka_button_submit'}</a> <a href="#" class="dialog-button dialog-button-close"><i class="factory-icon icon-cross-button"></i>{jtext _='dialog_button_cancel'}</a> </div> </div> </div>

pokud odkomentuji řádku //$mujparametr='123456';, tak se tato hodnota předvyplní, jinak ne,
Var_dump obou hodnot je stejné. Nemohou být v tom stringu nějaké znaky, které to tpl nebere?

20. říj 2015 16:18 #124061
Odpověď od Ernst
Joomla Expert
snad malý nápad pokud dám
Code:
$mujparametr='to je dobrá restaurace'; var_dump($mujparametr);

tak to vypíše: 'to je dobr� restaurace'

tak snad nějaká chyba v kódování, ale nevím co s tím

20. říj 2015 17:28 #124067
Odpověď od Cony
Moderátor
Špatnou diakritiku máte, protože soubor editujete asi ve win 1250, a ne v UTF. Ćíslic se to nedotkne. Zkuste úplně stejnou hodnotu, tak aby var_dump byl úplně stejný. Pokud nic jiného nezměníte, tak ob případy musí buď fungovat nebo nefungovat.

20. říj 2015 20:26 - 20. říj 2015 20:28 #124073
Odpověď od Ernst
Joomla Expert
tak znovu bermudský trojúhelník:
Code:
$user = intval(JFactory::getUser()->id); $on= intval($this->profile->user_id); $db = JFactory::getDbo(); $query = $db->getQuery(true); $conditions = array($db->quoteName('id_ja') . ' = '.$user .' and '.$db->quoteName('id_on') . ' = '.$on); $query->select(array('id_ja','id_on','poznamka')) ->from($db->quoteName('#__lovefactory_poznamka')) ->where($conditions); $db->setQuery($query); $row = $db->loadRow(); $mujparametr=$row[2]; $mujparametr='123456'; var_dump($mujparametr); var_dump($row[2]); $smarty->assign('prpozice', $mujparametr); $smarty->assign('prpoz', $row[2]);

Výsledek var_dump
string '123456' (length=6)
string '123' (length=3)

povele se předvyplní pouze hopdnoutou prpozice proměnná prpoz jnic nepředvyplní (v tpl to samozřejmně měním

prostě se to chová nepochopitelně

Powered by Fórum