-
ecshop category.php页面的自定义排序
category.php页面,有其默认的排序方式,但是现在要实现的排序方式: Read More »
没有评论 -
ecshop 左侧的浏览历史模块的样式修改
需要修改的文件:includes\lib_insert.php,找到函数:function insert_history(),下面的代码:
$str.=’<ul><li><a href=”‘.$goods['url'].’” target=”_blank”><img src=”‘.$goods['goods_thumb'].’” alt=”‘.$goods['goods_name'].’” /></a></li><li><a href=”‘.$goods['url'].’” target=”_blank” title=”‘.$goods['goods_name'].’”>’.$goods['short_name'].’</a><br />’.$GLOBALS['_LANG']['shop_price'].’<font>’.$goods['shop_price'].’</font><br /></li></ul>’;
上面的代码就是所对应的样式代码,修改即可。
另外,调用的模板文件:history.lbi,中的:
<div id=’history_list’>
{insert name=’history’}
</div>其中,id=”history_list”是“清空”操作的ID。
-
ecshop 自定义多重筛选分类的步骤
官方帮助文档:http://help.ecshop.com/index.php?doc-view-115.htm
1、后台–>商品管理–>商品类型,添加商品类型,1个类型可以添加多个属性。
2、后台–>商品管理–>商品分类,编辑或者添加商品分类的时候,设置分类的“筛选属性”。
3、后台–>商品管理–>添加新商品,添加商品的时候设置“商品属性”。
步骤就是这样的,具体的还需要慢慢的研究。ecshop十分强大,研究透了后台二次开发的时候可以节约很多时间。
-
ecshop二次开发之:Smarty中的取余运算
最近在开发一套ecshop的模板,有个样式需要用到取余运算,规则就是:除以3余2,然后输出一个样式。
想到的第一个思路就是,定义一个变量,然后利用循环实现变量的自增,这样就可以很方便的取余了,但是有个问题,smarty中如何实现变量的自增?
有知道的朋友,麻烦告知下,不胜感激。
现在有更简单的解决方案,看代码:
<!–{foreach from=$goods_list item=goods name=foo}–>
<li{if $smarty.foreach.foo.iteration%3 eq 2} style=” margin:15px 27px 0 27px;”{else}{/if}>
<dl style=”padding-left:8px;”>
<dd><a href=”{$goods.url}” title=”{$goods.name|escape:html}”>{$goods.goods_name}</a></font></dd>
</dl>
</li>
<!–{/foreach}–>利用了Smarty中的iteration实现。
-
ECSHOP彻底关闭缓存
任何好的功能,都要根据自己的实际情况,适量运用,灵活运用。
为了实现ecshop网店首页信息的随机更新,必须将缓存关闭,前几天实现了首页推荐产品的随机显示,但是必须更新缓存才会更新一次。
下面介绍关闭缓存的方法:
1、关闭smarty缓存:
打开includes/cls_template.php,找到下面一段,并注视掉:
if (file_put_contents($hash_dir . ‘/’ . $cachename . ‘.php’, ‘<?php exit;?>’ . $data . $out, LOCK_EX) === false)
{
trigger_error(‘can\’t write:’ . $hash_dir . ‘/’ . $cachename . ‘.php’);
}2、关闭SQL缓存:
打开打开includes/cls_mysql.php,找到:
var $max_cache_time=3600;//最大的缓存时间,以秒为单位
将3600改为0
OK!刷新下网站首页看是否有奇迹出现。
-
ECSHOP商城 分类产品页面如何实现随机显示
注:以下文章来源于:http://blog.sina.com.cn/s/blog_3e6eb9830100h2ml.html,正在弄一个商城产品的随机显示功能,要的首页推荐产品随机,缘分驱使找到了这个一篇分类页面的产品随机,保存下,以备后用。
针对大家的需求,经过研究开发,实现ecshop分类下随机显示商品,打破后台规定的按照上架时间,价格、等先后顺序排序,让很多人,上传完毕产品,第一页总是显示同类商品:
1、下载并备份你的根目录下的文件category.php文件
2、找到如下代码部分,大约在450行:
/* 获得商品列表 */
$sql = ‘SELECT g.goods_id, g.goods_name, g.goods_name_style, g.market_price, g.is_new, g.is_best, g.is_hot, g.shop_price AS org_price, ‘ .
“IFNULL(mp.user_price, g.shop_price * ‘$_SESSION[discount]‘) AS shop_price, g.promote_price, g.goods_type, ” .
‘g.promote_start_date, g.promote_end_date, g.goods_brief, g.goods_thumb , g.goods_img ‘ .
‘FROM ‘ . $GLOBALS['ecs']->table(‘goods’) . ‘ AS g ‘ .
‘LEFT JOIN ‘ . $GLOBALS['ecs']->table(‘member_price’) . ‘ AS mp ‘ .
“ON mp.goods_id = g.goods_id AND mp.user_rank = ‘$_SESSION[user_rank]‘ ” .
“WHERE $where $ext ORDER BY $sort $order”;替换为:
$zz=1;
$sql = ‘SELECT g.goods_id, g.goods_name, g.goods_name_style, g.market_price, g.is_new, g.is_best, g.is_hot, g.shop_price AS org_price, ‘ .
“IFNULL(mp.user_price, g.shop_price * ‘$_SESSION[discount]‘) AS shop_price, g.promote_price, g.goods_type, ” .
‘g.promote_start_date, g.promote_end_date, g.goods_brief, g.goods_thumb , g.goods_img ‘ .
‘FROM ‘ . $GLOBALS['ecs']->table(‘goods’) . ‘ AS g ‘ .
‘LEFT JOIN ‘ . $GLOBALS['ecs']->table(‘member_price’) . ‘ AS mp ‘ .
“ON mp.goods_id = g.goods_id AND mp.user_rank = ‘$_SESSION[user_rank]‘ ” .
“WHERE $where $ext”;
$sql .= $zz == 0 ? ” $order” : ” ORDER BY RAND()”;即可实现分类下的产品随机显示了,但是前提是,到后台清空缓存来实现,不能每次刷新都随机,否则服务器会受不了的,这样就实现了和首页精品、新品、促销等栏目同样的功能。
通过清空缓存来实现产品的随机,随机显示竟然会占用服务器过多资源。学习了。
相关文章:
-
ecshop商城系统 首页推荐产品的随机显示
随机显示,是个不错的懒人方法,不用天天更新信息,但是次次访问的结果都不一样。
是不是非常适合搜索引擎的口味?
ecshop商城,后台有设置首页推荐产品随机显示的开关,不过,是需要清空缓存才会重新排序。这样做相比次次刷新,可以节省服务器的资源。
设置步骤:
1、登录后台
2、依次:系统设置 –》 商店设置 –》 显示设置
3、底部,“推荐商品排序”,设置为随机显示,OK。
相关文章:
-
ecshop:调用dz论坛的帖子 非JS调用
DZ的论坛,提供外部JS调用,但是JS调用百度不会抓取。ecshop与DZ整合之后,ecshop如果调用dz的帖子内容,不通过JS的话,只能写语句调用了。
下面的示例(ecshop与dz位于同一数据库):
1、index.php,添加如下代码:
/**
* 获得最新的论坛帖子列表。
*/
function index_get_bbs_posts()
{
$sql = ‘SELECT * FROM cdb_posts ORDER BY dateline DESC LIMIT 0,5′;
$res = $GLOBALS['db']->getAll($sql);
$arr = array();
foreach ($res AS $idx => $row)
{
$arr[$idx]['id'] = $row['tid'];
$arr[$idx]['first'] = $row['first'];
$arr[$idx]['authorid'] = $row['authorid'];
$arr[$idx]['title'] = $row['subject'];
$arr[$idx]['url'] = “http://www.yige999.com/bbs/thread-”.$row['tid'].”-”.$row['first'].”-”.$row['authorid'].”.html”;
}
return $arr;
}//cdb_posts:论坛帖子表
2、index.dwt,添加如下代码:
<!–{foreach from=$bbs_posts item=bbs}–>
<li>
<a href=”{$bbs.url}” title=”{$bbs.title|escape:html}”>{$bbs.title|truncate:50:”…”:true}</a>
</li>
<!–{/foreach}–>其他程序非JS调用:ecshop:调用EMlog博客文章 非JS调用
-
ecshop:调用EMlog博客文章 非JS调用
JS调用,存在很多限制,至少对于百度是不友好的。
1、index.php,添加如下代码:
/**
* 获得最新的EM博客列表。
*/
function index_get_emlog_blog()
{
$sql = ‘SELECT * FROM blog_blog ORDER BY date DESC LIMIT 0,5′;
$res = $GLOBALS['db']->getAll($sql);
$arr = array();
foreach ($res AS $idx => $row)
{
$arr[$idx]['id'] = $row['gid'];
$arr[$idx]['title'] = $row['title'];
$arr[$idx]['url'] = “http://www.yige999.com/blog/post-”.$row['gid'].”.html”;
}
return $arr;
}//blog_blog:博客文章表
2、index.dwt模板中的代码:
<!–{foreach from=$emlog_blog item=blogs}–>
<li>
<a href=”{$blogs.url}” title=”{$blogs.title|escape:html}” >{$blogs.title|truncate:20:”…”:true}</a>
</li>
<!–{/foreach}–>OK!
就是如此简单。
有不明白的可以联系我。
其他程序非JS调用:ecshop:调用dz论坛的帖子 非JS调用
-
ecshop整合UCenter,discuz,实现会员同步登录
ecshop整合UCenter,discuz,实现会员同步登录,稍后整理出来。 Read More »
