Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: aaronduran2 en 1 Abril 2010, 19:42 pm



Título: Creando BBCode
Publicado por: aaronduran2 en 1 Abril 2010, 19:42 pm
Hola. Estoy intentando crear un BBCode para mi foro similar al "code", pero para colocar enlaces de descarga. La base la tengo hecha, pero hay algo que no soy capaz de solucionar.
Introduzcas el texto que introduzcas, los enlaces te los detecta como tal, y por lo tanto, te permite hacer clic en él. Lo que yo quería crear era algo como el "code", que no lo detecte como enlace, sino como texto normal.

¿Alguien tiene alguna idea de cómo podría hacerlo?
Gracias de antemano ;)


Título: Re: Creando BBCode
Publicado por: Shell Root en 1 Abril 2010, 19:53 pm
Emmm no entendì...  :silbar: Explica un poco màs y danos un ejemplo.


Título: Re: Creando BBCode
Publicado por: aaronduran2 en 1 Abril 2010, 19:59 pm
Te explico:

Si pongo un enlace entre las etiquetas "code":

Código:
http://www.google.es

Es sólo texto, no me permite hacer clic y que me lleve a Google.

El caso es que hice un BBCode que consiste en algo parecido a esta etiqueta, pero para añadir enlaces de descarga, y por lo tanto, con un diseño distinto. El problema es que los enlaces me los detecta como si estuviesen entre la etiqueta "url", pero lo que me interesaba era que fuese como en "code", que no se puedan clickear.

Este es el código que uso:

Código
  1. <table border="0" cellspacing="0" cellpadding="0">
  2.    <tr>
  3.        <td height="39" colspan="3">
  4.        <table border="0" width="100%" cellspacing="0" cellpadding="0">
  5.            <tr>
  6.                <td width="113" background="images/extras/down1.gif" height="39">
  7.                &nbsp;</td>
  8.                <td background="images/extras/down2.gif">&nbsp;</td>
  9.                <td width="48" background="images/extras/down3.gif" height="39">
  10.                &nbsp;</td>
  11.            </tr>
  12.        </table>
  13.        </td>
  14.    </tr>
  15.    <tr>
  16.        <td bgcolor="#C0DDFF" width="10">&nbsp;</td>
  17.        <td bgcolor="#C0DDFF">
  18.        <table border="1" width="100%" cellspacing="0" cellpadding="0" style="border-collapse: collapse; border: 1px solid #007FD8" bgcolor="#FFFFFF">
  19.            <tr>
  20.                <td style="font-family: Arial; font-size: 12px; color: #707070">
  21.                <p style="margin: 5px">$1</td>
  22.            </tr>
  23.        </table>
  24.        </td>
  25.        <td bgcolor="#C0DDFF" width="10">&nbsp;</td>
  26.    </tr>
  27.    <tr>
  28.        <td colspan="3">
  29.        <table border="0" width="100%" cellspacing="0" cellpadding="0">
  30.            <tr>
  31.                <td background="images/extras/down4.gif" height="11" width="11">
  32.                <img border="0" src="images/extras/space.gif" width="1" height="1"></td>
  33.                <td bgcolor="#C0DDFF" height="11">
  34.                <img border="0" src="images/extras/space.gif" width="1" height="1"></td>
  35.                <td background="images/extras/down5.gif" height="11" width="11">
  36.                <img border="0" src="images/extras/space.gif" width="1" height="1"></td>
  37.            </tr>
  38.        </table>
  39.        </td>
  40.    </tr>
Espero haberme explicado.

Un saludo.


Título: Re: Creando BBCode
Publicado por: Nakp en 2 Abril 2010, 02:15 am
 ese es el codigo html... imagino que lo estas haciendo en php y ese es el codigo que se necesita :P


Título: Re: Creando BBCode
Publicado por: aaronduran2 en 2 Abril 2010, 02:23 am
El código es en HTML, no en PHP. Son BBCodes, y que yo sepa se hacen para utilizar HTML.

Un saludo.


Título: Re: Creando BBCode
Publicado por: Nakp en 2 Abril 2010, 02:30 am
 lol entonces no tienes ni idea de lo que haces xDDD


para comenzar BBC significa bulletin board code, o en español: codigo de tablon de bolentines y sirve para dar formato al texto a publicar sin utilizar html directamente, por lo tanto necesitas un lenguaje DINAMICO para convertir este codigo en html, conclusion: un bbc es para NO usar html :xD


necesitas un codigo que pase de [etiqueta]texto[/etiqueta] a algun formato html como <etiqueta>texto</etiqueta> en el caso mas simple


salu2


Título: Re: Creando BBCode
Publicado por: aaronduran2 en 2 Abril 2010, 02:32 am
Me refería a eso, que es para simplificar el uso del HTML, pero el código a reemplazar se hace en HTML.
A no ser que se moviese por ser los boletines en PHP.

;)


Título: Re: Creando BBCode
Publicado por: Nakp en 2 Abril 2010, 02:35 am
mmm creo que el problema esta entre el teclado y la silla, html no es un lenguaje dinamico y no se puede reemplazar solo con html... explica como estas pasando de bbc a html


Título: Re: Creando BBCode
Publicado por: aaronduran2 en 2 Abril 2010, 02:39 am
Me explico.

Utilizo MyBB, y en la sección de MyCodes (para crear los BBCodes personalizados), puedes poner un código HTML que reemplazará a lo que pongas entre las etiquetas. Por ejemplo, si pongo [linea], y en el reemplazo pongo <hr>, me lo reemplazará por una línea horizontal. Sirve con cualquier código HTML.

Espero que me entiendas.
Un saludo ;)


Título: Re: Creando BBCode
Publicado por: Nakp en 2 Abril 2010, 02:45 am
 al fin :) si yo fuese adivino ganaria millones xDD


en el ejemplo que esta en el panel de administracion te dejan uno muy claro :P

\[b\](.*?)\[/b\] -> <strong>$1</strong>

usa:

\[tuetiqueta\](.*?)\[/tuetiqueta\] -> <pre>$1</pre>

aunque me gustaria que pusieras el que estas usando y te da problemas :P


Título: Re: Creando BBCode
Publicado por: aaronduran2 en 2 Abril 2010, 02:49 am
Jajajaj

Lo de "pre" lo había intentado, pero los enlaces siguen apareciendo como hipervínculos...
Lo que uso es el código de arriba, de esa forma aparecen con hipervínculos, pero no soy capaz de hacer que queden iguales que con "code", que no sean clickeables.

Un saludo ;)


Título: Re: Creando BBCode
Publicado por: Nakp en 2 Abril 2010, 02:56 am
 he probado en el demo de mybb y funciona correctamente... tendras una version "obsoleta"?


Título: Re: Creando BBCode
Publicado por: aaronduran2 en 2 Abril 2010, 03:02 am
No, está actualizada a la última versión...

Pues no sé qué puede fallar, me pasa con todos los navegadores.
Tendré que seguir investigando.

Te dejo el enlace de una página de prueba para que lo compruebes, en la caja de descarga.
ENLACE (http://otakusinn.siften.es/showthread.php?tid=2)

Gracias, y un saludo ;)


Título: Re: Creando BBCode
Publicado por: Nakp en 2 Abril 2010, 03:14 am
 ah... pero pasa a partir del 2do... por lo tanto funciona correctamente hasta encontrar un salto de linea :P





he probado en el demo otra vez y deberia funcionar aunque tenga un salto de linea... pega la expresion regular que usas, imagino que el sustituto es el que pusiste anteriormente... prueba con
 
Código
  1. <table border="0" cellspacing="0" cellpadding="0">
  2.    <tr>
  3.        <td height="39" colspan="3">
  4.        <table border="0" width="100%" cellspacing="0" cellpadding="0">
  5.            <tr>
  6.                <td width="113" background="images/extras/down1.gif" height="39">
  7.                &nbsp;</td>
  8.                <td background="images/extras/down2.gif">&nbsp;</td>
  9.                <td width="48" background="images/extras/down3.gif" height="39">
  10.                &nbsp;</td>
  11.            </tr>
  12.        </table>
  13.        </td>
  14.    </tr>
  15.    <tr>
  16.        <td bgcolor="#C0DDFF" width="10">&nbsp;</td>
  17.        <td bgcolor="#C0DDFF">
  18.        <table border="1" width="100%" cellspacing="0" cellpadding="0" style="border-collapse: collapse; border: 1px solid #007FD8" bgcolor="#FFFFFF">
  19.            <tr>
  20.                <td style="font-family: Arial; font-size: 12px; color: #707070">
  21.                <pre style="margin: 5px">$1</pre></td>
  22.            </tr>
  23.        </table>
  24.        </td>
  25.        <td bgcolor="#C0DDFF" width="10">&nbsp;</td>
  26.    </tr>
  27.    <tr>
  28.        <td colspan="3">
  29.        <table border="0" width="100%" cellspacing="0" cellpadding="0">
  30.            <tr>
  31.                <td background="images/extras/down4.gif" height="11" width="11">
  32.                <img border="0" src="images/extras/space.gif" width="1" height="1"></td>
  33.                <td bgcolor="#C0DDFF" height="11">
  34.                <img border="0" src="images/extras/space.gif" width="1" height="1"></td>
  35.                <td background="images/extras/down5.gif" height="11" width="11">
  36.                <img border="0" src="images/extras/space.gif" width="1" height="1"></td>
  37.            </tr>
  38.        </table>
  39.        </td>
  40.    </tr>

acostumbra a cerrar correctamente las etiquetas :P

pd: necesito que lo regresen a desarrollo web :xD


Título: Re: Creando BBCode
Publicado por: aaronduran2 en 2 Abril 2010, 03:19 am
Me lié con tanto pre jajaj

Sigue igual, y lo de que suceda a partir del 2º tienes razón, si pongo la etiqueta, un salto de línea, y el enlace, ya se fastidia.

La expresión regular es como la del ejemplo:
\[dcaja\](.*?)\[/dcaja\]


Título: Re: Creando BBCode
Publicado por: Nakp en 2 Abril 2010, 03:36 am
 es extraño... la he probado en el demo y funciona perfectamente :-\


lo raro es que esta generando un codigo distinto


<pre style="margin: 10px; padding: 1px;">http://www.google.es/archivo1.zip<br />
<a href="http://www.google.es/archivo2.zip" target="_blank">http://www.google.es/archivo2.zip</a></pre>


Título: Re: Creando BBCode
Publicado por: aaronduran2 en 2 Abril 2010, 03:40 am
No, no es que sea distinto, es que cambié el código yo :xD
Perdona por la confusión.

No sé a que se puede deber... Voy a seguir buscando a ver si lo soluciono.

Un saludo ;)


Título: Re: Creando BBCode
Publicado por: aaronduran2 en 3 Abril 2010, 05:35 am
Vuelvo de nuevo jaja.

Viendo el código, me fijé en que añade la etiqueta URL automáticamente a partir del 2º, por lo que solo tendría que impedir que la añadiese, pero no sé me ocurre cómo puedo hacerlo...

Un saludo ;)


Título: Re: Creando BBCode
Publicado por: Nakp en 3 Abril 2010, 07:24 am
por casualidad tienes algo en "Parse Order" ?


Título: Re: Creando BBCode
Publicado por: aaronduran2 en 4 Abril 2010, 20:14 pm
¿Parse Order?

No sé dónde viene eso, la verdad.
Al final tomé otra solución. Edité la clase PHP que parsea el texto, le añadí la misma función que utiliza con la etiqueta "code" y le puse el estilo que quería.

Funciona perfectamente, así que podría dar esto por cerrado (pero si se encuentra solución mejor, porque es fastidioso tener que editar el código PHP).

Un saludo.