Publicado por: 6

No cabe duda que los extrafields de k2 (Joomla) son de una utilidad enorme, pero la forma en la que por defecto se pintan en la ficha de un ítem, hace que pueda resultar un poco compleja la personalización de la presentación de los mismos.

K2 por defecto, se limita a recorrer los extrafields y pintarlos en una lista donde en cada línea esta el nombre, y el valor.

En la mayoría de proyectos esto puede resultar insuficiente, y lo que realmente queremos es poder pedir cualquier valor de cualquier extrafield en el momento que queramos. Es decir, obtenerlos de forma selectiva.

Para ello podéis utilizar esta función:

function get_extrafield_value($extra_fields, $name, $default = ''){
    foreach ($extra_fields as $extraField) {
        if ($extraField->name == $name) return $extraField->value;
    }
    return $default;
}

Al llamar a la función, le pasamos el vector (array) de extrafields, y el nombre del campo que queremos, y la función lo busca y nos devuelve el valor.

De esta forma, podemos presentar los extrafields como queramos:

get_extrafield_value($extra_fields, 'Tipo de vía').' '.get_extrafield_value($extra_fields, 'Nombre de la vía').', '.get_extrafield_value($extra_fields, 'Nº').'. '.get_extrafield_value($extra_fields, 'Código postal').' - '.get_extrafield_value($extra_fields, 'Localidad')

Esperamos que os ayude!

6 Comentarios

    1. Administrador Microteching Autor del artículo

      Los extrafields sirven para estructurar mejor los contenidos.
      Puedes ampliar los campos de un articulo añadiendo campos como: direccion, latitud, longitud, precio, servicios, etc…

  1. MARCELO

    me esta complicando demasiado joomla jejej creo que volvere a wordpress me gusto joomla por la gran variedad de diseños de plantillas,la posicion de modulos y sus componentes y el k2 pero me esta generando muchos problemas

    1. Administrador Microteching Autor del artículo

      Si. WordPress siempre es una muy buena solución, y generalmente es mas sencillo para los usuarios que no quieren tocar mucho código… xD
      Para mi Joomla, ofrece muchas mas posibilidades, pero también es verdad que es mucho mas difícil de configurar para que cada cosa salga como queremos…

  2. Abel

    Justamente estaba buscando cómo hacerlo y quizás por el hartazgo de hace pruebas frustradas, pero no consigo dar con la manera de hacerlo, estoy funcionando con joomla 2.5 y k2 2.6.1, si pudieras ampliar este tutorial un poco más, te lo agradecería enormemente 😉

    Un muy cordial saludo y gracias por adelantado!!

    1. Administrador Microteching Autor del artículo

      Pues no se como ampliarlo mas…

      Solo es definir la función al principio del archivo de la plantilla donde la quieras usar (o en algún sitio con alcance mas global), y entonces en cualquier parte del html de la plantilla la llamas así:

      < ?= get_extrafield_value($extra_fields, 'nombre'); ?>

      piensa que “$extra_fields” se refiere a donde sea que tengas los extra fields… ahora mismo no recuerdo en que parte de $item están.

      Espero que te ayude.

      Saludos.

Responder a Administrador Microteching Cancelar respuesta

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

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.