spec/lib/prepare_detail.cfm
2025-06-09 16:03:38 +03:00

34 lines
2.2 KiB
Plaintext

<cfsilent></cfsilent><!--- prepare environment --->
<!--- v02 17:35 28.06.2018--->
<!---14:55 29.06.2018 bug fixed--->
<!---v03 2025-06-05 06:25 added ATTRIBUTES.defaultBackUrl--->
<cfimport prefix="m" taglib="../lib"/>
<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"/><!--- для составных ключей рекомендуется "undefined" *** можно сделать листом, и дальше конструировать, как ни в чем не бывало --->
<cfparam name="ATTRIBUTES.pageInfoOut" type="string"/>
<cfparam name="ATTRIBUTES.formEncType" type="string" default=""/>
<cfparam name="ATTRIBUTES.trackOut" type="string" default="tr"/>
<cfparam name="ATTRIBUTES.defaultBackUrl" default="#ATTRIBUTES.entity#_ls.cfm"/><!--- для зависимых сущностей передавать обязательно --->
<cfparam name="ATTRIBUTES.thisUrl" default=""/><!--- для составных ключей передавать обязательно *** выбрасывать исключение --->
<!--- заново конструируем Url текущей страницы, без трека --->
<cfif len(ATTRIBUTES.thisUrl) EQ 0><!--- наугад используем типовое соглашение--->
<cfparam name="#ATTRIBUTES.key#" default="-1"/>
<cfset id=evaluate("#ATTRIBUTES.key#")/><!---*** неизящно, зато безопасно---><!--- *** как-то не слишком безопасно --->
<cfset ATTRIBUTES.thisUrl="#request.thisPage#?#ATTRIBUTES.key#=#id#"/>
</cfif>
<m:ac obj="#ATTRIBUTES.accessObject#" permissionOut="permission"/>
<cfset permission=2/><!--- *** --->
<m:track thisUrl="#ATTRIBUTES.thisUrl#" defaultBackUrl="#ATTRIBUTES.defaultBackUrl#" output="track"/>
<cfset pageInfo=CreateObject("component","detail_page_info").init("#ATTRIBUTES.entity#","#ATTRIBUTES.key#",#track#,"#permission#","frm",#request.thisPage#,"POST","#ATTRIBUTES.formEncType#")/>
<cfset "CALLER.#ATTRIBUTES.trackOut#"=#track#/>
<cfset "CALLER.#ATTRIBUTES.pageInfoOut#"=#pageInfo#/>
<cfexit method="exittag"/>