31
Tutoriales PHP / [Tutorial] Hacer un sistema de BBCODES
« en: 09 de Marzo de 2008, 18:08:09 pm »
He pensado hacer un tuto para que la gente introduzca bbcodes en su web O0 Aqui lo teneis:!
PARTE 1! Utilizacion
Primero, vamos a crear un codigo sql con la estructura de la tabla donde vamos guardar nuestros bbcodes
Id introduciendo este codigo tambien :

function bb ($t) {
$sql = mysql_query("SELECT * FROM `bbcodes`"); //Hacemos la consulta mysql
while($bb=mysql_fetch_array($sql)) { //cremos un bucle
$t = str_ireplace("$bb[bb1]", "$bb[html1]", $t); // reemplazamos el bbcode por codigo html
$t = str_ireplace("$bb[bb2]", "$bb[html2]", $t); // reemplazamos el bbcode por codigo html
}
return $t; //devolvemos el codigo html
}
Ahora vamos a usarlo
<?
$texto = "[b]Hello world[/b]";
$mensaje = bb($texto); //ejecutamos la function
echo $mensaje; //mostramos el resultado
?>
Ahora nos debolvera el texto en negrita!
Saludos!
PARTE 2! Administracion
Conexion con la base de datos:
config.php
$host = "localhost";
$user = "root";
$pass = "pass";
$db = "basededatos";
$conecta = mysql_connect("$host", "$user", "$pass") or die ("Datos de Conexion Incorrectos.");
mysql_select_db("$db", $conecta) or die ("No existe la base de datos.");
Añadir un nuevo bbcode:
add.php
<?
include ("config.php");
if ($_POST) { //comprobamos si hay alguna variable $_POST
if ($_POST['bb1'] && $_POST['bb2'] && $_POST['html1'] && $_POST['html2']) {
if (!mysql_query("INSERT INTO `bbcodes` (`bb1`, `bb2`, `html1`, `html2`) VALUES ('$_POST[bb1]', '$_POST[bb2]', '$_POST[html1]', '$_POST[html2]');")) { // comprobamos que el codigo sql se ejecute con exito, si no:
$error .= "<p>Ha havido un problema al registrar los datos en la base de datos";
}
} else {
$error .= "<p>No has completado todos los campos";
}
if (isset($error)) {
echo $error;
} else {
echo "EL BBCODE fue añadido con exito";
}
}
?>
<form method="POST" action="add.php">
</form>
Borrar un BBCODE:
delete.php
<?
include ("config.php");
if ($_GET['id']) {
if (is_numeric($_GET['id'])) {
if (mysql_query("DELETE FROM `bbcodes` WHERE id='$_GET[id]'")) {
echo "Se ha borrado con exito";
} else {
echo "No se ha borrado por problemas mysql";
}
}
}
$sql = mysql_query("SELECT * FROM `bbcodes`"); //Hacemos la consulta mysql
while($bb=mysql_fetch_array($sql)) { //creamos un bucle
echo "<p>$bb[bb1] - <a href='delete.php?id=$bb[id]'>Borrar BBCODE</a>";
}
?>
Saludos!
PARTE 1! Utilizacion
Primero, vamos a crear un codigo sql con la estructura de la tabla donde vamos guardar nuestros bbcodes

Código: [Seleccionar]
CREATE TABLE `bbcodes` (
`id` int(11) NOT NULL auto_increment,
`bb1` varchar(250) collate latin1_general_ci NOT NULL,
`bb2` varchar(250) collate latin1_general_ci NOT NULL,
`html1` varchar(250) collate latin1_general_ci NOT NULL,
`html2` varchar(250) collate latin1_general_ci NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=2 ;
Os he creado un ejemplo:Id introduciendo este codigo tambien :

Código: [Seleccionar]
INSERT INTO `bbcodes` (`id`, `bb1`, `bb2`, `html1`, `html2`) VALUES
(1, '[b]', '[/b]', '<b>', '</b>');
Ahora vomos con la function que filtrara el texto y lo pasara a html 
function bb ($t) {
$sql = mysql_query("SELECT * FROM `bbcodes`"); //Hacemos la consulta mysql
while($bb=mysql_fetch_array($sql)) { //cremos un bucle
$t = str_ireplace("$bb[bb1]", "$bb[html1]", $t); // reemplazamos el bbcode por codigo html
$t = str_ireplace("$bb[bb2]", "$bb[html2]", $t); // reemplazamos el bbcode por codigo html
}
return $t; //devolvemos el codigo html
}
Ahora vamos a usarlo

<?
$texto = "[b]Hello world[/b]";
$mensaje = bb($texto); //ejecutamos la function
echo $mensaje; //mostramos el resultado
?>
Ahora nos debolvera el texto en negrita!
Saludos!

PARTE 2! Administracion
Conexion con la base de datos:
config.php
$host = "localhost";
$user = "root";
$pass = "pass";
$db = "basededatos";
$conecta = mysql_connect("$host", "$user", "$pass") or die ("Datos de Conexion Incorrectos.");
mysql_select_db("$db", $conecta) or die ("No existe la base de datos.");
Añadir un nuevo bbcode:
add.php
<?
include ("config.php");
if ($_POST) { //comprobamos si hay alguna variable $_POST
if ($_POST['bb1'] && $_POST['bb2'] && $_POST['html1'] && $_POST['html2']) {
if (!mysql_query("INSERT INTO `bbcodes` (`bb1`, `bb2`, `html1`, `html2`) VALUES ('$_POST[bb1]', '$_POST[bb2]', '$_POST[html1]', '$_POST[html2]');")) { // comprobamos que el codigo sql se ejecute con exito, si no:
$error .= "<p>Ha havido un problema al registrar los datos en la base de datos";
}
} else {
$error .= "<p>No has completado todos los campos";
}
if (isset($error)) {
echo $error;
} else {
echo "EL BBCODE fue añadido con exito";
}
}
?>
<form method="POST" action="add.php">
<p><input type="text" name="bb1" size="6" value="bb1">
<input type="text" name="bb2" size="6" value="bb2">
<input type="text" name="html1" size="6" value="html1">
<input type="text" name="html2" size="6" value="html2"></p>
<p><input type="submit" value="Enviar" name="send"></p>
</form>
Borrar un BBCODE:
delete.php
<?
include ("config.php");
if ($_GET['id']) {
if (is_numeric($_GET['id'])) {
if (mysql_query("DELETE FROM `bbcodes` WHERE id='$_GET[id]'")) {
echo "Se ha borrado con exito";
} else {
echo "No se ha borrado por problemas mysql";
}
}
}
$sql = mysql_query("SELECT * FROM `bbcodes`"); //Hacemos la consulta mysql
while($bb=mysql_fetch_array($sql)) { //creamos un bucle
echo "<p>$bb[bb1] - <a href='delete.php?id=$bb[id]'>Borrar BBCODE</a>";
}
?>
Saludos!


