Hey les gars, comment puis-je ajouter une option supplémentaire à la liste d'images produit? comme Excluez & Enlever les casesimages produit Magento nouvelle option
Répondre
Je suis en train de coder la même caractéristique. Avez-vous eu une réponse?
L'idée est d'ajouter un « Utiliser comme page » case à cocher pour chaque image dans la galerie d'images. Le but étant de faire un carrousel JS avec toutes les images cochées comme "Utiliser comme page".
J'ai quelques choses, mais je ne peux pas mettre à jour les données dans la base de données.
-> Ma question est: comment mettre à jour les données dans la base de données et de récupérer dans la case à cocher (0 ou 1 en fonction de la case à cocher)?
Merci à tous pour votre aide précieuse.
Voici ce que j'ai fait (1.4.1.0):
1- table de mise à jour catalog_product_entity_media_gallery_value
Ajout d'un nouveau champ (dont le nom est "page"):
- Page tinyint (4) UNSIGNED Non 0
2- Apportez les modifications suivantes à la classe Mage_Catalog_Model_Product_Attribute_Backend_Media
Ligne 49:
de
$localAttributes = array('label', 'position', 'disabled');
à
$localAttributes = array('label', 'position', 'disabled', 'page');
Ligne 223:
de
$data['disabled'] = (int) $image['disabled'];
à
$data['disabled'] = (int) $image['disabled'];
$data['page'] = (int) $image['page'];
Ligne 301
de
$mediaGalleryData['images'][] = array(
'file' => $fileName,
'position' => $position,
'label' => '',
'disabled' => (int) $exclude
);
à
$mediaGalleryData['images'][] = array(
'file' => $fileName,
'position' => $position,
'label' => '',
'disabled' => (int) $exclude,
'page' => (int) $exclude,
);
Ligne 328
de
$fieldsMap = array(
'label' => 'label',
'position' => 'position',
'disabled' => 'disabled',
'exclude' => 'disabled',
);
à
$fieldsMap = array(
'label' => 'label',
'position' => 'position',
'disabled' => 'disabled',
'exclude' => 'disabled',
'page' => 'disabled',
);
3- Fait les modifications suivantes au modèle adminhtml/default/default/template/catalogue/produit/aide/galerie.phtml
Ligne 64
de
<th><?php echo Mage::helper('catalog')->__('Exclude') ?></th>
à
<th><?php echo Mage::helper('catalog')->__('Exclude') ?></th>
<th><?php echo Mage::helper('catalog')->__('Is Page') ?></th>
Ligne 77
de
<td class="cell-disable a-center"><input type="checkbox" <?php if($_block->getElement()->getReadonly()):?> disabled="disabled"<?php endif;?> onclick="<?php echo $_block->getJsObjectName(); ?>.updateImage('__file__')" /></td>
à
<td class="cell-disable a-center"><input type="checkbox" <?php if($_block->getElement()->getReadonly()):?> disabled="disabled"<?php endif;?> onclick="<?php echo $_block->getJsObjectName(); ?>.updateImage('__file__')" /></td>
<td class="cell-page a-center"><input type="checkbox" <?php if($_block->getElement()->getReadonly()):?> disabled="disabled"<?php endif;?> onclick="<?php echo $_block->getJsObjectName(); ?>.updateImage('__file__')" /></td>
Ligne 105
de
à
<td class="cell-disable"><input type="hidden" /> </td>
<td class="cell-page last"><input type="hidden" /> </td>
@vrnet Tu étais presque ... De plus, vous devez mettre à jour:
/js/mage/adminhtml/products.js (tonne de modifications). Fondamentalement, vous devrez ajouter du code pour JSON pour gérer votre nouveau champ. J'avais besoin d'ajouter une deuxième étiquette de ma part et j'ai fini par copier le code de l'étiquette et changer les noms des variables pour correspondre à la variable de code. Devrait être assez simple.
(ligne 66) classe Mage_Catalog_Model_Resource_Eav_Mysql4_Product_Attribute_Backend_Media, vous devez ajouter votre nouvelle colonne afin qu'il soit chargé en retrait de la DB.
Si vous avez des questions, envoyez-moi un e-mail
Vous devez travailler avec les fichiers Adminhtml. Quelle option envisagez-vous d'ajouter? –
J'ai besoin d'ajouter une option de case à cocher à la liste d'images de produits, disons "Afficher sur Flash" ... et en développement frontal j'ai besoin d'obtenir toutes les images de produits avec cet ensemble d'options. – birkof