Error de Eclipse en Ubuntu 10.04 con PhpEclipse

La versión de repositorios de Eclipse para Ubuntu nunca ha funcionado perfectamente, siempre hay que ajustar algo.

En Ubuntu Lucid Lynx no vamos a encontrarnos con la excepción.

En mi caso, el error se presentó al querer instalar PhpEclipse. Durante el proceso, recibí un mensaje de error.

Ahora bien, a diferencia de otras veces, me puse a buscar (no puede ser que siempre haya problemas con ésta ide).

Después de leer muchísimos threads y hacer unas cuantas pruebas en más de un desktop, encontré que la forma para solucionarlo era agregando paquetes de Eclipse que por defecto no se instalan.

Para solucionarlo, vamos a buscar si los paquetes eclipse-pde eclipse-jdt eclipse-rcp están instalados.

root@linux:~# aptitude search eclipse-pde eclipse-jdt eclipse-rcp
p   eclipse-jdt                                                            - Eclipse Java Development Tools (JDT)
p   eclipse-pde                                                            - Eclipse Plug-in Development Environment (PDE)
i A eclipse-rcp                                                            - Eclipse Rich Client Platform (RCP)

Continue reading

Creando un nuevo controller en CodeIgniter

Vamos a crear nuestro primer controlador, para luego ir sumando los otros elementos del patrón MVC.

A manera de ejercicio vamos a ir armando, a lo largo de varios posts, una pequeña y sencilla aplicación que nos obligue a loguearnos para que luego podamos realizar alguna tarea (sobre la marcha veremos qué se puede armar).

Siguiendo ésta línea, vamos a crear un controlador que nos obligará a loguearnos. De ésta forma, se convertirá en el controlador por defecto de la aplicación.

Cuando comenzamos a jugar o trabajar con el framework, vamos a ver que nos aparece un mensaje de bienvenida. Justamente, es el controlador Welcome el que se hace presente.

Ahora bien, por qué ese controlador y no otro. Esto se debe a que una de las configuraciones de CodeIgniter nos permite especificar cuál controlador se ejecutará por defecto.

Para saber cuál es o para cambiarlo, debemos acceder al archivo /system/application/config/routes.php y buscar los siguientes valores (serán los únicos no comentados):

$route['default_controller'] = "welcome";
$route['scaffolding_trigger'] = "";

Vamos a cambiar el valor de default_controller a login. Debe quedarnos de la siguiente forma.

$route['default_controller'] = "login";
$route['scaffolding_trigger'] = "";

Entendido esto, creamos nuestro primer controlador. En la carpeta /system/application/controllers tenemos el archivo welcome.php. Ese es el controlador (el único) que vamos a encontrar.

Continue reading

Primeros pasos con CodeIgniter

Ya habíamos visto (hace un tiempo) cómo se compone, mínimamente, la estructura de directorios y archivos que componen CodeIgniter.

Una vez que hayas descomprimido el framework, ya estamos listos para empezar.
Lo primero que deberíamos hacer es comenzar con las configuraciones básicas. Para esto vamos a abrir el archivo /system/application/config/config.php y vamos a cambiar el primer parámetro en la línea 14:

$config['base_url'] = "http://example.com/";

Lo vamos a cambiar por la url completa de nuestra aplicación.
Vamos a suponer que se tratara de este mismo blog, la url quedaría de la siguiente forma.

$config['base_url'] = "http://www.damianculotta.com.ar/";

Como bien dice el manual, si vamos a utilizar base de datos, debemos especificar la configuración en /system/application/config/database.php. Busquemos la siguiente sección:

$db['default']['hostname'] = "localhost";
$db['default']['username'] = "";
$db['default']['password'] = "";
$db['default']['database'] = "";
$db['default']['dbdriver'] = "mysql";
$db['default']['dbprefix'] = "";
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = "";
$db['default']['char_set'] = "utf8";
$db['default']['dbcollat'] = "utf8_general_ci";

Y completemos, al menos, los datos de conexión a nuestra base de datos.

Cuando accedamos a nuestra url, veremos el mensaje de bienvenida que es manejado por el controller Welcome del framework.

Con esto ya estamos listos para comenzar a desarrollar nuestra primera aplicación.

Provincias en un formulario de contacto personalizado en Magento

Supongamos que necesitamos armar un formulario de contacto adicional al que ya provee Magento. Supongamos también que necesitamos utilizar datos de la plataforma.

En éste ejemplo vamos a ver cómo invocar las provincias/regiones en nuestro formulario.

La porción de código referente al dropdown que mostrará las regiones se vería, pensando en el skin default, de la siguiente manera:

<div class="input-box">
    <label for="state"><?php echo Mage::helper('customcontacts')->__('State') ?> <span class="required">*</span></label><br />
    <?php $_regions = Mage::getModel('directory/region')->getCollection();?>
    <select name="state" id="state" class="required-entry validate-select">
        <option value=""><?php echo Mage::helper('customcontacts')->__('Select State') ?></option>
        <?php foreach($_regions as $_region): ?>
            <option value="<?php echo $_region->getName(); ?>"><?php echo $_region->getName(); ?></option>
        <?php endforeach; ?>
    </select>
</div>

El resultado de éste código seria el siguiente.

Ahora bien, no buscamos todas las provincias, estados o regiones que tenemos disponibles, sino que vamos a filtrar según un país dado.

En el ejemplo, previo instalación de la extensión Dc_Argentineregions, vamos a buscar obtener sólo las provincias de Argentina.

Para esto, tenemos que hacer un pequeño cambio a nuestro código.

<div class="input-box">
    <label for="state"><?php echo Mage::helper('customcontacts')->__('State') ?> <span class="required">*</span></label><br />
    <?php $_regions = Mage::getModel('directory/region')->getResourceCollection()->addCountryFilter('AR')->load();?>
    <select name="state" id="state" class="required-entry validate-select">
        <option value=""><?php echo Mage::helper('customcontacts')->__('Select State') ?></option>
        <?php foreach($_regions as $_region): ?>
            <option value="<?php echo $_region->getName(); ?>"><?php echo $_region->getName(); ?></option>
        <?php endforeach; ?>
    </select>
</div>

Y el resultado será el siguiente:

Lo que hicimos fue cambiar el método de lectura del modulo y agregarle el método addCountryFilter pasandole el código del país que necesitamos.

Iniciar un proyecto con CodeIgniter

En Php podemos encontrar gran cantidad de frameworks que buscan resolver cuestiones estructurales al momento de plantearnos una aplicación. Uno de ellos, es CodeIgniter.

Este post no trata sobre vender las bondades del framework, sino sobre cómo empezar a usarlo.

Inicializar un proyecto es algo bastante sencillo y rápido.

Lo primero será descargar CodeIgniter.

Una vez descomprimido el paquete (y suponiendo que lo ubicamos en el directorio del proyecto) nos vamos a encontrar con la siguiente estructura.

/
|
+--/ system
|
+--/ user_guide
|
+-- index.php
|
+-- license.txt

Ahora, si apuntamos con nuestro navegador hacia la dirección/carpeta en donde esté el proyecto, tendríamos que ver la siguiente página.

Bienvenida de CodeIgniter

Continue reading