Mostrando entradas con la etiqueta Joomla. Mostrar todas las entradas

Formulario en un artículo de Joomla (ckforms)



CKforms es una extensión de Joomla que nos permite crear formularios personalizados, ya sea para enviarlos por e-mail o almacenar los resultados en una base de datos para poder explotarlos más adelante.

Lo que destaca a CKforms sobre el resto de extensiones para crear formularios es la posibilidad de insertar estos formularios en cualquier artículo de Joomla. El componente incluye un plugin que mediante una sintáxis específica nos permitirá incluir los formularios.

El único problema que he encontrado, por el momento, es que tiene un CSS propio y no utiliza el de la plantilla, por lo que si utilizamos más de una plantilla en nuestro sitio sólo podremos integrar el formulario en una de nuestras plantillas.

La solución es utilizar en este CSS tonos grises que son bastante neutrales con el resto de colores.

Descarga | CKforms

Accesibilidad Joomla 1.5 (iconos)

Un problema habitual que nos encontramos los desarrolladores web que nos basamos en CMS's, es que no siempre todo el frontend se gestiona desde la plantilla, sino que muchas veces se gestiona desde plugins o componentes internos, accesibles únicamente a través de la modificación del código de las funciones que lo generan.

En el caso de Joomla los iconos (pdf, email, imprimir) que incluye por defecto en los artículos NO SON ACCESIBLES, el problema es que son enlaces que se activan con el método onclick, de tal forma que, según el validador de accesibilidad Hera:

Manejadores de evento: Se utilizan eventos dependientes del dispositivo y no existen eventos redundantes.

Instrucciones:
Los eventos deben poder activarse de igual forma con el ratón que con el teclado. Por tanto debe haber manejadores de evento independientes del tipo de dispositivo ("onfocus", "onblur", "onselect") o redundantes para el tipo de dispositivo (si se indica "Onmousedown" debe indicarse también "Onkeydown", si "onmouseup" también "onkeyup", si "onclick" también "onkeypress").

La solución es relativamente sencilla, tan sólo tenemos que modificar el fichero que contiene la función que genera los iconos de Joomla:

  • El fichero que contiene las funciones PHP que generan el icono es:
./components/com_content/helpers/icon.php
  • Debemos editarlo y buscar la función de cada icono, en el caso del pdf:
function pdf($article, $params, $access, $attribs = array())
  • En esta función hay que localizar la línea:
$attribs['onclick'] = "window.open(this.href,'win2','".$status."'); return false;";
  • Lo que vamos a hacer es añadir los parámetros de accesibilidad, onkeypress y acceskey para que el evento sea accesible también desde teclado:
$attribs['onkeypress'] = "window.open(this.href,'win2','".$status."'); return false;";
$attribs['acceskey']="p";

Ahora en el mismo fichero, tenemos que hacer la misma modificación en las funciones de email e imprimir, de esta forma superaremos la traba del validador de accesibilidad.

Además de la función onkeypress debemos añadir el atributo acceskey para que cualquier navegador sea capaz de obtener el foco del enlace, ya que de otra forma, no todos los navegadores serían capaces de obtener el foco en el enlace que activará el evento.

JoomShopping como catálogo de productos en Joomla

JoomShopping es un componente para Joomla 1.0.x que funciona perfectamente en "Legacy mode" para Joomla 1.5.x. Este componente permite convertir nuestro gestor Joomla en una auténtica tienda de e-commerce, permite la gestión de productos en sus respectivas categorías, pedidos, descuentos, tasas, etc...









Esta es la pregunta que se hacen el 90% de las personas que se disponen a crear una tienda e-commerce con Joomla, para mi, la respuesta es sencilla: VirtueMart.
http://www.ellibrogordodepetete.com/2009/05/configurar-ip-fija-en-ubuntu.html
¿Porqué he utilizado JoomShopping?

Porque es la alternativa más sencilla para crear un catálogo de productos con Joomla, VirtueMart es muy potente y aunque se puede configurar como catálogo de productos deshabilitando el carrito, sigue siendo demasiado engorroso para un usuario que tiene pocos productos.

Otro punto a favor de JoomShopping es la gestión de imágenes, aunque VirtueMart en sus últimas versiones ya incorpora la posibilidad de subir más de una imágen por producto, la gestión de estas se hace desde un popup, puesto que los efectos de ajax sólo funcionan para la imágen principal.

Otra alternativa para el e-commerce es Os Commerce, un gestor de código libre muy potente, que nos permite montar una tienda on-line en unas pocas horas.

Módulo Last 5 para marketplace con precio

Este código es una modificación del módulo Last 5 original de Marketplace. Este módulo para Joomla (1.0.x) muestra los últimos anuncios clasificados insertados en Marketplace, además añade un icono al listado y muestra el precio del artículo debajo del nombre.

Podeis ver un ejemplo de este módulo funcionando en VenderMiWeb.com


Código:



<?



///////////////////////////////////////////////////////

// Módulo para marketplace que muestra los últimos 5



// anuncios publicados con el precio correspondiente

//

// Autor: I. Cisneros

// Blog: http://www.ellibrogordodepetete.com



// Proyecto: http://www.VenderMiWeb.com

// Fecha: 15/04/08

//

// Licencia: GPL

//



///////////////////////////////////////////////////////



// Dont allow direct linking


defined( '_VALID_MOS' ) or die( 'Error, no se permite el acceso directo al fichero.' );


$database->setQuery( "SELECT id FROM #__menu WHERE link LIKE '%com_marketplace%' AND published='1' ");



$mpItemid = $database->loadResult();

if ( strlen( $mpItemid) > 0 ) {

$mpItemidLink = "&Itemid=".$mpItemid;

}

else {

$mpItemidLink = "";

}


$database->setQuery( "SELECT a.id, a.category, a.ad_headline, a.ad_type, a.ad_image, a.ad_price AS af_date, b.name

FROM #__marketplace_ads AS a, #__marketplace_categories AS b

WHERE b.published='1' AND a.category = b.id AND a.published='1'

AND a.category = '6'

ORDER BY a.id DESC LIMIT 3 ");

$meslist = $database->loadObjectList();

$content ="<table>";

foreach ($meslist as $mes) {


$linkTarget = sefRelToAbs( "index.php?option=com_marketplace&page=show_ad&catid=".$mes->category."&adid=".$mes->id.$mpItemidLink);


if ($mes->ad_image > 0) {



$imageIcon = $mosConfig_live_site."/modules/mod_marketplace5_images/photo.gif";


}

else {
$imageIcon = $mosConfig_live_site."/modules/mod_marketplace5_images/transpixel.gif";

}


$precio = $mes->af_date;



if ($precio == ""){



$precio = "A convenir";



}


$content.="<tr><td valign=\"top\" width=\"20\"><center><img src=\"$imageIcon\" width=\"16\" height=\"16\" border=\"0\"></center></td><td valign=\"top\">"."<font size='2'><a href=\"$linkTarget\">".$mes->ad_headline."</a></font><br>"." Precio: ".$precio."</td></tr>";

}

$imageIcon2 = $mosConfig_live_site."/modules/mod_marketplace5_images/photo.gif";

$content.="</table>";

?>

Resetear contraseña admin en Joomla

Si has olvidado la contraseña del usuario admin de Joomla! tienes varias formas de restaurarla:

1.- Método fácil:
Pulsando en el link ¿Olvidó su contraseña? de su portal en Joomla!

2.- Método medio (con phpMyAdmin):

Editamos la tabla jos_users, buscamos el usuario admin y rellenamos los datos 4 y 5 de la siguiente forma, de esta manera habremos cambiado al contraseña del usuario admin por admin.

También podemos meter directamente el hash MD5 en el campo password, por ejemplo el hash MD5 para la contraseña admin es:
21232f297a57a5a743894a0e4a801fc3
3.- Método avanzado (SQL a pelo):
UPDATE `jos_users` SET `password` = MD5( 'nueva_password' ) WHERE `jos_users`.`username` = "admin";

com_migrator - Joomla

Estoy realizando pruebas para proceder a la migración de uno de mis portales Joomla 1.0.15 a la versión 1.5. Es un tema que había ido dejando pasar, pero cada vez me corre más prisa puesto que a finales de julio se abandonará definitivamente la rama Joomla 1.0.x

Para facilitar la migración de Joomla, se ha creado un script, com_migrator, que genera un fichero que podrás restaurar en la instalación de la versión 1.5.

Descargar com_migrator

Hay que tener en cuenta que com_migrator sólo restura las tablas básicas de Joomla (contenido, usuarios, etc...) pero no restaura ningún dato de aplicaciones de terceros, como galerías de videos, fotos, etc...

No obstante, com_migrator tiene la posibilidad de añadirle plugins para realizar el backup/restore de aplicaciones de terceros, así que si estás realizando la migración, revisa la web del desarrollador de tu componente porque es muy probable que haya creado un plugin para com_migrator.

Plantillas para Joomla

Estoy pensando en empezar un nuevo proyecto, así que mientras buscada plantillas para él, he decidido elaborar una pequeña lista de sitios para encontrar plantillas para tu Joomla:

Publicando noticias automáticamente en Joomla

En mi primer proyecto, andosilla.net, me comprometí a publicar todas las notas de prensa aparecidas en Diario de Navarra relacionadas con el pueblo.
Durante varios meses lo he hecho manualmente, pero hace unos días decidí intentar hacerlo automáticamente con algún Script.

He estado programando un spider que se conecta a las diferentes secciones de Diario de Navarra y sigue los enlaces de las noticias en busca de contenido interesante, que le paso en una variable llamada "Chivato". En caso de que encuentre una noticia interesante, la depura, limpia el código html le da un formato apto para las noticias del portal y lo inserta en la base de datos, en caso de que se haya requerido también pasará la noticia a portada.

Durante varios días he estado probando el script y corrigiendo pequeños fallos, una vez que lo he depurado y funciona perfectamente, he creado una tarea CRON en el servidor para que lo ejecute automáticamente 3 veces al día, para buscar posibles actualizaciones en las noticias. La orden del comando es:

wget http://www.andosilla.net/carpeta_scripts/script_noticias.php && rm -f script_noticias.php

De tal forma que ejecuto el script, que busca e inserta las noticias en la base de datos y despues borró el resultado del script, porque realmente no me interesa.

Despues de hacer esto, me he dado cuenta de que una de las cosas más importantes para que una web triunfe, es automatizar en la medida de lo posible todos los procesos, porque de esta forma, puedes dedicarle más tiempo a otras tareas que lo requieran (backups, altas en directorios, creación de logos, noticias personales, etc...)

Adjunto el código del Script que lee las noticias para que podia echarle un vistazo, es licencia GPL, así que si quereis podeis adaptarlo a vuestra página, es totalmente gratuito; pero por favor, publicar vuestro nuevo código, o al menos enviarmelo por e-mail y yo lo publicaré.

Descargar script PHP - leeddnauto.php

RSS para MarketPlace

Ayer terminé la programación del script en PHP para generar un Feed RSS con lós últimos anuncios de VenderMiWeb.com, es un Feed RSS 2.0, que dispone de una estructura bastante sencilla y de fácil programación.

Considero muy importante la incorporación de un Feed RSS con las últimas actualizaciones de nuestro sitio web, puesto que si a alguien le interesa la temática de la web no durará en suscribirse y estar seguros de que eso atraerá visitas a vuestro sitio web.
Si nuestros usuarios se inscriben a nuestro Feed RSS podrán ver las últimas actualizaciones sin necesidad de entrar a la página, a través de su gestor de noticias, cliente de correo electrónico o desde el propio navegador (Firefox incorporá un cliente RSS).
En el caso concreto de VenderMiWeb.com, el Canal RSS es importantisimo, porque permite a los domainers y a los compradores de páginas web, seguir al instante el mercado de páginas y dominios de VenderMiWeb.com para ser los primeros en contactar con el comprador. Lo he programado para que muestre las 10 últimas entradas, porque creo que si publicamos demasiados anuncios en el canal puede ser perjudicial, porque será incómodo de revisar.
FEED RSS PARA MARKETPLACE (PHP)
A continuación pongo el código del script PHP que he creado para crear un canal RSS con los últimos anuncios del componente MarketPlace de Joomla!.




";

echo "";

echo "";

echo "";

echo "link>http://www.vendermiweb.com/wrappers/rss/rss.php";

echo "es-ES";

$fecha = date ( "j del n de Y");

$hora = time();

$actual = $fecha . " - " . $hora;

echo "" . $actual . "";

echo "Ultimos anuncios publicados";

//incluimos la rutina de conexión a la base de datos

include("conexion.php");

//Hacemos el query buscando los últimos 10 anuncios publicados

$q = 'SELECT id, ad_headline, ad_text FROM jom_marketplace_ads ORDER BY id DESC LIMIT 10';

$anuncios= mysql_query($q,$link) or die ("Error al ejecutar el query");

while($registro = mysql_fetch_row($anuncios)){

echo "";

echo "";

echo "link>http://www.vendermiweb.com/index.php?option=com_marketplace&page=show_ad&adid=" . $registro[0] ."";

echo "" .

strip_tags(substr($registro[2],0,300));

if (strlen($registro[2]) > 300)

{echo "...";}

echo "
";

echo "
";

}

echo "
";

echo "
";

?>




Por otro lado, deberiamos tener en la misma carpeta un fichero "conexion.php" que contenga lo siguiente:


$link=mysql_connect("localhost", "usuario", "password");
mysql_select_db("base_datos",$link) OR DIE ("Error: Imposible Conectar a la base de datos");


Espero que os sea útil este script para todos los que utilizais MarketPlace, aunque recordar que si teneis activada la opción de revisar los anuncios por algún administrador antes de publicarlo, tendríais que cambiar la query para que busque solo los published=1.
Con la tecnología de Blogger.

- Copyright © Todos contra Google - El blog de Ignacio Cisneros - icisneros - Original design by Johanes Djogan modified by Ignacio Cisneros-