专注ECSHOP第九年
始自2007,服务二千多商户,不断为您增光溢彩

ECSHOP BAIDUPING插件-搜索引擎收录利器快速提升收录

阿牛阅读(921)

插件名称:ECSHOP-搜索引擎收录利器快速提升收录

  适用版本:本版本在ECSHOP 2.7.3基础上所开发测试通过

  使用方法:

  如您的ECSHOP 没改过 admin/goods.php 和 admin/article.php 可直接覆盖

  已经改过文件 可看下面的说明:

  打开您的文件:admin/goods.php约1148行增加下面的代码

/* Baidu Ping 2014/10/27 星期一*/
$is_ping = $db->getOne(“SELECT is_ping FROM “.$ecs->table(‘goods’) .” where goods_id ='{$goods_id}’ “);
if($goods_id && $is_ping==”0”){
include_once(ROOT_PATH . ADMIN_PATH.’/includes/lib_ping.php’);
ping_baidu(‘goods’ , $catgory_id , $goods_id);
$db->query(“UPDATE ” . $ecs->table(‘goods’) . ” SET is_ping=’1′ WHERE `goods_id`='{$goods_id}'”);
}
/* Baidu Ping 2014/10/27 星期一*/

  打开admin/article.php 在 189 行后面插入 如下代码

/* Baidu Ping 2014/10/27 星期一*/
$is_ping = $db->getOne(“SELECT is_ping FROM “.$ecs->table(‘article’) .” where article_id ='{$article_id}’ “);
if($article_id && $is_ping==”0”){
include_once(ROOT_PATH . ADMIN_PATH.’/includes/lib_ping.php’);
ping_baidu(‘article’ , $_POST[‘article_cat’] , $article_id);
$db->query(“UPDATE ” . $ecs->table(‘article’) . ” SET is_ping=’1′ WHERE `article_id`='{$article_id}'”);
}

admin/includes/lib_ping.php内容:
2014/10/27 星期一
// +——————————————————————————————–
///**
// * +===================================================
// * // 搜索引擎快速收录插件,如有BUG请联系本人!!
// * +===================================================
/// */

if(!defined(‘IN_ECS’)) {
exit(‘Access Denied’);
}

$_G = array();
$_G[‘jntoo_ping’][‘status’] = ‘1’; // 开启 百度搜索引擎 快速收录功能
$_G[‘jntoo_ping’][‘count’] = ‘0’; // 开启 PING 功能统计

function ping_baidu($type , $cid , $gid){
ping::post_newthread_message($type , $cid , $gid);
}

class ping{
static function post_newthread_message( $type , $cid , $gid ){
global $_G,$tid;
$ping = $_G[‘jntoo_ping’];
if($ping[‘status’] == ‘1’){

$ret = jntoo_pingjntoo::postping($type , $cid , $gid);

if($ret && $ping[‘count’] == ‘1’)
{
$file = dirname(__FILE__) . ‘/’;
$data = include $file . ‘count.php’;
if($ret){
$data[‘yes’]++;
}else{
$data[‘no’]++;
}

$content = ““;
file_put_contents($file . ‘count.php’ , $content);
}
}
}
}

class jntoo_pingjntoo {

static function postping($type , $cid , $gid){

$navtitle = $GLOBALS[‘_CFG’][‘shop_title’];
if(EC_CHARSET != ‘utf-8’){
$navtitle = ecs_iconv(‘gbk’ , ‘utf-8’ , $navtitle);
}

$hosturl = $GLOBALS[‘ecs’]->url();

$url = $hosturl . build_uri($type , array( ($type == ‘goods’ ? ‘gid’ : ‘aid’) => $gid ) , ”);
$rss_url = $hosturl . ‘feed.php?cat=’.$cid.($type == ‘article’ ? ‘&type=article_cat’ : ”);

$data = self::getData($navtitle , $hosturl , $url , $rss_url);
//echo $url;exit;
$ret = self::ping(‘http://ping.baidu.com/ping/RPC2’ , $data);
if($ret[‘code’] == 200)
{
return true;
}else{
return false;
}
}

static function getData($navtitle , $hosturl , $url , $rss_url){
$t = ‘?xml version=”1.0″ encoding=”UTF-8″?>
weblogUpdates.extendedPing ‘.$navtitle.’ ‘.$hosturl.’ ‘.$url.’ ‘.$rss_url.’
‘;
return $t;
}

static function ping($url , $data){
if(function_exists(‘curl_init’) && function_exists(‘curl_exec’)){
$ci = curl_init();
curl_setopt($ci, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0);
curl_setopt($ci, CURLOPT_CONNECTTIMEOUT, 20);
curl_setopt($ci, CURLOPT_TIMEOUT, 60);
curl_setopt($ci, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ci, CURLOPT_ENCODING, “”);
curl_setopt($ci, CURLOPT_SSL_VERIFYPEER, false);
$header = array();
$header[] = ‘User-Agent: request’;
$header[] = ‘Content-Type: text/xml’;

curl_setopt($ci, CURLOPT_POST, TRUE);
curl_setopt($ci, CURLOPT_POSTFIELDS, $data);

curl_setopt($ci , CURLOPT_HTTPHEADER , $header);
curl_setopt($ci, CURLOPT_URL, $url );
curl_setopt($ci, CURLINFO_HEADER_OUT, TRUE );
$ret = array();

$ret[‘response’] = curl_exec($ci);
$ret[‘code’] = curl_getinfo($ci, CURLINFO_HTTP_CODE);
$ret[‘http_info’] = curl_getinfo($ci);
curl_close ($ci);
return $ret;
}else{
$timeout = 60;
$urlarr = parse_url($url);

$errno = ”;
$errstr = ”;
$transports = ”;
$responseText = ”;
if($urlarr[‘scheme’] == ‘https’) {
$transports = ‘ssl://’;
$urlarr[‘port’] = ‘443’;
} else {
$transports = ‘tcp://’;
$urlarr[‘port’] = ’80’;
}
$method = ‘POST’;
$fpflag = 0;

$out = $method.’ ‘. $urlarr[‘path’] .” HTTP/1.0\r\n”;

$header .= “User-Agent: request\r\n”;
$header .= “Content-type: text/xml\r\n”;
$header .= “Content-length: “.strlen($postfields).”\r\n”;

$header .= “Host: “.$urlarr[‘host’].”\r\n”;
$header .= “Connection: close\r\n\r\n”;

$out .= $header . $data;

$fp = @fsockopen($transports . $urlarr[‘host’] , $urlarr[‘port’] , $errno , $errstr , $timeout);
if(!$fp){
$context = array(
‘http’ => array(
‘method’ => $method,
‘header’ => $header,
‘content’ => $data,
‘timeout’ => $timeout,
),
);

$path = $urlarr[‘path’] ? $urlarr[‘path’].($urlarr[‘query’] ? ‘?’.$urlarr[‘query’] : ”) : ‘/’;

$context = stream_context_create($context);
$fp = @fopen($matches[‘scheme’].’:’.$urlarr[‘port’].$path, ‘b’, false, $context);
$fpflag = 1;
}

if(!$fp) {
return ”;
} else {
stream_set_blocking($fp, true);
stream_set_timeout($fp, $timeout);
@fwrite($fp, $out);
$status = stream_get_meta_data($fp);
if(!$status[‘timed_out’]) {
while (!feof($fp) && !$fpflag) {
if(($header = @fgets($fp)) && ($header == “\r\n” || $header == “\n”)) {
break;
}
}
$return = stream_get_contents($fp);
}
@fclose($fp);
return array(‘response’ => $return , ‘http_info’ => $header , ‘code’ => 200);
}
}
return ”;
}
}
?>

轻松3步实现调用各分类广告

阿牛阅读(892)

以首页为例,调用不同的 分类,显示不同的广告:

includes/init.php ?>前 增加如下代码:

 

function get_uuecs_adv($type,$id)
{
	 $sql = "select ap.ad_width,ap.ad_height,ad.ad_name,ad.ad_code,ad.ad_link,ad.media_type from ".$GLOBALS['ecs']->table('ad_position')." as ap left join ".$GLOBALS['ecs']->table('ad')." as ad on ad.position_id = ap.position_id where ad.ad_name='".$type."_".$id."' and (ad.media_type=0 OR ad.media_type=3) and UNIX_TIMESTAMP()>ad.start_time and UNIX_TIMESTAMP()<ad.end_time and ad.enabled=1";
     $row = $GLOBALS['db']->getRow($sql);

     if($row)       
	 {      
	 	if($row['media_type'] == 0)
		{       
			$src = (strpos($row['ad_code'], 'http://') === false && strpos($row['ad_code'], 'https://') === false) ?
                        DATA_DIR . "/afficheimg/$row[ad_code]" : $row['ad_code'];
						
			return "<a href='affiche.php?ad_id=$row[ad_id]&amp;uri=" .urlencode($row["ad_link"]). "'
                target='_blank'><img src='$src' width='" .$row['ad_width']. "' height='$row[ad_height]'
                border='0' /></a>";	
		}
		else
		{
		
               return "<a href='affiche.php?ad_id=$row[ad_id]&amp;uri=" .urlencode($row["ad_link"]). "'
                target='_blank'>" .htmlspecialchars($row['ad_code']). '</a>';
		}
	 }
	 else
	 {
		return "";
	 }  
}

 

2) includes/lib_goods.php (即调用分类商品函数)

搜索$cat[‘id’]   = $cat_id;下面增加:

$cat[‘ad’]   = get_uuecs_adv(‘index_1’,$cat_id);

3)在模板文件添加代码即可:如library/cat_goods.lbi

增加代码{$goods_cat.ad}即可。

4)对了,别忘了在后台添加广告哦。

切记:广告名称个固定格式:index_1_18,这样分类ID为18的分类下面才会显示出该广告来。

如图:

 

cat

 

打造更具安全性的ecshop

阿牛阅读(973)

1,修改init.php文件,@ini_set(‘display_errors’,        1);改为@ini_set(‘display_errors’,        0);
2,修改cls_mysql.php文件的ErrorMsg函数,注释掉那些错误提示,或者把错误写入文件。
3,给所有$_COOKIE,$_POST,$_GET,$_REQUEST变量加sql关键字过滤。
4,修改后台地址,不要使用默认的admin
5,如有可能去掉后台的模板管理-》库项目管理功能
6,  去掉后台邮件编辑的权限,去掉订单编辑的权限
7,如有可能,更改后台cookies登录的方式

 

修改如:cls_mysql

 
    function ErrorMsg($message = '', $sql = '')
    {
        echo "Some Errors....pls check log file.";
        
        if(!file_exists(ROOT_PATH.'data/sql_log'))
        {
         mkdir(ROOT_PATH.'data/sql_log');
        }
        
        if ($message)
        {
           $msg="ECSHOP info\r\n: $message";
        }
        else
        {
            $msg="MySQL server error report:\r\n".print_r($this->error_message,true);
        }       
        
    @file_put_contents(ROOT_PATH.'data/sql_log/'.date('Y-m-d-H-i-s',time()).'.txt',$msg);   
        exit;
    }

修改addslashes_deep函数:

该函数对数组的值和key都进行了addslashes处理,并且根据需要,还可以进行htmlspecialchars过滤。

在init.php文件
$_GET  = addslashes_deep($_GET,true);
$_POST = addslashes_deep($_POST,true);
$_COOKIE   = addslashes_deep($_COOKIE,true);
$_REQUEST  = addslashes_deep($_REQUEST,true);

 
function addslashes_deep($value,$htmlspecialchars=false)
{
    if (empty($value))
    {
        return $value;
    }
    else
    {
        if(is_array($value))
        {
         foreach($value as $key => $v)
         {
          unset($value[$key]);
          
          if($htmlspecialchars==true)
          {
           $key=get_magic_quotes_gpc()? addslashes(stripslashes(htmlspecialchars($key,ENT_NOQUOTES))) : addslashes(htmlspecialchars($key,ENT_NOQUOTES));
          }
          else{
           $key=get_magic_quotes_gpc()? addslashes(stripslashes($key)) : addslashes($key);
          }
          
          if(is_array($v))
          {
           $value[$key]=addslashes_deep($v);
          }
          else{
           if($htmlspecialchars==true)
           {
            $value[$key]=get_magic_quotes_gpc()? addslashes(stripslashes(htmlspecialchars($v,ENT_NOQUOTES))) : addslashes(htmlspecialchars($v,ENT_NOQUOTES));
           }
           else{
            $value[$key]=get_magic_quotes_gpc()? addslashes(stripslashes($v)) : addslashes($v);
           }
          }
         }
        }
        else{
         if($htmlspecialchars==true)
         {
          $value=get_magic_quotes_gpc()? addslashes(stripslashes(htmlspecialchars($value,ENT_NOQUOTES))) : addslashes(htmlspecialchars($value,ENT_NOQUOTES));
         }
         else{
          $value=get_magic_quotes_gpc()? addslashes(stripslashes($value)) : addslashes($value);
         }
        }
        
        return $value;
    }
}

 

ECSHOP常用后台SQL命令

阿牛阅读(818)

个人整理,并非适用于所有人。特别注意:操作前注意备份好数据库。

(1)ECSHOP更新商品静态url:
UPDATE  `ec272u2`.`ecs_goods` SET  `goods_url` =  ‘4545444’ WHERE  `ecs_goods`.`goods_id` =3509 LIMIT 1 ;

(2)ECSHOP更新商品seo标题:
ALTER TABLE `ecs_category` ADD `cat_seoname` VARCHAR( 255 ) NOT NULL AFTER `cat_seoname`

(3)ECSHOP更新商品clicks_count到小于800的点击:
UPDATE [Case] SET click_count = click_count + CAST(CEILING(RAND(checksum(NEWID())) * 800) AS int) WHERE (Hits < 100) ;
UPDATE ecs_goods SET click_count = click_count + 100 WHERE (click_count < 100);

(4) ECSHOP更新商品salesvolume AND (/**FLOOR(x)返回小于x的最大整数值 RAND() 返回在范围0到1.0内的随机浮点值2。
ALTER TABLE `ecs_goods` ADD `goods_salesvolume` inNULLods_weight` ;
UPDATE ecs_goods set goods_salesvolume= FLOOR(1 +(RAND() * 2345));

(5) ECSHOP批量更新替换货号

UPDATE `ecs_goods` SET `goods_sn` = CONCAT(‘it’,goods_id,’-‘, seller_note) where ;

(6) ECSHOP更新订单初始基数,批量上下架

alter table ecs_order_info AUTO_INCREMENT=10000;
UPDATE `ecs_goods` SET is_on_sale = 1 where goods_id > ;

(7)ECSHOP批量更新替换商品名称
UPDATE `ecs_goods` SET goods_name = replace (goods_name,’Kate Co’,”) WHERE `goods_name` LIKE ‘%Kate&Co%’; 分大小写

 

请注意:操作会直接影响数据库,以防万一,请操作前注意备份。

 

 

 

百度编辑器ueditor给上传的图片添加水印

阿牛阅读(942)

百度编辑器本身是没有为上传图片添加水印的功能,想要在上传的时候添加图片水印,也很简单。

以 ueditor 1.2.6 为例,打开php目录下面的imageUp.php文件,查找“$info = $up->getFileInfo();”,在这句代码的下面加入以下代码:

/* 添加水印 start */

$water_img = “watermark.png”;//水印文件(替这里换成你要的水印)

$img_min_w = 350;//添加水印需要图片最小达到的宽度(px),小于这个宽度时则不添加水印

$img_min_h = 60;//添加水印需要图片最小达到的高度(px)

$new_img = $ori_img = $info[“url”];

$original = getimagesize($ori_img);//得到图片的信息,可以print_r($original)发现它就是一个数组

if($original[0]>$img_min_w&&$original[1]>$img_min_h){//当图片宽度大于300px才添加水印

$watermark = getimagesize($water_img);

$s_original = imgCreateFrom($ori_img, $original[2]);//$original[2]是图片类型,其中1表示gif、2表示jpg、3表示png

$s_watermark = imgCreateFrom($water_img, $watermark[2]);

$posX = $original[0] – $watermark[0]-6;//X坐标(右下角)

$poxY = $original[1] – $watermark[1]-3;//Y坐标(右下角)

//打水印

imagecopy($s_original, $s_watermark, $posX, $poxY, 0, 0, $watermark[0], $watermark[1]);

imagejpeg($s_original, $new_img);//生成新的图片

}

//根据文件类型 创建一个新图象

function imgCreateFrom($img_src, $val){

switch($val){

case 1 : $img = imagecreatefromgif($img_src);

break;

case 2 : $img = imagecreatefromjpeg($img_src);

break;

case 3 : $img = imagecreatefrompng($img_src);

break;

}

return $img;

}

/* 添加水印 end */

然后保存,就可以了。不过要注意的是:$water_img = “watermark.png”;//水印文件(替这里换成你要的水印)。

php判断电脑访问或手机访问的方法

阿牛阅读(761)

现在使用手机上网的人越来越多了,所以手机用户给网站带来流量也是非常可观的。但是对于像我这样的网站想让手机访问,那么体验度一定会很差,因为该站的css样式只适合用电脑浏览器访问。所以我就研究怎么用php去判断网页是电脑访问还是手机访问,然后再通过去加载不同的css来达到手机和电脑都可以正常的访问的效果。

<?php 

function check_wap() {  
	if (isset($_SERVER['HTTP_VIA'])) return true;  
	if (isset($_SERVER['HTTP_X_NOKIA_CONNECTION_MODE'])) return true;  
	if (isset($_SERVER['HTTP_X_UP_CALLING_LINE_ID'])) return true;  
	if (strpos(strtoupper($_SERVER['HTTP_ACCEPT']),"VND.WAP.WML") > 0) {  
		// Check whether the browser/gateway says it accepts WML.  
		$br = "WML";  
	} else {  
		$browser = isset($_SERVER['HTTP_USER_AGENT']) ? trim($_SERVER['HTTP_USER_AGENT']) : '';  
		if(empty($browser)) return true;
		$mobile_os_list=array('Google Wireless Transcoder','Windows CE','WindowsCE','Symbian','Android','armv6l','armv5','Mobile','CentOS','mowser','AvantGo','Opera Mobi','J2ME/MIDP','Smartphone','Go.Web','Palm','iPAQ');  
					
		$mobile_token_list=array('Profile/MIDP','Configuration/CLDC-','160×160','176×220','240×240','240×320','320×240','UP.Browser','UP.Link','SymbianOS','PalmOS','PocketPC','SonyEricsson','Nokia','BlackBerry','Vodafone','BenQ','Novarra-Vision','Iris','NetFront','HTC_','Xda_','SAMSUNG-SGH','Wapaka','DoCoMo','iPhone','iPod');  
					
		$found_mobile=checkSubstrs($mobile_os_list,$browser) ||  
							checkSubstrs($mobile_token_list,$browser); 
	if($found_mobile)
		$br ="WML";
	else $br = "WWW";
	}  
	if($br == "WML") {  
		return true;  
	} else {  
		return false;  
	}  
}

function checkSubstrs($list,$str){
	$flag = false;
	for($i=0;$i<count($list);$i++){
		if(strpos($str,$list[$i]) > 0){
			$flag = true;
			break;
		}
	}
	return $flag;
}

if(check_wap()){
	echo "wap";
}else{
	echo "web";
}

?>

 

ecshop商品分类调用热销商品

阿牛阅读(983)

第一步,找到根目录下category.php,搜索以下代码:

  $smarty->assign('top_goods',        get_top10());   // 销售排行

第二步:将以上代码替换为:

$smarty->assign('top_goods',        get_top10($cats="$_REQUEST[id]"));                  // 销售排行

“$_REQUEST[id]”的作用就是获取通过地址栏传过来的id (如:category.php?id=xxx

第三步:在category.dwt需要调用的地方调用:

<!-- {foreach name=top_goods from=$top_goods item=goods}-->
<ul>
         <li class="img"><a href="{$goods.url}" title="{$goods.name|escape:html}"><img 
src="{$goods.goods_thumb}" title="{$goods.name|escape:html}"/></a></li>
            <li class="txt">
                <p class="til"><a href="{$goods.url}" title="{$goods.name|escape:html}">
{$goods.short_name}</a></p>
                <p>{$lang.market_price}<small>{$goods.market_price}</small></p>
                <!--{if $goods.promote_price neq "" } -->
                <p class="pri">{$lang.promote_price}{$goods.promote_price}</p>
                 <!--{else}-->
                 <p class="pri">{$lang.shop_price}{$goods.shop_price}</p>
                 <!--{/if}-->
            </li>
            <div class="clear"></div>
        </ul>
  <!--{/foreach}-->

 

 

ECSHOP分类页添加商品属性的筛选

阿牛阅读(797)

ECSHOP商品分类的列表页,添加商品属性,供客户快速筛选到想要的商品,操作方法如图:

 

b11

 

b2

 

b4

 

b3

 

b5

 

b6

 

b1

 

总结:我们需要按照以下几步来操作:

1:添加商品类型,定义好商品的类型,例如“精品手机”等

2:添加好商品类型后,添加商品的属性,需要设置商品的唯一属性,这个很重要

3:设置好后,编辑具体的商品,在商品属性下选择设置好的商品类型和商品属性,这样才能确保筛选后的结果是正确的,如果不设置,将无法出现筛选

4:最后在后台商品分类,设置你需要筛选的项目,就大功告成了

 

阿牛ECSHOP 更专业 更方便

关于我们联系我们