存档

作者存档

在ecshop中添加adwords转换跟踪代码

2010年8月20日 果果 26 条评论

转换是adwords优化很重要的参考数据,是比较准确的ROI数据来源,做adwords的各位不妨一试

你可以在adwords中设置转换跟踪,得到代码,对照做一下修改添加在模板目录flow.dwt的body标签内即可。

<!-- {if $step eq "done"} 订单提交成功-->
<!-- Google Code for order Conversion Page -->
<script type="text/javascript">
/* <![CDATA[ */
var google_conversion_id = 1028991713;
var google_conversion_language = "en";
var google_conversion_format = "3";
var google_conversion_color = "ffffff";
var google_conversion_label = "BHskCPzL4AEQ1NXU6gM";
var google_conversion_value = 0;
if (100) {
  google_conversion_value = 100;
}
/* ]]> */
</script>
<script type="text/javascript" src="http://www.googleadservices.com/pagead/conversion.js">
</script>
<noscript>
<div style="display:inline;">
<img height="1" width="1" style="border-style:none;" alt="" src="http://www.googleadservices.com/pagead/conversion/1028991700/?value=100&amp;label=BHskCPzL4AEQ1NXU6gM&amp;guid=ON&amp;script=0"/>
</div>
</noscript>
<!-- {/if} -->

为ECSHOP后台添加通过email搜索用户的功能

2010年8月15日 果果 1 条评论

RT:准备以下两个文件admin/users.php以及admin/templates/users_list.htm
1,修改admin/users.php:
查找“过滤条件”,672行左右,在$filter['keywords']后一行添加

$filter['email'] = empty($_REQUEST['email']) ? '' : trim($_REQUEST['email']);

查找

if ($filter['keywords'])
        {
            $ex_where .= " AND user_name LIKE '%" . mysql_like_quote($filter['keywords']) ."%'";
        }

修改为:

if ($filter['keywords'] && $filter['email'])
        {
            $ex_where .= " AND user_name LIKE '%" . mysql_like_quote($filter['keywords']) ."%' AND email LIKE '%" . mysql_like_quote($filter['email']) ."%'";
        }
  elseif($filter['keywords'])
  {
   $ex_where .= " AND user_name LIKE '%" . mysql_like_quote($filter['keywords']) ."%'";
  }
  elseif($filter['email'])
  {
      $ex_where .= " AND email LIKE '%" . mysql_like_quote($filter['email']) ."%'";
  }

2,修改admin/templates/users_list.htm
查找 {$lang.label_user_name},11行左右,在下面添加

&nbsp;邮箱地址 &nbsp;<input type="text" name="email" /> <input type="submit" value="{$lang.button_search}" />

查找listTable.filter['rank'],97行左右,在后面添加:

listTable.filter['email'] = document.forms['searchForm'].elements['email'].value;

至此就可以在用户列表里面通过邮箱查找用户了。

分类: ecshop 标签:

为ECSHOP后台添加通过快递单号搜索订单的功能

2010年8月15日 果果 没有评论

RT,需要修改admin/order.php,admin/templates/order_list.htm两个文件

1,修改admin/order.php添加代码:

搜索“过滤信息”,在后面添加

$filter['invoice_no'] = empty($_REQUEST['invoice_no']) ? '' : trim($_REQUEST['invoice_no']);

找到

if ($filter['address'])
        {
            $where .= " AND o.address LIKE '%" . mysql_like_quote($filter['address']) . "%'";
        }

在后面添加:

if ($filter['invoice_no'])
        {
            $where .= " AND o.invoice_no LIKE '%" . mysql_like_quote($filter['invoice_no']) . "%'";
        }

2,修改后台模板文件:第八行{$lang.order_sn}下添加

发货单号<input name="invoice_no" type="text" id="invoice_no" size="15">

在搜索订单部分,listTable.filter['consignee']下添加一行

listTable.filter['invoice_no'] = Utils.trim(document.forms['searchForm'].elements['invoice_no'].value);

修改完成后就可以在订单列表也看到快递单搜索框了,注意备份源文件

分类: ecshop 标签:

ECSHOP添加指定支付方式享受折扣功能

2010年8月12日 果果 4 条评论

需要修改的文件:includes/lib_order.php, themes/../order_total.lib

修改order_total.lib代码,将if $total.pay_fee > 0修改为如下内容

<!-- {if $total.pay_fee neq 0} 支付费用 -->
      + {$lang.pay_fee}: <font>{$total.pay_fee_formated}</font>
      <!-- {/if} -->

修改lib_order.php,找到“/* 支付费用是一个比例 */”,修改下面计算方法为

   

 {

        /* 支付费用是一个比例 */

        $val     = floatval($rate) / 100;

        $pay_fee = $order_amount * $val;

    }

在订单页面,将负号显示在货币前面,修改lib_order.php,找到pay_fee_formated,修改如下

if($total['pay_fee']<0){
  $total['pay_fee_formated'] = "-".price_format((-1 * $total['pay_fee']), false);
 }else{
  $total['pay_fee_formated'] = price_format($total['pay_fee'], false);
 }

就可以在后台设置支付费用时,输入-10%,即可选用该支付方式时打九折

分类: ecshop 标签: ,

修改ECSHOP后台订单列表默认订单状态为请选择

2010年8月11日 果果 2 条评论

修改admin/templates/order_list.htm,大约10行左右,最后添加selected=-1

{html_options options=$status_list selected=-1}
分类: ecshop 标签:

用Google Analytics分析ECShop的电子商务数据

2010年7月20日 果果 18 条评论

此方法的缺陷是,只要下订单GA就认为算一次交易,是否付款跟踪不到

1,注册:http://www.google.com/analytics

2,创建账号、站点.

3,设置站点时要将“电子商务”(Ecommerce)选成”yes”.

4,在ECSHOP themes/library/page_footer.lbi 的末尾,加上google analytics的统计代码

(要将UA-xxxxxx-1改成自己的)

<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
try {
var pageTracker = _gat._getTracker("UA-xxxxxx-1");
pageTracker._trackPageview();
<!-- {if $step eq "done"} 订单提交成功-->
pageTracker._addTrans(
    "<!--{$order.order_sn}-->",                                     // Order ID
    "<!--{$order.parent_id}-->",                            // Affiliation
    "<!--{$order.goods_amount}-->",                                    // Total
    "0",                                     // Tax
    "<!--{$order.shipping_fee}-->",                                        // Shipping
    "<!--{$order.city}|{$order.district}-->",                                 // City
    "<!--{$order.province}-->",                               // State
    "<!--{$order.country}-->"                                       // Country
  );

<!--{foreach from=$goods_list item=goods}-->
  pageTracker._addItem(
    "<!--{$order.order_sn}-->",                                     // Order ID
    "<!--{$goods.goods_sn}-->",                                     // SKU
    "<!--{$goods.goods_name}-->",                                  // Product Name
    "<!--{$goods.goods_id}-->",                             // Category
    "<!--{$goods.goods_price}-->",                                    // Price
    "<!--{$goods.goods_number}-->"                                         // Quantity
  );
<!--{/foreach}-->
  pageTracker._trackTrans();
<!-- {/if} -->
} catch(err) {}</script>

完毕。

ecshop在首页调用指定分类的文章

2010年7月16日 果果 7 条评论

具体样式请自行调整

举例如首页调用方法:
1、先打开index.php文件找到以下代码:
$smarty->assign(’new_articles’, index_get_new_articles()); // 最新文章

在它下面增加以下:
//调用方法

$smarty->assign(’class_articles_4′, index_get_class_articles(4,6)); // 分类调用文章
//调用多个就修改传进去的参数,以及模板接收的变量,其中上面的4就是文章分类ID,其中6是调用数量
$smarty->assign(’class_articles_5′, index_get_class_articles(5,6)); // 分类调用文章
$smarty->assign(’class_articles_6′, index_get_class_articles(6,6)); // 分类调用文章
$smarty->assign(’class_articles_7′, index_get_class_articles(7,6)); // 分类调用文章
$smarty->assign(’class_articles_8′, index_get_class_articles(8,6)); // 分类调用文章

//在最后?>这个之前增加以下函数

/**
* 获得指定栏目最新的文章列表。
*
* @access private
* @return array
*/
function index_get_class_articles($cat_aid, $cat_num)
{
$sql = “SELECT article_id, title,open_type,cat_id,file_url FROM ” .$GLOBALS['ecs']->table(’article’). ” WHERE cat_id = “.$cat_aid.” and is_open = 1 LIMIT ” . $cat_num;
$res = $GLOBALS['db']->getAll($sql);
$arr = array();
foreach ($res AS $idx => $row)
{
$arr[$idx]['id'] = $row['article_id'];
$arr[$idx]['title'] = $row['title'];
$arr[$idx]['short_title'] = $GLOBALS['_CFG']['article_title_length'] > 0 ?
sub_str($row['title'], $GLOBALS['_CFG']['article_title_length']) : $row['title'];
$arr[$idx]['cat_name'] = $row['cat_name'];
$arr[$idx]['add_time'] = local_date($GLOBALS['_CFG']['date_format'], $row['add_time']);
$arr[$idx]['url'] = $row['open_type'] != 1 ?
build_uri(’article’, array(’aid’ => $row['article_id']), $row['title']) : trim($row['file_url']);
$arr[$idx]['cat_url'] = build_uri(’article_cat’, array(’acid’ => $row['cat_id']));
}
return $arr;
}

2、第二步是在index.dwt模板想调用的地方增加以下代码,(注:以下调上面设置里的分类ID为8的文章列表):

<!–{foreach from=$class_articles_8 item=article}–>
<li><a href=”{$article.url}” title=”{$article.title|escape:html}”><!–{$article.short_title|truncate:15:true}–></a></li>
<!–{/foreach}–>

mod_evasive模块防止DDOS攻击2010修订版

2010年7月11日 果果 5 条评论

网上找到的资料都是过时的,链接不可用,修正版本如下,mark一下备用

ddos全名是Distribution Denial of service (分布式拒绝服务攻击),很多DOS攻击源一起攻击某台服务器就组成了DDOS攻击
1.下载
cd /tmp
wget http://www.zdziarski.com/blog/wp-content/uploads/2010/02/mod_evasive_1.10.1.tar.gz
tar zxf mod_evasive_1.10.1.tar.gz

2.安装
cd mod_evasive
/usr/local/apache/bin/apxs -c -i -a mod_evasive20.c

3.配置
vi /usr/local/apache2/conf/httpd.conf
添加下面内容
LoadModule dosevasive20_module libexec/apache22/mod_dosevasive20.so
<IfModule mod_dosevasive20.c>
DOSHashTableSize 3097
DOSPageCount 5
DOSSiteCount 100
DOSPageInterval 2
DOSSiteInterval 2
DOSBlockingPeriod 600
</IfModule>
4.重新启动apache2,配置完毕。
5.测试
打开IE ,访问网站 http://yourdomain.com  不断快速刷新网页就会出现错误提示,说明防泛有效,查看/tmp目录会dow.ip 日志文件。
说明:
DOSHashTableSize 3097 记录和存放黑名单的哈西表大小,如果服务器访问量很大,可以加大该值
DOSPageCount 5 同一个页面在同一时间内可以被统一个用户访问的次数,超过该数字就会被列为攻击,同一时间的数值可以在DosPageInterval参数中设置。
DOSSiteCount 50 同一个用户在同一个网站内可以同时打开的访问数,同一个时间的数值在DOSSiteInterval中设置。
DOSPageInterval 2 设置DOSPageCount中时间长度标准,默认值为1。
DOSSiteInterval 2 设置DOSSiteCount中时间长度标准。
DOSBlockingPeriod 10 被封时间间隔秒,这中间会收到 403 (Forbidden) 的返回。

分类: For Linux 标签:

base href 使用方法详解

2010年6月22日 果果 74 条评论

当点了链接后,跳出的网页地址是http://www.glyle.net,它就是在这些相对路径的文件前加上基链接指向的地址。如果目标文件中的链接没有指定target属性,就用base标记中的target属性。

常在框架结构中用,如左右两个框架,把左边的框架中文件里的连接都显示在右边的框架里。只要用base标记,把其target属性值写为右框架名称,这就不用再为左框架里的文件中的每一个连接都指定target属性。

base href标记其他说明:
1、当使用时,BASE 元素必须出现在文档的 HEAD 内,在任何对外部源的引用之前。
2、此元素在 Microsoft® Internet Explorer 3.0 的 HTML 中可用,在 Internet Explorer 4.0 的脚本中可用。
3、此元素不会被渲染。
4、此元素不需要关闭标签。
5、base标签其实还是有用处的,比如<base href=”_blank”>将使得本页所有的链接都在新页打开,这样就不必在每个链接处都以上target=”_blank” 了。

<base href=”http://www.glyle.net/”>

分类: SEO/SEM 标签:

使用元标记拦截搜索引擎对您网站的访问

2010年6月9日 果果 40 条评论

noindex 元标记标准在 http://www.robotstxt.org/meta.html 上有具体介绍。如果您不具备对服务器的根访问权限,此方法将非常有用,因为它允许您逐页控制对网站的访问。

要防止所有漫游器将网站中的网页编入索引,请将以下元标记添加到网页的 <head> 部分:

<meta name="robots" content="noindex">

要允许其他漫游器将网站中的网页编入索引,仅阻止 Google 的漫游器对网页采取同样操作,请将以下元标记添加到网页的 <head> 部分:

<meta name="googlebot" content="noindex">

如果 Google 看到某一页上有 noindex 元标记,就会将此页从我们的搜索结果中完全丢弃,而不管是否还有其他页链接到此页。但是,其他搜索引擎可能会以不同的方式解译此指令。因此,指向相关网页的链接可能仍会显示在搜索结果中。

请注意,由于我们必须抓取您的网页才能看到 noindex 元标记,因此在极少数情况下 Googlebot 可能会看不到和不遵循 noindex 元标记。如果您的网页仍显示在搜索结果中,可能是因为在您添加标记后我们尚未抓取过您的网站。(此外,如果您使用了 robots.txt 文件拦截此网页,我们也无法看到此标记。)

如果内容当前出现在我们的索引中,我们会在下次抓取此内容时将其删除。要加快删除过程,请使用 Google 网站管理员工具中的网址删除请求工具。

分类: SEO/SEM 标签: ,