Ik ben bezig met het maken van een systeem om projecten te maken dmv templates en forms (voor een CMS).
Voor de templates gebruik ik Smarty, dit werkt goed tot het moment dat ik een array of een object wil assignen met $smarty->assign(); Met een 'gewone' var lukt het wel.
Ik heb ontdekt wat het probleem is; smarty unset de objects/arrays als er een smarty functie wordt aangeroepen, ik heb echter geen oplossing ervoor.
Stukje code:
$sqloutmenu is dus het object, deze bevat data, dat heb ik geprobeerd met
Op het moment dat ik diezelfde echo voor $smarty->assign(); doe, echo'ed php echter niks.
Ook $smarty->assign(); zelf doet er niets mee:
Met een gewone var lukt het echter wel:
Het lijkt erop dat smarty de objecten/arrays filtert na het aanroepen van de eerste smartyfunctie, dit is mijn hele smarty 'stuk':
* Ik heb de paths even weggelaten
Wat heb ik geprobeerd?
Bvd.
Voor de templates gebruik ik Smarty, dit werkt goed tot het moment dat ik een array of een object wil assignen met $smarty->assign(); Met een 'gewone' var lukt het wel.
Ik heb ontdekt wat het probleem is; smarty unset de objects/arrays als er een smarty functie wordt aangeroepen, ik heb echter geen oplossing ervoor.
Stukje code:
code:
1
2
3
4
| elseif ($wichform == "makepages") { $get = mysql_query("select * from templates where id='1'") or die ("Er is een probleem met de database"); $sqloutmenu = mysql_fetch_object($get); } |
$sqloutmenu is dus het object, deze bevat data, dat heb ik geprobeerd met
code:
1
| echo $sqloutmenu->menu1; |
Op het moment dat ik diezelfde echo voor $smarty->assign(); doe, echo'ed php echter niks.
Ook $smarty->assign(); zelf doet er niets mee:
code:
1
| $smarty->assign('menu1', $sqloutmenu->menu1); |
Met een gewone var lukt het echter wel:
code:
1
2
3
4
5
6
7
8
| if ($wichform) { $get = mysql_query("select * from templates where id='1'"); while ($row = mysql_fetch_array($get)) { $sheader = $row[0]; } } $smarty->assign('header1', $sheader); |
Het lijkt erop dat smarty de objecten/arrays filtert na het aanroepen van de eerste smartyfunctie, dit is mijn hele smarty 'stuk':
code:
1
2
3
4
5
6
7
8
9
10
11
12
| $smarty = new Smarty; $smarty->template_dir = *; $smarty->compile_dir = *; $smarty->config_dir = *; $smarty->cach_dir = *; $smarty->assign('header1', $sheader); $smarty->assign('menu1', $sqloutmenu->menu1); $smarty->display('project1.tpl'); $smarty->unregister_object(smarty); $smarty->clear_cache('project1.tpl'); |
* Ik heb de paths even weggelaten
Wat heb ik geprobeerd?
- Ipv een object een array gebruiken, zelfde probleem
- Echo tussen de smarty functies, daar wordt nooit iets ge-echo'd
- Met $smart->register_object() het object geregistreerd en direct in de template de object-var gezet, zelfde probleem.
- Het object-item in een 'gewone' var gezet, dan werkt het wel.
Bvd.