33 lines
2.5 KiB
Plaintext
33 lines
2.5 KiB
Plaintext
<cfsilent>
|
||
<!---Замещает любую переменную (*** небезопасно) тега layout:page --->
|
||
<!---Тег layout:page проглатывает собственный контент, и вместо него после закрытия выводит разметку на основании атрибутов (при открытии тега он формирует переменные - фрагменты разметки - по шаблону) и вложенных тегов layout:attribute (которые по закрытии тега на самом деле перезаписывают переменные в layout:page).
|
||
Вложенные теги удобны, чтобы передавать читабельную разметку, а не строку в кавычках.--->
|
||
<cfparam name="ATTRIBUTES.name"/><!---имя переменной layout:page, чаще всего title, controls--->
|
||
<!--- ATTRIBUTES.value --->
|
||
<cfparam name="ATTRIBUTES.append" default=""/><!---before,after--->
|
||
|
||
<cfif thisTag.executionMode IS "end">
|
||
|
||
<cfassociate basetag="cf_page"/>
|
||
<cfset layoutTemplate=getBaseTagData('cf_page',1)/>
|
||
|
||
<cfif structKeyExists(ATTRIBUTES, "value")>
|
||
<cfset value=ATTRIBUTES.value/>
|
||
<cfelse>
|
||
<cfset value=thisTag.generatedContent/>
|
||
</cfif>
|
||
|
||
<!---ниже в комментариях предполагается, что мы меняем фрагмент разметки, например, controls, но на самом деле это может быть любая переменная тега layout:page--->
|
||
<cfif structKeyExists(layoutTemplate,"#ATTRIBUTES.name#") AND lcase(ATTRIBUTES.append) EQ "before">
|
||
<!---дописать в начало фрагмента разметки с именем name, сгенерированного layout:page, например, controls--->
|
||
<cfset "layoutTemplate.#ATTRIBUTES.name#" = value & layoutTemplate["#ATTRIBUTES.name#"]/>
|
||
<cfelseif structKeyExists(layoutTemplate,"#ATTRIBUTES.name#") AND lcase(ATTRIBUTES.append) EQ "after">
|
||
<!---дописать в конец фрагмента разметки с именем name,, сгенерированного layout:page, например, controls--->
|
||
<cfset "layoutTemplate.#ATTRIBUTES.name#" = layoutTemplate["#ATTRIBUTES.name#"] & value/>
|
||
<cfelse>
|
||
<!---заменить фрагмент разметки с именем name, сгенерированный layout:page--->
|
||
<cfset "layoutTemplate.#ATTRIBUTES.name#"= value/>
|
||
</cfif>
|
||
<cfset thisTag.generatedContent=""/>
|
||
</cfif>
|
||
</cfsilent> |