Agregue un campo de imagen en su complemento de administración (por ejemplo, AW Blog)

Schermafbeelding 2013-07-03 del 14.28.17

Agregue un campo de imagen a complementos como AW Blog

Editar en /app/code/community/AW/Blog/Block/Manage/Blog/Edit/Tab/Form.php

$fieldset->addField('nombre de archivo', 'archivo', matriz(
'etiqueta' => Mage::helper('blog')->__('Imagen'),
'requerido' => falso,
'nombre' => 'nombre de archivo',
'after_element_html' => 'Formato 125 x 118 píxeles',
));

Edite en /app/code/community/AW/Blog/controllers/Manage/BlogController.php después:

función pública saveAction() {

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

Agregar:

if(isset($_FILES['nombre_archivo']['nombre']) && $_FILES['nombre_archivo']['nombre'] != '') {
intentar {
/* Iniciando carga */
$uploader = new Varien_File_Uploader('nombre_archivo');

// Cualquier extensión funcionaría
$uploader->setAllowedExtensions(matriz('jpg','jpeg','gif','png'));
$uploader->setAllowRenameFiles(falso);

// Establecer el modo de carga de archivos
// falso -> obtener el archivo directamente en la carpeta especificada
// verdadero -> obtener el archivo en las carpetas del producto
// (file.jpg irá en algo como /media/f/i/file.jpg)
$uploader->setFilesDispersion(falso);

// Establecemos el medio como el directorio de carga
$path = Mage::getBaseDir('media') .DS ;
$uploader->save($path, $_FILES['nombre_archivo']['nombre'] );

} captura (Excepción $e) {

}

//de esta manera el nombre se guarda en la BD
$data['nombre_archivo'] = $_FILES['nombre_archivo']['nombre'];
}

Además, agregue un campo 'nombre de archivo' en su base de datos (tabla 'aw_blog').

Y finalmente en /app/code/community/AW/Blog/Block/Blog/Edit/Form.php asegúrese de que la variable $form esté definida de la siguiente manera, para que funcione con multipart/form-data:

$form = nuevo Formulario_Datos_Variables(matriz(
'id' => 'editar_formulario',
'acción' => $this->getUrl('*/*/guardar', matriz('id' => $this->getRequest()->getParam('id'))),
'metodo' => 'publicar',
'enctype' => 'multipart/form-data',
)
);

Pensamientos de 16 en “Add an image field in your admin plugin (by example AW Blog)”

  1. ¡Hola!

    Acabo de encontrar tu publicación, en la que explicas exactamente lo que necesito. Lo único que no me funciona es la parte que se encuentra en:
    /app/code/community/AW/Blog/Block/Manage/Blog/Edit/Form.php

    ¡Realmente no sé si el código debería estar en la función _prepareForm o en otro lugar! ¿Podrías informarme?

    Saludos,
    Santi

    1. administración

      Gracias por tu respuesta. De hecho, contenía algunos errores. Actualicé la publicación. Debería funcionar correctamente. ¿Puedes confirmar si funciona?

  2. ¿Alguna idea de qué estoy haciendo mal?

    Agregué todo el código pero no guarda la información en la base de datos.
    Veo la imagen en el mapa de medios.

    Agregué el nombre del archivo a la base de datos con varchar(255) utf8_general_ci

  3. Hola,
    Lo mismo aquí. El nuevo campo se muestra en el backend pero no se almacena en la base de datos y no se muestra cuando se guarda.

    Lo que falta (uso la última versión de aw_blog).

    gracias

  4. No me funciona. Creé un campo llamado 'nombre de archivo' en la base de datos después de agregar el código anterior, pero no funcionó.

  5. Matthijs Leenen

    Para todos aquellos que tengan problemas al guardar el archivo en la base de datos, actualicen sus índices.

  6. Gracias por esto, ¡funciona muy bien! Tengo un pequeño problema: cuando se edita la publicación, la imagen se elimina de la base de datos. ¿Alguna pista? Gracias por la ayuda.

  7. Solo necesitas agregar la siguiente línea
    $model->setFeaturedImage($_FILES['imagen destacada']['nombre']);
    antes
    $model->guardar();
    en el archivo app/code/community/AW/Blog/controllers/Manage/BlogController.php.

  8. ¿Existe alguna manera de implementar esto dentro de una extensión en lugar de modificar el código principal de AW Blogs? ¿De modo que AW Blog pueda actualizarse en el futuro y se puedan conservar los campos adicionales que se hayan agregado?

  9. Tengo un problema cuando cargas una imagen y haces clic en guardar, se guarda con la imagen, pero si vuelves a editar el contenido de la publicación y luego haces clic en guardar, borra la imagen y debes volver a agregarla :/

  10. Retroenlace: Obtener la ruta completa de la imagen en la interfaz cargada desde un campo personalizado en la base de datos - Gomagento2

  11. Retroenlace: Obtener la ruta completa de la imagen en la interfaz cargada desde un campo personalizado en la base de datos - MageTechWeb

  12. ¡Esto funciona muy bien para mí, muchas gracias por la guía!

    Una pequeña modificación: la versión que estoy usando tiene una estructura de archivos ligeramente diferente.

    En lugar de “/app/code/community/AW/Blog/controllers/Manage/BlogController.php”

    Es

    “aplicación/código/comunidad/AW/Blog/controladores/Adminhtml/Awblog/Manage/BlogController.php”

    (Solo la adición de la carpeta adminhtml)

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

es_ESEspañol
Ir arriba