Dynamic & foreach :(

DIMAD

Новичок
Dynamic & foreach :(

Проблема заключается в следующем.... есть шаблон:
PHP:
<center>
<br>
{config_load file="../languages/$language/systemadmin/modules/menu/menu.conf"}
{foreach from=$menu_all item=menu_all}
<form action="index.php?func=menu_edit_inbase" method="POST">
<input type="hidden" name="mainmenu_id" value="{$menu_all.mainmenu_id}">
{#_MENUELEMENTNAME#}<input type="text" name="mainmenu_name" size="30" maxlength="25" value="{$menu_all.mainmenu_name}"><br>
<select name="menu_object">
<option value="parent" {if $menu_all.mainmenu_module ne ""}selected{/if}>{#_MENUELEMENTPARENT#}</option>
<option value="children" {if $menu_all.mainmenu_submodule ne ""}selected{/if}>{#_MENUELEMENTCHILDREN#}</option>
</select><br>
{if $menu_type eq "module"}
<input type="hidden" name="menu_type" value="module">
{#_MENUELEMENTMODULE#}
{dynamic}
<select name="mainmenu_module">
{foreach from=$module_name item=module_name}
<option value="{$module_name.module_name}" {if $menu_all.mainmenu_module eq $module_name.module_name or $menu_all.mainmenu_submodule eq $module_name.module_name}selected{/if}>{$module_name.module_name}</option>
{/foreach}
</select>
{/dynamic}
<br>
{elseif $menu_type eq "main_page"}
<input type="hidden" name="menu_type" value="main_page">
<input type="text" name="mainmenu_module" size="30" maxlength="250"><br>
{elseif $menu_type eq "other"}
<input type="hidden" name="menu_type" value="other">
{#_MENUOTHER#}<input type="text" name="mainmenu_module" size="30" maxlength="250" {if $menu_all.mainmenu_module ne "" and $menu_all.mainmenu_submodule eq ""}value="{$menu_all.mainmenu_module}"{elseif $menu_all.mainmenu_module eq "" and $menu_all.mainmenu_submodule ne ""} value="{$menu_all.mainmenu_submodule}"{/if}><br>
{/if}
{#_MENUELEMENTWINDOW#}<select name="mainmenu_target">
<option value="_parent" {if $menu_all.mainmenu_target eq "_parent"}selected{/if}>{#_MENUELEMENTCURRENTWINDOW#}</option>
<option value="_blank" {if $menu_all.mainmenu_target eq "_blank"}selected{/if}>{#_MENUELEMENTNEWWINDOW#}</option>
</select><br>
{#_MENUELEMENTVISIBLE#}<select name="mainmenu_inmenu">
<option value="1" {if $menu_all.mainmenu_inmenu eq "1"}selected{/if}>{#_MENUELEMENTACTIVE#}</option>
<option value="0" {if $menu_all.mainmenu_inmenu eq "0"}selected{/if}>{#_MENUELEMENTNOTACTIVE#}</option>
</select><br><br>
<input type="submit" value="{#_MENUBUTTONSAVE#}">
</form>
{/foreach}
</center>
Если внимательно посмотреть код то видим что структура такова:
{foreach}
...........
{dynamic}
{foreach}

{/foreach}
{/dynamic}
{/foreach}
Таким образом частичка серединки не кешируется. Проблема в том что при повторном обновлении странички теряется первый массив foreach и вылетает Notice:(. Проблему конечно можно решить путем размещения {dynamic} в самом верху странички но это не выход из ситуации. Помогите пожалуйста разобраться.

-~{}~ 02.08.06 20:58:

еще теряется {config_load file="../languages/$language/systemadmin/modules/menu/menu.conf"} если его разместить над {dynamic}. Есть ли пути решения этих двух проблем?

-~{}~ 02.08.06 21:00:

в первой проблеме оно матюкается на $menu_all.mainmenu_module и $menu_all.mainmenu_submodule после обновления странички. Если кеш почистить то при первой компиляции все ок. При повторном обновлении снова вылетает нотис :(
 

zerkms

TDD infected
Команда форума
как интересно...
а ты сам понимаешь что ты делаешь? понимаешь что из себя представляет кэш смарти?

подсказка: посмотри ка в файлы кэша для интереса
 

DIMAD

Новичок
есть ли пути решения этой проблемы, кроме того, что нужно {dynamic} засунуть в самый верх?
 

zerkms

TDD infected
Команда форума
DIMAD
если бы ты хотя бы мысленно ответил на вопросы которые я задал в первом посте, то понял бы - что данным взяться просто неоткуда
 
Сверху