Question

Le panier Magento est construit sur Zend Framework en PHP. C’est la première fois que je traite du framework Zend et j’ai la difficulté suivante ...

Je crée un module personnalisé qui permettra aux utilisateurs de télécharger des images chaque fois qu'ils achètent des produits.

Je peux surcharger la méthode addAction () chaque fois qu'un utilisateur tente d'ajouter un produit à son panier. Je peux également créer un module personnalisé qui présente le formulaire à l'utilisateur et accepte le (s) fichier (s). Cependant, je ne sais pas comment insérer le code pour exécuter mon module dans ma méthode surchargée:

<?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();
    }
} 

Je soupçonne que mes difficultés viennent de mon manque de connaissance de la façon de faire de Zend MVC. J'ai étudié tous les fils de documentation / wikis / forum Magento de haut en bas.

Était-ce utile?

La solution

hé cette option est donnée dans la nouvelle version de magento 1.3.1 pour télécharger le fichier depuis le frontend profiter

Autres conseils

Je pensais passer à une nouvelle réponse car je pense avoir réussi à la faire fonctionner.

Voici ce que j'ai fait

a créé les fichiers suivants;

app / code / local / Société / SpecialCheckout / contrôleurs / Checkout / CartController.php

app / code / local / Société / SpecialCheckout / etc / config.xml

app / etc / modules / Company_SpecialCheckout.xml

D'abord le contrôleur, qui est exactement comme vous l'aviez;

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

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

Ensuite, la configuration du module

<?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>

et enfin le fichier de configuration dans app / etc / modules pour vous assurer que le module est bien pris en charge.

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

alors quand vous allez / checkout / cart vous devriez voir 'test'. C’est basé sur les détails que j’ai trouvés ici .

Assurez-vous que la mise en cache des fichiers de configuration est désactivée dans l’administrateur Magento.

Je dois avouer d'emblée que je n'ai pas l'expérience de la production de Magento, mais j'ai passé un certain temps à fouiller dans leur code.

La structure de bloc étant définie en XML, vous n'aurez peut-être pas besoin d'étendre réellement le contrôleur de panier.

Les fichiers XML de mise en page peuvent être trouvés (sur une installation par défaut) à app / design / frontend / default / default / layout. Vous trouverez ici checkout.xml qui définit la structure de bloc de la page de paiement.

Pour ceux qui sont restés bloqués là-dessus, j’ai écrit le moyen le plus simple de résoudre ce problème sans surcharger les contrôleurs. Ma variante basée sur la validation de la page de paiement jette un oeil dans le wiki de magento . / a>

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top