lunes, 1 de septiembre de 2014

Enlaces de busqueda personaliza para Joomla

El plugin de Joomla 2.5 para realizar búsqueda de artículos no tiene en cuenta aquellos que desarrollamos con módulos. Para ello es posible modificar el núcleo de Joomla para que se creen correctamente los enlaces en los listados de búsqueda.

En el archivo /plugins/search/content/content.php en la parte donde lista los artículos que se han encontrado para ser mostrados en la pagina podemos introducir un nuevo if (o switch si empiezan a ser muchos) para decirle a joomla como mostrar cada categoria de articulos:

if (isset($list))
{
  foreach($list as $key => $item) {
    $catid=explode(":",$item->catslug);
    $id=explode(":",$item->slug);
    if ($catid[0]==15) { // Para una categoría concreta
      $list[$key]->href = "index.php?option=com_content&view=article&id=".$id[0]."&Itemid=180";
    }else {
      $list[$key]->href = ContentHelperRoute::getArticleRoute($item->slug, $item->catslug, $item->language);
    }
  }
}

martes, 20 de mayo de 2014

Cambiar forma en la que genera Joomla 2.5 el alias de los articulos

En Joomla 1.5 no importa que nombremos los artículos con el mismo titulo porque el alias se puede repetir pero al actualizar a Joomla 2.5 descubrí que esta nueva versión no permite que haya dos alias iguales por lo que me encontré con la necesidad de cambiar todos los alias de los artículos en la base de datos directamente antes de hacer la migración.

El caso es que después de hacer la migración seguimos teniendo el mismo problema porque el núcleo de Joomla 2.5 genera los alias de una forma muy similar a la versión 1.5. Para evitar que teniendo artículos con el mismo nombre nos de error al generar el alias tenemos que modificar el núcleo de Joomla. El archivo a modificar es el siguiente: libraries/joomla/database/table/content.php

Dentro de la función check() he cambiado la sentencia

if (trim($this->alias) == '')
{
$this->alias = $this->title;
}

por lo siguiente: $this->alias = $this->title."-".$this->id;

Yo he utilizado el id de cada articulo porque este es único pero podríamos utilizar cualquier cosa que lo diferenciase.

Cambiar el orden por defecto en el que muestra Joomla 2.5 los articulos en el Backend

Joomla por defecto muestra los artículos de la pagina web en la zona de backend por orden de titulo sin posibilidad de cambiar ese orden por defecto.

Para hacerlo hay que modificar una linea del núcleo de joomla. El archivo se encuentra en administrator/components/com_content/models/articles.php

En la linea 98 podemos cambiar tanto el orden como el concepto por el que queremos ordenar:

Ejemplo de ordenar de mas reciente a man antiguo: parent::populateState('a.created', 'desc');

lunes, 19 de mayo de 2014

Modificar plugin joomla CCK para que no cambie los nombres de los archivos al subirlos a una pagina web

Con este tutorial pretendo informar que archivo hay que modificar del plugin de joomla cck para que al subir los archivos a nuestra pagina Joomla no cambie el nombre de los archivos (el plugin por defecto elimina los espacios, guiones bajos y pasa las mayúsculas a minúsculas).

Hay que modificar el archivo en la siguiente ruta y comentar las lineas 446-447-448:
plugins/cck_field/upload_file/upload_file.php