lunes, 2 de septiembre de 2013

Que es un tipo?

El nombre de "tipo" aplica a formularios con referencia a un campo que tipo de input es.

Un input text es el tipo default, pero si deseamos que sea un calendario lo definimos como me_fecha y un calendario aparecerá automáticamente.

También podemos crear nuestros propios tipos o usar el de alguien más.

Los tipos se almacenan en la carpeta masheditor/tipos y es posible crear nuestros propios tipos de campos.

martes, 24 de abril de 2012

definiendo filtros automaticos para almacenaje en base de datos

Estos filtros se ejecutan automáticamente al momento de almacenar o modificar cualquier contenido en la base de datos.


la finalidad es hacer que se apliquen filtros a la información almacenada sin importar en que parte del algoritmo ejecute el almacenamiento.


Al momento de utilizar las funciones agregar_sql_mash o modificar_sql_mash  estos filtros se aplicaran automáticamente

Importante,  estos filtros no afectan los valores de GP ,_GET y $_POST


para darlo de alta editar el archivo:

masheditor/global/bd/nombre_tabla/filtros.php

y agregamos


$filtrobd['nombre_tabla___campo_deseado']='filtro_deseado';

observe nombre_tabla___campo_deseado,  esta separado por triple guión bajo el nombre de la tabla y del campo.

Ej:
tabla: empleados
campos: nombre, apellido, edad
filtro: intval y  strtoupper

archivo

masheditor/global/bd/empleados/filtros.php




$filtrobd['empleados___nombre']='strtoupper';
$filtrobd['empleados___apellido']='strtoupper';
$filtrobd['empleados___edad']='intval';









definiendo filtros globales para pase de parámetros

Siempre contamos con variables que son pasadas mediante $_GET y $_POST en multiples areas de nuestro proyecto siendo común un error de filtrado o validación en uno de ellos.

Para evitar ello existe una definición global de filtros, mediante la cual al encontrar la variable a filtrar inmediatamente aplica el filtro, al menos que especifiquemos un filtro manual.

Para aplicar estos filtros es mediante la función GP que remplaza a $_GET y $_POST

Alta del filtro

Esta se logra editando el archivo  masheditor/global/gp/gp.php  y en ella escribimos

<?php


$filtrogp['idempresa']='intval';
$filtrogp['idempleado']='intval';

$filtrogp['clave_empleado']='formato_de_clave';



?>

en este ejemplo cuando llamemos

$empresa=GP('idempresa')

automaticamente le aplicara un intval, como si hubiéramos escrito $empresa=GP('idempresa','intval')

si desearamos omitir el filtro intval simplemente lo especificamos manualmente e ignora el global

$empresa=GP('idempresa','nuevo_filtro')



paso de variables GET y POST

El paso de variables $_GET y $_POST puede ser directamente utilizado, o de preferencia utilizar la funcion GP la cual añade filtros adicionales

esta funcion unifica GET y POST en una sola funcion, en donde POST tiene mas peso que GET

MODO DE USO
$mixed = GP( variable , filtro=NULL)
en donde los filtros pueden ser varios a la vez, separados por comas

Estos filtros pueden ser funciones existentes de PHP, funciones propias o de la libreria de filtros del masheditor

Ejemplo
traer la variable de get llamada var
$variable=GP('var');

traer la variable get llamada var y convertirlo en entero
$variable=GP('var','intval');


traer la variable get llamada var y convertirlo en mayusculas
$variable=GP('var','strtoupper');

traer la variable get llamada var y convertirlo en decodificarlo de UTF8 y pasarlo a mayusculas
$variable=GP('var','utf8_decode,strtoupper,formatea_cedula');

equivale a 
$variable=formatea_cedula(strtoupper(utf8_decode($_GET['var'])));
o lo mismo:
$variable=$_GET['var'];
$variable=utf8_decode($variable);
$variable=strtoupper($variable);
$variable=formatea_cedula($variable);



ejemplo

crear el servicio masheditor/servicios/hola/hola.php

<?php
$usuario=GP('nombre','strtoupper');
$valor="hola $nombre";
?>

La direccion
http://www.mipagina.com/mt,30/nombre,Miguel

regresará:
hola MIGUEL




creando un servicio basico


crear archivo masheditor/servicios/hola/hola.php

<?php
$valor="hola Mundo";
?>

darlo de alta en el panel administrativo y listo.

El panel administrativo les mostrara el ID del servicio y este se accede como:

http://www.mipagina.com/mt,30 esto suponiendo que es el id #30