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',
)
);
¡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
Gracias por tu respuesta. De hecho, contenía algunos errores. Actualicé la publicación. Debería funcionar correctamente. ¿Puedes confirmar si funciona?
¿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
Hola, tengo el mismo problema.
La imagen no se guarda en la tabla.
¿Conseguiste resolver este problema? 🙁
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
Hola, tengo el mismo problema. Agregué el campo de imagen mediante system.xml, no mediante programación.
¿Cómo agregar etiquetas alt a la imagen para fines de SEO?
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ó.
Para todos aquellos que tengan problemas al guardar el archivo en la base de datos, actualicen sus índices.
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.
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.
¿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?
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 :/
Retroenlace: Obtener la ruta completa de la imagen en la interfaz cargada desde un campo personalizado en la base de datos - Gomagento2
Retroenlace: Obtener la ruta completa de la imagen en la interfaz cargada desde un campo personalizado en la base de datos - MageTechWeb
¡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)