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