Mostrando entradas con la etiqueta PHP. Mostrar todas las entradas
Mostrando entradas con la etiqueta PHP. Mostrar todas las entradas

sábado, 19 de mayo de 2012

Wordpress: Custom Post Type y Auto guardado/Autosave

El siguiente post es debido a un pequeño problema al crear un Custom Post Type o Custom Meta Box, que cuando creamos un post, noticia y otro, los campos se borran solos cuando salimos del formulario o cuando se realiza el autosave de wordpress.

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

Despues de 3 años de trabajo en la Versión 7 de Drupal, finalmente ha sido liberada. Podemos descargar Drupal 7 desde su sitio oficial.

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.)
Entre sus principales funcionalidades:


- 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

Hace pocos días Drupal.org publicó el nuevo diseño de su sitio, después de anunciar la versión beta 1 de Drupal 7 en Agosto del 2010. Este diseño estaba disponible en su versión beta, para la comunidad de usuarios.



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.

En el articulo anterior comentabamos sobre un script PHP para Crear URL amigables para crear url amigables a partir por ejemplo del título de una noticia. Esta conversión semántica, por ejemplo del título, puede ser usada como enlace y ayuda a los buscadores a indexar de una forma mas eficiente nuestros artículos.

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

El siguiente script PHP nos permite crear nuestras url amigables. Estas url amigables pueden partir del título de un artículo.

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.

Descargar ZF

lunes, 13 de abril de 2009

PHP: Enviar email mediante SMTP con Autentificacion usando librerias de Zend Framework

El desarrollo de aplicaciones que permitan el envio de email hacia determinado servidor es muy comun para las diferentes aplicaciones. Bien pueden ser usadas para el envio de boletines electrónicos, logs del sistema, notificaciones y mensajes a usuarios.

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 !!!

Para los seguidores nuevos y no tan nuevos, asi como para aquellos que quieran iniciarse en Zend Framework.
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
http://devzone.zend.com/article/4045-Zend-Framework-1.7.0-is-now-available

miércoles, 19 de marzo de 2008

Instalando webmail: Horde - IMP

IMP es uno de los proyectos más importantes de HORDE, es un webmail desarrollado en PHP, provee acceso a cuentas IMAP y POP3. IMP necesita como principal requerimiento al Framework Horde.

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

miércoles, 23 de mayo de 2007

ODBC y PHP en 7 pasos

En 7 sencillos pasos mostramos como utilizar ODBC y PHP. ODBC nos brinda la posibilidad de conectarnos a diferentes tipos de bases de datos como : “MySql, Access, Microsoft SQL Server, entre otras”.

Lea más: Maestros del Web >> 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

Templates
Templates