Seguramente, ha escuchado de Struts o JavaServer Faces, son framework que usan el patron MVC (Modelo Vista Controlador) para aplicaciones java; para el desarrollo de aplicaciones PHP tambien existen framework, uno de ellos es CakePHP.
¿Por que es importante usar un framework?, un framework es una estructura de soporte definida, mediante la cual otro proyecto de software puede ser organizado y desarrollado. Hacen las cosas mas rapidas a un desarrollador, ya no es necesario preocuparse crear algun archivo config.php, o en crear codigo para validar formularios, o ejecutar sentencias SQL para añadir, eliminar, listar, etc datos de una base de datos…
CakePHP tiene caracteristicas destacables, por ejemplo:
- Es compatible con PHP4 y PHP5
- CRUD de la base de datos integrado.
- URLs amigables
- Sistema de plantillas rápido y flexible
- Trabaja en cualquier subdirectorio del sitio
- Validación integrada
- Componentes de seguridad y sesión
- Bake, Ayuda a generar codigo por medio de consola a partir de una base de datos.
- …
Documentacion de CakePHP
Descargar CakePHP
En este tutorial agregaremos un contenedor de Tags o Etiquetas mas usadas en las busquedas, esto beneficia en el pocisionamiento web, tambien da otras alternativas de busquedas para tus usuarios, ademas conoceras que es lo mas buscado o preferido por tus visitantes.
Un ejemplo de este tutorial se encuentra en http://www.clipey.com/, en la parte inferior del lado derecho, ahi se encuentra un contenedor titulado ‘Tags’; como puedes observar hay etiquetas mas pequeñas, estas son las que se utilizan menos, y las mas grandes son las mas populares.
Este tutorial consiste en agregar a tu portal web la funcion tags. Por lo tanto solo agregaremos codigo a algunos archivos y agregaremos una tabla a nuestra Base de Datos. Empezamos…
Creando la tabla’ tags’ en la base de datos
Ejecuta este codigo SQL en tu base de datos:
1 2 3 4 5 6 7
| CREATE TABLE IF NOT EXISTS `tags` (
`tag` varchar(255) NOT NULL,
`views` bigint(20) NOT NULL DEFAULT '0',
`active` enum('1','0') NOT NULL DEFAULT '0',
`lastused` datetime DEFAULT NULL,
PRIMARY KEY (`tag`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1; |
Este codigo SQL crea un tabla llamada tags, que contiene 4 columnas:
- `tag`, contiene el tag o etiqueta.
- `views`, indica el numero de veces que se a usado este tag.
- `active`, indica si el tag a sido aprovado para su publicacion (los valores son 1=aprobado, 0=no aprobado), esto es necesario ya que algunos visitantes buscan cosas inapropiadas.
- `lastused`, indica la fecha del ultimo uso de este tag.
Agregando codigo al buscador del portal
Ahora busca el archivo php encargado de la busqueda en tu portal, probablemente se llame search.php o buscar.php, si tienes dificultad para encontrarlo puedes hacer lo siguiente: busca en tu portal cualquier cosa, y observa url en la barra de direcciones de tu navegador, probablemente se muestre de manera similar a esto: http://www.clipey.com/browse.php?q=cadena+a+buscar, en este ejemplo el archivo encargado de la busqueda es browse.php y el parametro que contiene el texto a buscar se llama q, es importante conocer el nombre de este parametro ya que se usara en este codigo.
Ahora agrega este codigo a tu archivo php encargado de las busquedas:
1 2 3 4 5 6 7 8 9 10 11 12
| //nabelcc---
//mysql_connect('localhost', 'mysql_user', 'mysql_password');
//mysql_select_db('base_de_datos');
$tag=trim($_REQUEST['q']);
$tag=strtolower($tag);
$tag=mysql_real_escape_string($tag);
$datetime=date ("Y-m-d H:i:s");
mysql_query("UPDATE tags SET views = views+1, lastused ='$datetime' where tag like '$tag' LIMIT 1");
if(mysql_affected_rows()==0) {
mysql_query("insert into tags (tag,lastused,views) values ('$tag','$datetime',1)");
}
//---nabelcc |
Reemplaza q en $_REQUEST['q'], por el nombre del parametro que contiene el texto a buscar.
Si no hay una coneccion a la base de datos en tu script, descomenta las lineas 2 y 3, y configuralos segun la informacion de tu base de datos.
El funcionamiento de este codigo pequeño es el siguiente: si el tag existe le aumenta una visita en la columna ‘views’, de lo contrario agrega un tag nuevo.
Ahora comienza a buscar en tu sitio, notaras que las busquedas se estan guardando en la tabla ‘tags’, ahora con tu administrador de base de datos (ej. PhpMyAdmin) a algunos registros editalos cambiando el valor del campo ‘active’ a 1, esto los habilitara para que pueda mostrarse.
Codigo para mostrar los Tags
Te sugiero que en archivo nuevo llamado ‘tags_module.php’ copies el siguiente codigo y despues desde tu template o donde desees que muestre los tags, incluyas este archivo con include('tags_module.php'); Otra opcion mas facil es copiar el codigo donde desees que se muestre.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
| <?php
//nabelcc--- Inicio para generacion de tags
//mysql_connect('localhost', 'mysql_user', 'mysql_password');
//mysql_select_db('base_de_datos');
$cloud = array();
$keyword = array();
$TagsDisplayMax=15;//Numero de tags a mostrar
if($query = mysql_query("Select * from tags where active=1 order by lastused DESC limit $TagsDisplayMax")) {
while($t = mysql_fetch_array($query)) {
$keyword[$t['tag']] = $t['views'];
}
if ( is_array($keyword) && $keyword ) {
$minFont=11;
$maxFont=18;
$min = min(array_values($keyword));
$max = max(array_values($keyword));
$fix = ($max - $min == 0) ? 1 : $max - $min;
// Display the tags
foreach ($keyword as $tag => $count) {
//Modifica la estructura de esta url
$url = 'http://www.clipey.com/browse.php?q=' .urlencode($tag);
$size = $minFont + ($count - $min) * ($maxFont - $minFont) / $fix;
$cloud[] = '<a class="cloudtags" style="font-size: '. floor($size) .'px;" href="' .$url. '" title="Tags: '. htmlentities(ucfirst($tag)) .' usado '. $count .' veces"><span>'. htmlspecialchars(stripslashes(ucfirst($tag))) . '</span></a>';
}
$tags_content = join("\n", $cloud) . "\n";
}
}
//---nabelcc
?>
<?php if(!empty($tags_content)){ ?>
<h3>Etiquetas</h3>
<div class="tags">
<?php echo $tags_content; ?>
</div>
<style type="text/css">
.tags {
text-align: justify;
}
.tags .cloudtags {
padding:1px;
color: #FE7501;
text-decoration: none;
font-weight: normal;
}
.tags .cloudtags:hover {
color: #ffffff;
background-color: #FE7501;
-webkit-border-radius: 2px;
-moz-border-radius: 2px;
}
</style>
<?php } ?> |
Si no hay una coneccion a la base de datos en tu script, descomenta las lineas 3 y 4, y configuralos segun la informacion de tu base de datos. En la linea 22, modifica la estructura del url segun tus necesidades.
El funcionamiento de este codigo, es el siguiente: primero busca los tags que hallan sido aprovados y los genera deacuerdo al numero de visitas, despues si es que encontro tags los muestra.
Espero que este tutorial haya sido claro y provechoso.
A veces deseamos cargar archivos javascript dinamicamente, por ejemplo cargar JSON de web externas.
Esta funcion javascript, agrega un elemento script al tag head con la correspondiente url que se manda como parametro; Un ejemplo para utilizar este script: loadJS("http://www.abelino.com/myscript.js").
1 2 3 4 5 6 7
| function loadJS(url) {
var headID = document.getElementsByTagName("head")[0];
var newScript = document.createElement('script');
newScript.type = 'text/javascript';
newScript.src = url;
headID.appendChild(newScript);
} |
Otra funcion similar es esta:
1 2 3
| function addJS(url){
document.write(unescape("%3Cscript src='" + url + "' type='text/javascript'%3E%3C/script%3E"));
} |