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
- php7的debian8源:https://www.dotdeb.org/instructions/
- 开启nginx的gzip压缩传输
- 在文件/etc/php/7.0/fpm/php.ini中设置memory_limit、opcache、timezone和session
- 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,增加语句:
- 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