分类目录归档:prestashop

专业的prestashop二次开发,prestashp扩展,prestashp插件,prestashp模板,prestashp bug修复,prestashop咨询服务

prestashop 1.6 二级菜单显示延时问题

prestashop 1.6整体感觉不错,但是顶部的菜单中,子菜单弹出明显延时,感觉很慢。

这个应该是js部分代码起了作用,打开themes/default-bootstap/js/modules/blocktopmenu/js/superfish-modified.js

查找到 $.fn.superfish.defaults 这段代码,位于230行,看到下面有定义spped 和 delay disableHi
将这三个值分别修改下,就可以提速了

$.fn.superfish.defaults = {
popUpSelector: ‘ul,.sf-mega’, // within menu context
hoverClass: ‘sfHover’,
pathClass: ‘overrideThisToUse’,
pathLevels: 1,
delay: 0,
animation: {opacity: ‘show’},
animationOut: {opacity: ‘hide’},
speed: ‘fast’,
speedOut: ‘fast’,
cssArrows: true,
 disableHI: true,
onInit: $.noop,
onBeforeShow: $.noop,
onShow: $.noop,
onBeforeHide: $.noop,
onHide: $.noop,
onIdle: $.noop,
onDestroy: $.noop
};

再去看首页的菜单 鼠标移到菜单上,立即弹出二级菜单,修改成功。

如果看不到效果,你需要检查下后台缓存设置是否都关闭

 

prestashop 插入 iframe代码

在给prestashop 产品描述,或者cms页面内容添加 youtube 视频时,引入iframe代码保存代码时会报错,其实这个报错很好解决,prestashop系统考虑到系统安全性,默认是关闭iframe代码引入功能的。
具体设置位置, 后台->Preferences->General->Allow iframes on html fields

prestashop free paypal module

自从prestashop进入1.5.6 接受全球的客户paypal付款的话就需要购买paypal pro模块。另一个paypal模块只支持 部分地区。
遇到这样的问题如何解决。
从1.5.4.1版本里找出了可用的免费paypal模块,这个模块在1.5.6 ,1.6.0版本下测试都能正常使用。
如果你需要就点击从这里下载吧。free paypal module for prestashop 1.6,1.5

prestashop 订单发票中显示产品图片

prestashop  1.5.x 默认后台订单发票中是不显示产品图片。下面几步轻松显示产品图片。
1.打开classes/order/OrderInvoice.php

查找到public function getProducts 这个方法大约在130行

在这个方法里面找到

1
$customized_datas = Product::getAllCustomizedDatas($order->id_cart);

在其下方添加代码

1
2
global $cookie;
$link=new Link();

查找到

1
$this->setProductCustomizedDatas($row, $customized_datas);

在其下方添加代码

1
2
3
4
$product = new Product($row['id_product']);
$imageUrl=  $link->getImageLink($product->link_rewrite[$cookie->id_lang], $row['image']->id, 'small_default');
$tempArray= explode("/img/",$imageUrl);
$row['image_path']=_PS_ROOT_DIR_."/img/".$tempArray[1];

2.打开pdf/invoice.tpl

找到

<td style=”text-align: left; background-color: #4D4D4D; color: #FFF; padding-left: 10px; font-weight: bold; width: {if !$tax_excluded_display}25%{else}35%{/if}”>{l s=’Product / Reference’ pdf=’true’}</td>

在其下方添加代码

<td style=”background-color: #4D4D4D; color: #FFF; text-align: right; font-weight: bold; width: 10%”>{l s=’Image’ pdf=’true’}</td>

查找代码

<td style=”text-align: left; width: {if !$tax_excluded_display}25%{else}35%{/if}”>{$order_detail.product_name}</td>

在下方添加代码

<td style=”text-align: left; width:10%”><img src=”{$order_detail.image_path}” /></td>

然后你再去查看网站后台订单的的发票,弹出的pdf文件产品列表里多出了产品图片一列

prestashop mobile theme

prestashop 1.5 提供了  mobile theme,解决了移动版本的问题,但是当后台的CCC for Javascript 开启后,整个页面就错乱了,感觉好像css文件没有引入一般.

其实只要下载 jquery.mobile-1.3.0.min.js 替换themes/yourthemems/mobile/js/jquery.mobile-1.3.0.min.js, ,就可以解决这个问题了。

 

 

prestashop viewed block no image show

在prestashop 1.5.4.1版本,block viewed 模块有些产品图片不能显示,从ps官方找到了解决办法,写此文记录下。

modules/blockviewed/blockviewed.php
Line 104:

找到代码

1
SELECT image_shop.id_image, p.id_product, il.legend, product_shop.active, pl.name, pl.description_short, pl.link_rewrite, cl.link_rewrite AS category_rewrite

改为

1
SELECT i.id_image, p.id_product, il.legend, product_shop.active, pl.name, pl.description_short, pl.link_rewrite, cl.link_rewrite AS category_rewrite

 

 

prestashop 安装

 

STEP 1:  下载prestashop安装包

你可以从google code下载到最新的版本 http://code.google.com/p/prestasho/downloads/list

或者prestashop 官方  http://www.prestashop.com/en/developers-versions

 

STEP 2:  解压安装文件上传到空间

你可以在本地解压,如果空间支持解压文件,可通过工具上传到空间后解压。

 

STEP 3: 建立数据库

登录空间的数据库管理界面 phpmyadmin 新建一个数据库 例如 prestashop_150 留着安装时使用

 

STEP 4:按步骤安装

通过域名访问,会弹出安装界面,然后按照要求一步步配置安装。

安装过程中如果遇到目录权限不够,直接通过ftp工具修改对应的目录权限为  755 (遍历到 子目录和 文件);

配置数据库名称时写上之前创建的备用数据库名称;

到安装最后成功时 需要修改admin目录名称,这是prestashop的安全机制。

删除install目录,如果install目录还想留着 建议将此目录改名  例如 edintalled.

到此基础安装ok。然后prestashop网站就可以通过域名访问了。

 

 

 

 

 

 

 

 

prestashop 后台记录分页数设置

使用prestashop时,后台每个显示数据的地方都有个分页的下拉框,数据量小时感觉不到这个下拉框有什么问题,但是当你的数据量大了,你可能会希望一页显示的数据记录条数不局限于 20 50 100 300。 那这个有办法实现吗?答案是肯定的。只需要修改一段代码。

打开 classes/AdminTab.php

查找到

1
protected $_pagination = array(20, 50, 100, 300);

看到这边很多朋友可能已经知道下面如何修改这段代码了,对,就是在这个里面添加你需要的数字

1
protected $_pagination = array(20, 50, 100, 300,500,1000);
pagination select

分页数修改前

分页数修改后

分页数修改后

 

 

 

prestashp 实现产品列表页输入购买数量

prestashop 1.5版本产品详细页面,添加购物车时,可以输入产品数量,然后点击 add to cart按钮,加入多个同样的产品到购物车。

但是产品列表的页面,只有点击添加到购物车按钮,不能控制产品的数量,用户体验不好。其实这个功能还是比较容易实现的。

下面就给大家分享下具体方法:

1 .修改模板文件夹下的 product-list.tpl 添加 输入框
打开product-list.tpl 查找到 第二次 {if ($product.allow_oosp || $product.quantity > 0)} 在后面  添加代码

1
2
<div style="padding: 10px 0;"><label>{l s='Quantity:'}</label>
<input id="ajax_id_product_{$product.id_product|intval}" style="height: 20px;" type="text" name="qty_{$product.id_product|intval}" value="1" size="2" maxlength="3" /></div>

2.修改modules/blockcart/ajax-cart.js里的js代码

查找到 这段注释 //for every ‘add’ buttons…  和  //for product page ‘add’ button… 这段注释

将这两段注释之间的代码

1
2
3
4
5
6
$('.ajax_add_to_cart_button').unbind('click').click(function(){
var idProduct = $(this).attr('rel').replace('ajax_id_product_', '');
if ($(this).attr('disabled') != 'disabled')
ajaxCart.add(idProduct, null, false, this);
return false;
});

替换为

1
2
3
4
5
6
7
8
9
10
11
12
$('.ajax_add_to_cart_button').unbind('click').click(function(){
var idProduct = $(this).attr('rel').replace('nofollow', '').replace('ajax_id_product_', '');
//edit paul for add to cart product qty
var qty = 1;
if(((parseInt($('#'+$(this).attr('rel')).val()) - 1) &gt; 0))
qty = parseInt($('#'+$(this).attr('rel')).val())
else
qty = 1
if ($(this).attr('disabled') != 'disabled')
ajaxCart.add(idProduct, null, false, this, qty);
return false;
});

效果如下图

可输入产品数量

修改prestashop产品目录名称字数限制

相信很多玩prestashop 的人都遇到过类似的问题,编辑目录或者 产品信息,点击保存时。出现红色提示, 某个字段超出了长度限制。

例如
The field name (English (United States)) is too long (64 chars max, html chars including).

遇到这样的问题,只需要改两个地方就可以了。

1. 在classes/Category.php 里找到 这个字段定义的地方   位于 110行左右

1
'name' =>               array('type' => self::TYPE_STRING, 'lang' => true, 'validate' => 'isCatalogName', 'required' => true, 'size' => 64),

修改最后 size的值为255。

 

2. 打开数据库表 ps_category_lang 执行下面这段sql语句,修改字段长度为 255

1
ALTER TABLE `ps_category_lang` CHANGE `name` `name` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL

 

ok,然后你再去后台编辑目录名称,就可以通过检测了,

 

prestashop 站点搬迁

关于prestashop 1.5 站点搬迁或者上线需要下面几点调整:

1. 导出 数据库 sql语句, 导入到空间数据库,上传代码文件。

2. 修改配置信息 config/settings.inc.php

1
2
3
4
5
define('_DB_SERVER_', 'localhost');
define('_DB_NAME_', 'ps1540'); //数据库名称
define('_DB_USER_', 'root'); //数据库用户名
define('_DB_PASSWD_', ''); //数据库密码
define('_DB_PREFIX_', 'ps_'); // 数据库表前缀

3. 登录数据库 打开表 ps_configuration,查找到 下面两个配置项 PS_SHOP_DOMAIN ,PS_SHOP_DOMAIN_SSL. 修改这两个配置项的 value 为你的域名 例如 wwww.prestashopkey.com

4. 打开.htaccess 找到

1
RewriteCond %{HTTP_HOST} ^prestashopkey.com$

将 prestashopkey.com 修改为站点的域名

5. 修改 cache 文件夹读写权限,遍历到子目录 。

经过这五步后,你的站点搬迁就成功了。