Agregar modelos singulares en español usando CakePHP 1.3

Varias veces necesitamos crear modelos en CakePHP y tenemos el problema de que no todas las palabras en plural terminan en “s”, también terminan en “es”.

Para solucionar esto, tenemos que aplicar nuestras propias reglas de inflexión en CakePHP en el archivo app/config/bootstrap.php

Inflector::rules(‘singular’, array(
‘rules’ => array(‘/(.*)res$/i’ => ‘\1r’, ‘/(.*)nes$/i’ => ‘\1n’, ‘/(.*)des$/i’ => ‘\1d’, ‘/(.*)ses$/i’ => ‘\1s’),
‘irregular’ => array(),
‘uninflected’ => array()
)
);

Inflector::rules(‘plural’, array(
‘rules’ => array(‘/(.*)r$/i’ => ‘\1res’, ‘/(.*)n$/i’ => ‘\1nes’, ‘/(.*)d$/i’ => ‘\1des’, ‘/(.*)s$/i’ => ‘\1ses’),
‘irregular’ => array(),
‘uninflected’ => array()
)
);

Si analizamos el código, podemos ver que las reglas de singular y plural tienen las terminaciones: res, nes, des y ses. Si más adelante salen otras terminaciones, solo hay que agregar más elementos al arreglo “rules” para singular y plural.


Importar csv a mysql

Al momentos que nosotros los desarrolladores tenemos que crear un sistema porque toda la información se almacenaba en una hoja de excel, es necesario importar toda  la información a una base de datos como MySQL así es que tenemos que exportar el excel a CSV.

Después de generar el archivo CSV, existe la posibilidad de que el archivo sea de varias decenas o centenas de MB, así es que si tratamos de importar con phpMyAdmin, nos va a dar error y se va a interrumpir la importación ya que se terminó el tiempo de ejecución del PHP, así es que no nos queda de otra mas que importar directamente desde MySQL.

Antes de hacer la importación es muy importante copiar o mover el archivo a importar a la carpeta donde se almacena la base de datos.

Estos son los pasos que yo utilizo para importar CSV usnado linux (ubuntu):

$ mv /path/archivo.csv /var/lib/mysql/mi_base_de_datos/
$ sudo mysql -u root -p
mysql> USE mi_base_de_datos
mysql> LOAD DATA INFILE ‘archivo.csv’ INTO TABLE mi_base_de_datos.mi_tabla FIELDS TERMINATED BY ‘,’ OPTIONALLY ENCLOSED BY ‘”‘ LINES TERMINATED BY ‘\n’;

Lo único que hace falta ahora es esperar hasta que termine la importación.

Los parámetros de LOAD DATA puede cambiar según la estructura del archivo, así es que recomiendo ver la documentación oficial: http://dev.mysql.com/doc/refman/5.0/es/load-data.html


2 ejemplos para importar y exportar con mysql

Importar:

mysql -u usuario -p base_de_datos <archivo.sql

Exportar:

mysqldump –compatible=mysql40 -u usuario -p base_de_datos > archivo.sql

 


Redondeo con php

Hay veces que es necesario redondear decimales para sistemas de contabilidad, la siguiente función nos ayudará para esas tareas:

function redondear_dos_decimal($valor) {
$float_redondeado=round($valor * 100) / 100;
return $float_redondeado;
}

Esta función la encontré en:

http://www.webtaller.com/construccion/lenguajes/php/lecciones/redondear_decimales_en_php.php

Basandonos en la funcion anterior, podemos hacer una más generalizada, la siguiente función redondeará a los decimales que necesitemos:

function redondea($cantidad, $decimales){
return round($cantidad, $decimales);
}

Si el valor $decimales es negativo, se reemplazarán los digitos por “cero” de los enteros de derecha a izquierda n veces, es decir, si $cantidad es 18837.3289 y en $decimales tenemos -3, el resultado sería: 18000


Eliminar etiquetas html con php

Encontré en internet un código que elimina todas las etiquetas html de una cadena y es la siguiente:

<?
$texto = “// <![CDATA[
function hola(){ms=true;}
// ]]>

Texto de prueba


Hola mundo”;
$texto = eregi_replace(“<head[^>]*>.*</head>”,” “,$texto);
$texto = eregi_replace(“<script[^>]*>.*</script>”,” “,$texto);
$texto = eregi_replace(“<style[^>]*>.*</style>”,” “,$texto);
$texto = eregi_replace(“<[^>]*>”,” “,$texto);
$texto = eregi_replace(“&nbsp;”,”",$texto);
echo $texto;
?>

Pero veo la documentación de php que hay una función que permite hacer lo mismo que el código anterior, ejemplo:

echo strip_tags($text);

y si queremos eliminar todas las etiquetas, pero dejar <p></p> y <a></a> es necesario escribir:

echo strip_tags($text, '<p><a>');

AdvertenciaDebido a strip_tags () en realidad no validar el HTML, parcial o etiquetas rota puede resultar en la eliminación de más de texto y datos de lo esperado.

Por lo anterior, cada quién tiene que evaluar cual de las dos formas se va a utilizar.


Atlas Campeón

Esto llegó a mi correo:

Son de esas fotos con valor histórico, y que nos sirven par conocer mas de nuestro fútbol.


Recarga un div con un arhcivo php usando Prototype

El siguiente ejemplo es muy simple para recargar un div con un arhcivo php:

<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
<html xmlns=”http://www.w3.org/1999/xhtml”>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8″ />
<title>Primer ejemplo AJAX Prototype</title>
</head>
<script type=”text/javascript” src=”prototype.js”></script>

</head>
<body>
<a href=”#” onclick=”new Ajax.Updater(‘contenedor’, ‘archivo.php’);”>Cargar contenido</a>
<div id=”contenedor”>
Este div se va a modificar
</div>
</body>
</html>


Chuleta Prototype

cheatsheet prototype


Mostrar Mensaje “Cargando” Con Prototype y PHP

http://vargasti.wordpress.com/2007/09/05/mostrar-mensaje-cargando-con-prototype-y-php/


Ejemplos practicos de prototype

http://www.librosweb.es/ajax/capitulo10/el_framework_prototype.html


Seguir

Get every new post delivered to your Inbox.