Développer avec RBS Change : [Résolu] Ajouter une action dans la page détail produit

  • 82005.1

    25/11/2013 10:30


    mamous
    Rang : Expert
    Bonjour,

    Je voulais ajouter une action dans la page détail produit, comme celle d'ajout ou panier ou d'ajout à la liste de favoris, voilà comment j'ai procédé:
    J'ai executer un
    php framework/bin/change.php add-action module_spe NomAction
    Après j'ai écrit dedans le code de l'action, l'execute se termine par un
    	return View::SUCCESS;
    Et après j'ai créer le template sous module spé sous le nom Module_spe-Action-NomActionSuccess.all.all.html et après j'ai créer la vue de correspondance sous module_spe/views/NomActionActionView.class.php qui contient deja le code suivant :
    	public function _execute($context, $request)
    	{
    		$this->setTemplateName('Module_spe-Action-NomAction-Success');
    
    		$this->setAttributes($request->getParameters());
    	}

    Le problème c'est que j'ai pas le bon template dans la page de detail produit!!!
    Est ce qu'il me manque deja qqe choses que j'ai du le faire???

    Développeur & Intégrateur Web

    RBS Change
    V 3.5.2
    Ecommerce Core
  • 82005.2 en réponse à 82005.1 écrit par mamous

    25/11/2013 11:53


    Mathias
    Rang : Expert
    1/ Comment appelles-tu dans le template de la fiche produit ton action spécifique ?

    2 / quel est le nom de la class du fichier NomActionActionView.class.php ? est-ce qu'elle étend bien f_view_BaseView ?

    3/ as tu essayé de placer des logs dans ton action voir si son code était bien exécuté ? pareil du côté de la vue ?

    4 / tu as une erreur dans ton fichier NomActionActionView.class.php, la ligne suivante :
    $this->setAttributes($request->getParameters());


    devrait être :
    $this->setAttributes('myAttribute', $request->getParameters());


    5 / je trouve étrange que tu doives passer par une action au sein du block fiche produit... peux tu nous expliquer ton cas car il est peut être possible que tu puisses réaliser ton besoin simplement en faisant l'injection du block...

    Développe sous linux Ubuntu 12.04 LTS Desktop
    Projet ecommerce core 3.6.7
  • 82005.3 en réponse à 82005.2 écrit par Mathias

    25/11/2013 12:33


    mamous
    Rang : Expert
    Voila, je t'explique ce que je vais faire en premier instant:
    Je voulais faire de l'ajax dans la fiche produit de manière à charger uniquement le bloc de détail produit lors du changement de la declinaison au lieu de recharger toute la page
    Mathias a dit :
    1/ Comment appelles-tu dans le template de la fiche produit ton action spécifique ?

    Je l'appel dans un bout de code Jquery lors de la modification de la valeur du combo box de la déclinaison de la taille.
    var addToListUrl = "${php: LinkHelper::getActionUrl('module_spe', 'NomAction')}";
    Et après faire un appel ajax sur cette URL là et récupèrer en sortie les infos désirés
    Mathias a dit :
    2/ quel est le nom de la class du fichier NomActionActionView.class.php ? est-ce qu'elle étend bien f_view_BaseView ?

    Voici la signature de la classe :
    class wfgz_RefreshajaxproductSuccessView extends f_view_BaseView

    Mathias a dit :
    3/ as tu essayé de placer des logs dans ton action voir si son code était bien exécuté ? pareil du côté de la vue ?

    Bon non mais j'ai essayé de voir dans les logs il me charge le template du bloc userAuthentication du BO au lieu de mon template d'action pourquoi je sais pas !!!

    Mathias a dit :
    4 / tu as une erreur dans ton fichier NomActionActionView.class.php, la ligne suivante :

    J'ai pas d'erreur sur ce fichier là et dejà je peux pas faire ce que vous m'avez envoyé parce que déjà j'en ai beaucoup de variable à envoyer et non pas uniquement une, donc la fonction me parait bien correcte...

    Je crois que je vous ai bien expliqué mon besoin.
    Merci

    Développeur & Intégrateur Web

    RBS Change
    V 3.5.2
    Ecommerce Core
  • 82005.4 en réponse à 82005.3 écrit par mamous

    25/11/2013 15:49


    Mathias
    Rang : Expert
    Mamous a dit :
    J'ai pas d'erreur sur ce fichier là et dejà je peux pas faire ce que vous m'avez envoyé parce que déjà j'en ai beaucoup de variable à envoyer et non pas uniquement une, donc la fonction me parait bien correcte...

    Tu as tout à fait raison, je n'ai pas vu que tu utilisais la methode attributes qui permet d'envoyer plusieurs variables.

    Mamous a dit :
    Bon non mais j'ai essayé de voir dans les logs il me charge le template du bloc userAuthentication du BO au lieu de mon template d'action pourquoi je sais pas !!!

    Ca me donne une idée, mais je n'en suis pas sûr ;)

    Essaye d'ajouter cette méthode, au sein de ton action :
    public function isSecure()
    {
         return false;
    }
    



    Par défaut, toutes les actions génériques sont sécurisées, elle ne peuvent donc pas être exécutées depuis un utilisateur non identifié (cf la classe abstraite f_action_BaseAction et le commentaire de la méthode isSecure).

    Développe sous linux Ubuntu 12.04 LTS Desktop
    Projet ecommerce core 3.6.7
  • 82005.5 en réponse à 82005.4 écrit par Mathias

    25/11/2013 16:23


    mamous
    Rang : Expert
    Sa marche Nickel ;)
    Merci bcp

    Développeur & Intégrateur Web

    RBS Change
    V 3.5.2
    Ecommerce Core
  • 82005.6 en réponse à 82005.5 écrit par mamous

    25/11/2013 16:49


    Mathias
    Rang : Expert
    Cool !

    Développe sous linux Ubuntu 12.04 LTS Desktop
    Projet ecommerce core 3.6.7
 
Merci de prendre connaissance et de respecter les règles des forums.
 
1453 membres
Aucun membre connecté