Problema al subir imágenes en artículos de K2 de Joomla

Si os está pasando que al intentar subir una imagen para un artículo de K2 el CMS parece que no hace nada, es recomendable revisar los permisos de las carpetas ‘/media/’ y ‘/tmp/’ del raiz.

Poniéndolos a 777 es posible que el problema quede solucionado.

Además. acordaos de recargar la página eliminando las cachés del navegador (Ctrl + F5).

Esperamos que os sea de ayuda.

Sale el enlace para añadir item incluso en las categorias de K2 que no estan seleccionadas en el grupo de usuarios

El escenario es el siguiente:

Tenemos un K2 con varias categorías, la edición de front end activada, pero en el grupo de usuarios ‘registrados’ o cualquier otro, hemos dicho que el usuario solo pueda añadir artículos a las categorías X e Y.

Navegando por el front con un usuario loggeado, vemos que el enlace para añadir un artículo sale en otras categorías.

Dfdsfghdfskldssdf.

Pues nada… googleando, solo me he encontrado este hilo abierto, que lamentablemente no daba la solución; así que ha tocado currar-se-lo. XD

Para solucionarlo, tenemos que editar el archivo ‘components\com_k2\views\itemlist\view.html.php‘ aproximadamente por la linea 26 y dejarla tal que así:

//Add link
if ($task != 'category'){
  if (K2HelperPermissions::canAddItem())
    $addLink = JRoute::_('index.php?option=com_k2&view=item&task=add&tmpl=component');
  $this->assignRef('addLink', $addLink);
}

Luego, un poco más adelante, donde hace el “case: ‘category’” debajo de la carga de la categoría (o antes) ponemos:

if (K2HelperPermissions::canPublishItem($id))
  $addLink = JRoute::_('index.php?option=com_k2&view=item&task=add&tmpl=component');
$this->assignRef('addLink', $addLink);

Lo que hemos hecho con esto es que en caso de tratarse de una categoría no haga una comprobación sobre los permisos generales, sino que mire los permisos sobre la categoría en cuestión.

Pues nada. Eso es todo.

Botón Cancelar no funciona en el formulario para añadir artículo de K2

Puede que mucha gente que utiliza K2 con edición desde el front end, se haya encontrado con el problema de que el botón de ‘Cancelarno cierra el lightbox donde está el formulario.

Después de googlear un rato he encontrado una solución en este hilo del foro de la comunidad de K2.

Aunque en realidad, lo que propone el tio Catchai, no es realmente una solución, sinó un ‘wolkaround’, ya que el problema del error javascript que da al cargar la página, se sigue produciendo.

De todas formas, a falta de una solución mejor, lo que nos propone, es simplemente poner la función directamente en el onclick, quedando:

<a href="#" onclick="parent.$('sbox-window').close();return false;">

Pues nada. Se agradeceran todo tipo de comentarios sobre una solución mejor.

Filtros multiples en el buscador de k2

En el post anterior os comentaba como se podian hacer búsquedas en los campos extra en k2, mediante el K2 Extra fields Filter & Search.

Ahora os mostramos como aprovechar ese código para realizar buscadores con multiples filtros. En nuestro caso:
– un campo de texto para buscar en las propiedades tipicas de los items.
– un combo para filtrar por los valores de un campo extra.
– un combo para filtrar por las categorías hijas de una dada.




Para ello solo tenemos que hacer lo siguiente:
1. Instalar el módulo y realizar las modificaciones de k2 que se explicaban en el post anterior.
2. Cambiar el modelo itemlist de /components/com_k2/models/ por este: itemlist.txt (renombrar a .php)
3. Personalizar el módulo añadiendo el fichero select.txt (renombrar a .php) en la ruta /templates/XXXXX/html/mod_k2_filter/.
4. Configurar el módulo seleccionando la categoría padre, diciendole que el tipo de filtro es ‘drop-down selecttion’, y eligiendo el campo extra deseado.

Bueno… Pues espero que os sirva de ayuda, aunque sea como base para hacer lo que necesiteis.

Filtros sobre campos extra en el buscador de k2

La verdad es que el buscador que ofrece K2 en el módulo mod_k2_tools, es bastante pobre. Solo nos permite mostrar una sola caja de búsqueda.

Gracias a K2 Extra fields Filter & Search podemos añadir filtros en base a campos extra que tengamos definidos.
Ver el enlace para ver los detalles, ya que el módulo necesita algunas modificaciones del código de k2.

A fecha de hoy 13 de diciembre de 2010, las modificaciones del core que te puedes descargar en la página, se han quedado obsoletas.
Si en el encabezado de los ficheros que hay que machacar (guardad copia) pone que el id es el 553 de fecha 13-09-2010, es mejor que utiliceis los paquetes que aquí os paso (del módulo no he cambiado nada).

com_k2v2.2-553_2010-09-13_filter_overwrite_0.92.rar

mod_k2v2.2_filter_0.92.zip

Provincias españolas en un campo extra de K2

Si tenemos que ir añadiendo provincia a provincia las 52 en la interfaz de k2, nos podemos volver tarumbas.
Así que lo mejor es crear el campo ‘provincia’ con cualquier valor en las opciones, y luego vamos a la base de datos, a la tabla “jos_k2_extra_fields“, modificamos nuestro campo, y en la columna value, ponemos directamente las 52 provincias en el formato que entiende k2:

[{"name":"\u00c1lava","value":1,"target":null},{"name":"Albacete","value":2,"target":null},{"name":"Alicante","value":3,"target":null},{"name":"Almer\u00eda","value":4,"target":null},{"name":"\u00c1vila","value":5,"target":null},{"name":"Badajoz","value":6,"target":null},{"name":"Baleares","value":7,"target":null},{"name":"Barcelona","value":8,"target":null},{"name":"Burgos","value":9,"target":null},{"name":"C\u00e1ceres","value":10,"target":null},{"name":"C\u00e1diz","value":11,"target":null},{"name":"Castell\u00f3n","value":12,"target":null},{"name":"Ciudad Real","value":13,"target":null},{"name":"C\u00f3rdoba","value":14,"target":null},{"name":"La Coru\u00f1a","value":15,"target":null},{"name":"Cuenca","value":16,"target":null},{"name":"Gerona","value":17,"target":null},{"name":"Granada","value":18,"target":null},{"name":"Guadalajara","value":19,"target":null},{"name":"Guip\u00fazcoa","value":20,"target":null},{"name":"Huelva","value":21,"target":null},{"name":"Huesca","value":22,"target":null},{"name":"Ja\u00e9n","value":23,"target":null},{"name":"Le\u00f3n","value":24,"target":null},{"name":"L\u00e9rida","value":25,"target":null},{"name":"La Rioja","value":26,"target":null},{"name":"Lugo","value":27,"target":null},{"name":"Madrid","value":28,"target":null},{"name":"M\u00e1laga","value":29,"target":null},{"name":"Murcia","value":30,"target":null},{"name":"Navarra","value":31,"target":null},{"name":"Orense","value":32,"target":null},{"name":"Asturias","value":33,"target":null},{"name":"Palencia","value":34,"target":null},{"name":"Las Palmas","value":35,"target":null},{"name":"Pontevedra","value":36,"target":null},{"name":"Salamanca","value":37,"target":null},{"name":"S.C. Tenerife","value":38,"target":null},{"name":"Cantabria","value":39,"target":null},{"name":"Segovia","value":40,"target":null},{"name":"Sevilla","value":41,"target":null},{"name":"Soria","value":42,"target":null},{"name":"Tarragona","value":43,"target":null},{"name":"Teruel","value":44,"target":null},{"name":"Toledo","value":45,"target":null},{"name":"Valencia","value":46,"target":null},{"name":"Valladolid","value":47,"target":null},{"name":"Vizcaya","value":48,"target":null},{"name":"Zamora","value":49,"target":null},{"name":"Zaragoza","value":50,"target":null},{"name":"Ceuta","value":51,"target":null},{"name":"Melilla","value":52,"target":null}]

Como habrá quien en vez de provincias quiera otros valores, pongo tambien este pequeño script de php que sirve para sacar los valores que tendriamos que poner en la base de datos, desde un array con los valores que queremos:

<?php
$a_prov = array("Álava","Albacete","Alicante","Almería","Ávila","Badajoz","Baleares","Barcelona","Burgos","Cáceres","Cádiz","Castellón","Ciudad Real","Córdoba","La Coruña","Cuenca","Gerona","Granada","Guadalajara","Guipúzcoa","Huelva","Huesca","Jaén","León","Lérida","La Rioja","Lugo","Madrid","Málaga","Murcia","Navarra","Orense","Asturias","Palencia","Las Palmas","Pontevedra","Salamanca","S.C. Tenerife","Cantabria","Segovia","Sevilla","Soria","Tarragona","Teruel","Toledo","Valencia","Valladolid","Vizcaya","Zamora","Zaragoza","Ceuta","Melilla");

$output = '[';
$i=1;
foreach ($a_prov as $prov) {
 if ($i > 1) $output .= ',';
 $output .= '{"name":' . json_encode($prov) . ',"value":'. $i .',"target":null}';
 $i++;
}
$output .= ']';

echo $output;
?>

Espero que os sirva.