首页 > 技术 > joomla VM未登录只能看简介hack

joomla VM未登录只能看简介hack

2009年11月13日

一个需求说,如果用户未登录只能看见产品简介,登录之后就能看产品详情了,VM默认没这个功能,今儿实现之。照例记录之以备不时之需。

点击产品分类名称,将出现该分类中产品列表,此页面文件是shop.browse.php,其中每个产品的显示模版由后台定义,编辑类别就能看见,我用browse_2.php,默认一共有5个,就这个browse_2.php看着还好看点。
本来想把这个browse_2改改,另存一个browse_6,把需要隐藏详情的类别模版指定为browse_6就行,但是经过多方尝试发现browse模版根本不识别php语言,连个echo都不显示,只好来修改shop.browse.php。

1、新增文本[login to see details...],这句话就是未登录用户看见的文本。而[product details...]是已登录用户看见的文本。
文件:english.php

line52    var $_PHPSHOP_FLYPAGE_LBL = ‘Product Details’;

加一行

var $_PHPSHOP_FLYPAGE_LBL_LOGOUT = ‘Login to see details’;

2、回到shop.browse.php查找PHPSHOP_FLYPAGE_LBL,看见需要编辑的地方在line 373左右,修改为:

if( $my->id ){
$product_details = $VM_LANG->_PHPSHOP_FLYPAGE_LBL;
}
else {
$product_details = $VM_LANG->_PHPSHOP_FLYPAGE_LBL_LOGOUT;
}

即,判断一下用户是否登录,登录显示哪个,未登录显示哪个。
调用$product_details的地方在 line 459左右,这里不用改,只是看看。
$product_cell = str_replace( “{product_details…}”, $product_details, $product_cell );
3、新建一个模版browse_6.php,即未登录用户看见的页面,原来的browse_2.php有3个地方都有产品详情的链接,产品标题、图片和这个product_details,整体修改为:

<div style=”width:100%;padding: 0px 3px 3px 3px;”>
<br style=”clear:both;” />
<h2>
<span style=”font-size:16px; color:#740000; font-weight:bold;”>{product_name}</span>
</h2>
<div style=”float:left;width:32%” >
<img src=”{product_thumb_image}” {image_height} {image_width} border=”0″ alt=”{product_name}” />
</div>
<div style=”float:left;width:60%”>{product_s_desc}<br />
<span style=”font-size:12px; color:#740000;”>[{product_details...}...]</span>
</div>
<br style=”clear:both;” />
<p>{product_price}</p>
<div style=”float:left;width:60%”>
{product_rating}
</div>
<div style=”float:left;width:32%”>{form_addtocart}
</div>
<br style=”clear:both;” />
<hr />
</div>

4、回来修改shop.browse.php,加个判断,如果用户登录了,就用后台选的那个模版,如果未登录就用browse_6模版。
line 274左右

if(@$_REQUEST['output'] != “pdf”) {
if( $my->id ){
$templatefile = (!empty($category_id)) ? $db_browse->f(“category_browsepage”) : CATEGORY_TEMPLATE;
}
else{
$templatefile = “browse_6″;
}
}
else {
$templatefile = “browse_lite_pdf”;
}

本来这里的意思是如果用pdf模版显示则用browse_lite_pdf.php,我这里正好再补充一个条件就是判断用户是否登录。如果未登录就用browse_6模版。

结束。

转自:http://blog.sina.com.cn/s/blog_593ee221010008ju.html

分类: 技术 标签: , ,
  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.
请输入验证码:click to change