html 最近浏览的项目功能。所有自定义Miva代码,不由模块运行。它存储产品代码列表,最多显示12个

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了html 最近浏览的项目功能。所有自定义Miva代码,不由模块运行。它存储产品代码列表,最多显示12个相关的知识,希望对你有一定的参考价值。

*****PROD - Recently Viewed Section*****
<mvt:item name="customfields" param="Read_Basket( 'recentlyViewed', l.settings:recentlyViewed )" />
<mvt:assign name="l.settings:recentlyViewed" value="miva_array_deserialize(l.settings:recentlyViewed)" />
<mvt:assign name="g.fcount" value="miva_array_elements(l.settings:recentlyViewed)"/>
<mvt:comment>If the current product is part of the recently viewed items, then subtract one from the array count since we don't want to show the current product as part of the "recently viewed"</mvt:comment>
<mvt:if expr="miva_array_find( l.settings:product:code, l.settings:recentlyViewed, 0 ) NE 0">
    <mvt:assign name="g.fcount" value="g.fcount - 1"/>
</mvt:if>
<mvt:foreach iterator="rv_item_code" array="recentlyViewed">
    <mvt:do file="g.Module_Library_DB" name="l.success" value="Product_Load_Code(l.settings:rv_item_code, l.settings:rv_item)" />
    <mvt:comment>Only place active products into footsteps array</mvt:comment>
    <mvt:if expr="l.settings:rv_item:active EQ 1">
        <mvt:comment>Grab full product data, via the base product variable - necessary to pull in base price data after discount function is run below.</mvt:comment>
        <mvt:do file="g.Module_Feature_TUI_UT" name="l.success" value="CommonComponentFields_Initialize_Product_Runtime(l.settings:rv_item)" />
        <mvt:assign name="l.index" value="miva_array_insert( l.settings:footsteps, l.settings:rv_item, -1 )" /> 
    </mvt:if>
</mvt:foreach>
<mvt:comment>Loading product's discount data from sale and strike through pricing</mvt:comment>
<mvt:do name="l.null" file="g.Module_Feature_TUI_UT" value="CommonComponentFields_Initialize_Product_Discounts_Runtime(l.settings:footsteps, miva_array_elements(l.settings:footsteps))" />
<mvt:if expr="miva_array_find( l.settings:product:code, l.settings:footsteps, 0 ) NE 0">
    <mvt:assign name="g.fcount" value="g.fcount - 1"/>
</mvt:if>
<mvt:if expr="g.fcount GT 0">
	<mvt:do file="g.Module_Library_DB" name="l.success" value="ImageType_Load_Code( 'main', l.imagetype:main )" />
	<mvt:assign name="l.width" value="320" />
	<mvt:assign name="l.height" value="320" />
	<mvt:foreach iterator="footstep" array="footsteps">
		<mvt:comment>Skip the current product from showing in the recently viewed array</mvt:comment>
        <mvt:if expr="l.settings:footstep:code EQ l.settings:product:code">
            <mvt:foreachcontinue />
        </mvt:if>
        <mvt:comment> NULL Out Variables </mvt:comment>
        <mvt:assign name="l.success" value="''"/>
        <mvt:assign name="l.loaded_type" value="NULL" />
        <mvt:assign name="l.imagedata" value="NULL" />
        <mvt:assign name="l.image" value="NULL" />
        <mvt:assign name="l.generated_image:image" value="NULL" />
        <mvt:comment>Load Product Image</mvt:comment>
        <mvt:do name="l.success" file="g.Module_Library_DB" value="ProductImage_Load_Type(l.settings:footstep:id, l.imagetype:main:id, l.loaded_type)" />
        <mvt:do file="g.Module_Library_DB" name="l.success" value="Image_Load_ID( l.loaded_type:image_id, l.imagedata )" />
        <mvt:do file="g.Module_Library_DB" name="l.image_loaded_success" value="Image_Load_File( l.imagedata:image, l.image )" />
        <mvt:if expr="l.image_loaded_success EQ 1">
            <mvt:do file="g.Module_Library_DB" name="l.success" value="GeneratedImage_FindOrInsert_Image_Dimensions( l.image, l.width, l.height, l.generated_image )" />
            <mvt:if expr="l.generated_image">
                <mvt:assign name="l.settings:footstep_image" value="l.generated_image:image" />
            </mvt:if>
        </mvt:if>
        <mvt:assign name="l.uri:store_id" value="g.Store:id" />
        <mvt:assign name="l.uri:screen" value="''" />
        <mvt:assign name="l.uri:page_id" value="0" />
        <mvt:assign name="l.uri:cat_id" value="0" />
        <mvt:assign name="l.uri:product_id" value="l.settings:footstep:id" />
        <mvt:do file="g.Module_Feature_URI_DB" name="l.have_uri" value="URI_Load_Item_Canonical( l.uri, l.settings:footstep:link )" />
        <mvt:item name="customfields" param="Read_Product_ID(l.settings:footstep:id, 'product_tag', l.settings:footstep:customfield_values:customfields )" />
        <mvt:comment>HTML CODE HERE</mvt:comment>
	</mvt:foreach>
</mvt:if>
*****PROD - Top Of Page*****
<mvt:comment>Recently Viewed Products Functionality</mvt:comment>
<mvt:comment>Ready session basket field that holds product code list</mvt:comment>
<mvt:item name="customfields" param="Read_Basket( 'recentlyViewed', l.settings:recentlyViewed )" />
<mvt:comment>Create Miva array from comma separated list</mvt:comment>
<mvt:assign name="l.settings:recentlyViewed" value="miva_array_deserialize(l.settings:recentlyViewed)" />
<mvt:comment>Check to ensure product code is not already in list</mvt:comment>
<mvt:if expr="miva_array_find( l.settings:product:code, l.settings:recentlyViewed, 0 ) EQ 0">
	<mvt:comment>Count the number of codes in the array, and check if there are 13 (12 to show, one extra if viewing product already in list)</mvt:comment>
	<mvt:assign name="g.rv_count" value="miva_array_elements(l.settings:recentlyViewed)"/>
	<mvt:if expr="g.rv_count EQ 13">
		<mvt:comment>Remove the oldest code (position 1), to keep the list to 12 products long</mvt:comment>
		<mvt:assign name="l.remove" value="miva_array_delete(l.settings:recentlyViewed, '1', '1')"/>
	</mvt:if>
	<mvt:comment>Insert the new code at the end of the array</mvt:comment>
	<mvt:assign name="l.index" value="miva_array_insert( l.settings:recentlyViewed, l.settings:product:code, -1 )" />
	<mvt:comment>Save new list to basket session field and to the customer's custom field for later use if they come back to store and log in</mvt:comment>
	<mvt:item name="customfields" param="Write_Basket( 'recentlyViewed', l.settings:recentlyViewed )" />
	<mvt:item name="customfields" param="Write_Customer_ID( g.customer:id, 'recentlyViewed', l.settings:recentlyViewed )" />
</mvt:if>
*****ACLN*****
<mvt:comment>Upon login, read custom field that holds their recently viewed item codes. Then save this value to basket session field for use to display recently viewed items.</mvt:comment>
<mvt:if expr="g.Action EQ 'LOGN'">
	<mvt:item name="customfields" param="Read_Customer_ID( g.customer:id, 'recentlyViewed', l.settings:recentlyViewed )" />
	<mvt:item name="customfields" param="Write_Basket( 'recentlyViewed', l.settings:recentlyViewed )" />
</mvt:if>

以上是关于html 最近浏览的项目功能。所有自定义Miva代码,不由模块运行。它存储产品代码列表,最多显示12个的主要内容,如果未能解决你的问题,请参考以下文章

html Miva - 最近浏览的产品(Footsteps)

xml Miva - 从组中加载所有自定义字段

xml Miva - 变异篮子项目替换与自定义领域排除产品

html Miva mvt:做自定义充值模板

html Miva Variant自定义字段和库存

xml Miva - 将所有产品自定义域代码加载为成员名称