分类目录归档:分享

分享prestashop知识,提供专业的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 安装

 

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 文件夹读写权限,遍历到子目录 。

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

 

 

 

推荐几款免费的prestashop模板

1. Matrice theme Prestashop 1.3.1 – 1.4.X

just another template for Prestashop 1.3.1. As usual, simple clear and free!! also the installation is much easier thanks to your feedback

下载 1.3 ,1.4 Demo

 

2. Element theme prestashop

Element is fusion between « Minimaliste » and « Black&White » theme, based on 2 columns layout. the idea was to have a Shop with a clean up look

下载 Demo

 

3.Fennecs theme Prestashop

This template is a mini fashion and urban product store, based on 3 verticals layout. It’s a new reloaded version of Ipnotik template.

下载 Demo

 

4. Uppercase theme Prestashop

This template is just a concept store, to demonstrate how much Prestashop e-commerce CMS is flexible to make a clean up layout. Please to give your suggestions…

下载 Demo

 

5. Moon theme Prestashop

Moon template is another concept store for Prestashop CMS, with a simple and purified design. So feel free to use it as a basis in your future ecommerce project.

下载 Demo

 

6. Alysum PrestaShop 1.5模板[v1.3]

Alysum PrestaShop模板,支持PrestaShop 1.5,是一个购物模板 “Alysum” – is a great solution for small and medium businesses. Due to compact, modern and stylish design as well as “Theme settings module” embedded tool.

下载 Demo

 

 

 

 

 

 

 

 

 

如何让prestashop左侧目录列表默认展开第一个

如何让prestashop 目录列表 默认展开第一个.( ps1.2.5)

打开 modules/blockcategories/blockcategories.php

查找到

1
2
3
4
5
if (isset($_GET['id_category']))
{
   $cookie->last_visited_category = intval($_GET['id_category']);
   $smarty->assign('currentCategoryId', intval($_GET['id_category']));
}

在这部分下面添加代码

1
2
3
4
5
6
else
 {
         $_GET['id_category'] = $result[1]['id_category'];
         $cookie->last_visited_category = intval($_GET['id_category']);
         $smarty->assign('currentCategoryId', intval($_GET['id_category']));    
}

然后打开前台首页 你会发现首页 左侧目录列表部分第一个目录页面是展开的。