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:
Código PHP:
$text_fb = stripslashes($mythread['subject']);
Y agregamos el siguiente código, el cual nos dará la descripción (texto) del tema recién publicado.
Código PHP:
$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
Código PHP:
$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:
Código PHP:
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:
Código PHP:
//$message = "A new announcement, '".$msg."', has been posted to our forums".($url!="" ? " at: ".$url."." : ".");
Borrar lo que haya ahí, y poner este código:
Código PHP:
$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.
Código PHP:
$attachment = array('access_token' => $mybb->settings['mybbpublisher_fb_access_token_page'], 'message' => $message, );
En ese array debemos de agregar los siguientes valores.
Código PHP:
$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í:
![[Imagen: qxp3kx.png]](http://i41.tinypic.com/qxp3kx.png)
(Lo de arriba es el antes, y abajo está el 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