Files
payg/lib/prepare_ls.cfm
2025-08-16 14:53:13 +03:00

43 lines
2.0 KiB
Plaintext

<cfsilent><!--- prepare environment --->
<!---v0.2 accessObject--->
<cfimport prefix="m" taglib="../lib"/></cfsilent><m:silent silent="No">
<cfparam name="ATTRIBUTES.entity" type="string"/>
<cfparam name="ATTRIBUTES.accessObject" type="string" default=#ATTRIBUTES.entity#/>
<cfparam name="ATTRIBUTES.key" type="string" default="#ATTRIBUTES.entity#_id"/>
<cfparam name="ATTRIBUTES.settingsKey" type="string" default="#ATTRIBUTES.entity#_ls"/>
<cfparam name="ATTRIBUTES.pageInfoOut" type="string"/>
<cfparam name="ATTRIBUTES.trackOut" type="string"/>
<cfparam name="ATTRIBUTES.recordsPerPage" type="integer" default="500"/>
<cfparam name="nStart" default="1"/>
<cfif nStart EQ 1>
<cfset thisUrl="#request.thisPage#"/>
<cfelse>
<cfset thisUrl="#request.thisPage#?nStart=#nStart#"/>
</cfif>
<m:track thisUrl="#thisUrl#" defaultBackUrl="." output="tr"/>
<cfset pageInfo=CreateObject("component","ls_page_info").init("#ATTRIBUTES.entity#","#ATTRIBUTES.key#",#tr#)/>
<cfset pageInfo.recordsPerPage=#ATTRIBUTES.recordsPerPage#/>
<cfset pageInfo.nStart=#nStart#/>
<m:ac obj="#ATTRIBUTES.accessObject#" permissionOut="permission"/>
<cfset pageInfo.permission=#permission#/>
<cfif isDefined("CALLER.reset_filter")> <!---*** --->
<m:settings action="clear" key="#ATTRIBUTES.settingsKey#.filter"/>
</cfif>
<m:settings key="#ATTRIBUTES.settingsKey#" output="settings"><!---*** грязно: мы работаем с сортировкой, а синхронизируем весь контейнер и получаем его побочным эффектом для дальнейшего использования --->
<m:sortparam sort=#settings.sort# sortlength=2/><!---*** вот где устанавливается длина массива сортировки--->
</m:settings>
<cfset pageInfo.settings=settings/><!--- unlike m:track, output="CALLER.settings" wouldnt't work for m:settings because of some StructFind --->
<cfset "CALLER.#ATTRIBUTES.trackOut#"=#tr#/>
<cfset "CALLER.#ATTRIBUTES.pageInfoOut#"=#pageInfo#/>
<cfexit method="exittag"/>
</m:silent>