Magento添加自定义模块文件的模块名称格式注意大小(404),

Magento添加自定义模块文件的模块名称格式注意大小(404),

下面是如何在后台添加自定义模块的。

如果不注意大小写。在windows上显示正确,到了linux服务器会显示404

例如下面配置:

D:\www\lollicupStore2\app\etc\modules\Lollicupstore_ManagementStoreCredit.xml

<?xml version="1.0" encoding="UTF-8" ?>
<config>
    <modules>
        <Lollicupstore_Managementstorecredit>
            <active>true</active>
            <codePool>local</codePool>
        </Lollicupstore_Managementstorecredit>
    </modules>
</config>

Managementstorecredit 这个名称可以分为
Management ,storecredit 在写的时候是第一个单词大写,后面全部小写。

D:\www\lollicupStore2\app\code\local\Lollicupstore\Managementstorecredit\etc\config.xml

<?xml version="1.0"?>
<config>
    <modules>
        <Lollicupstore_Managementstorecredit>
            <version>1.0</version>
        </Lollicupstore_Managementstorecredit>
    </modules>
    <global>
        <helpers>
            <Lollicupstore_Managementstorecredit>
                <class>Lollicupstore_Managementstorecredit_Helper</class>
            </Lollicupstore_Managementstorecredit>
        </helpers>
    </global>
    <admin>
        <routers>
            <adminhtml>
                <args>
                    <modules>
                        <lollicupstore_managementstorecredit after="Mage_Adminhtml">Lollicupstore_Managementstorecredit_Adminhtml</lollicupstore_managementstorecredit>
                    </modules>
                </args>
            </adminhtml>
        </routers>
    </admin>
</config>

D:\www\lollicupStore2\app\code\local\Lollicupstore\Managementstorecredit\etc\adminhtml.xml

<?xml version="1.0" encoding="UTF-8" ?>
<config>
    <!--menu  Settings-->
    <menu>
        <lollicupstore module="Lollicupstore_Managementstorecredit">
            <title>Management StoreCredit</title>
            <sort_order>801</sort_order>
            <children>
                <items module="Lollicupstore_Managementstorecredit">
                    <title>Manage StoreCredit</title>
                    <sort_order>0</sort_order>
                    <action>adminhtml/storecredit/index</action>
                </items>
            </children>
        </lollicupstore>
    </menu>
    <!--Access Control Settings-->
    <acl>
        <resources>
            <all>
                <title>Allow Everything</title>
            </all>
            <admin>
                <children>
                    <lollicupstore translate="title" module="Lollicupstore_Managementstorecredit">
                        <title>Management StoreCredit</title>
                        <sort_order>1000</sort_order>
                        <children>
                            <items translate="title" module="Lollicupstore_Managementstorecredit">
                                <title>Manage StoreCredit</title>
                                <sort_order>10</sort_order>
                            </items>
                        </children>
                    </lollicupstore>
                </children>
            </admin>
        </resources>
    </acl>
</config>

D:\www\lollicupStore2\app\code\local\Lollicupstore\Managementstorecredit\Helper\Data.php

<?php
/**
 * Created by PhpStorm.
 * User: lollicup
 * Date: 2019/6/11
 * Time: 14:27
 */


class Lollicupstore_Managementstorecredit_Helper_Data extends Mage_Core_Helper_Abstract
{

}

D:\www\lollicupStore2\app\code\local\Lollicupstore\Managementstorecredit\controllers\Adminhtml\StorecreditController.php

<?php
/**
 * Created by PhpStorm.
 * User: lollicup
 * Date: 2019/6/11
 * Time: 14:35
 */

class Lollicupstore_Managementstorecredit_Adminhtml_StorecreditController extends Mage_Adminhtml_Controller_Action{


    public  function  indexAction(){
        set_time_limit(0);
        echo "start time:".date('Y-m-d H:i:s') ."<br>";
        $collection   = Mage::getModel('amstcred/balance')
            ->getCollection();

        //get count  balance_id => customer_id
        echo "balance_total:". count($collection->getData());

        echo "<br>default: order by asc";
        foreach ($collection as $k){
            echo  "<br>[balance_id:".$balanceId = $k->getBalanceId();
            echo  " customer_id:".  $customerId = $k->getCustomerId();

            $customerId  = $k->getCustomerId();
            $balanceHistory = Mage::getModel('amstcred/balanceHistory')
                ->getCollection()
                ->addFieldToFilter('customer_id', $customerId)
                ->getData();
            echo " balance_count:". count($balanceHistory);

            //action[2]: Refund of order
            //action[3]: Balance update by admin
            //action[1]: Payment for order 100008327
            foreach ($balanceHistory  as $i => $j){
                if($j['action'] == 3 || $j['action'] == 1 ){
                    continue;
                }

                if($j['action'] == 2){
                    // find creditmemo
                    $data         = unserialize($j['operation_data']);
                    $increment_id = $data[0];
                    $orderInfo    = Mage::getModel('sales/order')->loadByIncrementId($increment_id)->getData();
                    $order_id     = $orderInfo['entity_id'];

                    echo " sales_flat_order for entity_id:".$order_id;
                    $id           = 0;
                    $model = Mage::getModel('sales/order_creditmemo')
                       ->getCollection()
                       ->addFieldToFilter('order_id',$order_id)
                       ->getData();

                   if(empty($model)){
                        echo " sales_flat_creditmemo for total:".count($model) ."]<br>";
                   }else{

                       foreach ($model as $value=>$key){
                           $id = $key['entity_id'];
                       }

                       echo " sales_flat_creditmemo for entity_id:".$id;

                       //refund of order after now payment for order :1
                       if($balanceHistory[$i+1]['action'] == 1){
                           $operation_data = unserialize($balanceHistory[$i+1]['operation_data']);
                           $incrementId       = $operation_data[0];
                           $store_credit_used = abs($balanceHistory[$i+1]['balance_delta']);

                           $model = Mage::getModel('sales/order_creditmemo')->load($id);
                           $model->setNewOrderId($incrementId);
                           $model->setStoreCreditUsed($store_credit_used);
                           $query = $model->save();
                           echo "object pro" .$query->toString() ."]";
                       }
                   }
                }
            }
        }
        echo "<br>end time:".date('Y-m-d H:i:s');
    }

    protected function _isAllowed()
    {
        return true;
    }
}

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注