Foros del Web » Programando para Internet » PHP »

Añadirle BBcodes a una pagina web

Estas en el tema de Añadirle BBcodes a una pagina web en el foro de PHP en Foros del Web. no, al mandar el articulo me sale [ b ] Hola [ / b ] pero los codigos bb sin espacios y no se me ...

  #31 (permalink)  
Antiguo 01/05/2009, 14:28
Avatar de fcdragons  
Fecha de Ingreso: agosto-2008
Ubicación: echo $_REQUEST['ubicacion'];
Mensajes: 474
Antigüedad: 16 años, 6 meses
Puntos: 13
no, al mandar el articulo me sale [ b ] Hola [ / b ] pero los codigos bb sin espacios y no se me pone negrita ni nada :(

ahora al mandar el articulo con algun bbcode dentro no se ve el contenido del articulo solo el codigo
__________________
SumarioWeb
@sumarioweb
BasicNews

Última edición por GatorV; 03/05/2009 a las 16:59
  #32 (permalink)  
Antiguo 01/05/2009, 23:50
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 11 meses
Puntos: 2534
Respuesta: Añadirle BBcodes a una pagina web

¿¿como estas imprimiendo tu variable en tu ciclo??
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #33 (permalink)  
Antiguo 02/05/2009, 01:48
Avatar de fcdragons  
Fecha de Ingreso: agosto-2008
Ubicación: echo $_REQUEST['ubicacion'];
Mensajes: 474
Antigüedad: 16 años, 6 meses
Puntos: 13
He estado probando muchas cosas pero no me funciona :(

Aver si me pueden ayudar

pues la pongo asi mira: Funcion BBcodes

Código:
<?php 

/* 
   Manual de como implementar BBcode 
   Creado por: OmaRPR y JuSePe 
   Para PHP-Hispano.net (#php_para_torpes) 
*/ 

// Para ejecutar esto pondras [echo bbcodes ($texto);] $texto es la variable que tiene el 
// contenido que le implantara los bbcodes. 

function bbcodes ($text) { 
    // Links para URLs. Formato: [web=http://php-hispano.net]PHPHispano[/web] 
    $finaltext = eregi_replace("\\[web=([^\\[]*)\\]([^\\[]*)\\[/web\\]", "<a target=\"_blank\" href=\"\\1\">\\2</a>", $text); 

    // Si no ponen atributos en [web]. Formato: [web]http://PHPHispano.net[/web] 
    $finaltext = eregi_replace("\\[web\\]([^\\[]*)\\[/web\\]","<a target=\"_blank\" href=\"\\1\">\\1</a>",$finaltext); 

    /* Este bucle lo hacemos por si ejempo usan u i y b en un solo texto :D */ 
    while($bucle < 5) { 
        // Para poner linea al texto. Formato: PHPHispano 
        $finaltext = eregi_replace("\\[u\\]([^\\[]*)\\[/u\\]","<u>\\1</u>", $finaltext); 

        // Para poner el text en italic. Formato: PHPHispano 
        $finaltext = eregi_replace("\\[i\\]([^\\[]*)\\[/i\\]","<em>\\1</em>", $finaltext); 

        // Para poner texto en negrita Formato: PHPHispano 
        $finaltext = eregi_replace("\\[b\\]([^\\[]*)\\[/b\\]","<strong>\\1</strong>", $finaltext); 

        $bucle++; 
    } 

    // Para centralizar un text. Formato: 
PHPHispano
$finaltext = eregi_replace("\\[center\\]([^\\[]*)\\[/center\\]","<center>\\1</center>", $finaltext); // Pone el texto como una cita. Formato: [cita]La calidad nunca es un accidente; siempre es el resultado de un esfuerzo de la inteligencia[/cita] $finaltext = eregi_replace("\\[cita\\]([^\\[]*)\\[/cita\\]","\n<div class=\"css_title\">Cita\n<div class=\"css\">\\1</div></div>", $finaltext); // Sacamos el color al codigo PHP. Formato:
Código PHP:
codigo 
preg_match_all ("/(\[)(php)(])(.*)(\[\/php\])/iU", $finaltext, $l); for ($i=0; $i< count($l[0]); $i++) { $finaltext = str_replace($l[0][$i],phpcojecolor($l[4][$i]),$finaltext); } // Retorno como queda el bbcode. return $finaltext; } function phpcojecolor ($php) { // Remplaza los <br \> por lineas. $php = str_replace("<br \>","\n",$php); ob_start(); // Abirmos el OB highlight_string($php); // Tiramos el codigo coloreado $cfinal = ob_get_contents(); // COjo el codigo que tire despues de haber abierto el ob ob_end_clean(); // Borro el ob para que no se vea en la web // A continuación hemos hecho uso de una función realizada por Anonimo y que copié de la web www.pastebin.com. Sirve para mostrar información sobre las funciones... [Proximas 7 lineas] $keycol=ini_get("highlight.keyword"); $manual="http://www.php.net/manual-lookup.php?lang=es&amp;pattern="; $cfinal=preg_replace( '{([\w_]+)(\s*</font>)'. '(\s*<font\s+color="'.$keycol.'">\s*\()}m', '<a href="'.$manual.'$1" title="Ayuda en PHP.net sobre $1" target="_blank">$1</a>$2$3', $cfinal); return "\n<div class=\"css_title\">C&oacute;digo PHP:\n<div class=\"css\">".$cfinal."</div></div>"; // Retorno el codigo PHP Coloreado } // Debes poner la siguiente clase en tu hoja de estilos o en su defecto en tu código html. // Estas clases es para que funciones lo de las citas y lo de mostrar codigo PHP :D // .css_title { // margin: 10px 5px 10px 15px; // font-size: 10px; // width: 90%; // // } // .css { // background: #DCDCDC; // border: 1px solid #8FB1EE; // border-left: 7px solid #8FB1EE; // font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; // font-size: 11px; // color: #000000; // padding: 5px; // width: 90%; // margin: 0px; // } ?>


y para que afecte al textarea lo pongo asi:

Código PHP:
$text bbcodes($notTexto); 
$text es la variable de todos los BBcodes y $notTexto es la del textarea donde escribe el articulo

:(

Probe a cambiarlo de orden y nada. Esque ya probe de todo :(

aver si alguien me puede ayudar :(
__________________
SumarioWeb
@sumarioweb
BasicNews

Última edición por GatorV; 03/05/2009 a las 17:01
  #34 (permalink)  
Antiguo 02/05/2009, 10:14
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 11 meses
Puntos: 2534
Respuesta: Añadirle BBcodes a una pagina web

caray, omite la función del BBCode ....

parece ser que tu no estás entendiendo...


¿¿como es el código de tu ciclo???

¿¿como esta tu código donde imprimes el <textarea/>??


__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #35 (permalink)  
Antiguo 02/05/2009, 10:28
Avatar de fcdragons  
Fecha de Ingreso: agosto-2008
Ubicación: echo $_REQUEST['ubicacion'];
Mensajes: 474
Antigüedad: 16 años, 6 meses
Puntos: 13
Respuesta: Añadirle BBcodes a una pagina web

mira este es toda la pagina donde se encuentra el textarea
Código:
<?php 

/* 
   Manual de como implementar BBcode 
   Creado por: OmaRPR y JuSePe 
   Para PHP-Hispano.net (#php_para_torpes) 
*/ 

// Para ejecutar esto pondras [echo bbcodes ($texto);] $texto es la variable que tiene el 
// contenido que le implantara los bbcodes. 

function bbcodes ($text) { 
    // Links para URLs. Formato: [web=http://php-hispano.net]PHPHispano[/web] 
    $finaltext = eregi_replace("\\[web=([^\\[]*)\\]([^\\[]*)\\[/web\\]", "<a target=\"_blank\" href=\"\\1\">\\2</a>", $text); 

    // Si no ponen atributos en [web]. Formato: [web]http://PHPHispano.net[/web] 
    $finaltext = eregi_replace("\\[web\\]([^\\[]*)\\[/web\\]","<a target=\"_blank\" href=\"\\1\">\\1</a>",$finaltext); 

    /* Este bucle lo hacemos por si ejempo usan u i y b en un solo texto :D */ 
    while($bucle < 5) { 
        // Para poner linea al texto. Formato: PHPHispano 
        $finaltext = eregi_replace("\\[u\\]([^\\[]*)\\[/u\\]","<u>\\1</u>", $finaltext); 

        // Para poner el text en italic. Formato: PHPHispano 
        $finaltext = eregi_replace("\\[i\\]([^\\[]*)\\[/i\\]","<em>\\1</em>", $finaltext); 

        // Para poner texto en negrita Formato: PHPHispano 
        $finaltext = eregi_replace("\\[b\\]([^\\[]*)\\[/b\\]","<strong>\\1</strong>", $finaltext); 

        $bucle++; 
    } 

    // Para centralizar un text. Formato: 
PHPHispano
$finaltext = eregi_replace("\\[center\\]([^\\[]*)\\[/center\\]","<center>\\1</center>", $finaltext); // Pone el texto como una cita. Formato: [cita]La calidad nunca es un accidente; siempre es el resultado de un esfuerzo de la inteligencia[/cita] $finaltext = eregi_replace("\\[cita\\]([^\\[]*)\\[/cita\\]","\n<div class=\"css_title\">Cita\n<div class=\"css\">\\1</div></div>", $finaltext); // Sacamos el color al codigo PHP. Formato:
Código PHP:
codigo 
preg_match_all ("/(\[)(php)(])(.*)(\[\/php\])/iU", $finaltext, $l); for ($i=0; $i< count($l[0]); $i++) { $finaltext = str_replace($l[0][$i],phpcojecolor($l[4][$i]),$finaltext); } // Retorno como queda el bbcode. return $finaltext; } function phpcojecolor ($php) { // Remplaza los <br \> por lineas. $php = str_replace("<br \>","\n",$php); ob_start(); // Abirmos el OB highlight_string($php); // Tiramos el codigo coloreado $cfinal = ob_get_contents(); // COjo el codigo que tire despues de haber abierto el ob ob_end_clean(); // Borro el ob para que no se vea en la web // A continuación hemos hecho uso de una función realizada por Anonimo y que copié de la web www.pastebin.com. Sirve para mostrar información sobre las funciones... [Proximas 7 lineas] $keycol=ini_get("highlight.keyword"); $manual="http://www.php.net/manual-lookup.php?lang=es&amp;pattern="; $cfinal=preg_replace( '{([\w_]+)(\s*</font>)'. '(\s*<font\s+color="'.$keycol.'">\s*\()}m', '<a href="'.$manual.'$1" title="Ayuda en PHP.net sobre $1" target="_blank">$1</a>$2$3', $cfinal); return "\n<div class=\"css_title\">C&oacute;digo PHP:\n<div class=\"css\">".$cfinal."</div></div>"; // Retorno el codigo PHP Coloreado } // Debes poner la siguiente clase en tu hoja de estilos o en su defecto en tu código html. // Estas clases es para que funciones lo de las citas y lo de mostrar codigo PHP :D // .css_title { // margin: 10px 5px 10px 15px; // font-size: 10px; // width: 90%; // // } // .css { // background: #DCDCDC; // border: 1px solid #8FB1EE; // border-left: 7px solid #8FB1EE; // font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; // font-size: 11px; // color: #000000; // padding: 5px; // width: 90%; // margin: 0px; // } ?> <?php // incluimos el archivo de conexion include ('db-cnx.php'); // recibimos el formulario if(isset($_POST['enviar']) && $_POST['enviar'] == 'Enviar'){ // comprobamos que el formulario no envie campos vacios if(!empty($_POST['notTitulo']) && $_POST['notTexto'] && $_POST['notCategoriaID']){ // creamos las variables y les asignamos los valores a insertar $notTitulo = $_POST['notTitulo']; $notTexto = $_POST['notTexto']; $notCategoriaID = $_POST['notCategoriaID']; $notTexto = htmlspecialchars($notTexto); $notTitulo = htmlspecialchars($notTitulo); // hacemos el INSERT en la BD $sqlInsertNot = mysql_query("INSERT INTO sn_noticias (notTitulo, notTexto, notCategoriaID) VALUES ('$notTitulo', '$notTexto', '$notCategoriaID')", $db_link) or die(mysql_error()); // enviamos un mensaje de exito echo "Los datos fueron gurdados correctamente. <a href='/index.php'>Volver a la pagina principal</a>"; }else{ // si el formulario envia algun campo vacio // enviamos un mensaje de error echo "Debe llenar todos los campos del formulario"; } } ?> <? $text = bbcodes($notTexto) ?> <!-- el formulario --> <form name="noticia" action="<?php $_SERVER['PHP_SELF']; ?>" method="post"> <p> Título de la Noticia<br /> <input type="text" name="notTitulo" size="50" /> </p> <p> Texto de la Noticia<br /> <textarea name="notTexto" rows="10" cols="50"></textarea> </p> <p> Categoría<br /> <select name="notCategoriaID"> <option value="">Escoger de la Lista</option> <?php // asignamos una categoria a la noticia // mediante un select $sqlQueryCat = mysql_query("SELECT * FROM sn_categorias", $db_link) or die(mysql_error()); // creamos un bucle while // que nos muestre todas las categorias // que tenemos guardadas en la BD while($rowCat = mysql_fetch_array($sqlQueryCat)){ echo "<option value='$rowCat[cat_ID]'>$rowCat[catCategoria]</option>"; } ?> </select> </p> <p> <input type="submit" name="enviar" value="Enviar" /> </p> </form>
ahi se encuentra todo
__________________
SumarioWeb
@sumarioweb
BasicNews
  #36 (permalink)  
Antiguo 02/05/2009, 10:33
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 11 meses
Puntos: 2534
Respuesta: Añadirle BBcodes a una pagina web

nunca.... una variable se imprime sola....


¿¿como esperabas que funcione si no la imprimes???


Código PHP:
<textarea name="notTexto" rows="10" cols="50"><?php echo $text?></textarea>

no confundas el name="notTexto" con tu variable $notTexto ¡¡no es lo mismo!!

y como te digo, no todo es automatico como esperabas...

y no se trata de ir probando, y probando... es mejor que leas un manual de PHP básico, por favor...


suerte!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #37 (permalink)  
Antiguo 02/05/2009, 10:46
Avatar de fcdragons  
Fecha de Ingreso: agosto-2008
Ubicación: echo $_REQUEST['ubicacion'];
Mensajes: 474
Antigüedad: 16 años, 6 meses
Puntos: 13
Respuesta: Añadirle BBcodes a una pagina web

Sigue sin funcionar :( ya puse en el textarea como dijiste pero he ido poniendo articulos con BBcode y nada.
y puse el $notTexto = bbcodes($text)
Porque con el htmlspecialchars() me funciono asi :) entonces creia que seria lo mismo con bbcodes
__________________
SumarioWeb
@sumarioweb
BasicNews
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:22.