spec/lib/order_build.cfm
2025-06-02 16:16:51 +03:00

44 lines
2.0 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<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>