Jump to content

Crear/editar un campo para Fabricantes


Manuel Azotea

Recommended Posts

¡Hola a todos!

 

Tengo una duda que debe ser sencilla para quien lo sepa, pero yo estoy dando más vueltas que un trompo.

 

Tengo un carrusel que saca los logos de los fabricantes (muy bonito), El tema es que el enlace llama a una búsqueda de los productos de dicho fabricante y yo lo que quiero es que vaya a la página web.

 

He creado sin problemas un campo en su tabla:

ALTER TABLE `XXX_manufacturer` ADD `web` VARCHAR(70) AFTER `active`;

 

Le he puesto unos enlaces desde el mismo phpMyAdmin (con "http://" delante para que salga del sitio, claro) y llamo a estos valores sin problemas desde una .tpl con: {$manufacturer.web} funciona muy bien.

 

El tema es que no consigo configurar correctamente

/admin/tabs/AdminManufacturers.php

para que desde un input-text me permita editar este campo desde el mismo formulario de datos de Fabricantes y no tenerlo que hacer desde el phpMyAdmin.

 

He estado mirando unos ejemplos que crean un campo nuevo para artículos, pero hay muchas diferencias y no me sale.

 

Cualquier información me sería muy útil porque aunque conozco otros entornos, en este aún estoy muy verde.

 

¡Muchas Gracias!

post-267463-0-10437300-1319221740_thumb.png

  • Like 1
Link to comment
Share on other sites

Yo estaba intentando modificar la lectura de datos de /admin/tabs/AdminManufacturers.php para que simplemente pinte un dato que existe ya en la base de datos y que se guarde cuando se use la función correspondiente.

 

Creo que con unas líneas para considerar este dato nuevo puede ser suficiente.

 

Muchas gracias por la contestación.

Link to comment
Share on other sites

Comento un poco los paso que he dado:

 

He intentado añadir (subrayado) el campo web (ya existente y operativo) a la consulta de datos:

$this->_selectAddresses = 'cl.`name` as country, m.`name` AS manufacturer_name, m.`web` AS manufacturer_web';

 

El array fieldsDisplay parece que tiene su importancia:

 

$this->fieldsDisplay = array(

...

'name' => array('title' => $this->l('Name'), 'width' => 200),

'web' => array('title' => $this->l('Web'), 'width' => 200),

...

 

En la función displayForm, he añadido el input-text para ver si recojo los datos:

...

<label>Web</label>

<div class="margin-form">

<input type="text" size="40" name="web" value="'.htmlentities(Tools::getValue('web', $manufacturer->web), ENT_COMPAT, 'UTF-8').'" />

<span class="hint" ...

 

 

... y no aparece nada ...

 

algo me falta / me sobra ...

 

Lo que sí me sale la web (El array fieldsDisplay, supongo) es en la lista de Fabricantes antes de la edición (ver imagen anexa).

post-267463-0-39557400-1319228622_thumb.png

Link to comment
Share on other sites

Solucionado! (Yo me lo guiso y yo me lo como)

 

Parece mentira, pero tras dos días de pruebas infructuosas, ha sido poner el post y encontrar la solución.

 

Añadir dos líneas en /classes/Manufacturer.php:

/** @var string web */

public $web;

 

y

 

public function getFields()

...

$fields['web'] = pSQL($this->web);

 

Ya lo había puesto, pero debí deshacerlo por error.

 

No sé si esto le sevirá a alguien más, pero exponer mi problema creo que me ha ayudado a aclararme y pooder terminarlo.

 

Un saludo a todos.

  • Like 1
Link to comment
Share on other sites

  • 3 weeks later...
  • 1 year later...

Hola Gracias por tu aporte!

 

Apuntar que para prestashop 1.5 es parecido solo que los archivos son Manufacturer.php, adminManufacturersController.php y para el listado de marcas manufacturer-list.tpl. Por si sirve para ahorrar tiempo a alquien ;)

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...