jueves, 26 de febrero de 2009

Drupal en idioma Español

Mi primera vez con Drupal tuve problemas con este CMS ya que yo quería configurarlo para el idioma español. Seguí las recomendaciones que se ven en los foros e inclusive los pasos que se dictan en el sitio oficial de Drupal para instalar el idioma de preferencia; no obstante ningún truco me funcionó.

Todo eso hasta que leí que instalando Drupal desde el inicio pero con la opción de escoger el idioma, solucionó al 100% lo que yo quería. El problema lo solucioné reinstalando Drupal, pero lo nuevo era que tenía que agregar la carpeta del idioma español en el mismo lugar donde puse la carpeta de Drupal. Las subcarpetas del idioma las tenía que copiar y pegarlas encima de las carpetas de Drupal, esto hará que en los directorios de Drupal se agreguen las subcarpetas "translations".

El siguiente paso es comenzar desde el principio con el proceso de instalación normal; por algún lado aparece la opción para escoger el idioma, simplemente hay que escogerlo y listo!.

martes, 24 de febrero de 2009

Técnicas para subir archivos al servidor usando PHP

Existen varias formas para subir archivos al servidor, lo importante es saber que hacer tal cosa es por naturaleza crítico ya que algún vivazo podría emplearlo para hacer daño de alguna u otra forma al servidor, por eso es que hay que tener cuidado con este tipo de tareas.

En los siguientes enlaces se explica en detalle los códigos para poder subir archivos:

www.desarrolloweb.com
www.php.net

domingo, 22 de febrero de 2009

Ejemplo rápido para usar Gráficos en PHP

Se usarán las librarías LibChart y FusionsCharts. Todos los archivos en el mismo lugar.

En archivo index.php:

Poner en el head:
<script language="JavaScript" src="FusionCharts.js" />

En body:
<img src="graficos.php" height="250" width="500" />

<div id="chartdiv" align="center">The chart will appear within this DIV. This text will be replaced by the chart.</div>
<script type="text/javascript">
var myChart = new FusionCharts("FCF_Column3D.swf", "myChartId", "600", "500");
myChart.setDataURL("Data.xml");
myChart.render("chartdiv");
</script>

En archivo graficos.php:

<?php

include "libchart/classes/libchart.php";

$chart = new VerticalBarChart(500, 250);
$dataSet = new XYDataSet();
$dataSet->addPoint(new Point("Jan 2005", 273));
$dataSet->addPoint(new Point("Feb 2005", 321));
$dataSet->addPoint(new Point("March 2005", 442));
$dataSet->addPoint(new Point("April 2005", 711));
$chart->setDataSet($dataSet);
$chart->setTitle("Estadística");
$chart->ShowLogo(false);
$chart->render();

?>

sábado, 21 de febrero de 2009

viernes, 20 de febrero de 2009

Ajax al 100%

El siguiente link es totalmente valioso para aquellos que desean aprender y trabajar con ajax.

Ver Link

En ese sitio encontré un control llamado Sigma Grid, es una grilla que permite presentar datos en una forma muy profesional.

miércoles, 18 de febrero de 2009

Cambiar Wallpaper o papel tapiz aleatoriamente en Windows XP

Hace unos días estuve creando unos wallpapers en el programa The Gimp y hoy se me ocurrió que cada vez que yo encienda mi máquina, el papel tapiz va cambiar automáticamente. Yo quería hacer algo muy sencillo, por lo que escogí realizar el mini programa en un archivo batch y otro en vbs.

El primer paso es guardar en un archivo con extensión *.bat, el siguiente código (el archivo lo llamaré wallpaperAleatorio.bat):

@echo off
REM LAS IMAGENES TERMINAN CON UN NÚMERO.RANGO ENTRE 1 Y 9.
set max=9
set min=1
set/a num=%random% %% %max% + %min%

REM LA RUTA DE LOS WALLPAPERS TIENE QUE SER LA RUTA DONDE GUARDAMOS LOS ARCHIVOS.
reg add "HKEY_CURRENT_USER\Control Panel\Desktop" /v Wallpaper /t REG_SZ /d "C:\Documents and Settings\Administrator\Desktop\Wallpapers\wallpaper"%num%".bmp" /f
reg add "HKEY_CURRENT_USER\Control Panel\Desktop" /v OriginalWallpaper /t REG_SZ /d "C:\Documents and Settings\Administrator\Desktop\Wallpapers\wallpaper"%num%".bmp" /f
REM APLICAR CAMBIOS INMEDIATAMENTE SIN TENER QUE REINICIAR SISTEMA, ETC.
%SystemRoot%\System32\RUNDLL32.EXE user32.dll, UpdatePerUserSystemParameters

El segundo paso es crear un archivo con extensión *.vbs y poner el siguiente código (el archivo lo llamaré run.vbs):

Set WshShell = WScript.CreateObject("WScript.Shell")
cmd = "wallpaperAleatorio.bat"
Return = WshShell.Run(cmd, 0, True)
set WshShell = Nothing

El tercer paso es crear un nuevo directorio en la estructura de directorios de windows. Ponerle un nombre cualquiera y luego poner los dos archivos anteriormente creados en este nuevo directorio. Después agregar un acceso directo en el menú Startup/Inicio del botón Inicio/Start de la barra de tareas de windows.

Finalmente, cada vez que iniciemos el sistema operativo, mostrará un papel tapiz diferente. Como la formula para escoger el fondo de pantalla genera un número aleatorio, éste puede repetirse por lo que el fondo de pantalla no va a cambiar, sin embargo se puede cambiar corriendo el archivo run.vbs que se colocó en el menú Startup de la barra de tareas de windows.

martes, 17 de febrero de 2009

Enviar correo electrónico con PHP. Part II

El siguiente código muestra como enviar correos electrónicos más complejos, ya que se está asociando un archivo y el cuerpo del mensaje va en formato HTML:

(Se usó PEAR para realizar éste ejemplo.)

require_once 'Mail.php';
require_once 'Mail/mime.php';
$destinario = 'direccion@del.destinario.com';
$from = 'direccion@del.from.com';
$asunto = 'Asunto del mensaje';
$mensaje = '<html><head><title>'.$asunto.'</title></head>'."\n";
$mensaje .= '<body><p><h1>Hola</h1></body></html>';
$mime = new Mail_mime("\n");
setTXTBody(strip_tags($mensaje));
$mime->setHTMLBody($mensaje);
$mime->addAttachment('style.css', 'text/css');
$body = $mime->get();
$hdrs = array('From' => $from, 'Subject' => $asunto);
$hdrs = $mime->headers($hdrs);

$mail =& Mail::factory('mail');
$res = $mail->send($destinario, $hdrs, $body);
if (PEAR::isError($res)) echo 'error enviando el email';
?>

El código anterior no es mío, lo encontré en PHPBSD.net.

Ver la parte anterior de envío de correos

Cambiar clave de Root en PhpMyAdmin

Cuando se instala Wamp, generalmente, éste abre localhost directamente sin pedir nombre de usuario ni contraseña. Para corregir el problema hay que buscar el siguiente archivo:

C:\wamp\apps\phpmyadmin3.1.1\config.inc.php

Lo abrimos y buscamos el parámetro "auth_type", luego le cambiamos el valor a "http" para que nos aparezca el cuadro de diálogo de acceso de seguridad.

Mas ayuda en: Configurar Apache+MySql+Php

lunes, 16 de febrero de 2009

viernes, 13 de febrero de 2009

domingo, 8 de febrero de 2009

lunes, 2 de febrero de 2009

Enviar correo electrónico con PHP. Parte I

Preparación:
- Se usará PHP 5.0
- APACHE 2.2.8 (Estoy usando XAMPP, aunque puede ser WAMP
  Server o AppServer).
- IIS (Por supuesto Apagado, no se ocupa si estamos
  en Windows)
- La función mail( ) de PHP: La función mail( ) prepara
  el mensaje y luego le pasa todos los datos al servidor
  SMTP. 
Es muy fácil enviar mensajes de correo electrónico con PHP; para realizarlo hay que utilizar la función mail(), pasándole la dirección electrónica del destinatario, el título del mensaje y el cuerpo del mensaje. El resto de parámetros que se le pueden pasar a esta función son opcionales y permiten personalizar el mensaje como por ejemplo enviar archivos adjuntos, imágenes, etc. Si se desea hacer cosas más avanzadas, recomiendo utilizar PHPMailer.

El código para enviar correo electrónico con PHP es:

$destinatario = "username@hostname.com";
$asunto = "Este mensaje es de prueba";
$cuerpo = "Mensaje de prueba";
$headers = "From: username@gmail.com\r\n";
ini_set("SMTP","127.0.0.1"); //Hacer referencia al servidor de correo electrónico.

//A continuación, uso el puerto 25, éste es el predeterminado configurado en php.ini
ini_set("smtp_port","25");

ini_set('sendmail_from', 'valid email address');
mail($destinatario,$asunto,$cuerpo/*,$headers*/);

ADVERTENCIA: Si parece que el mensaje se envia, pero no vemos nada en nuestra bandeja de entrada, entonces verificar si el correo se guarda en la carpeta de "Correo no deseado". Es casi garantizado que el mensaje está en esa carpeta.

Si aparece el siguiente mensaje de error:

Warning: mail() [function.mail]: Failed to connect to mailserver at "127.0.0.1" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in "VirtualDirectory\Demo\prueba.php" on line 17

Esto puede ser porque el el servidor Apache está apagado o en pausa.

Finalmente, en el ejemplo se está usando la función ini_set() , esto es porque decidí establecer manualmente el servidor,el puerto y destinatario; no obstante, el servidor de correo, el puerto y destinatario se puede poner en el archivo php.ini para no estarlos estableciendo manualmente.

Recordemos que la función init_set(), nos va a servir para inicializar las variables de configuración que existen en el archivo php.ini.

Hay que tener presente también que en el archivo php.ini existen las variables SMTP para establecer el nombre del servidor de correo y la variable send_mail_from para poner la dirección de correo predeterminada pero en mi caso, también decidí usar la función init_set() para establecer los respectivos valores.

Si se desea crear mensajes más complejos ir a Enviar correo electrónico con PHP. Parte II