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

Foros donde podréis dejar vuestras dudas sobre phpBB 3.0.x
Cerrado
Avatar de Usuario
Flerex
Observador/a
Mensajes: 41
Registrado: 16 Jun 2012, 13:01
Género:

Agregar BBCodes personalizados desde archivos PHP

#1

Mensaje por Flerex »

¡Hola!

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.

Avatar de Usuario
Flerex
Observador/a
Mensajes: 41
Registrado: 16 Jun 2012, 13:01
Género:

Re: Agregar BBCodes personalizados desde archivos PHP

#2

Mensaje por Flerex »

UP

Avatar de Usuario
Flerex
Observador/a
Mensajes: 41
Registrado: 16 Jun 2012, 13:01
Género:

Re: Agregar BBCodes personalizados desde archivos PHP

#3

Mensaje por Flerex »

UP

Avatar de Usuario
leviatan21
Ex Staff
Mensajes: 8279
Registrado: 26 Mar 2008, 20:06
Género:
Edad: 54

Re: Agregar BBCodes personalizados desde archivos PHP

#4

Mensaje por leviatan21 »

No se si pueda ayudar, pero sería bueno que nos expliques como funcionaría ese bbcode, como se compone, contenido, tal como lo crearías en el ACP, etc
Normas de phpBB España | Normas de Soporte
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 :twisted:

"Education is what remains after one has forgotten everything he learned in school" - Albert Einstein

Avatar de Usuario
Flerex
Observador/a
Mensajes: 41
Registrado: 16 Jun 2012, 13:01
Género:

Re: Agregar BBCodes personalizados desde archivos PHP

#5

Mensaje por Flerex »

El BBCode sería un BBCode con PHP. No se como se haría, aunque he visto mods que hacen BBCodes así.

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.

Avatar de Usuario
leviatan21
Ex Staff
Mensajes: 8279
Registrado: 26 Mar 2008, 20:06
Género:
Edad: 54

Re: Agregar BBCodes personalizados desde archivos PHP

#6

Mensaje por leviatan21 »

Yo he creado varios bbcodes con php, ( ABBC3 ) pero lo que pides que genere un numero al azar y que se preserve al editar, no tengo la mas mínima idea de como lograrlo con bbcodes y php
Normas de phpBB España | Normas de Soporte
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 :twisted:

"Education is what remains after one has forgotten everything he learned in school" - Albert Einstein

Avatar de Usuario
Flerex
Observador/a
Mensajes: 41
Registrado: 16 Jun 2012, 13:01
Género:

Re: Agregar BBCodes personalizados desde archivos PHP

#7

Mensaje por Flerex »

Yo creo que se hacerlo. Mi idea sería hacer un campo en la tabla de los mensajes que pusiese ya su número al iniciar un tema y entonces cuando se pusiese el BBCode simplemente se llamaría a ese número.

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.

Avatar de Usuario
leviatan21
Ex Staff
Mensajes: 8279
Registrado: 26 Mar 2008, 20:06
Género:
Edad: 54

Re: Agregar BBCodes personalizados desde archivos PHP  Tema Solucionado

#8

Mensaje por leviatan21 »

Yo la manera que conozco es accediendo a la base de datos y haciendo unos cambios, te lo explico con un ejemplo:

Si desde el ACP creas un bbcode, haces estos pasos: ( ejemplo de bbcode center )
Uso de BBCode:

Código: Seleccionar todo

[center]{TEXT}[/center]
Reemplazo HTML

Código: Seleccionar todo

<center>{TEXT}</center>
Línea de ayuda

Código: Seleccionar todo

[center]texto a ver centrado[/center]
Cuando miras la tabla phpbb_bbcodes con tu administrador de base de datos ( generalmente phpmyadmin ) verás estas columnas con estos contenidos:
bbcode_match

Código: Seleccionar todo

[center]{TEXT}[/center]
bbcode_tpl

Código: Seleccionar todo

<center>{TEXT}</center>
first_pass_match

Código: Seleccionar todo

!\[center\](.*?)\[/center\]!ies
first_pass_replace

Código: Seleccionar todo

'[center:$uid]'.str_replace(array("\r\n", '\"', '\'', '(', ')'), array("\n", '"', ''', '&#40;', '&#41;'), trim('${1}')).'[/center:$uid]'
second_pass_match

Código: Seleccionar todo

!\[center:$uid\](.*?)\[/center:$uid\]!s
Hasta aquí no hay nada especial, es un bbcode común y corriente, que pasa como parámetro un texto a ser centrado, pero si deseas crear un método php hay que hacer unos cambios en dos columnas:
second_pass_match

Código: Seleccionar todo

!\[center:$uid\](.*?)\[/center:$uid\]!ies
Explico, aquí la diferencia importante, si miras el valor anterior, le he quitado mucho código, lo que le quito es un poco de reemplazos, pero lo importante es el final que pasa de !s a !ies y ahí radica parte de la magia.
second_pass_match

Código: Seleccionar todo

$this->centrar_texto('$1')
Explico, aquí lo que hacemos es indicarle el nombre de una función a la que llamará cuando tenga que mostrar el bbcode, y pasará como referencia lo que se encuentre entre las etiquetas [ 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 phpbb
luego 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 hacer
por ú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
Buscar: últimas lineas de ese archivo

Código: Seleccionar todo

}

?>
Antes, agregar:

Código: Seleccionar todo

	function centrar_texto($text) 
	{
		// Devolvemos el texto en mayusculas
		return strtoupper($text);
	}
esta es la función que le indicamos en el campo second_pass_match, la cual recibe un parámetro que será el contenido de {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')
y en el archivo bbcode.php

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);
	}
Espero te harás una idea de como funciona un bbcode que llame a una función específica
Normas de phpBB España | Normas de Soporte
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 :twisted:

"Education is what remains after one has forgotten everything he learned in school" - Albert Einstein

Avatar de Usuario
Flerex
Observador/a
Mensajes: 41
Registrado: 16 Jun 2012, 13:01
Género:

Re: Agregar BBCodes personalizados desde archivos PHP

#9

Mensaje por Flerex »

Muchísimas gracias. Eres el mejor.

Cerrado

Volver a “Foros de Soporte 3.0.x”