<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>CuatroXL &#187; component</title>
	<atom:link href="http://www.cuatroxl.com/category/component/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.cuatroxl.com</link>
	<description>Desarrollo web - Cuatro XL</description>
	<lastBuildDate>Wed, 07 Dec 2011 12:21:02 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Cuatroxl_Controller_Plugin_DataPage :: Un plugin para cargar datos multi-idioma (o no) con ZF</title>
		<link>http://www.cuatroxl.com/2010/08/cuatroxl_controller_plugin_datapage-un-plugin-para-cargar-datos-multi-idioma-o-no-con-zf/</link>
		<comments>http://www.cuatroxl.com/2010/08/cuatroxl_controller_plugin_datapage-un-plugin-para-cargar-datos-multi-idioma-o-no-con-zf/#comments</comments>
		<pubDate>Mon, 02 Aug 2010 12:12:08 +0000</pubDate>
		<dc:creator>acido69</dc:creator>
				<category><![CDATA[component]]></category>
		<category><![CDATA[componente_web]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[zend framework]]></category>
		<category><![CDATA[cuatroxl source]]></category>
		<category><![CDATA[zend_controller plugin]]></category>

		<guid isPermaLink="false">http://cuatroxl.com/?p=406</guid>
		<description><![CDATA[Este plugin viene bastante bien para tener todos los datos de texto en un XML. Por norma general se suele guardar en una base de datos; pero muchas veces el sitio no tiene un CMS o es muy pequeño para tener la información en una base de datos. Con este plugin cargamos un XML, pasandole [...]]]></description>
			<content:encoded><![CDATA[<p>Este plugin viene bastante bien para tener todos los datos de texto en un XML. Por norma general se suele guardar en una base de datos; pero muchas veces el sitio no tiene un CMS o es muy pequeño para tener la información en una base de  datos.</p>
<p>Con este plugin cargamos un XML, pasandole unos parámetros de configuración para que automáticamente nos seleccione un nodo especifico del XML. Esta configuración utiliza comodines de Zend_Route (Module, Controller, Action, ParamX&#8230;.) para el nombre del archivo y el nodo por defecto:</p>
<pre class="brush: php;">
<?php
/*
 * Cuatroxl
 *
 * LICENSE
 *
 * This file is part of Cuatroxl ( http://code.google.com/p/cuatroxl/ ).
 *
 * Cuatroxl is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Cuatroxl is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with Cuatroxl.  If not, see <http ://www.gnu.org/licenses/>.
 *
 *
 * @category   Cuatroxl
 * @package    Cuatroxl_Zf_Action_Helper
 * @autor      Jimmy Collazos <jimmy.collazos@gmail.com>
 * @license    http://www.gnu.org/licenses/gpl.html     GPLv3
 * @version    0.01
 */

/**
 * @see Zend_Controller_Plugin_Abstract
 */
require_once 'Zend/Controller/Plugin/Abstract.php';

/**
 * @category   Cuatroxl
 * @package    Cuatroxl_Controller
 * @subpackage Cuatroxl_Controller_Plugin
 * @license    http://www.gnu.org/licenses/gpl.html     GPLv3
 */
class Cuatroxl_Controller_Plugin_DataPage extends Zend_Controller_Plugin_Abstract
{

    /*
     * Variable de configuración
     *
     * @var Array
     */
    protected       $_config      = array('autoload'  => false
                            ,'filePath'     => 'public/:module/:controller/:action.xml'
                            ,'xpath'        => ''
                            ,'basePath'     => APPLICATION_PATH
                            // esta opción es solo para cuando NO usamos Zend_Application
                            ,'_keyPlugin'   => '');

    /*
     * Ruta del archivo XML a cargar
     *
     * @var string
     */
    protected       $_filePath = null;

    /*
     * Xpath query para poder obteenr el nodo por defecto del XML
     *
     * @var string
     */
    protected       $_xpath = null;

    /*
     * En esta variable se almacena el XML final con el que podemos trabajar
     * desde el controlador
     *
     * @var SimpleXMLElement
     */
    protected       $_data;

    /*
     * Nombre asignado en el archivo de configuración de al aplicación
     *
     * @var string
     */
    private         $_keyPlugin;

    /**
     * Constructor
     *
     * @param  Array
     * @return void
     */

    public function  __construct( array $options = array() ) {

        $this->_setConfig($options);

    }

    /*
     * routeShutdown() es como el constructor ya que se usa para setear el XML
     * en caso de estar activado el "autoload" y también setea la configuración del INI
     *
     * @param Zend_Controller_Request_Abstract
     * @return void
     */
    public function routeShutdown( Zend_Controller_Request_Abstract $request)
    {

        //@TODO cambiar esto por una funcion que setee todas las opciones
        $bootstrap = Zend_Controller_Front::getInstance()
                            ->getParam('bootstrap');
        if(! empty($bootstrap) ){
            $bootstrapOptions   = $bootstrap->getOptions();
            $this->_keyPlugin          = $this->_getKeyPlugin($bootstrapOptions['resources']['frontController']['plugins']);
            if($this->_keyPlugin){
                if(! empty($bootstrapOptions[$this->_keyPlugin]['config'])){
                    $this->_setConfig($bootstrapOptions[$this->_keyPlugin]['config']);
                }
            }
            //@TODO añadir una excepción
            $this->_parseFilePath();
            $this->_parseXPath();

            if( $this->_config['autoload'] ){
                $this->_loadXmlFile();
                $this->_setXPath();
            }
        }
    }

    /*
     * Setea los daots en la variable _data
     *
     * @param SimpleXMLElement
     * @return void
     */
    public function setData ( SimpleXMLElement $data )
    {
        $this->_data = $data;

        if(!empty ($this->_keyPlugin) ){
            Zend_Controller_Front::getInstance()
                    ->setParam($this->_keyPlugin, $this->_data);
        }
    }

    /*
     * Devueble el XML obtenido
     *
     * @return Cuatroxl_Controller_Plugin_DataPage $_data
     *
     */
    public function getData ()
    {
        return $this->_data;
    }

    /*
     * Configura todas las opiones de la clase
     *
     * @var array
     * @return Cuatroxl_Controller_Plugin_DataPage  Provides a fluent interface
     *
     */
    protected function _setConfig( array $config) {
        foreach ($config as $k => $v){
            if(!empty ($v)){
                $this->_config[$k] = $v;
            }
        }
        return $this;
    }

    /*
     * Carga el archivo XML
     *
     * @var string
     * @return Cuatroxl_Controller_Plugin_DataPage Provides a fluent interface
     *
     */
    protected function _loadXmlFile( string $fileName = NULL ) {
        if( $fileName === NULL ){
            $fileName = $this->_filePath;
        }
        if( file_exists( $fileName ) ){
            $data   = simplexml_load_file( $fileName );
            $this->setData( $data );
        }
        return $this;
    }

    /*
     * Ejecuta una query sobre el XML con xpath y devuelve TRUE o FALSE  según el exito de la consulta
     *
     * @var string
     * @return Boolean
     *
     */
    protected function _setXPath( string $path = NULL ) {
        if( $path === NULL){
            $path = $this->_xpath;
        }

        if( empty($this->_xpath) ){
            return false;
        }

        $data = $this->_data->xpath($this->_xpath);

        if( empty ($data[0]) ){
            return false;
        }else{
            $this->setData( array_shift( $data ) );
            return true;
        }

    }

    /*
     * remplaza los comodines en la ruta al XML y devuelve TRUE o FALSE
     * según el exito de la consulta
     *
     * @return Boolean
     *
     */
    private function _parseFilePath() {

        //@TODO indagar para hacer este proceso con con Zend_Controller_Router_Route
        if(! preg_match_all("/:[^\/\.]+/s", $this->_config['filePath'], $matches) ){
            return false;
        }
        $request        = $this->getRequest();
        $values         = array();
        $matches        = $matches[0];
        foreach($matches as $v){
            $values[] = $request->getParam(substr($v, 1));
        }
        $matches[]          = '/';
        $values[]           = DIRECTORY_SEPARATOR;
        $this->_filePath    = str_replace($matches, $values, $this->_config['basePath'].$this->_config['filePath']);

        return true;
    }

    /*
     * remplaza los comodines en la ruta al nodop por defecto del  XML
     * y devuelve TRUE o FALSE  según el exito de la consulta
     *
     * @return Boolean
     *
     */
    private function _parseXPath() {

        //@TODO indagar para hacer este proceso con con Zend_Controller_Router_Route
        if( empty ($this->_config['xpath']) ){
            return false;
        }
        if(! preg_match_all("/:[\d\w_]+/s", $this->_config['xpath'], $matches) ){
            $this->_xpath = $this->_config['xpath'];
            return true;
        }
        $request        = $this->getRequest();
        $values         = array();
        $matches        = $matches[0];
        foreach($matches as $v){
            $values[] = $request->getParam(substr($v, 1));
        }

        $this->_xpath    = str_replace($matches, $values, $this->_config['xpath']);

        return true;
    }

    /*
     * Devuelve el nombre que se designó en el archivo de configuración
     *
     * @return string o false
     */
    private function _getKeyPlugin(array $config)
    {
        foreach ($config as $k => $v){
            if($v === 'Cuatroxl_Controller_Plugin_DataPage'){
                return $k;
            }
        }
        return false;
    }
}
</pre>
<h1>Modo de uso con Zend_Application</h1>
<p>Configuracion:</p>
<pre class="brush: javascript;">
;definimos la clase, en este caso lo asociamos a "dataPage"
resources.frontController.plugins.dataPage = "Cuatroxl_Controller_Plugin_DataPage"
;le decimos que la carga es automática
dataPage.config.autoload = 1
;la ruta del XML utilizando como comodín el parámetro LANG, nombre del controlador y acción
dataPage.config.filePath = ":lang/:controller/:action.xml"
;el nodo, del XML, por defecto que tiene que cargar; también usando la variable PAGE
dataPage.config.xpath = "pages/page[@id=':page']"
;el directorio raíz de donde están los XML
dataPage.config.basePath = APPLICATION_PATH "/../public/data/"
</pre>
<p>Controller:</p>
<pre class="brush: php;">
public function indexAction()
{
    // El parámetro "dataPage" es el mismo nombre con que vinculamos en el archivo de configuración
    var_dump($this->getFrontController()->getParam('dataPage'));
}
</pre>
<p>pdt: tengo que subirlo a Google Code; por lo que pronto colgaré la dirección con un manual más sencillo</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cuatroxl.com/2010/08/cuatroxl_controller_plugin_datapage-un-plugin-para-cargar-datos-multi-idioma-o-no-con-zf/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Menú animado con javascript</title>
		<link>http://www.cuatroxl.com/2009/12/menu-animado-con-javascript/</link>
		<comments>http://www.cuatroxl.com/2009/12/menu-animado-con-javascript/#comments</comments>
		<pubDate>Sun, 20 Dec 2009 21:15:53 +0000</pubDate>
		<dc:creator>acido69</dc:creator>
				<category><![CDATA[component]]></category>
		<category><![CDATA[componente_web]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[utilidades]]></category>

		<guid isPermaLink="false">http://cuatroxl.com/?p=279</guid>
		<description><![CDATA[&#8220;Another Solution to Animation Queue Buildup in jQuery&#8221; web http://www.2meter3.de/code/hoverFlow/]]></description>
			<content:encoded><![CDATA[<p><em>&#8220;Another Solution to Animation Queue Buildup in jQuery&#8221;</em></p>
<p>web <a href="http://www.2meter3.de/code/hoverFlow/">http://www.2meter3.de/code/hoverFlow/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.cuatroxl.com/2009/12/menu-animado-con-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Splash y Popup con javascript</title>
		<link>http://www.cuatroxl.com/2009/12/splash-y-popup-con-javascript/</link>
		<comments>http://www.cuatroxl.com/2009/12/splash-y-popup-con-javascript/#comments</comments>
		<pubDate>Sat, 19 Dec 2009 16:17:25 +0000</pubDate>
		<dc:creator>acido69</dc:creator>
				<category><![CDATA[component]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[popup]]></category>
		<category><![CDATA[utilidades]]></category>

		<guid isPermaLink="false">http://cuatroxl.com/?p=277</guid>
		<description><![CDATA[&#8220;Meerkat, named for its pop up like behavior, is a jQuery plugin created by myself, Jarod Taylor. It was originally created to serve a specific purpose, however, by adding additional functionality to it, I&#8217;ve found several uses for it. Whether it&#8217;s used as a simple promotional tool, a roost for advertisements, or even as an [...]]]></description>
			<content:encoded><![CDATA[<p><em>&#8220;Meerkat, named for its pop up like behavior, is a jQuery plugin created by myself, Jarod Taylor. It was originally created to serve a specific purpose, however, by adding additional functionality to it, I&#8217;ve found several uses for it.</em></p>
<p><em>Whether it&#8217;s used as a simple promotional tool, a roost for advertisements, or even as an alternative to a splash or entry page; Meerkat is unobtrusive, cross-browser compatible, and degrades gracefully if Javascript has been disabled.&#8221;</em></p>
<p>web: <a href="http://jarodtaylor.com/meerkat/">http://jarodtaylor.com/meerkat/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.cuatroxl.com/2009/12/splash-y-popup-con-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Reemplazar una porción de carácter en XSLT</title>
		<link>http://www.cuatroxl.com/2009/02/reemplazar-una-porcion-de-caracter-en-xslt/</link>
		<comments>http://www.cuatroxl.com/2009/02/reemplazar-una-porcion-de-caracter-en-xslt/#comments</comments>
		<pubDate>Mon, 09 Feb 2009 21:39:22 +0000</pubDate>
		<dc:creator>acido69</dc:creator>
				<category><![CDATA[component]]></category>
		<category><![CDATA[componente_web]]></category>
		<category><![CDATA[xsl]]></category>
		<category><![CDATA[codigo]]></category>
		<category><![CDATA[xslt]]></category>

		<guid isPermaLink="false">http://cuatroxl.com/blog/?p=170</guid>
		<description><![CDATA[Función para reemplazar una porción de texto. Función: &#60;!-- Replace funtion--&#62; &#60;xsl:template name="replace-string"&#62; &#60;xsl:param name="str" /&#62; &#60;xsl:param name="delim" /&#62; &#60;xsl:param name="newdelim" /&#62; &#60;xsl:if test="string-length(substring-before($str,$delim)) = 0"&#62; &#60;xsl:value-of select="$str" /&#62; &#60;/xsl:if&#62; &#60;xsl:if test="string-length(substring-before($str,$delim)) &#62; 0"&#62;   &#60;xsl:value-of select="substring-before($str,$delim)" /&#62; &#60;xsl:value-of select="$newdelim" /&#62;   &#60;/xsl:if&#62;   &#60;xsl:if test="string-length(substring-after($str,$delim)) &#62; 0"&#62;   &#60;xsl:call-template name="replace-string"&#62;   &#60;xsl:with-param name="str" select="substring-after($str,$delim)" [...]]]></description>
			<content:encoded><![CDATA[<p>Función para reemplazar una porción de texto.</p>
<p>Función:</p>
<pre name="code" class="xslt">&lt;!-- Replace funtion--&gt;
&lt;xsl:template name="replace-string"&gt;
    &lt;xsl:param name="str" /&gt;
    &lt;xsl:param name="delim" /&gt;
    &lt;xsl:param name="newdelim" /&gt;
   &lt;xsl:if test="string-length(substring-before($str,$delim)) = 0"&gt;
      &lt;xsl:value-of select="$str" /&gt;
   &lt;/xsl:if&gt;
   &lt;xsl:if test="string-length(substring-before($str,$delim)) &gt; 0"&gt;
         &lt;xsl:value-of select="substring-before($str,$delim)" /&gt;
         &lt;xsl:value-of select="$newdelim" /&gt;
   &lt;/xsl:if&gt;
   &lt;xsl:if test="string-length(substring-after($str,$delim)) &gt; 0"&gt;
       &lt;xsl:call-template name="replace-string"&gt;
         &lt;xsl:with-param name="str" select="substring-after($str,$delim)" /&gt;
         &lt;xsl:with-param name="delim" select="$delim" /&gt;
         &lt;xsl:with-param name="newdelim" select="$newdelim" /&gt;
         &lt;xsl:with-param name="ini" value="1" /&gt;
       &lt;/xsl:call-template&gt;
  &lt;/xsl:if&gt;
&lt;/xsl:template&gt;</pre>
<p>Ejemplo de uso:</p>
<pre  name="code" class="xslt">        &lt;xml&gt;
            &lt;title&gt;
                Name__MARCA__Alberto
            &lt;/title&gt;
        &lt;/xml&gt;
        &lt;xsl:template match="title"&gt;
            &lt;xsl:call-template name="replace-string"&gt;
              &lt;xsl:with-param name="str" select="." /&gt;
              &lt;xsl:with-param name="delim" select="'__MARCA__'"/&gt;
              &lt;xsl:with-param name="newdelim" select="' : '" /&gt;
            &lt;/xsl:call-template&gt;
            &lt;xsl:value-of select="."/&gt;
        &lt;/xsl:template&gt;</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.cuatroxl.com/2009/02/reemplazar-una-porcion-de-caracter-en-xslt/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Administradores de archivos, via web</title>
		<link>http://www.cuatroxl.com/2008/10/administradores-de-archivos-via-web/</link>
		<comments>http://www.cuatroxl.com/2008/10/administradores-de-archivos-via-web/#comments</comments>
		<pubDate>Wed, 08 Oct 2008 20:27:43 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ajax]]></category>
		<category><![CDATA[component]]></category>
		<category><![CDATA[componente_web]]></category>
		<category><![CDATA[ExtJs]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[utilidades]]></category>
		<category><![CDATA[herramientas]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://cuatroxl.com/blog/?p=154</guid>
		<description><![CDATA[Hoy me he puesto a querer hacer un proyectillo con Extjs. Como siempre hago, primero busco lo que ya hay echo y si veo que el nivel está muy algo busco otra cosa. Y me apetecía hacer un administrador de archivos, pero la verdad que el listón está muy alto; pongo los dos más interesantes [...]]]></description>
			<content:encoded><![CDATA[<p>Hoy me he puesto a querer hacer un proyectillo con Extjs. Como siempre hago, primero busco lo que ya hay echo y si veo que el nivel está muy algo busco otra cosa.</p>
<p>Y me apetecía hacer un administrador de archivos, pero la verdad que el listón está muy alto; pongo los dos más interesantes que he visto</p>
<h2><strong>Relay</strong></h2>
<p>Un administrador bastante interesante, basado en ajax y <a href="http://php.net">php</a>. Con esta aplicación podemos:</p>
<ul>
<li>navegar</li>
<li>descargar archivos</li>
<li>subir archivos</li>
<li>previsualizar archivos (imágenes y pdf)</li>
</ul>
<p>url: <a href="http://www.ecosmear.com/relay/" target="_blank">http://www.ecosmear.com/relay/</a></p>
<h2><strong>ExtPlorer</strong></h2>
<p>Con esto me he quedado realmente impresionado. Esto era lo que pretendía hacer, pero <a href="http://extjs.com/forum/member.php?u=2183">Soeren</a> (nombre de usuario en el foro de ExtJs) se ha lucido con este genial trabajo.</p>
<p>Este administrador tiene todo lo se le puede pedir a un administrador de archivo:</p>
<ul>
<li>editar, copiar, mover, borrar archivos</li>
<li> buscar, subir y descargar archivos</li>
<li>crear, editar archivos</li>
<li>editor de permisos</li>
</ul>
<p>lo mejor es que lo bajéis e instalarlo  en local y ver que el trabajo es excelente</p>
<p>url: <a href="http://extplorer.sourceforge.net/" target="_blank">http://extplorer.sourceforge.net/</a></p>
<p><img class="alignnone" title="administrador de archivos online" src="http://extplorer.sourceforge.net/extplorer.png" alt="preview" width="100%" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.cuatroxl.com/2008/10/administradores-de-archivos-via-web/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>AjaxIM, un cliente de mensajeria instantanea web</title>
		<link>http://www.cuatroxl.com/2008/10/ajaxim-un-cliente-de-mensajeria-instantanea-web/</link>
		<comments>http://www.cuatroxl.com/2008/10/ajaxim-un-cliente-de-mensajeria-instantanea-web/#comments</comments>
		<pubDate>Wed, 08 Oct 2008 15:08:41 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[ajax]]></category>
		<category><![CDATA[component]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[utilidades]]></category>
		<category><![CDATA[ajaxim]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[mensajeria instantanea]]></category>

		<guid isPermaLink="false">http://cuatroxl.com/blog/?p=151</guid>
		<description><![CDATA[Siempre viene saber de la existencia de un cliente de mensajería instantánea, basada en web con ajax, lista para descargar e instalar en nuestra aplicación. Que picarla entera puede ser muy costoso, y también verla como funciona y poder basarse en su arquitectura y adaptarla para nuestras necesidades Tiene licencia BSD modificada. Web: http://www.ajaxim.com/]]></description>
			<content:encoded><![CDATA[<p>Siempre viene saber de la existencia de un cliente de mensajería instantánea, basada en web con ajax, <strong>lista para descargar</strong> e instalar en nuestra aplicación.</p>
<p>Que picarla entera puede ser muy costoso, y también verla como funciona y poder basarse en su arquitectura y adaptarla para nuestras necesidades</p>
<p><a href="http://www.ajaxim.com/license">Tiene licencia BSD modificada.</a></p>
<p>Web: <a href="http://www.ajaxim.com/">http://www.ajaxim.com/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.cuatroxl.com/2008/10/ajaxim-un-cliente-de-mensajeria-instantanea-web/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ext.ux.YoutubePlayer &#8211; el media player de Ext JS</title>
		<link>http://www.cuatroxl.com/2008/03/extuxyoutubeplayer-el-media-player-de-ext-js/</link>
		<comments>http://www.cuatroxl.com/2008/03/extuxyoutubeplayer-el-media-player-de-ext-js/#comments</comments>
		<pubDate>Sat, 29 Mar 2008 14:43:13 +0000</pubDate>
		<dc:creator>acido69</dc:creator>
				<category><![CDATA[ajax]]></category>
		<category><![CDATA[component]]></category>
		<category><![CDATA[componente_web]]></category>
		<category><![CDATA[ExtJs]]></category>
		<category><![CDATA[components]]></category>

		<guid isPermaLink="false">http://cuatroxl.wordpress.com/?p=72</guid>
		<description><![CDATA[En palabras de su creador; Thorsten Suckow-Homberg: &#8220;Ext.ux.YoutubePlayer permite a los desarrolladores integrar vídeos de YouTube ,utilizando ExtJs framework, para controlar la reproducción de vídeo. No muestra la carga del vídeo pero puedes moverte en el tiempo del vídeo(time slider) y puedes controlar el volumen&#8221; Es open source, y bantante bonito para insertarlo en mi [...]]]></description>
			<content:encoded><![CDATA[<p>En palabras de su creador; <span> Thorsten Suckow-Homberg:</span></p>
<p>&#8220;<span style="background-color:#e6ecf9;">Ext.ux.YoutubePlayer permite a los desarrolladores integrar vídeos de YouTube ,utilizando ExtJs framework, para controlar la reproducción de vídeo.</span> <span><span class="google-src-text" style="direction:ltr;text-align:left;">No muestra la carga del vídeo pero puedes moverte en el tiempo del vídeo(time slider) y puedes controlar el volumen&#8221;</span></span></p>
<p>Es open source, y bantante bonito para insertarlo en mi Proyecto 004.</p>
<p>web: <a href="http://www.siteartwork.de/youtubeplayer/">http://www.siteartwork.de/youtubeplayer/</a><br />
descargar: <a href="http://www.siteartwork.de/youtubeplayer/youtubeplayer.zip">http://www.siteartwork.de/youtubeplayer/youtubeplayer.zip</a><br />
preguntas: <a href="http://extjs.com/forum/showthread.php?t=30352">http://extjs.com/forum/showthread.php?t=30352</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.cuatroxl.com/2008/03/extuxyoutubeplayer-el-media-player-de-ext-js/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Draggable(arrastrar y solatar) Tree &#8211; sobre Mootools</title>
		<link>http://www.cuatroxl.com/2007/12/draggablearrastrar-y-solatar-tree-sobre-mootools/</link>
		<comments>http://www.cuatroxl.com/2007/12/draggablearrastrar-y-solatar-tree-sobre-mootools/#comments</comments>
		<pubDate>Sun, 02 Dec 2007 15:39:09 +0000</pubDate>
		<dc:creator>acido69</dc:creator>
				<category><![CDATA[component]]></category>
		<category><![CDATA[componente_web]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[mootools]]></category>
		<category><![CDATA[tree draggable]]></category>

		<guid isPermaLink="false">http://cuatroxl.wordpress.com/2007/12/02/draggablearrastrar-y-solatar-tree-sobre-mootools/</guid>
		<description><![CDATA[Este componente para mootools nos brinda la posibilidad de poder mover, editar y añadir los nodos de nuestro tree(árbol de información) http://seri.ous.ly/draggable_tree/]]></description>
			<content:encoded><![CDATA[<p>Este componente para mootools nos brinda la posibilidad de poder mover, editar y añadir los nodos de nuestro tree(árbol de información)</p>
<p><a href="http://seri.ous.ly/draggable_tree/">http://seri.ous.ly/draggable_tree/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.cuatroxl.com/2007/12/draggablearrastrar-y-solatar-tree-sobre-mootools/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Listado de componentes y utilidades UI(user interface) javascript(framewors: mootools, jquery)</title>
		<link>http://www.cuatroxl.com/2007/12/listado-de-componentes-y-utilidades-uiuser-interface-javascriptframewors-mootools-jquery/</link>
		<comments>http://www.cuatroxl.com/2007/12/listado-de-componentes-y-utilidades-uiuser-interface-javascriptframewors-mootools-jquery/#comments</comments>
		<pubDate>Sun, 02 Dec 2007 13:46:20 +0000</pubDate>
		<dc:creator>acido69</dc:creator>
				<category><![CDATA[ajax]]></category>
		<category><![CDATA[component]]></category>
		<category><![CDATA[componente_web]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[mootools]]></category>
		<category><![CDATA[componente web]]></category>
		<category><![CDATA[lightbox]]></category>

		<guid isPermaLink="false">http://cuatroxl.wordpress.com/2007/12/02/listado-de-componentes-y-utilidades-uiuser-interface-javascriptframewors-mootools-jquery/</guid>
		<description><![CDATA[interesante web para buscar nuestros componentes javascript, hay más uno bastante interesante.]]></description>
			<content:encoded><![CDATA[<p style="text-align:center;"><a href="http://www.hotajax.cn/"><img src="http://lh5.google.com/acido69/R1K2Jn9MKyI/AAAAAAAAAEc/-Xw9a1eiq1Q/s800/hotajax.gif" /></a></p>
<p>interesante web para buscar nuestros componentes javascript, hay más uno bastante interesante.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cuatroxl.com/2007/12/listado-de-componentes-y-utilidades-uiuser-interface-javascriptframewors-mootools-jquery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

