ECshop支持针对每个新建的类目自定义Keywords、Description Meta信息,好处就不用说了,帮助SEO或者让浏览者了解这是什么页面,但如果有几百个类目的时候,人工去写这些类目又有点累人(咱不干体力劳动的 活),花了点时间,写了个自动生成Keywords、Description的PHP脚本,支持四级分类,原理是子类目包含爸爸类目、爷爷类目。。。到顶 级类目名作为关键词,然后一句描述的话,包含这些类目的名称。大家可以根据自己需要简单的修改。

用法,在你的后台类目,默认是Admin里面创建一个新的PHP文件,文件名自定义,将下面的代码复制进去就可以了,需要生成的时候,访问一下这个文件就自动生成了。

<?php
set_time_limit(600); define('IN_ECS', true); require(dirname(__FILE__) . '/includes/init.php'); $sql_1 = "SELECT cat_id,cat_name FROM " .$ecs->table('category'). " where parent_id = 0 ORDER BY cat_id asc";
$res_1 = $db->query($sql_1); //一级类目循环
while ($row_1 = $db->fetchRow($res_1))
{ //取得一级类目子类目
$sql_2 = "SELECT cat_id,cat_name FROM " .$ecs->table('category'). " where parent_id = ". $row_1['cat_id'] ." ORDER BY cat_id asc";
$res_2 = $db->query($sql_2);
print "*** 一级分类:" . $row_1['cat_name'] ."<br>"; //一级类目子类目循环
$keyword_1 = '';
$c2 = 0;
while ($row_2 = $db->fetchRow($res_2))
{
$c2 = $c2 + 1;
if ($c2 < 7)
{
//生成一级类目的关键词和描述,取前X个
$keyword_1 = $keyword_1 . replace_cat_name($row_2['cat_name']) . ", ";
} //=====================================================================
//取得二级类目子类目
$sql_3 = "SELECT cat_id,cat_name FROM " .$ecs->table('category'). " where parent_id = ". $row_2['cat_id'] ." ORDER BY cat_id asc";
$res_3 = $db->query($sql_3);
print "****** 二级分类:" . $row_2['cat_name'] ."<br>"; //二级类目子类目循环
$keyword_2 = '';
$c3 = 0;
while ($row_3 = $db->fetchRow($res_3))
{ $c3 = $c3 + 1;
if ($c3 < 7)
{
//生成二级类目的关键词和描述
$keyword_2 = $keyword_2 . replace_cat_name($row_3['cat_name']) . ", ";
} //=====================================================================
//取得三级类目子类目
$sql_4 = "SELECT cat_id,cat_name FROM " .$ecs->table('category'). " where parent_id = ". $row_3['cat_id'] ." ORDER BY cat_id asc";
$res_4 = $db->query($sql_4);
print "********* 三级分类:" . $row_3['cat_name'] ."<br>"; //三级类目子类目循环
$keyword_3 = '';
$c4 = 0;
while ($row_4 = $db->fetchRow($res_4))
{ $c4 = $c4 + 1;
if ($c4 < 7)
{
//生成三级类目的关键词和描述
$keyword_3 = $keyword_3 . replace_cat_name($row_4['cat_name']) . ", ";
} //直接写三级类目的值
print "************ 四级分类:" . $row_4['cat_name'] ."<br>";
$cat_name_4_str = replace_cat_name($row_4['cat_name']);
$keyword_4_str = $cat_name_4_str . " Products, Online Shopping, Taobao Agent, Taobao Dropship";
$desc_4_str = "Online shopping ". $cat_name_4_str ." Products from ". $GLOBALS['_CFG']['shop_name'] .", Factory Price, Worldwide Shipping!"; $db->query("UPDATE " .$ecs->table('category'). " SET keywords ='". $keyword_4_str ."', cat_desc ='". $desc_4_str ."' WHERE cat_id =". $row_4['cat_id'] .""); } //对三级类目字符串进行处理更新
$cat_name_3_str = replace_cat_name($row_3['cat_name']); if (substr($keyword_3,-2) == ', ')
{
$keyword_3 = substr($keyword_3,0,strlen($keyword_3)-2);
} if ($keyword_3 == '')
{
$keyword_3_str = $cat_name_3_str . " Products";
$desc_3_str = "Online shopping ". $cat_name_3_str ." Products, Browse Through Our Category of ". $cat_name_3_str . " Products and more from ". $GLOBALS['_CFG']['shop_name'] .", Factory Price, Worldwide Shipping!";
}
else
{
$keyword_3_str = $cat_name_3_str . ", ". $keyword_3 . " Products";
$desc_3_str = "Online shopping ". $cat_name_3_str ." Products, Browse Through Our Categories of ". $keyword_3 . " Products and more from ". $GLOBALS['_CFG']['shop_name'] .", Factory Price, Worldwide Shipping!";
} $db->query("UPDATE " .$ecs->table('category'). " SET keywords ='". $keyword_3_str ."', cat_desc ='". $desc_3_str ."' WHERE cat_id =". $row_3['cat_id'] .""); }
//对二级类目字符串进行处理更新
$cat_name_2_str = replace_cat_name($row_2['cat_name']); if (substr($keyword_2,-2) == ', ')
{
$keyword_2 = substr($keyword_2,0,strlen($keyword_2)-2);
} if ($keyword_2 == '')
{
$keyword_2_str = $cat_name_2_str . " Products";
$desc_2_str = "Online shopping ". $cat_name_2_str ." Products, Browse Through Our Category of ". $cat_name_2_str . " Products and more from ". $GLOBALS['_CFG']['shop_name'] .", Factory Price, Worldwide Shipping!";
}
else
{
$keyword_2_str = $cat_name_2_str . ", ". $keyword_2 . " Products";
$desc_2_str = "Online shopping ". $cat_name_2_str ." Products, Browse Through Our Categories of ". $keyword_2 . " Products and more from ". $GLOBALS['_CFG']['shop_name'] .", Factory Price, Worldwide Shipping!";
} $db->query("UPDATE " .$ecs->table('category'). " SET keywords ='". $keyword_2_str ."', cat_desc ='". $desc_2_str ."' WHERE cat_id =". $row_2['cat_id'] .""); //=====================================================================
} //对一级类目字符串进行处理更新
$cat_name_1_str = replace_cat_name($row_1['cat_name']);
if (substr($keyword_1,-2) == ', ')
{
$keyword_1 = substr($keyword_1,0,strlen($keyword_1)-2);
} $keyword_1_str = $cat_name_1_str . ", ". $keyword_1 . " Products";
$desc_1_str = "Online shopping ". $cat_name_1_str ." Products, Browse Through Our Categories of ". $keyword_1 . " Products and more from ". $GLOBALS['_CFG']['shop_name'] .", Factory Price, Worldwide Shipping!"; $db->query("UPDATE " .$ecs->table('category'). " SET keywords ='". $keyword_1_str ."', cat_desc ='". $desc_1_str ."' WHERE cat_id =". $row_1['cat_id'] ."");
} function replace_cat_name($cate_name)
{
$str = str_replace(' ,',',',str_replace(' ',' ',str_replace(' &',', ',str_replace('&',', ',str_replace(' /','/',str_replace('/',', ',addslashes($cate_name)))))));
return $str;
}
?>

转载:http://blog.sina.com.cn/s/blog_70ea94110101h5dd.html

ECshop网点程序优化-自动生成类目页Keywords、Desciption Meta的更多相关文章

  1. ECshop网点程序优化-后台添加类目自动选择上次父类目并计算Sort Order

    如果在ECshop后台批量添加过大量类目的人都能体会到是多么的不方便(这点还是要说一下ECshop的产品经理,细节上还是要多注意),每次添加都需要在几百个类目里面找到要添加的父类目也是一个麻烦事,比如 ...

  2. VS2015建立一个完整的c++工程:头文件.h 源文件.cpp,自动生成类

    https://blog.csdn.net/weixin_40539125/article/details/81430801 打开VS2015 ,新建VS win32工程,前面步骤很简单,不再阐述 下 ...

  3. SpringBoot整合MyBatis-Plus代码自动生成类

    在springboot的test测试类下创建 MpGenerator.java   配置  MpGenerator.java public class MpGenerator { @Test publ ...

  4. 用Enterprise Architect从源码自动生成类图

    http://blog.csdn.net/zhouyong0/article/details/8281192 /*references:感谢资源分享者.info:简单记录如何通过工具从源码生成类图,便 ...

  5. XML之自动生成类,添加,修改,删除类的属性

    1. class ClassHelperDemo { public static void Main() { #region 演示一:动态生成类. //生成一个类t. Type t = ClassHe ...

  6. 如何使用IDEA自动生成类图

    然后再类里边按 Ctrl+Alt+U 然后就会生成类图,这个样子 然后怎样把生成的类图搞出来.当然是使用截图软件啦.微信上的截图软件和qq上的截图软件好像都不在阔以,你一点击截图按钮.生成的类图就会消 ...

  7. 自己写的thinkphp自动生成类

    模型类:CqhModel.class.php <?php namespace Cqh\Model; use Think\Model; class CqhModel extends Model { ...

  8. VS2017+WIN10自动生成类、接口的说明(修改类模板的方法)

    微软发布VS2017的时候,我第一时间离线一份专业版,安装到了自己的电脑上,开始体验,但是问题来了,在开发中建立类和接口的时候,说 明注释总要自己写一次,烦!~~于是还是像以前一样改IDE默认的类和接 ...

  9. 如果公司里有上百个表要做触发器,如果手动写代码的话。很累,所以今天写了一个小程序,自动生成mysql的触发代码。

    <?php $dbname = 'test';//数据库 $tab1 = 'user'; //执行的表 $tab2 = 'user_bak'; //被触发的表 $conn = mysql_con ...

随机推荐

  1. Distributed systems

    http://book.mixu.net/distsys/single-page.html

  2. Routing and controllers

    Routing and controllers We will build a very simple inventory system to display our album collection ...

  3. Java基础知识强化之网络编程笔记18:Android网络通信之 使用HttpClient的Post / Get 方式读取网络数据(基于HTTP通信技术)

    使用HttpClient进行Get方式通信,通过HttpClient建立网络链接,使用HttpGet方法读取数据,并且通过Response获取Entity返回值. 使用HttpClient进行Post ...

  4. Java基础知识强化之IO流笔记64:合并流SequenceInputStream

    1. SequenceInputStream合并流的概述: SequenceInputStream类可以将多个输入流串联在一起,合并为一个输入流,因此,该流也被称为合并流.   2. Sequence ...

  5. Android自定义标题TitleView

    Android开发过程中,经常遇到一个项目需要重复的定义相同样式的标题栏,Android相继推出了actionBar, toolBar, 相信有用到的朋友也会遇到一些不如意的时候,比如标题栏居中时,需 ...

  6. C#基础篇--文件(流)

    1:Path类是专门用来操作文件路径的(Path类是静态类):当然用字符串的处理办法也能实现.  string str = @"C:\Users\成才\Desktop\Hashtable.t ...

  7. HTML5表单内元素的required属性

    当表单内元素(如input.textarea)中有required属性并且值不为false的时候,则该字段不能为空,否则提交失败. <input type="text" au ...

  8. 使用Zencoding的升级版Emmet

    最近vim7.4也更新了,zengcoding好像停止了更新,更换成emmet了,使用还是和Zencoding一样. emmet的地址在http://emmet.io/   支持很多的编辑器和IDE. ...

  9. C# string类型遇到的两个问题

    最近在维护一位离职的同事写的WPF代码,偶然发现他使用C# string类型的两个问题,在这里记录一下. 1. 使用Trim函数移除字串中的空格.换行符等字符串. csRet.Trim(new cha ...

  10. sql 理解视图

    可以看作是定义在sqlserver上的虚拟的表,本身并不存储数据,仅仅存储一个select语句和涉及的表的引用 通过视图,客户端不再需要知道底层表结构和其之间的关系,视图提供了一个统一访问数据的接口 ...