El problema base a solucionar va a ser, en la lista de proveedores (suppliers), no se muestra ningún dato respecto a la dirección, sólo título, imagen y descripción.
Vamos a usar el caso de mostrar por ejemplo la dirección y el móvil en el listado.
En este caso, lo primero a modificar es el resultado del método getSuppliers que lógicamente está en /classes/Supplier.php
Original: $query->select('s.*, sl.`description`');
Modificado: $query->select('s.*, sl.`description`, ad.`phone_mobile`, ad.`address1`');
Añadir la línea en negrita:
$query->leftJoin('supplier_lang', 'sl', 's.`id_supplier` = sl.`id_supplier` AND sl.`id_lang` = '.(int)$id_lang);
$query->leftJoin('address', 'ad', 'ad.`id_supplier` = s.`id_supplier`');
El siguiente paso, es ya modificar (añadir a) la vista: {directorio_plantilla}/supplier-list.tpl
<div class="description">
{l s="Móvil: "}{$supplier.phone_mobile}<br/>
{l s="Dirección: "}{$supplier.address1}
{*$supplier.description|truncate:180:'...'*}
</div>
Ver también: Añadir campos a los proveedores
Programación, web, CMS, WordPress, Magento, CSS, HTML5, jQuery, y lo que surja.Mi pasa personal
miércoles, 16 de septiembre de 2015
Añadir campos en Proveedores - Suppliers
Para añadir nuevos campos en los proveedores hay que modificar 3 partes:
1. Crear el campo en la base de datos, en la tabla {prefijoBD}_supplier creamos el/los campos que necesitemos.
2. Añadir el atributo a su clase /classes/Supplier.php
Ejemplo de añadir mail:
/** @var string Mail */
public $mail;
{..}
public static $definition = array(
'table' => 'supplier',
'primary' => 'id_supplier',
'multilang' => true,
'fields' => array(
'name' => array('type' => self::TYPE_STRING, 'validate' => 'isCatalogName', 'required' => true, 'size' => 64),
'mail' => array('type' => self::TYPE_STRING, 'validate' => 'isCatalogName', 'required' => true, 'size' => 128),
{..}
3. Añadir el campo al formulario de la administración /controllers/admin/AdminSuppliersController.php
Ejemplo de añadir mail:
public function renderForm()
{
{...}
array(
'type' => 'text',
'label' => $this->l('Name'),
'name' => 'name',
'required' => true,
'col' => 4,
'hint' => $this->l('Invalid characters:').' <>;=#{}',
),
array(
'type' => 'text',
'label' => $this->l('Email'),
'name' => 'mail',
'required' => true,
'col' => 4,
'hint' => $this->l('Invalid characters:').' <>;=#{}',
),
4. Posible ejemplo de uso en supplier.tpl
<fieldset>
<label class="attribute_label">Email</label>
<div class="attribute_list">{$supplier->mail}</div>
</fieldset>
Igualmente para modificar fabricantes - manufactures se puede aplicar a su clase, controlador y vista fácilmente.
Ejemplo de uso en la tienda online vinumplus.es
1. Crear el campo en la base de datos, en la tabla {prefijoBD}_supplier creamos el/los campos que necesitemos.
2. Añadir el atributo a su clase /classes/Supplier.php
Ejemplo de añadir mail:
/** @var string Mail */
public $mail;
{..}
public static $definition = array(
'table' => 'supplier',
'primary' => 'id_supplier',
'multilang' => true,
'fields' => array(
'name' => array('type' => self::TYPE_STRING, 'validate' => 'isCatalogName', 'required' => true, 'size' => 64),
'mail' => array('type' => self::TYPE_STRING, 'validate' => 'isCatalogName', 'required' => true, 'size' => 128),
{..}
3. Añadir el campo al formulario de la administración /controllers/admin/AdminSuppliersController.php
Ejemplo de añadir mail:
public function renderForm()
{
{...}
array(
'type' => 'text',
'label' => $this->l('Name'),
'name' => 'name',
'required' => true,
'col' => 4,
'hint' => $this->l('Invalid characters:').' <>;=#{}',
),
array(
'type' => 'text',
'label' => $this->l('Email'),
'name' => 'mail',
'required' => true,
'col' => 4,
'hint' => $this->l('Invalid characters:').' <>;=#{}',
),
4. Posible ejemplo de uso en supplier.tpl
<fieldset>
<label class="attribute_label">Email</label>
<div class="attribute_list">{$supplier->mail}</div>
</fieldset>
Igualmente para modificar fabricantes - manufactures se puede aplicar a su clase, controlador y vista fácilmente.
Ejemplo de uso en la tienda online vinumplus.es
Suscribirse a:
Entradas (Atom)