<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Dokeos Latinoamérica &#187; framework</title>
	<atom:link href="http://dokeoslatinoamerica.wordpress.com/tag/framework/feed/" rel="self" type="application/rss+xml" />
	<link>http://dokeoslatinoamerica.wordpress.com</link>
	<description>Reportes de actividad, tips y consideraciones</description>
	<lastBuildDate>Tue, 15 Dec 2009 21:13:47 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>es</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='dokeoslatinoamerica.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/067f4f68c6dd2fd8b9447fc660b4fa12?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>Dokeos Latinoamérica &#187; framework</title>
		<link>http://dokeoslatinoamerica.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://dokeoslatinoamerica.wordpress.com/osd.xml" title="Dokeos Latinoamérica" />
		<item>
		<title>Curso interno sobre Akelos</title>
		<link>http://dokeoslatinoamerica.wordpress.com/2009/09/01/curso-interno-sobre-akelos/</link>
		<comments>http://dokeoslatinoamerica.wordpress.com/2009/09/01/curso-interno-sobre-akelos/#comments</comments>
		<pubDate>Tue, 01 Sep 2009 17:18:14 +0000</pubDate>
		<dc:creator>ywarnier</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[eventos]]></category>
		<category><![CDATA[técnico]]></category>
		<category><![CDATA[akelos]]></category>
		<category><![CDATA[framework]]></category>

		<guid isPermaLink="false">http://dokeoslatinoamerica.wordpress.com/?p=954</guid>
		<description><![CDATA[Jhon y Ronny nos están honrando hoy con un pequeño curso sobre Akelos, el framework PHP con el cual van desarrollando OpenC2C y otras aplicaciones desde hace tiempo.


El framework Akelos, aparte de ofrecer funcionalidades basadas en el modelo de Ruby on Rails (mucho más que CakePHP), ofrece una gestión integrada de pruebas automatizadas (generación de [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dokeoslatinoamerica.wordpress.com&blog=3963915&post=954&subd=dokeoslatinoamerica&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Jhon y Ronny nos están honrando hoy con un pequeño curso sobre Akelos, el framework PHP con el cual van desarrollando OpenC2C y otras aplicaciones desde hace tiempo.</p>
<p><a href="http://dokeoslatinoamerica.files.wordpress.com/2009/09/jhon-akelos.jpg"><img class="aligncenter size-medium wp-image-955" title="jhon-akelos" src="http://dokeoslatinoamerica.files.wordpress.com/2009/09/jhon-akelos.jpg?w=300&#038;h=222" alt="jhon-akelos" width="300" height="222" /></a></p>
<p><a href="http://dokeoslatinoamerica.files.wordpress.com/2009/09/jhon-akelos.jpg"><a href="http://dokeoslatinoamerica.files.wordpress.com/2009/09/ronny-akelos.jpg"><img class="aligncenter size-medium wp-image-958" title="ronny-akelos" src="http://dokeoslatinoamerica.files.wordpress.com/2009/09/ronny-akelos.jpg?w=300&#038;h=254" alt="ronny-akelos" width="300" height="254" /></a></a></p>
<p>El framework Akelos, aparte de ofrecer funcionalidades basadas en el modelo de Ruby on Rails (mucho más que CakePHP), ofrece una gestión integrada de pruebas automatizadas (generación de esqueletos de pruebas), gestión de internacionalización y creación automatizada de esqueletos de objetos (incluyendo interfaces CRUD &#8211; Create Read Update Delete).</p>
<p>Este capacitación interna viene frente a un proyecto de desarrollo grande en el cual vamos a estar trabajando a lo largo del mes de Septiembre.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dokeoslatinoamerica.wordpress.com/954/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dokeoslatinoamerica.wordpress.com/954/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dokeoslatinoamerica.wordpress.com/954/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dokeoslatinoamerica.wordpress.com/954/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dokeoslatinoamerica.wordpress.com/954/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dokeoslatinoamerica.wordpress.com/954/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dokeoslatinoamerica.wordpress.com/954/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dokeoslatinoamerica.wordpress.com/954/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dokeoslatinoamerica.wordpress.com/954/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dokeoslatinoamerica.wordpress.com/954/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dokeoslatinoamerica.wordpress.com&blog=3963915&post=954&subd=dokeoslatinoamerica&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://dokeoslatinoamerica.wordpress.com/2009/09/01/curso-interno-sobre-akelos/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4087b5f4b4733f0ca6015be5f79d4ad8?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">ywarnier</media:title>
		</media:content>

		<media:content url="http://dokeoslatinoamerica.files.wordpress.com/2009/09/jhon-akelos.jpg?w=300" medium="image">
			<media:title type="html">jhon-akelos</media:title>
		</media:content>

		<media:content url="http://dokeoslatinoamerica.files.wordpress.com/2009/09/ronny-akelos.jpg?w=300" medium="image">
			<media:title type="html">ronny-akelos</media:title>
		</media:content>
	</item>
		<item>
		<title>Subir archivos usando AKelos Framework + validaciones respectivas</title>
		<link>http://dokeoslatinoamerica.wordpress.com/2009/05/06/subir-archivos-usando-akelos-framework-validaciones-respectivas/</link>
		<comments>http://dokeoslatinoamerica.wordpress.com/2009/05/06/subir-archivos-usando-akelos-framework-validaciones-respectivas/#comments</comments>
		<pubDate>Wed, 06 May 2009 16:32:02 +0000</pubDate>
		<dc:creator>darkvela</dc:creator>
				<category><![CDATA[desarrollo]]></category>
		<category><![CDATA[técnico]]></category>
		<category><![CDATA[akelos]]></category>
		<category><![CDATA[archivos]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[php5]]></category>

		<guid isPermaLink="false">http://dokeoslatinoamerica.wordpress.com/?p=716</guid>
		<description><![CDATA[En este post el objetivo es conocer un poco más sobre este poderoso Framework y todas sus bondades, para ello en esta sección voy a compartir con ustedes como subir archivos al servidor y las validaciones respectivas (tamaño, tipo, extension, etc).
Primero como todos sabemos interactuamos con la vista para cargar el archivo a subir, en [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dokeoslatinoamerica.wordpress.com&blog=3963915&post=716&subd=dokeoslatinoamerica&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>En este post el objetivo es conocer un poco más sobre este poderoso Framework y todas sus bondades, para ello en esta sección voy a compartir con ustedes como subir archivos al servidor y las validaciones respectivas (tamaño, tipo, extension, etc).</p>
<p>Primero como todos sabemos interactuamos con la vista para cargar el archivo a subir, en formato Akelos:</p>
<p>&lt;p&gt;&lt;label for=&#8221;screenshot_file&#8221;&gt;_{Image}&lt;/label&gt;&lt;br /&gt;<br />
&lt;?= $form_tag_helper-&gt;file_field_tag(&#8216;<strong>screenshot[file]</strong>&#8216;); ?&gt; &lt;i&gt;_{Only accepts JPG, JPEG, PNG or GIF (no animation)}&lt;/i&gt;<br />
&lt;/p&gt;<br />
&lt;p&gt;&lt;label for=&#8221;screenshot_title&#8221;&gt;_{Image description}&lt;/label&gt;&lt;br /&gt;<br />
&lt;?php  echo $active_record_helper-&gt;input(&#8217;screenshot&#8217;, &#8216;title&#8217;,array(&#8216;maxlength&#8217;=&gt;50))?&gt;<br />
&lt;/p&gt;</p>
<p>Luego interactúa el controlador primero guardando el nombre del archivo en BD y enviando los datos del archivo en un array a una función dentro del modelo, recojemos los valores <strong>POST</strong>:</p>
<p>@$fileuploaded = $this-&gt;params['screenshot']['file'];<br />
@$this-&gt;params['screenshot']['file'] = $this-&gt;params['screenshot']['file']['name'];</p>
<p>Enviamos lo datos a la funció <strong>setUploadedFile</strong>:</p>
<p>$this-&gt;Screenshot-&gt;setUploadedFile($fileuploaded);</p>
<p>Seteamos la variable para realizar el <strong>save()</strong> en Akelos:</p>
<p>$this-&gt;Screenshot-&gt;setAttributes($this-&gt;params['screenshot']);</p>
<p>Finalmente ahora el trabajo depende del modelo <strong>screenshot.php:</strong></p>
<p>function setUploadedFile($var) {<br />
$this-&gt;uploadedfile = $var;<br />
}</p>
<p>Ahora validamos:</p>
<p>function validateOnCreate() {<br />
if ($this-&gt;getErrorsOn(&#8216;file&#8217;) === false) {<br />
try{<br />
$safe_extension = array(&#8216;png&#8217;,'jpeg&#8217;,'jpg&#8217;,'gif&#8217;,'JPG&#8217;,'GIF&#8217;);  // solo acepta estas extensiones (bueno para imagenes)</p>
<p>if ($this-&gt;uploadedfile['error'])<br />
throw new Exception($this-&gt;t(&#8216;Error while uploading file!&#8217;));</p>
<p>@$path_parts = pathinfo($this-&gt;uploadedfile['name']);<br />
if (!empty($path_parts['extension'])) {<br />
if (!in_array($path_parts['extension'],$safe_extension))<br />
throw new Exception($this-&gt;t(&#8216;Invalid file type in pictures.&#8217;));  // validamos la extension del file<br />
}</p>
<p>} catch (Exception $e) {<br />
$this-&gt;addError(&#8216;file&#8217;,'&lt;span style=&#8221;color:red&#8221;&gt;&#8217;.$e-&gt;getMessage().&#8217;&lt;/span&gt;&#8217;);<br />
}<br />
}<br />
if ($this-&gt;hasErrors()) return false;<br />
else return true;<br />
}</p>
<p>Ahora creamos una funcion para parsee el nombre del archivo y lo guarde en el campo file (por ejempo) de la BD:</p>
<p>function beforeCreate(){<br />
@$path_parts = pathinfo($this-&gt;uploadedfile['name']);<br />
if (!empty($path_parts['basename'])) {<br />
$name_length = 31 &#8211; strlen($path_parts['extension']);<br />
$this-&gt;uploadedfile['name'] = AK::randomString($name_length).&#8217;.&#8217;.$path_parts['extension'];<br />
$this-&gt;set(&#8216;file&#8217;, $this-&gt;uploadedfile['name']);<br />
}<br />
return true;<br />
}</p>
<p>Ahora usamos una función para guardar el file en nuestro servidor.</p>
<p>function afterCreate(){<br />
$root = &#8216;ruta_path&#8217;;<br />
$target_path_root = $root;<br />
AK::make_dir(substr($target_path_root,0,-1)); // crea el directorio si no existe</p>
<p>$target_path = $target_path_root.basename($this-&gt;uploadedfile['name']);<br />
move_uploaded_file($this-&gt;uploadedfile['tmp_name'], $target_path); // lo copia<br />
return true;<br />
}</p>
<p>Y por últomo una función para elimianr en caso de hacer un <strong>destroy()</strong>:</p>
<p>function beforeDestroy(){<br />
$path = &#8216;ruta_path&#8217;;<br />
@unlink($path.$this-&gt;get(&#8216;file&#8217;));<br />
return true;<br />
}</p>
<p><strong>Ojo: </strong>no cambiar el nombre de las funciones (son propias de Akelos), y si quiero actualizar mi imagen uso en vez de Create -&gt; Update.</p>
<p>Espero que sea de ayuda para aquellos que quieren iniciarse con Akelos, luego explicaré como convertir una imagen a thumbnail.</p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dokeoslatinoamerica.wordpress.com/716/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dokeoslatinoamerica.wordpress.com/716/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dokeoslatinoamerica.wordpress.com/716/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dokeoslatinoamerica.wordpress.com/716/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dokeoslatinoamerica.wordpress.com/716/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dokeoslatinoamerica.wordpress.com/716/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dokeoslatinoamerica.wordpress.com/716/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dokeoslatinoamerica.wordpress.com/716/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dokeoslatinoamerica.wordpress.com/716/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dokeoslatinoamerica.wordpress.com/716/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dokeoslatinoamerica.wordpress.com&blog=3963915&post=716&subd=dokeoslatinoamerica&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://dokeoslatinoamerica.wordpress.com/2009/05/06/subir-archivos-usando-akelos-framework-validaciones-respectivas/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/10e8fdede389186a213e54652f8b8319?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">darkvela</media:title>
		</media:content>
	</item>
		<item>
		<title>Como solucionar el conflicto entre JQuery y Prototype usando Akelos PHP Framework</title>
		<link>http://dokeoslatinoamerica.wordpress.com/2009/01/08/como-solucionar-el-conflicto-entre-jquery-y-prototype-usando-akelos-php-framework/</link>
		<comments>http://dokeoslatinoamerica.wordpress.com/2009/01/08/como-solucionar-el-conflicto-entre-jquery-y-prototype-usando-akelos-php-framework/#comments</comments>
		<pubDate>Thu, 08 Jan 2009 16:18:25 +0000</pubDate>
		<dc:creator>darkvela</dc:creator>
				<category><![CDATA[desarrollo]]></category>
		<category><![CDATA[técnico]]></category>
		<category><![CDATA[akelos]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[JQuery]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Prototype]]></category>

		<guid isPermaLink="false">http://dokeoslatinoamerica.wordpress.com/?p=218</guid>
		<description><![CDATA[Como sabemos JQuery y Prototype son  frameworks escritos en Javascript que permiten simplificar la manera de interactuar con documentos HTML orientándose al desarrollo sencillo y dinámico de aplicaciones web.
Akelos PHP Framework es una plataforma de desarrollo de aplicaciones web basado en el MVC (Modelo Vista Controlador) desarrollado por Bermi Ferrer, el cual contiene las [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dokeoslatinoamerica.wordpress.com&blog=3963915&post=218&subd=dokeoslatinoamerica&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Como sabemos <strong>JQuery</strong> y <strong>Prototype</strong> son  frameworks escritos en Javascript que permiten simplificar la manera de interactuar con documentos HTML orientándose al desarrollo sencillo y dinámico de aplicaciones web.</p>
<p><strong>Akelos PHP Framework</strong> es una plataforma de desarrollo de aplicaciones web basado en el MVC (Modelo Vista Controlador) desarrollado por <strong>Bermi Ferrer</strong>, el cual contiene las buenas prácticas permitiendo simplificar el tiempo de implementación.</p>
<p>Bueno después de esta pequeña introducción, vamos a nuestro caso:</p>
<p>A veces queremos manejar eventos, desarrollar animaciones y agregar interacción con la tecnología AJAX a nuestras aplicaciones web y para ello decidimos usar <strong>JQuery</strong>, pero como Akelos por defecto usa el <strong>Prototype</strong> hay un probrema de compatibilidad, entonces para poder solucionar este problema:</p>
<p>Para nuestro ejemplo nos vamos al directorio <strong>view / layouts</strong> porsupuesto dentro de nuestra aplicación y seleccionamos <strong>main.tpl</strong> (puede ser otro tpl, pero se recomienda que sea en el principal).<br />
La librería Prototype ya está funcionando así que la llamamos:</p>
<p><em> <strong>&lt;%= javascript_include_tag &#8216;prototype&#8217; %&gt;<br />
&lt;%= javascript_include_tag &#8217;scriptaculous&#8217; %&gt;<br />
&lt;%= javascript_include_tag &#8216;editam&#8217; %&gt;</strong></em></p>
<p>Luego después de haber instalado nuestra librería JQuery en (se recomienda en este directorio) : <strong>public / javascripts / jquery.js</strong> la llamamos en nuestro tpl:</p>
<p><em><strong>&lt;%= javascript_include_tag &#8216;jquery&#8217; %&gt;<br />
&lt;%= javascript_include_tag &#8216;treeview&#8217; %&gt;</strong> (un plugin jquery de ejemplo)</em></p>
<p>Al final de las llamadas Prototype y Jquery ingresamos esta pequeña línea de código:</p>
<p style="margin-bottom:0;"><em><strong>&lt;script&gt;jQuery.noConflict();&lt;/script&gt;</strong></em></p>
<p>Ah y no te olvides de cambiar el caracter <strong>&#8220;#&#8221;</strong> por <strong>&#8220;jQuery&#8221;</strong>, por ejemplo:</p>
<p><em><strong>Antes:</strong></em></p>
<p>function change_visibility(url,container){<br />
<strong>#</strong>(container).html(&#8216;&lt;b style=&#8221;color:blue&#8221;&gt;_{Updating}&#8230;&lt;/b&gt;&#8217;);<br />
<strong>#</strong>(container).load(url);<br />
}</p>
<p><em><strong>Despues:</strong></em></p>
<p>function change_visibility(url,container){<br />
<strong>jQuery</strong>(container).html(&#8216;&lt;b style=&#8221;color:blue&#8221;&gt;_{Updating}&#8230;&lt;/b&gt;&#8217;);<br />
<strong>jQuery</strong>(container).load(url);<br />
}</p>
<p>Y ya está solucionado el problema de trabajar con estos dos grandes frameworks.</p>
<p><em><strong>Nota: Todas las llamadas a los scripts se deben ingresar antes del script que evita el conflicto.</strong></em></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/dokeoslatinoamerica.wordpress.com/218/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/dokeoslatinoamerica.wordpress.com/218/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/dokeoslatinoamerica.wordpress.com/218/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/dokeoslatinoamerica.wordpress.com/218/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/dokeoslatinoamerica.wordpress.com/218/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/dokeoslatinoamerica.wordpress.com/218/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/dokeoslatinoamerica.wordpress.com/218/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/dokeoslatinoamerica.wordpress.com/218/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/dokeoslatinoamerica.wordpress.com/218/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/dokeoslatinoamerica.wordpress.com/218/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=dokeoslatinoamerica.wordpress.com&blog=3963915&post=218&subd=dokeoslatinoamerica&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://dokeoslatinoamerica.wordpress.com/2009/01/08/como-solucionar-el-conflicto-entre-jquery-y-prototype-usando-akelos-php-framework/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/10e8fdede389186a213e54652f8b8319?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">darkvela</media:title>
		</media:content>
	</item>
	</channel>
</rss>