Files
svc-api-x/v1/lib/order_build.cfm
T

41 lines
1.2 KiB
Plaintext

<cfsilent>
<!--- Формирует строку сортировки для запроса --->
<cfparam name="ATTRIBUTES.sortCollection" type="any">
<cfparam name="ATTRIBUTES.fieldCount" type="integer" default=0>
<cfparam name="ATTRIBUTES.defaultOrder" type="string" default="1 desc">
<cfif thisTag.executionMode IS "end" OR !thisTag.hasEndTag>
<cfset querySort="">
<cfset i=1 />
<cfloop collection=#ATTRIBUTES.sortCollection# index="item">
<cftry>
<cfset sort=ATTRIBUTES.sortCollection[item] />
<cfif (i LE ATTRIBUTES.fieldCount) OR (ATTRIBUTES.fieldCount LE 0)>
<cfif sort.asc>
<cfset querySort=listAppend(querySort," #sort.fld# asc")/>
<cfelse>
<cfset querySort=listAppend(querySort," #sort.fld# desc")/>
</cfif>
</cfif>
<cfcatch type="Any">
<cfrethrow/>
</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>