7
votes

Ajoutez une case à cocher à la galerie d'images de produit (comme "Désactiver / exclure")

J'essaie de coder une nouvelle case à cocher pour être annexée aux colonnes de la galerie d'images, à côté de "Désactiver". Son comportement serait le même que "désactiver / exclure" = oui / non avec entrée dans la base de données.

L'idée est d'ajouter une case à cocher "Utiliser comme page" pour chaque image dans la galerie d'images. Le but étant de faire un carrousel JS avec toutes les images vérifiées comme "Utiliser comme page". P>

J'ai quelques choses faites mais je ne peux pas: P>

  • Mettre à jour les données dans la base de données => Set 0 ou 1 sur le champ "Page" (voir ci-dessous) LI>
  • Récupérez des données de la base de données, puis vérifiez / décochez la case en fonction du champ «Page». LI> ul>

    -> Donc, ma question est la suivante: Comment mettre à jour les données dans la base de données et la récupérer dans la case à cocher (0 ou 1 en fonction de la valeur du champ)? P>

    Merci tout pour votre Aide très précieuse. p>


    Voici ce que j'ai fait (1.4.1.0): p>

    1- Tableau de mise à jour catalog_product_entity_media_gallery_value strong> P>

    Ajout d'un nouveau champ (quel nom est "page"): p>

    • page tinyint (4) non signé N ° 0 Li> ul>

      2- a créé les modifications suivantes à la classe Mage_Catalog_model_product_attribute_backend_media strack> p>

      ligne 49: p>

      p>

      p> xxx pré>

      à p> xxx pré>

      ligne 223: em> p>

      de p > xxx pré>

      à p> xxx pré>

      ligne 301 em> p>

      de p> xxx pré>

      à p> xxx pré>

      ligne 328 em> p>

      de p>

                  <td class="cell-disable"><input type="hidden" />&nbsp;</td>
                  <td class="cell-page last"><input type="hidden" />&nbsp;</td>
      


1 commentaires

Non - En fait, je ne l'ai pas regardé depuis que j'ai posté cette question ...


4 Réponses :


0
votes

Je travaillais sur quelque chose de similaire récemment et j'ai constaté que ce morceau de code faisait partie de la solution: xxx

));

Je n'ai pas pu obtenir Pour enregistrer la valeur à la base de données non plus. C'est quelque chose à avec la classe Varien_Data_Form_Element_Checkbox.

J'espère que cela vous aide, veuillez poster votre solution si vous le trouvez!

acclamations, JD


1 commentaires

Merci Jonathan pour votre réponse, mais je pense que cela fonctionne pour les widgets de grille standard, que les images / images que l'on ne l'est pas.



6
votes

Voici comment j'ai résolu le problème et fonctionne parfaitement. À côté de vos changements, faites-les aussi.

1. Dans mage_catalog_model_product_attribute_backend_media strong> p>

modifier p> xxx pré>

à p> xxx pre>

modification p> xxx pré>

à p> xxx pré>

modifier p> xxx pré>

à p>

    this.images[index].label = this
            .getFileElement(file, 'cell-label input').value;
    this.images[index].position = this.getFileElement(file,
            'cell-position input').value;
    this.images[index].removed = (this.getFileElement(file,
            'cell-remove input').checked ? 1 : 0);
    this.images[index].page = (this.getFileElement(file,
            'cell-page input').checked ? 1 : 0);                
    this.images[index].disabled = (this.getFileElement(file,
            'cell-disable input').checked ? 1 : 0);


0 commentaires

1
votes

Après beaucoup de travail, j'ai découvert qu'en plus du poste original et des recommandations de la 2e poster, vous devez également ouvrir /app/code/core/mage/catalog/sql/Catalog_Setup/mysql4-pgrade-1.5 .9.9-1.6.0.0.php , aller sur autour de Ligne 2023 où il commence avec ceci: xxx

changez ceci: < Pré> xxx

à ceci: xxx

Lorsque Magento enregistre, il vérifie ce fichier pour vous assurer que les champs passés correspondent aux valeurs de ces tableaux. < / p>


0 commentaires

1
votes

J'ai eu l'erreur

AVIS: Index non défini 'Page' P> blockQuote>

dans la classe p>

mage_catalog_model_product_attribute_backend_media strack> p>

dans la ligne 224. p>

Je devais changer p>

js / mage / adminhtml / produit.js em> p> xxx pré>

à p>

newImage.position = this.getNextPosition();
newImage.page = 0;


0 commentaires