Agregando soporte para compartir noticias con Redes Sociales en Geeklog

Aunque el soporte para compartir información con las Redes Sociales más populares ya está contemplado para futuras versiones de Geeklog, podemos improvisarlo con algunos pasos. Lo que haremos será algo sencillo.

Como ya mencionábamos para pasar variables al “layout” debemos hacerlo a través del lib-custom, y ya que la actual versión de Geeklog (1.6.1) ya nos permite exportar estas variables a los archivos para visualizar las noticias (storytext, featuredstorytext y archivestorytext), haremos un pequeño ejercicio para Facebook (complaciendo una petición publicada en el foro de Geeklog Hispano).

Empezaremos editando el archivo:

~/directorio_del_nucleo/system/lib-custom.php

Localizamos la función CUSTOM_templateSetVars y agregamos la variable que usaremos.

function CUSTOM_templateSetVars($templatename, &$template)
{

    switch ($templatename) {


    case 'storytext':

		$template->set_var ('red_social', generar_url_rs();
		break;


    }

}

Y en el mismo lib-custom.php agregaremos la función generar_url_rs() que generará en enlace correspondiente para cada noticia.

 

function generar_url_rs(){
	global $_CONF, $_TABLES;

	COM_setArgNames (array ('story'));

        $articleUrl = COM_buildUrl($_CONF['site_url'] . '/article.php?story='. $story);
        $title = DB_getItem($_TABLES['stories'], "title", "sid='$story'");
	
        $retval = COM_createLink('Facebook', 'http://www.facebook.com/share.php?u='. $articleUrl . '&t='. $title) ;

return $retval;
}

Finalmente usaremos la variable generada  en storytext.thtml y featuredstorytext.thtml (ubicados dentro de "layout"), lo ponemos en cualquier parte que queramos aparezca.

{red_social}

 

Podemos hacer lo mismo para agregar más redes,  solo habría que buscar la sintaxis de la URL para cada uno y con un poco de imaginación podemos agruparlos, crear un menú desplegable (con css) o lo que se nos ocurra.

 

También podemos generar los enlaces desde el mismo "layout" usando las variables definidas por defecto ( {story_title} y {article_url}), de la siguiente manera:

 

     Facebook

* ¡Importante!: article_url y story_title deben ir entre { }

Pero la ventaja que tenemos mendiante el lib-custom, es que podemos hacer más "cosas", por ejemplo crear una función para generar URL cortas para twitter.


0 comentarios