Voeg een afbeeldingveld toe in uw admin-plugin (bijvoorbeeld AW Blog)

Schermafbeelding 2013-07-03 om 14.28.17

Voeg een afbeeldingveld toe aan plug-ins zoals AW Blog

Bewerken in /app/code/community/AW/Blog/Block/Manage/Blog/Edit/Tab/Form.php

$fieldset->addField('bestandsnaam', 'bestand', array(
'label' => Mage::helper('blog')->__('Afbeelding'),
'verplicht' => false,
'naam' => 'bestandsnaam',
'after_element_html' => 'Formaat 125 x 118 pixels',
));

Bewerk in /app/code/community/AW/Blog/controllers/Manage/BlogController.php na:

openbare functie saveAction() {

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

Toevoegen:

if(isset($_FILES['bestandsnaam']['naam']) && $_FILES['bestandsnaam']['naam'] != '') {
poging {
/* Uploaden starten */
$uploader = new Varien_File_Uploader('bestandsnaam');

// Elke extensie zou werken
$uploader->setAllowedExtensions(array('jpg','jpeg','gif','png'));
$uploader->setAllowRenameFiles(false);

// Stel de bestandsuploadmodus in
// false -> haal het bestand rechtstreeks op in de opgegeven map
// true -> haal het bestand op in de product-achtige mappen
// (file.jpg komt in iets als /media/f/i/file.jpg)
$uploader->setFilesDispersion(false);

// We stellen media in als de uploadmap
$path = Mage::getBaseDir('media') . DS ;
$uploader->save($pad, $_FILES['bestandsnaam']['naam'] );

} vangen (Uitzondering $e) {

}

//op deze manier wordt de naam opgeslagen in de DB
$data['bestandsnaam'] = $_FILES['bestandsnaam']['naam'];
}

Voeg bovendien een veld 'bestandsnaam' toe aan uw database (tabel 'aw_blog').

En zorg er ten slotte voor dat in /app/code/community/AW/Blog/Block/Blog/Edit/Form.php de variabele $form als volgt is gedefinieerd, zodat deze werkt met multipart/form-data:

$form = nieuw Varien_Data_Form(array(
'id' => 'bewerkingsformulier',
'actie' => $this->getUrl('*/*/opslaan', array('id' => $this->getRequest()->getParam('id'))),
'methode' => 'post',
'enctype' => 'multipart/form-gegevens',
)
);

16 gedachten over “Add an image field in your admin plugin (by example AW Blog)”

  1. Hoi!

    Ik heb net je bericht gevonden waarin staat wat ik nodig heb! Het enige wat ik niet aan de praat krijg is het onderdeel in:
    /app/code/community/AW/Blog/Block/Beheren/Blog/Bewerken/Form.php

    Ik weet niet echt of de code in de functie _prepareForm of ergens anders moet! Kunt u mij dat laten weten?

    Groeten,
    Sint

    1. Bedankt voor je reactie. Er zaten inderdaad wat bugs in. Ik heb de post geüpdatet. Het zou goed moeten werken. Kun je bevestigen of het werkt?

  2. Weet je wat ik verkeerd doe?

    Ik heb alle code toegevoegd, maar de informatie wordt niet in de database opgeslagen.
    Ik zie de afbeelding wel in de mediamap.

    Ik heb de bestandsnaam toegevoegd aan de database met varchar(255) utf8_general_ci

  3. Hoi,
    hetzelfde hier. Het nieuwe veld wordt weergegeven in de backend, maar niet opgeslagen in de database en niet weergegeven bij het opslaan.

    Wat ontbreekt (ik gebruik de laatste versie van aw_blog).

    Bedankt

  4. Het werkt niet voor mij. Ik heb een veld genaamd 'bestandsnaam' in de database gemaakt na het toevoegen van bovenstaande code, maar niets werkte voor mij.

  5. Bedankt hiervoor, het werkt geweldig! Ik heb wel een klein probleempje: als de post wordt bewerkt, wordt de afbeelding uit de DB verwijderd. Iemand een idee? Bedankt voor de hulp

  6. U hoeft alleen de onderstaande regel toe te voegen
    $model->setFeaturedImage($_FILES['featured_image']['naam']);
    voor
    $model->opslaan();
    in het bestand app/code/community/AW/Blog/controllers/Manage/BlogController.php.

  7. Is er een manier om dit te implementeren in een extensie in plaats van de kerncode van AW Blogs te wijzigen? Zodat AW Blog in de toekomst kan worden bijgewerkt en u alle extra toegevoegde velden kunt behouden?

  8. Ik heb een probleem wanneer je een afbeelding uploadt en op Opslaan klikt. De afbeelding wordt opgeslagen, maar als je de inhoud van het bericht bewerkt en dan op Opslaan klikt, wordt de afbeelding verwijderd en moet je deze opnieuw toevoegen :/

  9. Terugkoppeling: Haal het volledige pad van de afbeelding op de frontend op, geüpload vanuit een aangepast veld in de database - Gomagento2

  10. Terugkoppeling: Haal het volledige pad van de afbeelding op de frontend op, geüpload vanuit een aangepast veld in de database - MageTechWeb

  11. Dit werkt geweldig voor mij, heel erg bedankt voor de gids!

    Eén snelle wijziging. De versie die ik gebruik heeft een iets andere bestandsstructuur.

    In plaats van “/app/code/community/AW/Blog/controllers/Manage/BlogController.php”

    Zijn

    “app/code/gemeenschap/AW/Blog/controllers/Adminhtml/Awblog/Beheren/BlogController.php”

    (Alleen de toevoeging van de adminhtml-map)

Laat een reactie achter

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *

nl_NLNederlands
Scroll naar boven