Recordad que para pedir soporte alguno, debéis facilitar los datos de soporte oportunos por favor, mirad aquí y leer las Normas generales del foro, esto nos servirá de ayuda para dar el mejor soporte..
Gracias.
La Administración de phpBB España.
Agregar BBCodes personalizados desde archivos PHPTema Solucionado
Agregar BBCodes personalizados desde archivos PHP
Quiero hacer un bbcode que llame a una función de PHP y me gustaría saber cómo poder hacer ese bbcode mediante el uso de los archivos de PHP.
Espero que alguien me pueda ayudar, porque no es que tenga unos conocimientos avanzadísimos de PHP pero a la hora de entender los distintos archivos de phpBB me lío bastante mucho... XD
Gracias al que me ayude o lo intente.
- leviatan21
- Mensajes: 8279
- Registrado: 26 Mar 2008, 20:06
- Género:
- Edad: 54
Re: Agregar BBCodes personalizados desde archivos PHP
No doy soporte por privado : tenga en cuenta que su problema, también puede ser el problema de otro usuario.
Cualquier mensaje privado no solicitado será ignorado
"Education is what remains after one has forgotten everything he learned in school" - Albert Einstein
Re: Agregar BBCodes personalizados desde archivos PHP
Lo único que quería era un BBCode que diese un número al azar (1 o 2) y que ese número se conservase para siempre en ese mismo mensaje, es decir, que aunque editase el mensaje de nuevo siempre le saldría ese número para ese mensaje.
- leviatan21
- Mensajes: 8279
- Registrado: 26 Mar 2008, 20:06
- Género:
- Edad: 54
Re: Agregar BBCodes personalizados desde archivos PHP
No doy soporte por privado : tenga en cuenta que su problema, también puede ser el problema de otro usuario.
Cualquier mensaje privado no solicitado será ignorado
"Education is what remains after one has forgotten everything he learned in school" - Albert Einstein
Re: Agregar BBCodes personalizados desde archivos PHP
El único problema es que no se cómo hacer un bbcode personalizado porque, aunque se más o menos PHP, no comprendo muy bien como funciona phpBB con tantos archivos. Por eso he preguntado aquí, no era por molestar. Aunque si conoces algún tutorial que explique cómo funciona phpBB y qué cosas hay en qué archivo también me conformaría.
Gracias.
- leviatan21
- Mensajes: 8279
- Registrado: 26 Mar 2008, 20:06
- Género:
- Edad: 54
Re: Agregar BBCodes personalizados desde archivos PHP Tema Solucionado
Si desde el ACP creas un bbcode, haces estos pasos: ( ejemplo de bbcode center )
Uso de BBCode:
Código: Seleccionar todo
[center]{TEXT}[/center]
Código: Seleccionar todo
<center>{TEXT}</center>
Código: Seleccionar todo
[center]texto a ver centrado[/center]
bbcode_match
Código: Seleccionar todo
[center]{TEXT}[/center]
Código: Seleccionar todo
<center>{TEXT}</center>
Código: Seleccionar todo
!\[center\](.*?)\[/center\]!ies
Código: Seleccionar todo
'[center:$uid]'.str_replace(array("\r\n", '\"', '\'', '(', ')'), array("\n", '"', ''', '(', ')'), trim('${1}')).'[/center:$uid]'
Código: Seleccionar todo
!\[center:$uid\](.*?)\[/center:$uid\]!s
second_pass_match
Código: Seleccionar todo
!\[center:$uid\](.*?)\[/center:$uid\]!ies
!s
a !ies
y ahí radica parte de la magia.second_pass_match
Código: Seleccionar todo
$this->centrar_texto('$1')
[ center ]
y [/ center ]
, es lo que le indicamos al crear el bbcode y colocamos {TEXT}
el comienzo es siempre igual,
$this->
porque le indicaremos que será un nuevo método de la clase bbcode ya existente en phpbbluego sigue el nombre de nuestra función a utilizar, en este caso la llamé
centrar_texto
que es un nombre relacionado con lo que voy a hacerpor último vemos que dice
('$1')
y significa pasamos como referencia a esa función el contenido de {TEXT}
Ahora el paso perteneciente al código php
Abrir:
Código: Seleccionar todo
raiz/includes/bbcodes.php
Código: Seleccionar todo
}
?>
Código: Seleccionar todo
function centrar_texto($text)
{
// Devolvemos el texto en mayusculas
return strtoupper($text);
}
{TEXT}
para ser procesado en la función y ser devuelto en el return, en este caso devuelvo el texto en mayusculas.Ahora tu bbode lo vería igual salvo el nombre, lo imagino de esta manera:
Código: Seleccionar todo
bbcode_match [random]{TEXT}[/random]
bbcode_tpl <span>{TEXT}</span>
first_pass_match !\[random\](.*?)\[/random\]!ies
first_pass_replace '[random:$uid]${1}[/random:$uid]'
second_pass_match !\[center:$uid\](.*?)\[/center:$uid\]!ies
second_pass_replace $this->random_pass('$1')
Código: Seleccionar todo
function random_pass($text)
{
// Ignoro el $text y devuelvo un número al azar entre 1 y 20
$min = 1;
$max = 20;
return rand($min, $max);
}
No doy soporte por privado : tenga en cuenta que su problema, también puede ser el problema de otro usuario.
Cualquier mensaje privado no solicitado será ignorado
"Education is what remains after one has forgotten everything he learned in school" - Albert Einstein