initial
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
<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>
|
||||
Reference in New Issue
Block a user