Ajoutez un champ image dans votre plugin d'administration (par exemple AW Blog)

Affichage de l'écran le 03/07/2013 du 28/14/17

Ajoutez un champ d'image aux plugins comme AW Blog

Modifier dans /app/code/community/AW/Blog/Block/Manage/Blog/Edit/Tab/Form.php

$fieldset->addField('nom de fichier', 'fichier', tableau(
'label' => Mage::helper('blog')->__('Image'),
'obligatoire' => faux,
'nom' => 'nom de fichier',
'après_élément_html' => 'Format 125 x 118 pixels',
));

Modifier dans /app/code/community/AW/Blog/controllers/Manage/BlogController.php après :

fonction publique saveAction() {

si ($data = $this->getRequest()->getPost()) {

Ajouter:

if(isset($_FILES['nom de fichier']['nom']) && $_FILES['nom de fichier']['nom'] != '') {
essayer {
/* Démarrage du téléchargement */
$uploader = nouveau Varien_File_Uploader('nom de fichier');

// N'importe quelle extension fonctionnerait
$uploader->setAllowedExtensions(array('jpg','jpeg','gif','png'));
$uploader->setAllowRenameFiles(false);

// Définir le mode de téléchargement du fichier
// false -> récupérer le fichier directement dans le dossier spécifié
// true -> récupérer le fichier dans les dossiers de type produit
// (file.jpg ira dans quelque chose comme /media/f/i/file.jpg)
$uploader->setFilesDispersion(false);

// Nous définissons le média comme répertoire de téléchargement
$path = Mage::getBaseDir('media') .DS ;
$uploader->save($path, $_FILES['nom de fichier']['nom'] );

} attraper (Exception $e) {

}

//de cette façon, le nom est enregistré dans la base de données
$data['nom de fichier'] = $_FILES['nom de fichier']['nom'];
}

Ajoutez ensuite un champ « nom de fichier » dans votre base de données (table « aw_blog »).

Et enfin dans /app/code/community/AW/Blog/Block/Blog/Edit/Form.php assurez-vous que la variable $form est définie comme suit, afin qu'elle fonctionne avec multipart/form-data :

$form = nouveau Varien_Data_Form(tableau(
'id' => 'formulaire_d'édition',
'action' => $this->getUrl('*/*/save', array('id' => $this->getRequest()->getParam('id'))),
'méthode' => 'post',
'enctype' => 'multipart/form-data',
)
);

Réflexions de 16 sur « Add an image field in your admin plugin (by example AW Blog) »

  1. Salut!

    je viens de trouver ton post expliquant exactement ce dont j'ai besoin ! La seule chose que je n'arrive pas à faire fonctionner est la partie dans :
    /app/code/community/AW/Blog/Block/Manage/Blog/Edit/Form.php

    Je ne sais pas vraiment si le code doit être dans la fonction _prepareForm ou ailleurs ! Pourriez-vous me le faire savoir s'il vous plaît !

    Salutations,
    Santi

    1. administrateur

      Merci pour votre réponse. En effet, il contenait quelques bugs. J'ai mis à jour le message. Cela devrait fonctionner correctement. Pouvez-vous confirmer si cela fonctionne ?

  2. Une idée de ce que je fais mal ?

    J'ai ajouté tout le code mais il n'enregistre pas les informations dans la base de données.
    Je vois l’image sur la carte médiatique.

    J'ai ajouté le nom de fichier à la base de données avec varchar(255) utf8_general_ci

  3. Salut,
    même chose ici. Le nouveau champ est affiché dans le backend mais n'est pas stocké dans la base de données et n'est pas affiché lors de l'enregistrement.

    Ce qui manque (j'utilise la dernière version de aw_blog).

    merci

  4. Cela ne fonctionne pas pour moi. J'ai créé un champ nommé « nom de fichier » dans la base de données après avoir ajouté le code ci-dessus, mais rien n'a fonctionné pour moi.

  5. Matthijs Leenen

    Pour tous ceux qui ont des problèmes lors de l'enregistrement du fichier dans la base de données, veuillez actualiser vos index.

  6. Merci pour cela, ça marche très bien ! Je rencontre un petit problème : lorsque le message est modifié, l'image est supprimée de la base de données. Une idée ? Merci pour votre aide

  7. Il vous suffit d'ajouter la ligne ci-dessous
    $model->setFeaturedImage($_FILES['image_en_vedette']['nom']);
    avant
    $model->enregistrer();
    dans le fichier app/code/community/AW/Blog/controllers/Manage/BlogController.php.

  8. Existe-t-il un moyen d'implémenter cela dans une extension plutôt que de modifier le code principal d'AW Blogs ? De cette façon, AW Blog pourrait être mis à jour à l'avenir et vous pourriez conserver tous les champs supplémentaires ajoutés ?

  9. J'ai un problème lorsque vous téléchargez une image et cliquez sur Enregistrer, elle est enregistrée avec l'image, mais si vous revenez en arrière pour modifier le contenu de la publication, puis cliquez sur Enregistrer, l'image est effacée et vous devez la rajouter :/

  10. Ping : Obtenir le chemin d'accès complet à l'image sur le frontend téléchargé à partir d'un champ personnalisé dans la base de données - Gomagento2

  11. Ping : Obtenir le chemin d'accès complet à l'image sur le frontend téléchargé à partir d'un champ personnalisé dans la base de données - MageTechWeb

  12. Cela fonctionne très bien pour moi, merci beaucoup pour le guide !

    Une petite modification. La version que j'utilise a une structure de fichier légèrement différente.

    Au lieu de « /app/code/community/AW/Blog/controllers/Manage/BlogController.php »

    C'est

    « app/code/community/AW/Blog/controllers/Adminhtml/Awblog/Manage/BlogController.php »

    (Juste l'ajout du dossier adminhtml)

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

fr_FRFrançais
Défiler vers le haut