initial draft
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
<cfsilent><!--- build query sort string --->
|
||||
<!--- v0.3 ---><!--- 2025-04-29 09:13:19 --->
|
||||
<cfparam name="ATTRIBUTES.sortArray" type="array"/>
|
||||
<!--- <cfparam name="ATTRIBUTES.defaultSortArray" type="array" default=#[]#/> оказывается, это уже было --->
|
||||
<cfparam name="ATTRIBUTES.fieldCount" type="integer" default=0/>
|
||||
<cfparam name="ATTRIBUTES.defaultSortArray" type="array" default=#[]#/><!--- #[{"fld":1,"asc":0}]# --->
|
||||
<cfparam name="ATTRIBUTES.defaultOrder" default="1 desc"/><!--- оба варианта не отображаются в реестре, чтобы отображались - надо работать с массивом вне этого модуля, модуль не модифицирует массив сортировки. В общем, оба варианта дефолтной сортировки не вызывают восторга, но пусть остаются - в конце концов, есть не только реестры --->
|
||||
|
||||
<cfif thisTag.executionMode IS "end" OR !thisTag.hasEndTag>
|
||||
|
||||
<cfif ArrayLen(ATTRIBUTES.sortArray) EQ 0>
|
||||
<cfset ATTRIBUTES.sortArray=ATTRIBUTES.defaultSortArray/>
|
||||
</cfif>
|
||||
|
||||
<cfset querySort="">
|
||||
|
||||
<cfset i=1>
|
||||
<cfloop array=#ATTRIBUTES.sortArray# index="sort"><!--- index is not an ordinal, but the element of array--->
|
||||
<cftry>
|
||||
<cfif (ATTRIBUTES.fieldCount LE 0) OR (sort.fld LE ATTRIBUTES.fieldCount)>
|
||||
<cfif sort.asc>
|
||||
<cfset querySort=listAppend(querySort," #sort.fld# asc")>
|
||||
<cfelse>
|
||||
<cfset querySort=listAppend(querySort," #sort.fld# desc")>
|
||||
</cfif>
|
||||
</cfif>
|
||||
<cfcatch type="Any"></cfcatch>
|
||||
</cftry>
|
||||
<cfset i=i+1>
|
||||
</cfloop>
|
||||
|
||||
<cfif len(trim(querySort)) EQ 0>
|
||||
<cfset querySort=#ATTRIBUTES.defaultOrder#>
|
||||
</cfif>
|
||||
|
||||
<cfset querySort=trim(querySort)>
|
||||
|
||||
<cfif isDefined("ATTRIBUTES.output")>
|
||||
<cfset "CALLER.#ATTRIBUTES.output#"=querySort/>
|
||||
<cfelse>
|
||||
<cfset thisTag.generatedContent=querySort/>
|
||||
</cfif>
|
||||
</cfif>
|
||||
</cfsilent>
|
||||
Reference in New Issue
Block a user