Tecnologías Informáticas, Desarrollo Web y de Aplicaciones, Temas de actualidad.
sábado, 19 de mayo de 2012
Wordpress: Custom Post Type y Auto guardado/Autosave
Un ejemplo de un Custom Post Type en nuestro functions.php :
add_action('init', 'texto');
function texto() {
$labels = array(
'name' => _x('texto', 'post type general name'),
'singular_name' => _x('texto', 'post type singular name'),
'add_new' => _x('Agregar Nuevo', 'texto'),
'add_new_item' => __('Agregar Nuevo texto'),
'edit_item' => __('Editar texto'),
'new_item' => __('Nuevo texto'),
'view_item' => __('Ver texto'),
'search_items' => __('Buscar texto'),
'not_found' => __('Nada encontrado'),
'not_found_in_trash' => __('Nada encontrado en papelera'),
'parent_item_colon' => ''
);
$args = array(
'labels' => $labels,
'public' => true,
'publicly_queryable' => true,
'show_ui' => true,
'query_var' => true,
'rewrite' => true,
'capability_type' => 'post',
'hierarchical' => true,
'menu_position' => null,
'rewrite' => true,
'has_archive' => true,
'supports' => array('title','editor', 'excerpt','thumbnail','comments','author','page-attributes')
);
register_post_type( 'texto' , $args );
}
function admin_init(){
add_meta_box("opcion", "Opcion", "opcion", "texto", "normal", "low");
}
function opcion(){
global $post;
$custom = get_post_custom($post->ID);
$texto= $custom["texto"][0];
?>
Texto: < input name="texto" type="text" id="texto" value="texto; ?>" />
}
add_action('save_post', 'save_opcion');
function save_opcion(){
if ( defined('DOING_AUTOSAVE') && DOING_AUTOSAVE )
return $post_id;
global $post;
update_post_meta($post->ID, "opcion", $_POST["texto"]);
}
Basta con incluir las siguiente 2 lineas en nuestro código:
if ( defined('DOING_AUTOSAVE') && DOING_AUTOSAVE )
return $post_id;
Estas se ejecutan cuando oprimimos el botón de publicar o cuando se realiza el autosave de wordpress.
jueves, 6 de enero de 2011
Oficial: Drupal 7 Liberado
Requerimientos de Drupal 7:
- Un servidor web: Apache (recomendado), Nginx, Lighttpd, o Microsoft IIS
- Base de datos: MySQL 5.0.15 o superior, PostgreSQL 8.3 o superior, o SQLite 3.x
- PHP: 5.2.4 y superior
- Memoria: 32MB (Un sitio con varios de los módulos más comúnmente habilitados puede requerir 64MB o más.)
- Contenido flexible: Puede definir campos personalizados que podrán ser utilizados en tipos de contenido, usuarios, comentarios, términos y otras entidades. Almacene los datos de esos campos en SQL, NoSQL o utilice almacenamiento remoto.
- Mejor diseño de plantillas: Controle exactamente qué se muestra en pantalla con la nueva Render API y algunos hooks drásticos para modificaciones. El nuevo módulo RDF provee marcado semántico para la web.
- Accessible: Las pantallas de administración son ahora mucho más accesibles. Las abundantes mejoras en el interfaz le facilitan la construcción de páginas web altamente accesibles.
- Imágenes y ficheros: El soporte de ímagenes en el contenido está ahora incorporado en el núcleo. Genere versiones diferentes para thumbnails, vistas previas y otros estilos de imágenes. Ahora es posible utilizar las gestiones privada y pública de ficheros al mismo tiempo.
- Testing automático del código: Un nuevo entorno de testing automatizado, con más de 30.000 tests incluidos permite el testing de integración continua de todos los parches al núcleo de Drupal y a los módulos contribuidos.
- Soporte de base de datos mejorado: Una nueva capa de abstracción de base de datos provee soporte para SQLite, MySQL/MariaDB y PostgreSQL out-of-the-box. Puede instalar módulos contribuidos para utilizar MS SQL Server, Oracle, y más.
- Mejor soporte para distribuciones: Utilice perfiles de instalación para distribuir su producto personalizado basado en Drupal. Una nueva API y configuración exportable le permite capturar más opciónes en código.
- Extender: Gracias a un enorme esfuerzo de la comunidad, más de 800 módulos están disponibles o bajo desarrollo activo para Drupal 7, incluyendo Views, Pathauto, y WYSIWYG, con muchos otros en el camino de actualizarse cada día.
sábado, 23 de octubre de 2010
Rediseño en Drupal

Para los usuarios que utilizabamos el diseño anterior de Drupal.org, observamos en este cambio, que no incluye los anuncios en su página principal. El nuevo diseño está basado en las prioridades de los usuarios en los resultados de la encuesta de Drupal en el 2007.
Actualmente se encuentra publicada la versión beta 2 de Drupal 7 la cuál incluye una lista de mejoras realizadas desde Drupal 6, se espera que esta sea la última, todo depende de las pruebas que se realicen y los errores encontrados por la comunidad.
jueves, 7 de mayo de 2009
HTAccess: URL Amigables.
Se debe tener en cuanta que Apache debe tener instalado el modulo "Rewrite":
LoadModule rewrite_module modules/mod_rewrite.so
Aquí mostramos un ejemplo de como realizar redirecciones tambien crear URL amigables o URL semánticas. Este código se incluye en el archivo (.htaccess):
Options FollowSymLinks
RewriteEngine On
RewriteBase /
Con esto hacemos que si da un error como pagina no encontrada (404), realizará una redirección hacia nuestra URL (http://localhost):
ErrorDocument 404 http://localhost
ErrorDocument 500 http://localhost
ErrorDocument 403 http://localhost
ErrorDocument 401 http://localhost
Anteriormente comentabamos sobre utilizar el titulo de una noticia de forma semántica, de esta manera obtenemos el nombre de la url y mediante PHP obtenemos la Noticia o Post a mostrar, por ejemplo seria (http://localhost/news/esto-es-una-prueba/), donde la via para obtener el segundo segmento de la URL mediante $2:
RewriteRule ^(news)/(.*)/$ /news.php?title=$2 [L,NC,QSA]
Tambien podemos definir otras url de forma semantica, por ejemplo:
RewriteRule ^(contactos)/$ /noticias.php [L,NC,QSA]
RewriteCond %{HTTP_HOST} !^localhost$ [NC]
RewriteRule ^(.*)$ http://localhost/$1 [R=301,L]
martes, 5 de mayo de 2009
PHP: Crear URL amigables
Si escojemos como título: "PHP: Crear URL amigables", la url amigable creada sería "php-crear-url-amigables".
A continación ponemos a su disposición la siguiente clase que se encarga de convertir espacios, mayusculas, caracteres a una url amigable.
<?php
function text2url($string) {
$spacer = "-";
$string = trim($string);
$string = strtolower($string);
$string = strtr($string, "áéíóúñÁÉÍÓÚÑ", "aeiounaeioun");
$string = trim(ereg_replace("[^ A-Za-z0-9_]", " ", $string));
$string = ereg_replace("[ tnr]+", "-", $string);
$string = str_replace(" ", $spacer, $string);
$string = ereg_replace("[ -]+", "-", $string);
return $string;
}
// Para mostrar sería de la siguiente manera:
echo text2url("PHP: Crear URL amigables");
?>
Esperamos les sea de interés y ayuda.
viernes, 1 de mayo de 2009
Disponible: Zend Framework 1.8.0
El equipo de Desarrollo Zend Framework liberó la esperada versión 1.8.0. Esta versión destaca uno de los lanzamientos más importantes, ya que incorpora en su lista a tres nuevos componentes:
- Zend_Tool: es una utilidad de linea de comandos que nos permite auto-generar y mantener nuestra estructura del proyecto.
- Zend_Application: nos permite centralizar toda la inicialización del bootstrap en una sola clase, es decir encapsulará toda la lógica de arranque de nuestro sistema, permitiendo un index.php mucho más limpio y delegar todos los procesos en la clase Bootstrap que implementa distintos método para inicializar los distintos componentes del sistema (Db, Layout, View, Logger, Config, Front Controller, Control de Errores, Config del ambiente, Locale, etc… ) y finalmente incorporar un método main() que centralice todo y sea la puerta de entrada a nuestro sistema.
- Zend_Navigation: una utilidad para generar tus menús, sitemaps, bradcrumbs, etc.
Además trae todo tipo de validaciones y filtros listos para usar y otras mejoras a componentes como Zend_Pdf, etc.
lunes, 13 de abril de 2009
PHP: Enviar email mediante SMTP con Autentificacion usando librerias de Zend Framework
Para mayor seguridad de nuestro servidor de correo en la mayoria de los casos es activada la opcion de requerir autentificación. Lo anterior es un problema si intentamos enviar mensajes de correo electrónico por la común opcion de mail() en php.
A continuación les muestro un ejemplo utilizando las librarias del Zend Framework. Una de las ventajas de este framework es que podemos utilizar sus clases independientes sin tener que hacer uso completamente del framework y de toda su estructura MVC que es muy util por cierto, pero para aquellos que aun no se adaptan, aqui el ejemplo :
Primeramente cree una clase : sendemail.php
include("Zend/Mail.php");
include("Zend/Mail/Transport/Smtp.php");
class sendEmail{
private $addTo;
/**
* Nombre de destino
*
* @var string
*/
private $nameTo;
/**
* Titulo del email
*
* @var string
*/
private $subject;
/**
* Cuerpo del mensaje
*
* @var string
*/
private $body;
/**
* Enviar email
*
* @param string $addTo
* @param string $nameTo
* @param string $subject
* @param string $body
*/
public function sendDetails($addTo, $nameTo, $subject, $body){
$config = array('auth' => 'login',
'username' => 'USUARIO',
'password' => 'CLAVE');
$transport = new Zend_Mail_Transport_Smtp('HOST', $config);
$mail = new Zend_Mail();
$mail->setBodyText($body);
$mail->setFrom('EMAIL-DE', 'NOMBRE');
$mail->addTo($addTo, $nameTo);
$mail->setSubject($subject);
$mail->send($transport);
}
}
?>
Se debe editar previamente nuestro:
HOST: nombre del servidor SMTP
USUARIO: Nombre del usuario para conectar al servidor SMTP
CLAVE: Clave del usuario para conectar al servidor SMTP
NOMBRE: Nombre que aparecera en el correo
EMAIL-DE: Email que aparecera al usuario, de donde proviene el correo.
La usamos de la siguiente forma index.php
include("sendemail.php");
$email = new sendEmail();
$email->sendDetails($addTo, $nameTo, $subject, $body);
?>
Donde:
$addTo: Email del destinarario.
$nameTo: Nombre del destinatario
$subject: Asunto del mensaje
$body: Cuerpo del mensaje.
Espero les sea de gran utilidad.
lunes, 17 de noviembre de 2008
Zend Framework 1.7.0 Disponible !!!
Ya se encuentra disponible la version 1.7 para descargar, el cual posee muchas mejoras, entre ellas:
- Zend_Amf with support for AMF0 and AMF3 protocols
- Dojo Toolkit 1.2.1
- Support for dijit editor available in the Dojo Toolkit
- Zend_Service_Twitter
- ZendX_JQuery in extras library
- Metadata API in Zend_Cache
- Google book search API in Zend_Gdata
- Preliminary support for GData Protocol v2 in Zend_Gdata
- Support for skip data processing in Zend_Search_Lucene
- Support for Open Office XML documents in Zend_Search_Lucene indexer
- Performance enhancements in Zend_Loader, Zend_Controller, and server components
- Zend_Mail_Storage_Writable_Maildir enhancements for mail delivery
- Zend_Tool in incubator
- Zend_Text_Table for formatting table using characters
- Zend_ProgressBar
- Zend_Config_Writer
- ZendX_Console_Unix_Process in the extras library
- Zend_Db_Table_Select support for Zend_Paginator
- Global parameters for routes
- Using Chain-Routes for Hostname-Routes via Zend_Config
- I18N improvements
- Application wide locale for all classes
- Data retrieving methods are now static
- Additional cache handling methods in all I18N classes
- Zend_Translate API simplified
- File transfer enhancements
- Support for file elements in subforms
- Support for multifile elements
- Support for MAX_FILES_SIZE in form
- Support for breaking validation chain
- Support for translation of failure ,messages
- New IsCompressed, IsImage, ExcludeMimeType, ExcludeExtension validators
- Support for FileInfo extension in MimeType validator
- Zend_Db_Table_Select adapater for Zend_Paginator
- Support for custom adapters in Zend_Paginator
- More flexible handling of complex types in Zend_Soap
miércoles, 19 de marzo de 2008
Instalando webmail: Horde - IMP
Cuenta con filtro y búsqueda de mensajes. Contiene editor HTML para componer los mensajes. Encriptación S/MIME y PGP de mensajes. Soporte para definir cuotas. Vista previa de los mensajes. Suscripciones a carpetas IMAP. Permite además compartir carpetas IMAP. Emoticones gráficos. Soporte para listar encabezados de correos. Redirigir mensajes. Enviar adjuntos como enlaces. Crear vistas de los adjuntos.
Requerimientos
- Horde framework.
- Sendmail o similar
- Servidor web.
- Soporte para PHP 4.3.0 o superior.
- Base de datos MySql, PostgreSQL, MSSQL, Oracle, Sybase, SQLite, MS SQL, MSDE.
Como instalar HORDE?
Primeramente debemos descargar horde y guardarlo en nuestro ordenador.
Luego se debe descomprimir hacia un directorio de nuestro servidor web htdocs/horde para mayor información se puede ver el archivo docs/INSTALL.
Seguidamente debemos crear una base de datos en nuestro servidor y correr los script SQL scripts/sql/create.mysql.sql, scripts/sql/ horde_prefs.sql, scripts/sql/horde_datatree.sql. Luego podemos abrir desde el navegador la URL https://localhost/horde/test.php o donde se encuentre y verificar que los módulos requeridos estén instalados.
Como instalar IMP?
Después de la instalación de HORDE Framework debe descargar IMP, el cliente IMAP y POP3. Y seguidamente copiarlo hacia el directorio htdocs/horde/imp podemos leer mayores referencias en docs/INSTALL.
Para instalarlo se debe entrar al directorio htdocs/horde/imp/config e introducir:
En linux:
for foo in *.dist; do cp $foo `basename $foo .dist`; done
En windows:
copy *.dist *.
Con esto estamos diciendo que le eliminaremos a todos los archivos en ese directorio la extensión “.dist”.
En el archivo servers.php se configuran los servidores IMAP, POP3.
$servers['imap'] = array(
'name' => 'IMAP Server',
'server' => 'localhost',
'hordeauth' => false,
'protocol' => 'imap/notls',
'port' => 143,
'maildomain' => 'localhost',
'smtphost' => 'localhost',
'smtpport' => 25,
'realm' => '',
'preferred' => '',
);
Podemos ver desde el navegador la URL https://localhost/horde/imp/test.php y verificar que los módulos requeridos estén instalados.
El archivo htdocs/horde/img/config/conf.php es generado a través del panel de administración que podemos encontrar en la URL http://localhost/horde/. Situados ahí podemos ir a “Administration” ubicado en el menú izquierdo. Y oprimir el enlace de generar configuración.

El directorio debe tener permisos de escritura para que el fichero pueda ser generado y guardado automáticamente, luego de llenar los formularios de configuración.

En este paso seleccionaremos Mail(imp) para administrar su configuracion.

Luego de cargado esta página podemos ver las configuración que deseemos realizar, y oprimir el botón Generar Configuración de Correo/Generate Mail Configuration. Horde generará el archivo conf.php y nos mostrará un mensaje satisfactorio si hemos realizado las configuraciones correctamente.

Seguidamente podemos oprimir la opción Mail en el menú, donde podremos entrar a nuestro correo sin dificultad. Para visualizar la versión de administración http://localhost/horde/ y la versión reducida para usuarios http://localhost/horde/imp/, que es la que le vamos a mostrar al usuario.
jueves, 2 de agosto de 2007
Los Frameworks de PHP agilizan tu trabajo II
Se ha publicado el Maestros del Web el segundo articulo “Los Frameworks de PHP agilizan tu trabajo”.
Existen al rededor de 40 Frameworks para PHP y cada uno tiene funciones distintas. En los dos artículos sobre cómo los Frameworks en PHP agilizan tu trabajo, se mencionan los más utilizados y populares. Descubre la segunda parte.
Los invito a leer más: Maestros del Web >> Los Frameworks de PHP agilizan tu trabajoII
martes, 31 de julio de 2007
Los Frameworks de PHP agilizan tu trabajo
En Maestros del Web se publicó el articulo “Los Frameworks de PHP agilizan tu trabajo”.
Los Frameworks ayudan en el desarrollo de software, proporcionan una estructura definida la cual ayuda a crear aplicaciones con mayor rapidez. Ayuda a la hora de realizar el mantenimiento del sitio gracias a la organización durante el desarrollo de la aplicación.
Los invito a leer más: Maestros del Web >> Los Frameworks de PHP agilizan tu trabajo
viernes, 15 de junio de 2007
Validar dirección de correo electronico con PHP
Si queremos insertar un formulario y en el incluir un campo que recoja el Email del usuario, podemos usar el siguiente código para comprobar si es válido.
Este código está desarrollado en PHP, el mismo cuenta con una clase llamada “Validador_Email” con un método “comprobar_mail”.
class Validador_Email
{
var $email;
var $exp_reg;
function comprobar_email()
{
$this->exp_reg = “^[[:alnum:]_-]+”;
$this->exp_reg .= “(\.[[:alnum:]_-]+){0,}”;
$this->exp_reg .= “@”;
$this->exp_reg .= “[[:alnum:]_-]+”;
$this->exp_reg .= “(\.[[:alnum:]_-]+){0,}”;
$this->exp_reg .= “(\.[[:alpha:]]{2,3})$”;
if ( ereg ( $this->exp_reg , $this->email ) )
{
return (true);
}
else
{
return (false);
}
}
}
// Inicializamos un objeto de la clase “Validador_Email”
validar = new Validador_Email();
// Asignamos el correo :
$validar->email = “correo@mail.com”;
//Comprobamos si la direccion de correo electronica es verdadera o falsa
$retorno = $validar->comprobar_email();
//Si es verdadera devuelve “True”, sino “False”
if ( $retorno == false )
{
echo “Email erróneo”;
}
else
{
echo “Email correcto”;
}
?>
Espero que queden complacidos con este codigo. Y así puedan realizar validaciones en sus formularios.
jueves, 24 de mayo de 2007
Cómo optimizar tus aplicaciones PHP
Post que expone varias recomendaciones a tener en cuenta para lograr una mayor optimización de nuestras aplicaciones PHP.
Lea más: Maestros del Web >> Cómo optimizar tus aplicaciones PHP
miércoles, 23 de mayo de 2007
ODBC y PHP en 7 pasos
martes, 22 de mayo de 2007
Programación orientada a objetos en PHP5
Post sobre la programación orientada a objetos. Utilizando la POO podemos reutilizar nuestro codigo y obtener una mayor organizacion en el mismo.
Lea más: Maestros del Web >> Programación orientada a objetos en PHP5
