Logo geekia
Posts etiquetados con: desarrollo

Migrando y rediseñando el que es y será nuestro último drupal

Uno de los últimos proyectos en el que hemos trabajado ha sido la migración de un marketplace ( más o menos 😛 ) bajo drupal con una estructura un poco liosa y un theme bastante antiguo.

Debido a que algunos de los módulos creados y usados todavía no se habían migrado a drupal 8, pensamos que la opción más correcta era seguir con drupal 7, especialmente también por tiempos y presupuesto 😉

En principio, el cliente solo nos solicitó pequeñas cambios estéticos y de funcionalidad pero comprabando como estaba el site, nuestra propuesta fue un rediseño completo, tanto del theme como del propio funcionamiento.

Antes del rediseño visual nos encargamos de unificar y simplificar la arquitectura de contenidos, basándonos principalmente en el nodo anuncio, que es el principal del site.

Diseño antiguo

Diseño antiguo

El cliente nos comentaba que las llamadas para modificar algo del anuncio o para darlo de alta eran constantes, así que, una vez unificados los diferentes tipos de contenido en uno, se preparó para que su creación no fuera tan “liosa”.

Usamos el módulo create and reg para que cuando se creara un anuncio, se cree tambien un usuario ya que muchos de los problemas de la anterior versión eran que tenían que dar de alta antes un usuario para poder generar despues el anuncio.

Además, para crear el anuncio, eliminamos todos los posibles distractores para que el usuario se centrara exclusivamente en eso.

El resultado hay sido una mejora considerable en el tiempo a la hora de crear un anuncio y la minimización de posibles errores.

Una vez habiamos resuelto la creación del anuncio, lo demás ha sido trabajar en base a él, creando las vistas y demás.

 

Nuevo diseño

Nuevo diseño

Para la migración de los anuncios antiguos al nuevo sitio no hemos usado migrate, hemos creado un pequeño módulo para ello ya que además de migrar necesitabamos crear nuevos campos y rellenarlos con información dependiente de otros campos.
“Poco despues hemos descubierto que se podría haber hecho tambien con migrate :(”

Sin embargo, para la otra parte de la web, el foro, si la hemos utilazado y ha sido bastante sencilla su implementación.

En el nuevo diseño visual, se han mantenido los colores oscuros y se ha basado en el framework Foundation si, somos de los raros que no usan Bootstrap para el front-end pero nos hemos adaptado a trabajar con él y de momento cubre la mayoría de nuestras necesidades.

La home se ha unificado con la vista anuncios y se ha mejorado la presentación de los mismos.

Listado antiguo

Nueva home y listado

 

 

 

 

 

 

 

 

 

Otro de los puntos creados han sido los nuevos banners, menos intrusivos e incorporados al propio grid del theme, y los destacados en un carrusel en la parte superior y dentro de cada anuncio en la parte inferior del mismo.

Pero, como antes comentaba, sin duda alguna el cambio visual en el nodo anuncio ha sido el más completo.

Se ha dado más importancia a las imágenes, se ha mejorado la validación, se ha incorporado un sistema de favoritos y se han taxonomizado los anuncios para un mejor resultado en la búsqueda, la cual tambien ha sido mejorada, entre otras muchas más cosas.

Antigua vs Nueva

Internamente, el panel del usuario para poder gestionar sus anuncios también se ha diseñado desde cero así como el del administrador.

En definitiva, lo que iba a ser un pequeño trabajo de theming se convirtió en un proyecto completo, el cual está funcionando bastante bien.

pd: no se cual ha sido el equipo de desarrollo anterior, pero con mensajes como éste en el código, me han ganado, eso es comentar y lo demás tontería.

codigo


Integraci­ón de Tractis Identity Verifications con CakePHP [v0.2]

Hace poco que he vuelto a retomar el tema de la identificaci­ón con Tractis Identity Verifications gracias a Manolo Ruiz que me lo record­ó 😉

Atenea tech ha desarrollado un m­ódulo para poder usarlo con Drupal con el que se puede conectar de una forma muy sencilla, pero yo lo quiero usar con CakePHP, asi que basándome en este he preparado uno para mi framework favorito 😉

El ejemplo lo puedes comprobar en la pagina http://wifi.planetalmeria.com/usuarios/tractis, puedes acceder usando tu certificado. Si no dispones de un certificado puedes descargar uno de pruebas (Password:1111)

La clase usada es esta:

/* Constantes */
define('API_KEY', ''); // consigue tu apikey en https://www.tractis.com/identity_verifications
define('URL_OK', ''); // URL de destino una vez nos hemos identificado

class Tractics
{

var $status;

function iniciar()
{
 $_GET['api_key'] = API_KEY;
 $ch = curl_init();
 curl_setopt($ch, CURLOPT_POST, true);
 curl_setopt($ch, CURLOPT_POSTFIELDS, $_GET);
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
 curl_setopt($ch, CURLOPT_URL, 'https://www.tractis.com/data_verification');
 curl_exec($ch);
 $status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
 curl_close($ch);
 return $status;
}
}

Bastante simple 😉 ademas se puede descargar desde aquí­, este archivo (tractis.php) se coloca en la carpeta vendors de tu app.

La Api Key de Tractis se consigue registrándose en la página.

Ahora solo es llamarlo en el controller


App::import('Vendor', 'tractis');

class Nombre_del_Controller extends AppController
{
 variables

function tractis()
    {
// Vacio
    }

    function tractisok()
    {
$tractis = new Tractics;
$idtractis = $tractis->iniciar();
if ($idtractis==200) {
$user_data = array(
'tractis' => array(
'name' => $_GET['tractis:attribute:name'],
'dni' => $_GET['tractis:attribute:dni'],
'issuer' => $_GET['tractis:attribute:issuer'],
),
);
$this->set('usuario', $user_data);
} else {
$this->Session->setFlash('Idenficacion no realizada');
}
    }
}

Y en las views:

tractis.ctp


<?php echo $form->create(null, array('url' => 'https://www.tractis.com/verifications'));?>
<?php echo $form->input(null,array('type'=>'hidden', 'name'=>'api_key', 'value'=>API_KEY));?>
<?php echo $form->input(null,array('type'=>'hidden', 'name'=>'notification_callback', 'value'=>URL_OK));?>
<?php echo $form->submit('Hacer login', array('name'=>'commit'));?>
<!-- OPCIONAL: el campo public_verification es opcional -->
<?php echo $form->input(null,array('type'=>'hidden', 'name'=>'public_verification', 'value'=>true));?>
<?php echo $form->end(); ?>

y tractisok.ctp


<?php if (isset($usuario)) { ?>
Datos del usuario: <?php print_r($usuario); ?>
<?php } else {?>
Debes <?php echo $html->link('identificarte', '/usuarios/tractis', array('class'=>'add')); ?>
<?php } ?>

y listo.

pd: para usar con el componente Auth


Almeria, web, desarrollo, accesibilidad a gran nivel

No tení­a ni idea de como llamar a este post, asi que he usado las palabras de las que trata, y tambien, los siento Luis 😉 otro post despues del suyo ya que cuando se hací­a esa pregunta de si el desarrollo web en Almerí­a era una realidad o una leyenda, creo que ya se estaba respondiendo 😉 , pero no solo en cuanto a desarrollo, sino me atreveria decir en cuanto a “cultura web” se trata.

Sin ir más lejos, esta semana Almerí­a nos ha demostrado muchas cosas, y la primera, en Abla, ¿como no?, formando parte de la Red Europea de Living Labs, ENoLL, como espacio social de innovaci­ón (más informaci­ón). Mis felicitaciones a todos los abulenses y me imagino a los grandes impulsores de que esto haya pasado que seguro que uno es Pacoxxi 😉

Pero aquí­ no acaba la cosa, hoy me entero que Luis Medel ha conseguido el premio a la creaci­ón de empresas virtuales organizado por la Junta de Andalucia con el proyecto openfinz cuya cuantí­a es de 3000 euros, o sea, que si se organiza la WEBada a una caña me tienes que invitar 😉 “se trata de una plataforma (acceso por web, por m­óvil, SMS…) que permitirí­a a los usuarios gestionar sus ingresos y sus gastos de manera completamente an­ónima utilizando sistemas de verificaci­ón similares a los que utilizan algunas webs con registros médicos. Al mismo tiempo se permitirí­a a los usuarios etiquetar (segmentar, al fin y al cabo) dicha informaci­ón de manera voluntaria para así­ obtener beneficios como la obtenci­ón de estadí­sticas para dichos segmentos, poder formular consultas al sistema para obtener informes personalizados y consejos sobre tendencias de consumo (por ejemplo, marcas más baratas, lugares de ocio más asequibles, etc.) y un largo etcétera. De manera adicional, toda esa informaci­ón agregada serí­a fácilmente explotable para facilitar el acceso a la plataforma a posibles anunciantes.” (lástima no se me hubiera ocurrido a mi) no en serio, felicidades.

Y por ­último y en los IX premios a las mejores webs andaluzas organizado por Cibersur y queriendo destacar la importancia de la accesibilidad web me han otorgado un reconocimiento 😛 no esta mal, teniendo en cuenta que esa secci­ón no existia, creo que se esta empezando a tener más en cuenta la accesibilidad y no solo en la Administraci­ón sino en la empresa privada, ojala no me equivoque y no sea “una moda”

Pues eso Almeria, web (Abla), desarrollo (Luis), accesibilidad (yo mismo)


Herramientas menos-esenciales para el desarrollo web

Siguiendo con el post de Luis Medel, y ya que estaba arreglando mis “marcadores” me he dado cuenta de que algunas paginas las uso tambien para el desarrollo, aunque claro, no se puede decir que sean “herramientas” propiamente dichas, os pongo las que suelo usar más a menudo:

GOTAPI, ¿no recuerdas como era ese comando, o que parámetros tení­a? en esta página encontrarás bastantes lenguajes, en su mayorí­a para tema web, pero que te pueden sacar de alg­ún apuro; lo siento pedro, nuestro querido drupal solo llega hasta la 4.7 😉

WD Handbook, cientos de links relaccionados con el desarrollo web muy bien ordenados, aunque empieza a estar desfasada, siempre es bueno tenerlos a mano. Tambien está esta pagina, pero me gusta más la anterior 🙂

Clean CSS, lo uso poquito, pero para antiguas páginas en las que mi css era “mu sucio” me ha servido para hacerlo un poco más pequeño y con ello ahorrar ancho de banda, que está “mu caro” 😉

Anonymouse, me ha salvado de muchí­smos quebraderos de cabeza, sobre todo cuando he tenido problemas con mi ISP y no he podido acceder a alguna página, a traves de esta no he tenido problemas, eso si, a una velocidad…

GoogleDirson, ¿necesitas un plano de google maps, pero más grande? en esta página te enseñan como hacerlo, dependiendo del tamaño del archivo puede tardar un poco, yo saque uno de Almeria de 5000×5000 y tardo 1 minuto 😉

Who Is Hosting This, que estás navegando y ves un sitio que carga en un instante y ves que la navegaci­ón es fluida, puede ser que su server sea bueno, con esta pagina puedes averiguar el hosting de cualquier página.

Traceroute, ¿te está dando problemas tu servidor, o es culpa de tu conexion? puedes hacer un traceroute y comprobar como viajan los datos a tu servidor. Una buena forma de saber si hay problemas en tu hosting.