Développer avec RBS Change : [Résolu] Problème block d'action sur declined product

  • 82075.1

    29/11/2013 14:18


    mammous
    Rang : Membre
    Bonjour,

    Je viens d'ajouter une action ajax dans le bloc de declined product pour un besoin spécifié...
    Dans ce block de template que j'ai créé dans mon module spécifique, j'affiche la même image qui existent sous le block declined product (visuel principale ainsi que les visuels additionnels).
    Donc voila ce qui ce passe, en appelant cette fonction ajax, le bloc qui existe deja du declined product sera supprimé et remplacé par ce block spécifique à cette action.
    Mon problème est le suivant: Lorsque j'accéde à la page detail d'un produit, j'ai bien le zoom sur l'image principale, le problème c'est lorsque je change ce block là par mon template de l'action, j'ai plus cet effet là.
    J'ai essayé d'ajouter la ligne suivante dans mon block
    <script tal:condition="baseconfiguration/getActivatezoom" change:javascript="head 'modules.catalog.lib.js.jquery-jqzoom'"></script>
    
    mais en vain, mais là lorsque je change cette ligne par
    <script type"text/javascript" src="/media/themes/default/jqzoom.js"/>
    j'ai bien les deux div qui s'ajoute lorsque je passe sur l'image mais y'a pas le bon style qui est appliqué!!
    J'ai essayé de changer deja dans le block de declined product en modifiant la ligne d'appel au js grace à change:javascript par celle d'inclusion grace à src de la balise script et j'ai bien le même soucis.
    Donc voila c'est mon problème, change:javascript ne peut donc pas être modifier par un <script src="..."/>, y'en a surement qqe chose qui manque!!!

    Merci

    Analyste - Développeur Web

    Equipe Ecommerce - Groupe Zannier

    RBS Ecommerce Core - v 3.5.2
  • 82075.2 en réponse à 82075.1 écrit par mammous

    29/11/2013 14:44


    Mathias
    Rang : Expert
    Etant donné que tu remplaces le block declinedproduct par ton block spécifique, tu perds tous les mécanismes fournis par le block declinedproduct.

    C'est pourquoi la condition :
    tal:condition="baseconfiguration/getActivatezoom"

    te renvoie false et n'affiche donc pas le javascript. Si pour ton projet, tu vas toujours afficher le zoom, tu peux donc enlever la condition sans prendre de risque.

    Pour style le zoom, il te faudra aussi le fichier css :
    modules/catalog/style/frontoffice.css.


    Si tu as d'autres points qui bloquent, il te suffit d'identifier les composants qui le font marcher dans le block declined product, et les ré-appeler dans ton block spécifique.

    Mathias

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

    29/11/2013 14:54


    mammous
    Rang : Membre
    Bon pour le getActivatezoom je l'ai bien desactivé sinon je pourrais pas récuperer des configs dans mon template, sinon j'ai essayé d'inclure tout les CSS qui contiennent de l'infos concernant le jqzoom mais en vain.
    Je crois que le style est déja générique par apport à la position de la souris, la dimension de l'ecran etc.
    Sinon ce que j'arrive pas à comprendre pourquoi le change:javascript fonctionne bien sur le block du declined product mais ne le fais pas sur mon block d'action et qu'est ce que je dois faire pour le remplacer!!!
    Merci

    Analyste - Développeur Web

    Equipe Ecommerce - Groupe Zannier

    RBS Ecommerce Core - v 3.5.2
  • 82075.4 en réponse à 82075.3 écrit par mammous

    30/11/2013 11:44


    Mathias
    Rang : Expert
    Hello,

    désolé mais sans ton code, il m'est difficile de pouvoir t'aider davantage...
    Peux tu poster ton code php qui gère l'affichage de la view, et le template HTML ?

    Mathias

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

    02/12/2013 09:47


    mammous
    Rang : Membre
    Bonjour,
    ok je vais te fournir tout ce qu'il te faut.
    pour le template du view je crois qu'il y a pas de prob, voici le code:
    public function _execute($context, $request)
    	{
    		$this->setTemplateName('Module_spe-Action-NomAction-Success');
    
    		$this->setAttributes($request->getParameters());
    	}
    pour le template HTML sa ressemble en gros au template du declined product sauf que parfois j'utilise pas les paramètres envoyés par le controleur (parce que je peux pas) donc je me base sur le $request->setAttribute de mon action qui récupére le param et le traite dans mon block.
    Sinon moi mon problème c'est au niveau de l'appel du zoom dans l'image principale.
    Pour le template HTML voici ce que j'ai fais pour avancer un peu sur le sujet:
    <script type="text/javascript">
    	var script = document.createElement('script');
    	script.type = 'text/javascript';
    	script.src = '/media/themes/default/jquery-jqzoom.js';    
    	var zoomstyle=document.createElement('style');
    	zoomstyle.type = 'text/css';
    	zoomstyle.src = '/media/themes/default/frontoffice.css'; 
    	document.getElementsByTagName('head')[0].appendChild(script);
    	document.getElementsByTagName('head')[0].appendChild(zoomstyle);
    	jQuery("img.jqzoom").mouseover(function() {
    		setTimeout(function(){
    			jQuery(".zoomdiv").css('display','block');
    			jQuery(".zoomdiv").css('top','214.5px');
    			jQuery(".zoomdiv").css('left','911px');
    			jQuery(".zoomdiv").css('width','355px');
    			jQuery(".zoomdiv").css('height','340px');
    		}, 100);
    		
    	});
    </script>...
    Et là j'ai bien la div du zoom qui apparait sauf qu'elle est blanche donc ne contient pas l'image zoomé.
    Voici aussi le code de l'appel à l'image principale (celle du strandard)
    ...					<tal:block tal:condition="product/isVisualAvailable">				
    						<img tal:attributes="src visualFormatedUrl;rel visualUrl; alt defaultAltAttribute" class="jqzoom image" />						
    					</tal:block>...

    Si vous avez besoin d'autres choses je pourrais vous les fournir .
    NB: Ici pour l'integration des js et css je l'ai a copier sous /media/...

    Merci

    Analyste - Développeur Web

    Equipe Ecommerce - Groupe Zannier

    RBS Ecommerce Core - v 3.5.2
  • 82075.6 en réponse à 82075.5 écrit par mammous

    02/12/2013 11:38


    Mathias
    Rang : Expert
    il me faudrait le template html c'est ce dont j'ai le plus besoin ;)

    Développe sous linux Ubuntu 12.04 LTS Desktop
    Projet ecommerce core 3.6.7
  • Message supprimé par son auteur.
  • 82075.8 en réponse à 82075.6 écrit par Mathias

    02/12/2013 16:20


    mammous
    Rang : Membre
    C'est bon c'est résolu :)
    J'ai fait un
    <script change:javascript="src 'modules.catalog.lib.js.jquery-jqzoom'"></script>
    dans le block et du coup sa a fonctionné (changer le head en src :) )
    Merci bien Mathias

    Analyste - Développeur Web

    Equipe Ecommerce - Groupe Zannier

    RBS Ecommerce Core - v 3.5.2
 
Merci de prendre connaissance et de respecter les règles des forums.
 
1453 membres
Aucun membre connecté