警告:包括无法打开流:magento帮助器中没有此类文件或目录 [英] Warning: include failed to open stream: No such file or directory in magento helper

查看:97
本文介绍了警告:包括无法打开流:magento帮助器中没有此类文件或目录的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我创建了以下config.xml文件:

I have created the following config.xml file:

<config>
    <global>
        <helpers>
            <awesome>
                <class>CommissionJunction</class>
            </awesome>
        </helpers>
    </global>
</config>

我添加了以下php文件:作为Data.php

I have added the following php file: as Data.php

<?php
    class CommissionJunction extends Mage_Core_Helper_Data
    {

        /**
        * Get SKU, quantity, price and discount amount for each product in a given order
        * @param object $order
        * @return array
        */
        private function _getOrderProductsList($order)
        {
            $orderItems = $order->getAllItems();
            $purchasedSkus = array();
            $count_orderItems = count($orderItems);
            for($i = 0; $i < $count_orderItems; $i++) {
                $purchasedSkus[$i] = array(
                    'ITEM' => $orderItems[$i]['sku'],
                    'QTY' => number_format($orderItems[$i]['qty_ordered'],0), // no decimals
                    'AMT' => number_format($orderItems[$i]['price'],2), // 2 decimal places
                    'DCNT' => number_format(abs($orderItems[$i]['discount_amount']),2)
                 );
            }

            return $purchasedSkus;
        }

        /**
        * Get the Universal Data (JSON) Object for Commission Junction.
        * This object contains the order details passed on to Commission Junction for reporting purposes
        * on the Checkout Success / Order Confirmation page.
        * Notes:
        *  - CID, TYPE AND CURRENCY are hard coded
        * @param string $orderId
        * @return JSON object Universal Data Object for Commission Junction $json_masterTmsUdp
        */
        public function getCommissionJunctionUdo($orderId)
        {
            $order = Mage::getModel('sales/order')->loadByIncrementId($orderId);
            $udo = array();
            $udo['CID'] = 'XXXX';
            $udo['TYPE'] = 'XXXX';
            $udo['CURRENCY'] = 'USD';
            $udo['OID'] = $orderId;
            $udo['DISCOUNT'] = number_format(abs($order->discount_amount),2);

            $order_coupon_code = $order->coupon_code;
            if(!is_null($order_coupon_code) && !empty($order_coupon_code))
            {
                $udo['COUPON'] = $order_coupon_code;
            }

            $udo['PRODUCTLIST'] = self::_getOrderProductsList($order);

            if(Mage::getModel('core/cookie')->get('aff_commissionjunction') == 'cjafflx')
            {
                $udo['FIRECJ'] = "TRUE";
            }
            else
            {
                $udo['FIRECJ'] = "FALSE";
            }

            $masterTmsUdo['CJ'] = $udo;
            $json_masterTmsUdo = json_encode($masterTmsUdo);

            return $json_masterTmsUdo;

        }

    }

然后在succes.phtml中添加了此内容:

Then in succes.phtml I added this:

<script>var MasterTmsUdo = <?php echo Mage::helper('commissionjunction')->getCommissionJunctionUdo($this->getOrderId()); ?></script>
<script>/*DO NOT ALTER *** tpd*/(function(e){var t="1340",n=document,r,i,s={http:"http://cdn.mplxtms.com/s/MasterTMS.min.js",https:"https://secure-cdn.mplxtms.com/s/MasterTMS.min.js"},o=s[/\w+/.exec(window.location.protocol)[0]];i=n.createElement("script"),i.type="text/javascript",i.async=!0,i.src=o+"#"+t,r=n.getElementsByTagName("script")[0],r.parentNode.insertBefore(i,r),i.readyState?i.onreadystatechange=function(){if(i.readyState==="loaded"||i.readyState==="complete")i.onreadystatechange=null}:i.onload=function(){try{e()}catch(t){}}})(function(){});</script>

错误: 1.我的成功页面显示不正确,模板丢失了. 2.我在system.log中得到了以下内容

Errors: 1. My success page is not rendering correctly, the template is lost. 2. I got the following in system.log

014-08-09T21:33:07+00:00 ERR (3): Warning: include(Mage/Commissionjunction/Helper/Data.php): failed to open stream: No such file or directory  in /home/theprint/public_html/preprod/lib/Varien/Autoload.php on line 93
2014-08-09T21:33:07+00:00 ERR (3): Warning: include(Mage/Commissionjunction/Helper/Data.php): failed to open stream: No such file or directory  in /home/theprint/public_html/preprod/lib/Varien/Autoload.php on line 93

推荐答案

magento需要类似Packagename_Modulename_Helper

magento needs class name like Packagename_Modulename_Helper

config.xml

config.xml

<config>
    <global>
        <helpers>
            <CommissionJunction>
                <class>CompanyName_CommissionJunction_Helper</class>
            </CommissionJunction>
        </helpers>
   </global>
</config>

在您的班级头上:

class CompanyName_CommissionJunction_Helper_Data extends Mage_Core_Helper_Abstract

然后您可以致电:Mage::helper('CommissionJunction');

这篇关于警告:包括无法打开流:magento帮助器中没有此类文件或目录的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆