1. crear archivo filter_xxx.xml (models/forms/filter_versions.xml)
- campo buscar
- name="search"
- class="js-stools-search-string"
- campo personalizado
- name="filtroMarcas"
- type="filtroMarcas"
- onchange="this.form.submit();"
De esta forma añado un buscador simple y bton herramientas busqueda donde puedo encontrar los campos personalizados, como campo de entrada vacia. (por el momento)
Si creamos otro archivo: ej. filtroMarcas.php (models/fields/filtroMarcas.php) es donde relacionamos el campo personalizado creado anteriormente.
2. Se crea archivo filtroMarcas.php (models/fields/filtroMarca.php)
Opcional: solo es necesario cuando hay Campos personalizados -----------------------------
Campo personalizado, si es buscador solo no es necesario hacer esto.
- class JformFieldFiltroMarcas extends JFormFieldList
- protected $type='filtroMarcas'
- funcion getOptions() --> hacer query, listar, y dejar seleccionada la opc.
- Con ... foreach {
- $tmp = Jhtml::_('select.option', $item->id, $item->nombre);
- $options[] = $tmp
- }
- funcion getOptionsExternally() : Metodo para obtener una lista de opc para una entrada de la lista de forma externa y no de XML.
--------------------------------------------------------------------------------------------------------------!
3. Añadir lineas en view.html.php views/nodelos/view.html.php
- en funcion display()
- $this->filterForm = $this->get('FilterForm');
- $this->activeFilters = $this->get('ActiveFilters');
4. Añadir herramientas de busqueda default.php views/nodelos/tmpl/default.php
- <?php
- echo JLayoutHelper::render('joomla.searchtools.default', array('view' => $this));
- ?>
5. Añadir 3 funciones en marcas.php (models/marcas.php)
query de lo que queremos que haga el filtro de busqueda...
- __construct ($config=array()) establece campos de filtro
- populateState ($ord=null, $dir=null) obtener y establecer los valores actuales de los filtro.
- getListQuery() usar los valores de filtro actuales para modificar la consulta.
Vista Version
crear
- models/forms/filter_versions.xml
- models/fields/filtroVersions.php (campo personalizdo)
modificar:
- views/versions/view.html.php
- views/versions/tmpl/default.php
- models/versions.php
Crear campo personalizado NUEVO
- crear models/fields/filtroVersions.php (campo personalizdo)
- crear campos en vista del filtro de la vista donde quiero mostrarlo . ej. Vista versiones, xml -> filter_versions.xml. models/forms/filter_versions.xml
- modificar o añadir query para filtrar bien la busqueda models/versions.php
Para que aparezca buscador
- crear models/forms/filter_marcas.xml en principio sin campos personalizados
- añadir lineas views/marcas/view.html.php
- añadir lineas views/marcas/tmpl/default.php
- añadir query models/marcas.php
**Me base en com_content/articles