[Ayuda] ¿Donde se encuentran las sentencias sql?
Saludos amigos...
Necesito hacer una modificación en los insert de los mensajes en la base de datos... pero no los encuentro...
¿alguien me puede decir donde están?
Graciassss
Necesito hacer una modificación en los insert de los mensajes en la base de datos... pero no los encuentro...
Graciassss
e.e estamos iguales pero yo cuando no encuentro uno en especifico lo creo
Antes de ponerte a tocar las sentencias, primero asegurate de que lo que quieres hacer se tiene que hacer mediante ellas.
Lo que quiero es hacer un redireccionador de enlaces externos en los post.
Tengo varias opciones, una de ellas es modificar el enlace antes de meter el post en la base de datos. Pero no encuentro donde están las sentencias mysql
Tengo varias opciones, una de ellas es modificar el enlace antes de meter el post en la base de datos. Pero no encuentro donde están las sentencias mysql
Lo mejor es modificar el mensaje antes de que se muestre al usuario, nunca modifiques datos antes de insertar a la BD.
La hook que ocupas es parse_message_start o parse_message_end.
La hook que ocupas es parse_message_start o parse_message_end.
27 Feb, 2015, 12:45 am Omar G. wrote:
Lo mejor es modificar el mensaje antes de que se muestre al usuario, nunca modifiques datos antes de insertar a la BD.
La hook que ocupas es parse_message_start o parse_message_end.
Saludos..... Voy a hacerte caso y no tocar la base de datos.
Resulta que los contenidos de los post se encuentra en el array $post['message'] , el cual lo crea en inc/functions_post.php.
Tocando ese archivo de momento he conseguido para hacer pruebas, con la función str_replace, cambiar caracteres en los post, he cambiado las "a" por "c".
Ahora intentaré con la función preg_replace cambiar el contenido de los enlaces que se encuentran en los post.
Lo que quiero es que los enlaces que apuntan fuera de mi página primero pasen por una página de redirección.
Iré diciendo avances
Ahmm, si entiendo bien, ¿quieres que los links que se publican en tu foro sean redireccionados a una página especial?
Edito: Ya he entendido, de hecho existe un plugin para hacer lo que quieres, se llama 'SafeLink'.
Saludos.
Edito: Ya he entendido, de hecho existe un plugin para hacer lo que quieres, se llama 'SafeLink'.
Saludos.
27 Feb, 2015, 3:45 am AndresXZ09 wrote:
Ahmm, si entiendo bien, ¿quieres que los links que se publican en tu foro sean redireccionados a una página especial?
Edito: Ya he entendido, de hecho existe un plugin para hacer lo que quieres, se llama 'SafeLink'.
Saludos.
Gracias por la información
Si no lo consigo seguiré tu información.
El sindrome de querer inventar lo que ya esta inventado es normal, pero no muy sano: http://community.mybb.com/mods.php?action=view&pid=318
Hook:
Funcion:
1. El hook que ira dentro del plugin que se supone que has creado para tal fin, con la funcion a llamar.
2. La funcion. No hace falta declarar $post['message'] porque ya viene en el argumento $message.
3. Aqui defines el archivo que (se supone) que has creado para la redireccion. La url a redirigir pasara por el parametro $_GET['url'].
Para diferenciar entre los externos, ya te dejo a ti que uses la imaginación.
Si no quieres hacer un plugin, utiliza este codigo:
Abre el archivo inc/class_parser.php. Busca esto:
Y cambialo por esto:
Yo lo intente hacer para un futuro plugin, y es dificil. Tienes que codificar los enlaces porque los caracteres especiales no funcionan bien.
Suerte.
Hook:
$plugins->add_hook("parse_message_end", "nombreplugin_safelink");//1Funcion:
function nombreplugin_safelink($message){ //2
global $mybb;
$script = $mybb->settings['bburl'].'script-redireccion.php?url='; //3
$message = str_replace('href="'. 'href="$script', $message);
return $message;
}
1. El hook que ira dentro del plugin que se supone que has creado para tal fin, con la funcion a llamar.
2. La funcion. No hace falta declarar $post['message'] porque ya viene en el argumento $message.
3. Aqui defines el archivo que (se supone) que has creado para la redireccion. La url a redirigir pasara por el parametro $_GET['url'].
Para diferenciar entre los externos, ya te dejo a ti que uses la imaginación.
Si no quieres hacer un plugin, utiliza este codigo:
Abre el archivo inc/class_parser.php. Busca esto:
$name = preg_replace("#&\#([0-9]+);#si", "&#$1;", $name); // Fix & but allow unicode
$link = "<a href=\"$fullurl\" target=\"_blank\"{$nofollow}>$name</a>";
return $link; Y cambialo por esto:
/* Codigo original:
$name = preg_replace("#&\#([0-9]+);#si", "&#$1;", $name); // Fix & but allow unicode
$link = "<a href=\"$fullurl\" target=\"_blank\"{$nofollow}>$name</a>";
return $link;
*/
global $mybb, $settings;
$script = $mybb->settings['bburl'].'script-redireccion.php?url='; //3
$urldelforo = $settings['bburl'];
$buscar_procedencia = strpos($fullurl, $urldelforo);
$name = preg_replace("#&\#([0-9]+);#si", "&#$1;", $name);
if ($buscar_procedencia === false) {
$link = "<a href=\"".$script."".$fullurl."\" target=\"_blank\"{$nofollow}>$name</a>";
return $link;
} else {
$link = "<a href=\"$fullurl\" target=\"_blank\">$name</a>";
return $link;
}
/* Safelink */ Yo lo intente hacer para un futuro plugin, y es dificil. Tienes que codificar los enlaces porque los caracteres especiales no funcionan bien.
Suerte.
- Temas personalizados (HTML5, flat, responsive, SEO Friendly, etc)
- Plugins y sistemas personalizados (Galería de imagenes, Bolsa de Trabajo, etc)
![[Image: signature.png]](https://omarg.me/cache/images/signature.png)