وحدة ماجنتو المخصصة.إعادة التوجيه إلى وحدة أخرى والعودة إلى الخروج

StackOverflow https://stackoverflow.com/questions/252921

سؤال

تم بناء عربة التسوق Magento على Zend Framework في PHP.هذه هي المرة الأولى التي أتعامل فيها مع إطار عمل Zend وأواجه الصعوبة التالية...

أقوم بإنشاء وحدة مخصصة تسمح للمستخدمين بتحميل الصور عند شراء المنتجات.

يمكنني زيادة تحميل طريقة addAction() عندما يحاول المستخدم إضافة منتج إلى سلة التسوق الخاصة به.يمكنني أيضًا إنشاء وحدة نمطية مخصصة تقدم النموذج للمستخدم وتقبل الملف (الملفات).لكنني لست متأكدًا من كيفية إدراج الكود لتشغيل الوحدة الخاصة بي في طريقتي المحملة بشكل زائد:

<?php
require_once 'Mage/Checkout/controllers/CartController.php';
class Company_SpecialCheckout_Checkout_CartController extends Mage_Checkout_CartController
{
    # Overloaded addAction
    public function addAction()
    {
        # when user tries to add to cart, request images from them
        # *********
        # *** what do i do in here to display a custom block ???? ###
        # *** and allow addAction to continue only if successfully validated form input ###
        # *********

        parent::addAction();
    }
} 

أظن أن الصعوبات التي أواجهها تأتي من قلة معرفتي بطريقة Zend MVC للقيام بالأشياء.لقد قمت بدراسة كافة وثائق Magento/الويكي/مواضيع المنتدى من الأعلى إلى الأسفل.

هل كانت مفيدة؟

المحلول

ويا يعطى هذا الخيار في الإصدار الأحدث من الماجنتو 1.3.1 لتحميل الملف من الواجهة تتمتع

نصائح أخرى

واعتقدت أن الانتقال إلى إجابة جديدة وأعتقد أنني قد تمكنت من الحصول على عمل.

إليك ما فعلته

وإنشاء ملفات التالية؛

والتطبيق / القانون / المحلية / الشركة / SpecialCheckout / التحكم / تسليم / CartController.php

والتطبيق / القانون / المحلية / الشركة / SpecialCheckout / الخ / config.xml

والتطبيق / الخ / وحدات / Company_SpecialCheckout.xml

أولا وحدة تحكم، والتي هي تماما كما كان لديك؛

    <?PHP
require_once 'Mage/Checkout/controllers/CartController.php';
class Company_SpecialCheckout_Checkout_CartController extends Mage_Checkout_CartController {

    public function indexAction()
    {
        die('test');
    }
}

وثم تكوين وحدة

<?xml version="1.0"?>
<config>
    <modules>
        <Company_SpecialCheckout>
            <version>0.1.0</version>
        </Company_SpecialCheckout>
    </modules>
    <global>
        <rewrite>
            <Company_SpecialCheckout_Checkout_Cart>
                <from><![CDATA[#^/checkout/cart#]]></from>
                <to>/SpecialCheckout/checkout_cart</to>
            </Company_SpecialCheckout_Checkout_Cart>
        </rewrite>
    </global>
    <frontend>
        <routers>
            <Company_SpecialCheckout>
                <use>standard</use>
                <args>
                    <module>Company_SpecialCheckout</module>
                    <frontName>SpecialCheckout</frontName>
                </args>
            </Company_SpecialCheckout>
        </routers>
    </frontend>
</config>

وثم أخيرا ملف التكوين في التطبيق / الخ / وحدات للتأكد من يتم انتقاؤها وحدة حتى.

<?xml version="1.0"?>
<config>
     <modules>
        <Company_SpecialCheckout>
            <active>true</active>
            <codePool>local</codePool>
        </Company_SpecialCheckout>
     </modules>
</config>

وبعد ذلك عندما تذهب / الخروج / عربة سترى 'اختبار'. ويستند هذا على تفاصيل وجدت هنا .

تأكد من أن لديك cacheing من ملفات التكوين تعطيل في المشرف الماجنتو.

ويجب أن أعترف مقدما أنني لم يكن لديك تجربة إنتاج الماجنتو، ولكن لقد قضيت بعض الوقت بدس حول التعليمات البرمجية الخاصة بهم.

ويتم تعريف بنية كتلة في XML، ولذا قد لا تحتاج إلى تمديد فعلا المراقب العربة.

ويمكن العثور على ملفات XML (على التثبيت الافتراضي) في التطبيق / تصميم / الواجهة / الافتراضي / الافتراضي / تخطيط وتخطيط. هنا سوف تجد checkout.xml الذي يحدد هيكل كتلة للصفحة الخروج.

بالنسبة لأولئك الذين تمسكوا بهذا، كتبت أبسط طريقة لحل هذه المشكلة دون التحميل الزائد على وحدات التحكم.البديل الخاص بي يعتمد على الخروج من صفحة واحدة ألق نظرة على ماجنتو ويكي

وكان بيينغ كابوسا بالنسبة لي، أنا خلق دروس في بلدي بلوق:

وCONTROLLER / تجاوز / الواجهة [...]                                       # ^ / العميل / حساب / #                 / mycustomer / حساب /                            [...]

والتحقق من ذلك! كيفية الماجنتو أعلن وتجاوز التحكم

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top