miércoles, 27 de febrero de 2008

Internet Explorer 6 y 7 en Linux

Algo que debe hacer un desarrollador o diseñador web es realizar test a los proyectos en los cuales trabaja. Estos test debe hacerlo en diferentes exploradores como Internet Explorer, Firefox, Safari, etc. Por esta razón es de gran importancia contar con aunque sea los 3 ántes mencionados para realizar estos test.
En linux la mayoría de las personas usa Firefox ya que tiene una versión nativa para linux, pero para Internet Explorer no la hay. Pero afortunadamente existe el proyecto IEs 4 Linux. Con esta opción podemos tener varias versiones de Internet Explorer en Linux, incluso con la versión beta se puede tener IE 7.

Este paquete depende de los paquetes wine y cabextract (en debian o ubuntu utilizar sudo aptitude install wine cabextract)
Los pasos para su instalación son los siguientes:
  • Abrimos la consola y nos bajamos la última versión del paquete:
    #: wget http://www.tatanka.com.br/ies4linux/downloads/ies4linux-latest.tar.gz
  • Descomprimimos el paquete y entramos a la carpeta:
    #: tar zxvf ies4linux-latest.tar.gz #: cd ies4linux-*
  • Ejecutamos el instalador con la opción para IE 7:
    #: ./ies4linux --hack-ie7-proxy-settings
  • Nos debe salir una pantalla como esta:

  • Haz clic en Advanced para que escojas la opción para instalar IE7.
  • Espera a que termine la instalación y listo ya tienes la opción de utilizar IE en linux. Los ejecutables normalmente se guardan en /homa/ususario/bin/.
Saludos ...

lunes, 25 de febrero de 2008

Problema flash-plugin-nonfree para Firefox en Ubuntu

Solución:
La solucion fue la siguiente

1. sudo apt-get install flashplugin-nonfree
2. sudo nano /var/lib/dpkg/info/flashplugin-nonfree.postinst
3. Editar:

Code:
# verify MD5 checksum of (copied or downloaded) tarball
rm -rf install_flash_player_9_linux/
echo "821cc72359a937caef85bb4cc74ef5cd install_flash_player_9_linux.tar.gz"| md5sum -c > /dev/null 2>&1 \
|| fp_exit_with_error "md5sum mismatch install_flash_player_9_linux.tar.gz"

# unpacking and checking the plugin
tar xzf install_flash_player_9_linux.tar.gz || fp_exit_with_error "cannot unpack plugin"
echo "be5a2f9032f8fc8bccbbf5d96c5028f9 install_flash_player_9_linux/libflashplayer.so"| md5sum -c > /dev/null 2>&1 \
|| fp_exit_with_error "plugin changed, not trusted"
echo "a81fd3b03b8c6d6e5a14298110718d3f install_flash_player_9_linux/flashplayer.xpt"| md5sum -c > /dev/null 2>&1 \
|| fp_exit_with_error "plugin changed, not trusted"
a lo siguiente:

Code:
 # verify MD5 checksum of (copied or downloaded) tarball
rm -rf install_flash_player_9_linux/
echo "93b7c48eaa492237b807a3ae1de65cf9 install_flash_player_9_linux.tar.gz"| md5sum -c > /dev/null 2>&1 \
|| fp_exit_with_error "md5sum mismatch install_flash_player_9_linux.tar.gz"

# unpacking and checking the plugin
tar xzf install_flash_player_9_linux.tar.gz || fp_exit_with_error "cannot unpack plugin"
#echo "a81fd3b03b8c6d6e5a14298110718d3f install_flash_player_9_linux/flashplayer.xpt"| md5sum -c > /dev/$
#echo "13ce705df5d47422a9192b29827544e8 install_flash_player_9_linux/libflashplayer.so"| md5sum -c > /de$
#|| fp_exit_with_error "plugin changed, not trusted"
4. sudo dpkg-reconfigure flashplugin-nonfree

Referencia: http://ubuntuforums.org/showthread.php?t=637684

viernes, 15 de febrero de 2008

setFlash de CakePHP con ZendFramework

Por estos días estoy en training total de Zend Framework, la verdad un framework muy flexible, con una gama de clases bastante buenas que permiten agilizar nuestro tiempo de desarrollo (ojo eso si dominamos dicho framework, no demora mucho tiempo dominarlo).

En fin anteriormente he utilizado CakePHP, otro framework que me gusta bastante, pero que aunque más fácil de usar, diría a mi concepto es menos flexible que el framework de Zend.

Para ir al asunto, hay varias funciones de cakephp que me gustan mucho, entre ellas la que utilizamos en el controlador para guardar mensajes y mostrarlos aunque se haga un redirect ($this->Session->setFlash). Por ejemplo si tenemos un módulo de noticias y guardamos una noticias, pero redirigimos a la página donde se listan las noticias y no al formulario para agregarla, tenemos que hacer un redirect ($this->_redirect('/')), o sea, que si queremos mostrar un mensaje no podríamos hacerlo (que yo cepa, me imagino que alguna otra forma habrá).

Para eso cree un controlador base (BaseController.ph) que hereda de Zend_Controller_Action. En el agregúe dos funciones, setFlash para setear el mensaje y getFlash para obtener dicho mensaje (Si quieres que funcione para cualquier controlador entonces debes heredar de esta clase los controladores). Estas funciones utilizan una variable de sesión por lo que en el bootstrap (index.php) debemos abrir la sesión así:

Zend_Loader::loadClass('Zend_Session');
Zend_Loader::loadClass('Zend_Session_Namespace');

/**
* Abro la sesión
*/
Zend_Session::start();

---------------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------------

Ahora les dejo con el código del controlador base (BaseController.php)

/**
* BaseController
*
* @author
* @version
*/

require_once 'Zend/Controller/Action.php';

class BaseController extends Zend_Controller_Action {
/**
* The default action - show the home page
*/

public function init() {
$this->initView();
$this->view->siteInfo = Zend_Registry::get('siteInfo');
$translate = Zend_Registry::get('translate');
$this->view->declareVars(array('t' => $translate));
}

public function postDispatch(){
$this->view->danmessage = $this->getFlash();
}

public function baseUrl()
{
$fc = Zend_Controller_Front::getInstance();
$request = $fc->getRequest();
return $request->getBaseUrl();
}


public function setFlash($msg = ''){
$danmsg = new Zend_Session_Namespace('dan.message');
$danmsg->mensaje = $msg;
}


public function getFlash(){
$r = new Zend_Session_Namespace('dan.message');
$return = $r->mensaje;
$r->mensaje = null;
return $return;
}
}

---------------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------------

Ahora en mi caso estoy usando la clase Zend_Layout, por lo que uso un template. Para colocar este mensaje en tu template solo debes imprimirlo donde desees. Solo debes utilizar esto:

<?=$this->danmessage ?>