2013-07-26 2 views
1

У меня есть tpl, который входит в состав других tpls (фактически почти 70). Проблема в том, что этот шаблон должен что-то делать, если он был включен внутри данного элемента DOM (как первый ребенок).Smarty - Как запросить элемент DOM

Вот пример:

<div id="container"> 
    {include file="mytpl.tpl" 
    param1="aValue1" 
    param2="aValue2" 
    } 
</div> 

Использование Javascript вне вопроса, так как это влияет на бэкенд.

Кроме того, я знаю, что могу передать дополнительный аргумент моему tpl. Проблема в том, что мне пришлось бы добавить эту инструкцию ко всем почти 70 файлам, которые называют это tpl.

Итак, я хотел бы иметь возможность спросить, является ли его родитель «контейнером», и это его первый ребенок.

решение Один файл:

{include file="mytpl.tpl" 
    param1="aValue1" 
    param2="aValue2" 
    paramX="X" 
} 

, а затем, в TPL ..

{if $paramX eq 'X'}...{/if} 
+0

Что именно вы хотите сделать, если пароль t является контейнером, а текущий шаблон является первым ребенком? Вы говорите, что вы знаете, как вы могли бы это сделать, но проблема в том, что у вас есть 70 файлов ... ... можете ли вы привести пример того, как вы будете делать с одним файлом? – bestprogrammerintheworld

+0

включаемый файл = "mytpl.tpl" param1 = "aValue1" param2 = "aValue2 paramX =" X» , а затем .. {если $ paramX эк 'X'} ... {/, если} – Augusto

+0

@ORION - это ваш код, но чего вы хотите достичь? Я имею в виду, что должно произойти, когда это первый ребенок? – bestprogrammerintheworld

ответ

0

Возможный подход:
Вы можете поместить свой variable/data/info в $_SESSION массиве, а затем использовать:

{$smarty.session.YOUR_VARIABLE} 
+0

Спасибо! Но для этого мне пришлось бы добавить это вручную во все 70 файлов, верно? Я имею в виду, мне пришлось бы установить эту переменную для всех этих файлов. – Augusto

Смежные вопросы