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