Ambientación: Domingo en la tarde, muy pero muy aburrido y cansado de jugar al C&C ZH.
Gracias a una
pequeña idea en el sitio oficial de MyBB, se me dio por poner MyCode en la descripciones de los foros (No se porque, ni tengo foro, pero lamentablemente soy así).
En este tutorial voy a explicar como realizar esto de una manera hard-coded. Es decir, modificando un archivo de MyBB.
La desventaja de esto es que deberás realizar los cambios luego de cada actualización de MyBB (Solamente si actualizan el archivo a editar, obvio :p).
Si aceptas realizar esta guía luego de cada actualización de MyBB que involucre el archivo en cuestión, los pasos para realizarlo son estos:
- Editar el archivo functions_forumlist.php ubicado en la carpeta inc.
- Buscar:
Código:
// Sanitize name and description of forum.
$forum['name'] = preg_replace("#&(?!\#[0-9]+;)#si", "&", $forum['name']); // Fix & but allow unicode
$forum['description'] = preg_replace("#&(?!\#[0-9]+;)#si", "&", $forum['description']); // Fix & but allow unicode
$forum['name'] = preg_replace("#&([^\#])(?![a-z1-4]{1,10};)#i", "&$1", $forum['name']);
$forum['description'] = preg_replace("#&([^\#])(?![a-z1-4]{1,10};)#i", "&$1", $forum['description']);
- Debajo agregar:
Código:
// Parser options for forum description
$parser_options = array(
"allow_html" => 0,
"allow_mycode" => 1,
"allow_smilies" => 1,
"allow_imgcode" => 1,
"filter_badwords" => 0
);
// Parse forum description
$forum['description'] = $parser->parse_message($forum['description'], $parser_options);
Este codigo hara que que puedan usar MyCode, emoticones e imagenes pero no permitirá usar HTML ni filtrara las palabras malas (?). Pueden cambiar eso cambiando el 0 por 1 o viceversa.
Nota: Intente lograr esto desde un plugin, sin resultado.
Nota para developers: El archivo functions_forumlist.php, encargado de realizar la lista de foros, solo tiene 1 hook al inicio de este, por lo que no puedo reemplazar la variable $forum['description']. Acepto ideas y otras soluciones que mi intelecto desconozca (?)
Edit: Ya me había olvidado:
Esto solo procesará el MyCode en el inicio del foro. No lo procesará en otra parte (Como por ejemplo en el AdminCP).
Edit 2: Resultado: