Magento修改记录

来自小萃华亭
跳到导航跳到搜索
可打印版不再被支持且可能有渲染错误。请更新您的浏览器书签并改用浏览器默认的打印功能。

web 服务器安装

debian 8

apt-get install nginx mariadb-server php7.0-fpm php7.0-mysql php7.0-soap php7.0-gd php7.0-mcrypt php7.0-curl php7.0-xml php7.0-simplexml php7.0-mbstring php7.0-dom php7.0-intl php7.0-zip

  1. php7的debian8源:https://www.dotdeb.org/instructions/
  2. 开启nginx的gzip压缩传输
  3. 在文件/etc/php/7.0/fpm/php.ini中设置memory_limit、opcache、timezone和session
  4. session.gc_probability = 1 #设为1,启用垃圾session回收。

centos 7

  • selinux安全机制启用的情况下,nginx如果自定目录出现 403 禁止访问 的问题,则需要修改策略解决:
chcon -R -u system_u /自定目录
chcon -R -t usr_t /自定目录

详情参考

  • 安装php70w-fpm

获取 php7 的 centos 7 第三方软件源:

rpm -Uvh https://mirror.webtatic.com/yum/el7/epel-release.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

安装:

yum install php70w-fpm php70w-mysql php70w-cli php70w-soap php70w-gd php70w-mcrypt php70w-mbstring php70w-intl php70w-xml

linux服务器端图片批量压缩优化

使用imagemagick的mogrify程序来压缩图片,注意,mogrify是默认覆盖源文件的。

命令:mogrify -strip -resize '999x999>' -quality 85 ./*

命令解释:strip是剥除图片之外的元数据,resize 999x999>是指缩小宽度或者高度大于999像素的图片,quality是图片质量度,这里设为原图的85%,./*为当前目录下的所有文件。

mysql replace

UPDATE `表名` SET `字段名` = replace (`字段名`,'旧文本','新文本') 样例: UPDATE `wp_posts` SET `post_content` = replace (`post_content`,'src="http://www.gn-art.com/a','src="http://www.gn-art.com/b');

magento:集成快递100自动查询快递

http://ifindever.com/archives/240.html

主题目录下的template\shipping\tracking\popup.phtml模板文件

→ 文件下载:File:Magento-kuaidi100-track-shipping.zip

magento修改:商品选项显示总价

magento(1.9.1)的custom options商品选项允许设定价格,价格可以是正值或者负值的差价,此差价对应的是商品的基础价;在magento前端的商品选项右侧,显示的是差价(以加减号分别标识正负差价),而不是商品总价,一些用户会不习惯不理解这种逻辑,故需略作修改。

修改文件:app/code/core/Mage/Catalog/Block/Product/View/Options/Abstract.php中的function _formatPrice($value, $flag=true),将:

$sign = '+'; if ($value['pricing_value'] < 0) { $sign = '-'; $value['pricing_value'] = 0 - $value['pricing_value']; }

改为:

if ($value['pricing_value'] < 0) { $value['pricing_value'] = $this->getProduct()->getFinalPrice() + $value['pricing_value']; } else { $value['pricing_value'] = $this->getProduct()->getFinalPrice() + $value['pricing_value']; }

即可。

可选:

显示差价为0的选项价格。注释掉以下代码,最后如:

/*if ($value['pricing_value'] == 0) { return ; }*/

magento修改:前端显示商品属性

一、修改文件: phtml模板文件

二、前提条件:需要设置商品属性为:Used in Product Listing(在商品列表中可用)。

三、代码:

<!– 文本属性,例如:sku —> <?php echo $_product->getsku() ?>

<!– 下拉属性,例如:color —> <?php echo $_product->getAttributeText(‘color’) ?>

<!– this is a boolean attribute —> <?php echo $_product->getMyAttributeName() ? “Yes” : “No” ?>

四、代码片段应用样本:

<?php if($_product->getAttibuteText(‘color’)): ?> <?php echo “color” , $_product->getAttributeText(‘color’) ?> <?php endif;?>

说明:判断,如果属性color的值不为空,则显示color属性文本。

Magento插件选集

magento插件:

  • 中文语言包

https://www.magentocommerce.com/magento-connect/magento-official-chinese-translation.html

  • post affiliate pro connector

https://www.magentocommerce.com/magento-connect/post-affiliate-pro-integration.html

  • Static Blocks Everywhere by xonu

允许在某些地方显示静态内容块;用法如:在产品描述中写入Template:Block type=”cms/block” block id=”testText”
http://www.magentocommerce.com/magento-connect/static-blocks-everywhere.html

  • Related Products Manager by CommerceStack

自动关联related,up-sell,cross-sell推荐产品,默认安装的免费可用。
http://www.magentocommerce.com/magento-connect/related-products-manager.html

额外

  • Magento Extension Downloader

凭connect key直接下载magento的插件文件:http://freegento.com/ddl-magento-extension.php

nginx:延长执行超时

环境:nginx、php5-fpm、ubuntu server

目的:为了让服务器长时间执行某些任务。

一、修改php.ini(可以通过phpinfo()查看此文件的所在位置)

max_execution_time = 36000

最大执行时间改为36000秒,10小时

出处

二、修改nginx网站配置

文件:/etc/nginx/conf.d/default.conf,增加语句:

  1. for develope

fastcgi_send_timeout 36000; fastcgi_read_timeout 36000; fastcgi_connect_timeout 60;

出处

三、重新载入应用新配置

service php5-fpm reload service nginx reload

magento修改:中文姓名解决方案

前言:因magento用的是西方的姓名规则,即前名firstname,后姓lastname,与我们国内姓名规则相反;这里通过修改后姓lastname为非必填,并隐藏,将前名firstname作为姓名整体使用,用这个方法来解决magento的中文姓名颠倒问题。

注:本文的magento版本为1.8

一、修改数据库字段属性

UPDATE `eav_attribute` SET `is_required` = '0' WHERE `eav_attribute`.`attribute_id` =22; UPDATE `eav_attribute` SET `is_required` = '0' WHERE `eav_attribute`.`attribute_id` =7; UPDATE `customer_eav_attribute` SET `validate_rules` = 'a:2:{s:15:"max_text_length";i:255;s:15:"min_text_length";i:0;}' WHERE `customer_eav_attribute`.`attribute_id` =7; UPDATE `customer_eav_attribute` SET `validate_rules` = 'a:2:{s:15:"max_text_length";i:255;s:15:"min_text_length";i:0;}' WHERE `customer_eav_attribute`.`attribute_id` =22;

执行以上两条sql,把字段属性先设置为非必填。

注意:以上代码非普遍适用,最好打开数据库手工修改!

二、去掉验证代码

修改文件app/code/core/Mage/Customer/Model/Address/Abstract.php,找到这个并注释掉:

if (!Zend_Validate::is($this->getLastname(), 'NotEmpty')) { $errors[] = Mage::helper('customer')->__('Please enter the last name.'); }

修改文件app/code/core/Mage/Customer/Model/Customer.php,找到这个并注释掉:

if (!Zend_Validate::is( trim($this->getLastname()) , 'NotEmpty')) { $errors[] = Mage::helper('customer')->__('The last name cannot be empty.'); }

三、新问题

将lastname修改为非必填后,当lastname输入为空值时,网站后台的客户管理列表中不显示用户名,解决方法如下:

修改文件:/app/code/core/Mage/Adminhtml/Block/Customer/Grid.php,将:

/*$this->addColumn('firstname', array( 'header' => Mage::helper('customer')->__('First Name'), 'index' => 'firstname' )); $this->addColumn('lastname', array( 'header' => Mage::helper('customer')->__('Last Name'), 'index' => 'lastname' ));*/ $this->addColumn('name', array( 'header' => Mage::helper('customer')->__('Name'), 'index' => 'name' ));

改为:

$this->addColumn('firstname', array( 'header' => Mage::helper('customer')->__('First Name'), 'index' => 'firstname' )); /*$this->addColumn('lastname', array( 'header' => Mage::helper('customer')->__('Last Name'), 'index' => 'lastname' )); $this->addColumn('name', array( 'header' => Mage::helper('customer')->__('Name'), 'index' => 'name' ));*/

以上更改启用了firstname栏目,禁用了lastname和name栏目。

magento文件权限重设

find . -type f -exec chmod 644 {} \;

find . -type d -exec chmod 755 {} \;

cd到magento的目录所在,执行以上命令,设置文件权限为644、文件夹权限为755。

并执行 chown -R www-data:www-data .将当前目录文件的归属组及用户设置为php5-fpm默认的www-data、www-data。

virtual box与win7的文件共享

在win7与debian之间共享文件夹,操作:将用户例如ed加入组vboxsf,执行adduser ed vboxsf;在virtualbox界面,设备》共享文件夹, 将win7中的文件夹加入,并reboot,debian重启后,在/media中可查看共享的文件夹。

magento中文pdf乱码

原因:magento文件夹/lib/LinLibertineFont中的字体不支持中文。

解决:使用中文字体替换文件夹/lib/LinLibertineFont中的原字体文件,文件名保持不变,建议使用黑体替换,打印出来好辨认。

magento显示当前IP

<?php echo Mage::helper('core/http')->getRemoteAddr(); ?>

Excel生产随机日期

=TEXT("2011-1-1 00:00:01"+("2012-8-8 23:59:59"-"2011-1-1 00:00:01")*RAND(),"yyyy-mm-dd hh:mm:ss")

Excel随机范围整数

=ROUND(RAND()*8+1,)

seoquake参数设置

[NAME]=Bing收录 [TITLE]=Bing收录 [FAVICON]=//www.bing.com/sa/simg/bing_p_rr.ico [URL_R]=http://www.bing.com/search?q=site%3A{domain%7Cencode}&FORM=QBRE [REGEXP]="sb_count">[^0-9<]*([0-9,\. &#;]+)[^<]* [TYPE]=domain

[NAME]=搜狗收录 [TITLE]=搜狗收录 [FAVICON]=http://www.sogou.com/images/logo/new/favicon.ico?nv=1&v=2 [URL_R]=http://www.sogou.com/web?query=site:{domain}

[REGEXP]=

找到约 ([\d,]+) 条结果 [TYPE]=domain [NAME]=百度收录 [TITLE]=百度收录 [FAVICON]=http://www.baidu.com/favicon.ico [URL_R]=https://www.baidu.com/s?wd=site:{domain} [REGEXP]=该网站共有 ([\d,]+) [TYPE]=domain [NAME]=360收录 [TITLE]=360收录 [FAVICON]=https://s.ssl.qhimg.com/static/52166db8c450f68d.ico [URL_R]=https://www.so.com/s?a=index&q=site:{domain} [REGEXP]=找到相关结果约([\d,]+)个 [TYPE]=domain [NAME]=百度流量 [TITLE]=百度流量 [FAVICON]=http://www.baidu.com/favicon.ico [URL_R]=http://www.toolzhan.com/seo/{domain}.html [REGEXP]=target="_blank" id="bd_flow" style="font-size:13px;color:#12682A;">([\d,]+) ~ ([\d,]+)</a> [TYPE]=domain [NAME]=百度关键词 [TITLE]=百度关键词 [FAVICON]=http://www.baidu.com/favicon.ico [URL_R]=http://rank.toolzhan.com/find/{domain}.html [REGEXP]=id="total">([\d,]+)个 [TYPE]=domain

unix时间timestamp在libreoffice中的转换

=A2/86400+25569

见:https://forum.openoffice.org/en/forum/viewtopic.php?f=13&t=606