Debido a diversas razones y a la sencillez con la que realiza las publicaciones el plugin para difundir los nuevos temas en sitios sociales (Facebook y Twitter), me vi en la obligación de realizar una modificación a MyBBPublisher, la cual está enfocada sólo en Facebook.

Basándome en la referencia (API de facebook) y su método ‘post‘, encontré los parámetros que pueden ser enviados para publicar contenido en nuestra ‘fan page’.

MyBBPublisher por defecto maneja sólo estos dos valores:

  • access_token (indispensable)
  • message

Sin embargo, esto nos dá muchas limitaciones, ya que el contenido enviado a facebook queda muy vacío.

Revisando un poco más la referencia, se pueden encontrar los siguientes campos:

  • description -> La descripción del enlace.
  • link -> El enlace adjunto a la publicación.
  • picture -> Nos permite agregar una imagen a la publicación.
  • name -> El nombre del enlace.

Ahora la cuestión radica en conseguir la información necesaria para cada parámetro. Ya se hace necesario abrir el archivo “mybbpublisher.php” para comenzar a modificar su contenido.

Primero que todo, buscamos aproximadamente la línea 661 donde se encuentra:

$text_fb = stripslashes($mythread['subject']);

Y agregamos el siguiente código, el cual nos dará la descripción (texto) del tema recién publicado.

$message_fb = htmlspecialchars_uni(stripslashes($mythread['message']));

Explicando un poco, esto es fácil…Aplicamos el mismo método usado para obtener el ‘Asunto’ del tema, pero según mybb_posts para obtener el contenido del post se usa el campo ‘message‘.

Bien, hasta acá ya conseguimos la descripción, el siguiente paso es modificar el array que guarda la información que será enviada a facebook.

Se encuentra aproximadamente entre la línea 665 ~ 668

$datafb[] = array(
'type'=>'t',
'id'=>$mythread['tid'],
'msg' => $text_fb,
'url' => $url,
'description' => $message_fb, //Agregamos esta línea, que contiene la descripción.
'postid'=>$mythread['fb_id'],
'postuid'=>$mythread['fb_uid']);

Ahora hacemos exactamente lo mismo en las funciones:
mybbpublisher_editthread(): Aprox. líneas 765 y 779 ~ 781
mybbpublisher_approvethreads(): Aprox. líneas 820 y 833 ~ 835

El siguiente cambio se debe hacer en las líneas 1306 ~ 1316:

foreach($data as $msg_url)
{
$msg = $msg_url['msg'];
$url = $msg_url['url'];
$desc = $msg_url['description']; //Agregamos este valor.
$id = $msg_url['id'];
$type = $msg_url['type'];
$postid = $msg_url['postid'];
$postuid = $msg_url['postuid'];

Ya casi está terminada la modificación al plugin. El último paso es editar lo siguiente:

Debemos buscar el comentario:

//$message = "A new announcement, '".$msg."', has been posted to our forums".($url!="" ? " at: ".$url."." : ".");

Borrar lo que haya ahí, y poner este código:

$tpURL = $url; //El enlace del tema
$tpName = $msg; //El asunto del tema
 
//Limitar contenido de la descripción
//$tpContent = substr($desc, 0, 384).'...Continúa leyendo en nuestro foro';
 
//Eliminar BBCode.
$tpContent = preg_replace('/\[.+?\]/','',$desc);

Y luego, un poco más abajo, está el array que se encarga de reunir todo lo que se enviará y publicará en facebook.

$attachment =  array('access_token'    => $mybb->settings['mybbpublisher_fb_access_token_page'],                                                                                'message'        => $message,                                                    );

En ese array debemos de agregar los siguientes valores.

$attachment =  array(
'access_token'    => $mybb->settings['mybbpublisher_fb_access_token_page'],                        
'message'        => '¡Hay un nuevo tema en nuestro foro!', 
'picture' => 'http://i43.tinypic.com/wqxxsg.png', 
'link' => $tpURL, 
'name' => $tpName,
'description' => $tpContent,);

Recordar que los parámetros message y picture pueden ser libremente cambiados.

Eso es todo, una vez finalizado…Tendremos algo así:

Antes y después

Por cierto, esta es una modificación rápida y funcional, PERO algunas funciones deben ser leídas detenidamente ya que se deben de realizar también algunos cambios en ellas…

Aquí dejo el plugin, con la modificación anterior realizada.

http://db.tt/PiVr6Cun