k2
| | |

Joomla! i K2: nou camp personalitzat on vulguem

Avui parlarem de Joomla! I la seva arxiconeguda extensió K2, que ens permet tenir ben organitzats tots els nostres articles, per exemple tipus bloc, catàlegs de productes, etc …

L’extensió és molt potent, ja que la gent de JoomlaWorks ha pensat en tot o gairebé …

Segur que molts heu necessitat alguna vegada crear un camp per posar informació addicional, com ara un subtítol (sota el títol de l’article), una frase en algun lloc de l’article, alguna imatge més. L’inconvenient és que l’estructura de l’article és la mateixa per a tothom, és a dir, si canviem l’ordre (mitjançant codi en ítem.php) d’algun dels element, se’ns canvien en tots els articles.

En el nostre exemple volem posar un subtítol que aparegui de just a sobre del ‘fulltext’:

Localitzem i obrim els arxius:

administrator / components / com_k2 / models / item.xml

Aquí inserirem el camp a emplenar dins de l’editor de l’ítem, en l’administració de k2:

Campo nuevo en editor de K2

L’arxiu està compost per quatre parts:

1- Paràmetres de la vista categoria
2- Paràmetres de la vista ítem
3- Camps de la vista categoria
4- Camps de la vista ítem

 Com ens interessa posar un subtítol dins de l’ítem, inserirem aquesta línia a la part de paràmetres de la vista ítem (la identifiquem perquè tots els ‘name’ dels paràmetres comencen per ‘item’, a la vista de categoria comença per ‘cat’ ):

En el nostre cas el col·loquem just sota el paràmetre ‘itemFeaturedNotice’ que no és altre que el de destacats. Com el type és ‘text’ vol dir que serà una cadena de caràcters. Si volguéssim posar una llista amb diferents opcions, podem agafar l’exemple:

Un cop tenim el paràmetre, crearem el camp per veure-ho a la columna de la dreta de l’editor del K2: Posem el següent codi (fixeu-vos que name i label és el mateix), en la mateixa posició que hem posat el paràmetre dins de la part de Camps de la vista ítem (També els reconeixem perquè comencen amb item):

Si accedim a l’Editor de K2 de qualsevol ítem ja hauríem de veure el camp en la part de la dreta:

Nos aparece el nuevo campo personalizado en el editor de K2

Ara hem de mostrar-ho en el frontal. Podem posar-lo en la vista de l’item:

Anem a l’arxiu: components / com_k2 / templates / default / item.php

Inserim el codi:

El codi el posem on ens vingui de gust que surti, en el nostre exemple ho hem posat just entre:

Per a la vista de la categoria, exactament el mateix però en el següent arxiu:

components / com_k2 / templates / default / category.php

L’últim que quedaria seria donar-li estils amb el nostre arxiu CSS del K2, en aquest cas amb l’etiqueta .subtitle

I això és tot.

Entrada similar

20 Comentaris

  1. Gracias, muy buen aporte, necesitaba ayuda con esto. La única diferencia (y lo dejo por si a alguien le resulto distinto a tu excelente explicación) es que el código lo coloque debajo de la etiqueta Que es donde se genera el Titulo del articulo. Como no domino php, tu explicación me vino de lujo.

  2. Muy interesante….. Estoy aplicando todos estos trucos y me funciona de maravilla. El problema que me queda en cuanto al contenido de k2, y que no veo manera de solucionarlo, es el siguiente ( y me gustaría que me dierais alguna pista…. porque no veo la manera ): en un artículo de k2 ( joomla 2.5 ) , cuando incrusto un archivo multimedia ( por ej. un video, o un libro digital , siempre me sale éste ANTES del contenido del artículo. Yo quiero que me salga PRIMERO el contenido ( lo escrito, con su subtítulo imagen…) y ABAJO, el archivo multimedia. Cómo se podría arreglar esto? me sorprende que k2 tenga esta configuración por defecto para la vista de ítems.
    muchisimas gracias por adelantado!!!

    1. Hola Claudia, perdón a por el retraso.
      La única manera de cambiar el orden en que aparecen los elementos en K2 es cambiando estos de posición en el código de la vista del componente.
      El archivo que tendrías que tocar es el com_k2/templates/default/item.php
      Localiza los archivos multimedia y recórtalos y pégalos donde desees. Puedes saber que código es porque el archivo está bien comentado. Utiliza la inspección de código de tu navegador para no equivocarte.
      SOBRETODO: haz una copia del archivo antes de tocar nada.
      Si tienes más dudas dime concretamente donde.

  3. Hola lo que yo necesito es duplicar la pestaña de categorias para hacer combos de categorias tengo instalado la extension multicategory pero esa solo me permite elegir las categorias que desee pero se hace una lista enormeeee y siento que mi usuario no podra ver todas como lo puedo hacer.

    Saludos

    1. Hola Miguel Angel, siento no poder ayudarte ya que no hemos utilizado nunca la extensión que mencionas. Puedes ponerte en contacto con los desarrolladores de la misma que seguro podrán ayudarte.
      Solo una cosa, no se hasta que punto hacer dos listas del mismo campo será posible. Si te molesta el formato con el que sale la lista de categorías, yo lo que haría sería tocar el css. Puedes hacerla más grande, letra más pequeña, tu mismo.
      Utiliza la inspección de código para localizar el archivo css y la línea a tocar. Si tienes dudas, pon concretamente donde, ha ver si podemos ayudar.

    1. Hola Daniel, si se puede poner sin problema. Haz lo mismo pero en el archivo de la vista de la categoría. Por defecto es el siguiente:
      category_item.php (esta en la misma carpeta que el item.php)

  4. Hola, he conseguido hacerlo perfectamente pero me encuentro con el problema de hacerlo para diferentes idiomas cuando estoy utilizando el componente falang. Podríais ayudarme?

    1. Hola Mari,
      Hay dos formas de hacerlo:
      1- Crea tantos campos como idiomas tengas. Entonces mediante php o css puedes hacer que aparezca uno o otro dependiendo de idioma actual del Joomla. Mira la documentación de Falang para saber como obtener la variable de idioma o prueba con esto (depende de la versión de joomla): get(‘language’); ?>

      2- La manera correcta es modificando los archivos xml que subes a falang para poder traducir elementos de k2 y que descargas de la propia web de falang. Hay un archivo que es k2_items.xml, en el debemos añadir un campo más para traducir, por ejemplo:

      <field type=”text” name=”itemSubtitle” translate=”1″>SUBTITLE</field>

      Volvemos a comprimir el archivo en un zip y lo subimos de nuevo a Joomla mediante el gestor de extensiones. Ahora debería aparecerte en la ficha de traducción de falang el campo ‘SUBTITLE’. Procedes normalmente con falang.

      Espero haber podido ayudarte. Por favor, comenta si te ha ido bien la solución para que otros usuarios tomen nota.

  5. Muy buenas noches

    Estimado amigo estoy trabajando en una nueva web y te pido una ayuda, la verdad no se que estoy haciendo mal, llegue hasta la parte donde sale el subtitle en el item de ahi para adelante al colocar el codigo div en
    /pt/components/com_k2/templates/default/item.php
    no aparece en el item.
    Muchas gracias por su ayuda
    Amarildo

    1. Hola Amarildo, sin más información es difícil ayudarte. Prueba ha rellenar el campo des de la administración. Si guardas y el campo tiene la información que has puesto un vez se recarga la página es que has hecho bien la implementación. Si no te sale nada, revisa la primera parte del código en items.xml

      Pero si no te sale en la página del ítem, es que algo no has hecho bien en la parte de insertar el código en el item.php. Revisa ese código. Ten en cuenta que tu tema puede subscribir los archivos de k2 que están en ‘components/com_k2/’. Mira si en tu tema, en la carpeta ‘/tu_template/html/’ hay la carpeta ‘com_k2’. Si está, realiza los cambios de item.php allí.

      Espero que una de estas sea la solución. Ya me dirás!

  6. Muchisimas gracias Jordi
    Funcionó de mil maravillas, se agradece infinitamente, lo unico pendiente que quedo es la modificacion del CSS que no lo encuentro por ningun lado y lo que encontre no altera en nada.
    Muchas gracias nuevamente
    Amarildo

    1. Perfecto! Me alegro que haya funcionado.
      Lo del CSS lo puedes añadir en cualquier archivo de estilos que use tu tema, mira, por ejemplo, en ‘tu_template/css/styles.css’ (o algo parecido) y ponlo al final, por ejemplo:

      .subtitle { color: #009cde; } (tendría que poner-se en azul Milimetric)

      Nota: Puede que tu tema ya tenga esta clase.

  7. Hola! Gracias por el aporte. Y si quiero agragar más de una imagen al ítem? No una galería, sino dos o más imágenes

    1. Hola Leo, gracias por comentar!
      Lo que yo haría sin complicarme mucho sería crear dos campos como los que has visto en el tutorial y luego en vez de poner un texto pondría la url de la imagen que previamente entraríamos con el FTP o el gestor de imágenes del Joomla.
      Luego el código para en el front pondria algo así:

      <?php echo $this->item->params->get('itemSubtitle'); ?>

      // Recuerda cambiar ‘mediaURl’ por el nombre del campo que has creado.

  8. Hola Jordi, muchas gracias por el tutorial, ha funcionado perfecto 😀

    Quería hacerte una consulta adicional, se le puede añadir maxlength a los parámetros del xml? o como podríamos limitar los caracteres del campo personalizado?

    Muchas gracias por tu atención.

  9. Hola, yo quiero saber si se puede dar estilo mediante algún tipo de etiquetas (y algún ejemplo…) a un artículo nuevo que hago en k2.
    Me explico, si yo subo una entrevista, hasta el momento pongo el título, una imagen, texto de pregunta en negrita y texto de respuesta normal.
    Si pudiera poner por el medio algún entrecomillado en grande, o un antetítulo para presentar a la persona, o elementos de estilo sería perfecto.
    Espero me podáis ayudar.
    Gracias

Deixa un comentari

L'adreça electrònica no es publicarà. Els camps necessaris estan marcats amb *

This site uses Akismet to reduce spam. Learn how your comment data is processed.