160 vault_record conditionally marshalled, svc search by synonyms
This commit is contained in:
+18
-8
@@ -1,32 +1,39 @@
|
||||
<cfsilent>
|
||||
<cfsilent></cfsilent>
|
||||
<!--- 20181209 v0.3 добавлено поле cfSqlType--->
|
||||
<!--- 20201029 v0.5 все атрибуты необязательные--->
|
||||
<!--- 20201114 v0.6 добавлен атрибут "container" for json--->
|
||||
<!--- 20201201 v0.7 исправлен listOut--->
|
||||
<!--- 20210326 v0.8 formatter --->
|
||||
<!--- 20210326 v0.9 listOutKeepContent --->
|
||||
<!--- 20210326 v0.10 listOutKeepContent, listOut, nameListOut fixes --->
|
||||
<!--- Используется в селекте для структурирования списка полей. Выводит вместо себя список через запятую, экспортирует Map со структурами выражение+заголовок, с ключом, соответствующим имени колонки в селекте (ключ вычисляется регулярным выражением) --->
|
||||
|
||||
<cfset var local={}/> <!--- *** есть опасения, что это не будет работать в модуле .cfm (вообще var ведет себе странно) --->
|
||||
<cfif thisTag.executionMode is "end">
|
||||
|
||||
<cfparam name="ATTRIBUTES.titleMapOut" default=""/>
|
||||
<cfparam name="ATTRIBUTES.lengthOut" default=""/>
|
||||
<cfparam name="ATTRIBUTES.listOut" default=""/><!---возвращаемый список полей через запятую для селекта. Если не задан (чаще всего так), этот список возвращается в виде контента тега --->
|
||||
<cfparam name="ATTRIBUTES.nameListOut" default=""/><!---возвращаемый список имен (алиасов) через запятую--->
|
||||
<cfparam name="ATTRIBUTES.listOutKeepContent" default=false/><!--- указывает listOut не очищать контент --->
|
||||
<cfparam name="ATTRIBUTES.fieldsToInclude" default=""/><!--- список нужных полей, если не пустой - выбрасывать все поля, кроме тех, что в списке --->
|
||||
|
||||
<cfparam name="thisTag.fieldsArray" type="array"/><!--- Вложенные теги field отдают сюда свои данные --->
|
||||
|
||||
<cfset titleMap=structNew("linked")/><!---railo/lucee syntax--->
|
||||
<cfset list=""/>
|
||||
<cfset local.expressionList=""/>
|
||||
<cfset local.nameList=""/>
|
||||
|
||||
<cfset i=0/>
|
||||
<cfloop array=#thisTag.fieldsArray# index="field">
|
||||
<!--- <cfdump var=#field#/> --->
|
||||
<cfif len(#field.name#) EQ 0
|
||||
OR listLen(ATTRIBUTES.fieldsToInclude) EQ 0
|
||||
OR listFind(ATTRIBUTES.fieldsToInclude,field.name)>
|
||||
OR listFindNoCase(ATTRIBUTES.fieldsToInclude,field.name)>
|
||||
<!--- пытаемся сохранить прежнюю логику - поля без имени не выбрасываются, но не попадают в titleMap --->
|
||||
<cfset i=i+1/>
|
||||
<cfset list=listAppend(#list#, #field.expression#)/>
|
||||
<cfset local.expressionList=listAppend(#local.expressionList#, #field.expression#)/>
|
||||
<cfset local.nameList=listAppend(#local.nameList#, #field.name#)/>
|
||||
|
||||
<cfif len(#field.name#)>
|
||||
<cfset structInsert(#titleMap#, #field.name#, structNew())/>
|
||||
@@ -46,6 +53,10 @@
|
||||
|
||||
<cfif len(ATTRIBUTES.titleMapOut)>
|
||||
<cfset "CALLER.#ATTRIBUTES.titleMapOut#"=#titleMap#/>
|
||||
</cfif>
|
||||
|
||||
<cfif len(ATTRIBUTES.nameListOut)>
|
||||
<cfset "CALLER.#ATTRIBUTES.nameListOut#"=#local.nameList#/>
|
||||
</cfif>
|
||||
|
||||
<!--- <cfif len(ATTRIBUTES.listOut)>
|
||||
@@ -54,15 +65,14 @@
|
||||
</cfif> --->
|
||||
|
||||
<cfif len(ATTRIBUTES.listOut)><!--- *** некрасиво --->
|
||||
<cfset "CALLER.#ATTRIBUTES.listOut#"=list/>
|
||||
<cfset "CALLER.#ATTRIBUTES.listOut#"=local.expressionList/>
|
||||
<cfif ATTRIBUTES.listOutKeepContent>
|
||||
<cfset thisTag.generatedContent=preserveSingleQuotes(list)/>
|
||||
<cfset thisTag.generatedContent=preserveSingleQuotes(local.expressionList)/>
|
||||
<cfelse>
|
||||
<cfset thisTag.generatedContent=""/>
|
||||
</cfif>
|
||||
<cfelse>
|
||||
<cfset thisTag.generatedContent=preserveSingleQuotes(list)/>
|
||||
<cfset thisTag.generatedContent=preserveSingleQuotes(local.expressionList)/>
|
||||
</cfif>
|
||||
|
||||
</cfif>
|
||||
</cfsilent>
|
||||
Reference in New Issue
Block a user