<?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>arvaro.org &#187; tutorial</title>
	<atom:link href="http://www.arvaro.org/tag/tutorial/feed" rel="self" type="application/rss+xml" />
	<link>http://www.arvaro.org</link>
	<description>Yo diria que nos pusieramos todos contentos, sin preguntar por que</description>
	<lastBuildDate>Thu, 22 Dec 2011 20:10:44 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Crear archivos ZIP con PHP</title>
		<link>http://www.arvaro.org/php/crear-archivos-zip-con-php</link>
		<comments>http://www.arvaro.org/php/crear-archivos-zip-con-php#comments</comments>
		<pubDate>Tue, 26 Apr 2011 18:14:05 +0000</pubDate>
		<dc:creator>arvaro</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://www.arvaro.org/?p=580</guid>
		<description><![CDATA[zipfile.php.tar En esta ocasión veremos la forma de crear archivos comprimidos en formato ZIP. Para este ejemplo utilizaremos la clase zipfile escrita por Eric Mueller y muy bien explicada en Creating ZIP files with PHP. Descargando la clase zipfile Lo primero es descargar la clase zipfile desde zipfile.inc.txt y renombrarla a zipfile.php. Esta clase tiene [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.arvaro.org/wp-content/uploads/2011/04/zipfile.php_.tar.gz">zipfile.php.tar</a></p>
<p>En esta ocasión veremos la forma de crear archivos comprimidos en formato ZIP. Para este ejemplo utilizaremos la clase zipfile escrita por Eric Mueller y muy bien explicada en Creating ZIP files with PHP.</p>
<p>Descargando la clase zipfile</p>
<p>Lo primero es descargar la clase zipfile desde zipfile.inc.txt y renombrarla a zipfile.php. Esta clase tiene dos metodos add_dir() y add_file() que permite agregar una carpeta o un archivo al zip que se esta creando.</p>
<p>Creando nuestro primer ZIP</p>
<p>Lo primero es incluir el archivo recién descargado, luego de ello creamos una instancia de la clase, para este ejemplo a la instancia lo llamamos $zipfile. Luego de ello agregamos un archivo de la siguiente forma.</p>
<pre class="brush:php">require ("zipfile.php");
$zipfile = new zipfile();
$zipfile-&gt;add_file(implode("",file("img01.jpg")), "foto.jpg");</pre>
<p>Nótese que estamos agregando un archivo llamado img01.jpg y al momento de incluirlo en el zip lo estamos renombrando a foto.jpg. Hasta este punto hemos creado un archivo zip, el siguiente paso es enviarlo al cliente, para ello agregamos headers indicando el tipo de archivo y finalmente imprimimos el archivo:</p>
<pre class="brush:php">require ("zipfile.php");
$zipfile = new zipfile();
$zipfile-&gt;add_file(implode("",file("img01.jpg")), "foto.jpg");
header("Content-type: application/octet-stream");
header("Content-disposition: attachment; filename=zipfile.zip");
echo $zipfile-&gt;file();
</pre>
<p>El resultado del ejemplo lo pueden ver en http://samples.unijimpe.net/php-zip/.</p>
<p>Agregando carpetas al ZIP<br />
En el caso que agregamos varios archivos y deseamos agruparlas en una carpeta, podemos utilizar el metodo add_folder. Luego de ello agregamos los archivos a la carpeta de la siguiente forma:</p>
<pre class="brush:php">require ("zipfile.php");
$zipfile = new zipfile();
$zipfile-&gt;add_dir("img/");
$zipfile-&gt;add_file(implode("",file("img01.jpg")), "img/01.jpg");
$zipfile-&gt;add_file(implode("",file("img02.jpg")), "img/02.jpg");
$zipfile-&gt;add_file(implode("",file("img03.jpg")), "img/03.jpg");
header("Content-type: application/octet-stream");
header("Content-disposition: attachment; filename=fotos.zip");
echo $zipfile-&gt;file();
</pre>
<p>Como ven agregar carpetas y multiples archivos es muy sencillo, incluso se pueden renombrar los archivos al momento de agregarlos al archivo zip. El resultado de este ejemplo lo pueden ver en: <a href="http://samples.unijimpe.net/php-zip/zipfolder.php">http://samples.unijimpe.net/php-zip/zipfolder.php</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.arvaro.org/php/crear-archivos-zip-con-php/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Como Crear un Plugin para WordPress</title>
		<link>http://www.arvaro.org/php/como-crear-un-plugin-para-wordpress</link>
		<comments>http://www.arvaro.org/php/como-crear-un-plugin-para-wordpress#comments</comments>
		<pubDate>Thu, 25 Nov 2010 20:22:33 +0000</pubDate>
		<dc:creator>arvaro</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.arvaro.org/?p=523</guid>
		<description><![CDATA[el post original esta en cristalab lo copio aca para dejarmelo como recordatorio este tip los va a ayudar a crear su primer plugin para WordPress, para lo cual crearemos un archivo llamado saludo.php en la carpeta llamada &#8220;saludo&#8221; ubicada en carpeta_raiz/wp-content/plugins/ quedando: carpeta_raiz/wp-content/plugins/saludo/saludo.php vamos a empezar por lo básico, el saludo: &#60;?php /* Plugin [...]]]></description>
			<content:encoded><![CDATA[<p>el post original esta en <a href="http://www.cristalab.com/tips/como-crear-un-plugin-para-wordpress-c54308l/" target="_blank">cristalab</a> lo copio aca para dejarmelo como recordatorio<br />
este tip los va a ayudar a crear su primer plugin para WordPress, para lo cual crearemos un archivo llamado saludo.php en la carpeta llamada &#8220;saludo&#8221; ubicada en carpeta_raiz/wp-content/plugins/ quedando:<br />
carpeta_raiz/wp-content/plugins/saludo/saludo.php<br />
vamos a empezar por lo básico, el saludo:</p>
<pre class="brush:php">&lt;?php
   /*
      Plugin Name: nombre del plugin
      Plugin URI: url oficial de tu maravilloso plugin
      Description: que carajos hace tu plugin
      Version: numero de intentos para que esta cosa resulte
      Author: Nombre del mono programador
      Author URI: url del mono programador
   */

   /*
      esto aparecerá directamente en el panel de
      administración de plugins
   */
?&gt;</pre>
<p>Una vez presentado crearemos nuestra una función con un código algo complejo pero de gran performance en el mismo archivo.</p>
<pre class="brush:php">&lt;?php
// ya sabemos que hay arriba  /\  

   function saludo(){
      echo 'hola mundo';
   }

?&gt;</pre>
<p>Ahora nos toca poder instalar y desinstalar este plugin para lo cual crearemos 2 funciones: una para instalar y otra para desinstalar el plugin. Eestas funciones por ahora las dejaremos vacías, una vez listas las funciones al final del archivo usarás la funcion de WP add_action para instalar y desinstalar el plugin.<br />
usamos la siguiente sintaxis:</p>
<pre class="brush:php">add_action(
   'activate_nombre_del_plugin/pagina_del_plugin.php',
   'tu_funcion_que instala'
);</pre>
<pre class="brush:php">&lt;?php
// ya sabemos que hay arriba  /\
   function saludo_instala(){
      //
   }
   function saludo_desinstala(){
      //
   }
//ojo con la sintaxis de la funcion add_action
add_action('activate_saludo/saludo.php','saludo_instala');
add_action('deactivate_saludo/saludo.php', 'saludo_desinstala');
?&gt;</pre>
<p>Ahora ya puedes usar tu maravilloso y complejo plugin, sólo debes colocar en la sección de tu template que estimes conveniente lo siguiente:</p>
<pre class="brush:applescript">&lt;?php saludo(); ?&gt;</pre>
<p>Ahora nos toca crear un item dentro del panel de administración que nos permita modificar las opciones de este maravilloso plugin, este item lo crearemos dentro del menú opciones, para esto contaremos con 3 funciones:</p>
<p>* saludo_panel: donde incluiremos el html que será expresado en nuestro panel, como a mí no me gusta mezclar html dentro de la programación usaremos la función include() a modo de template .<br />
* saludo_add_menu: donde se usará a su vez la función de WP add_options_page.<br />
* add_action: para desencadenar todo esto usaremos esta función que es también parte del API de WP.</p>
<pre class="brush:php">&lt;?php
// ya sabemos que hay arriba  /\ 

   function saludo_panel(){
      include('template/panel.html');
   }
   function saludo_add_menu(){
      if (function_exists('add_options_page')) {
         //add_menu_page
         add_options_page('saludo', 'saludo', 8, basename(__FILE__), 'saludo_panel');
      }
   }
   if (function_exists('add_action')) {
      add_action('admin_menu', 'saludo_add_menu');
   } 

// ya sabemos que hay abajo   \/
?&gt;</pre>
<p>crea el archivo y carpeta &#8220;template/panel.html&#8221; pues vamos a escribir un fromulario muy sencillo para que veamos que esto va resultando:</p>
<pre class="brush:php">&lt;form method="post" action="" id="saludo"&gt;
&lt;label for="saludo_inserta" accesskey="s"&gt;Inserte su saludo&lt;input type='text' id='saludo_inserta'  name='saludo_inserta' value='' /&gt;&lt;/label&gt;
&lt;input type='submit' name='' value='enviar' /&gt;
&lt;/form&gt;</pre>
<p>y modificaremos la función saludo_panel para poder visualizar nuestros logros</p>
<pre class="brush:php">&lt;?php
// ya sabemos que hay arriba  /\ 

   function saludo_panel(){
      include('template/panel.html');
   }
   echo "&lt;h1&gt;{$_POST['saludo']}&lt;/h1&gt;";

// ya sabemos que hay abajo   \/
?&gt;</pre>
<p>Ahora probaremos que esto resulta escribiendo la siguiente verdad &#8220;Joomla apesta&#8221;. Si al pulsar &#8216;enviar&#8217; aparece esto significa que vamos bien.</p>
<p>Ahora desinstalaremos el plugin en el panel de control, no es que vayamos a dejar de usar nuestro maravilloso plugin, sólo es que modificaremos la función saludo_instala() y saludo_desinstala() para poder instalar y desinstalar respectivamente la DB que usaremos más adelante.<br />
Ojo para usar las funciones de WP que manejan la DB tendremos que llamar $wpdb con: global $wpdb;</p>
<pre class="brush:php">&lt;?php
// ya sabemos que hay arriba  /\ 

function saludo_instala(){
   global $wpdb; // &lt;-- sin esto no funcionara nada con la DB no cambies nada
   $table_name= $wpdb-&gt;prefix . "saludos";
   $sql = " CREATE TABLE $table_name(
      id mediumint( 9 ) NOT NULL AUTO_INCREMENT ,
      saludo tinytext NOT NULL ,
      PRIMARY KEY ( `id` )
   ) ;";
   $wpdb-&gt;query($sql);
   $sql = "INSERT INTO $table_name (saludo) VALUES ('Hola Mundo');";
   $wpdb-&gt;query($sql);
}   

function saludo_desinstala(){
   global $wpdb;
   $tabla_nombre = $wpdb-&gt;prefix . "saludos";
   $sql = "DROP TABLE $tabla_nombre";
   $wpdb-&gt;query($sql);
}   

// ya sabemos que hay abajo   \/
?&gt;</pre>
<p>ahora agregaremos datos a la DB desde nuestro panel en opciones/saludo para lo cual modificaremos la función saludo_panel()</p>
<pre class="brush:php">?php
// ya sabemos que hay arriba  /\ 

function saludo_panel(){
   include('template/panel.html');
   global $wpdb;
   $table_name = $wpdb-&gt;prefix . "saludos";
   if(isset($_POST['saludo_inserta'])){
         $sql = "INSERT INTO $table_name (saludo) VALUES ('{$_POST['saludo_inserta']}');";
         $wpdb-&gt;query($sql);
   }
}

// ya sabemos que hay abajo   \/
?&gt;</pre>
<p>Ahora que ya podemos insertar saludos en nuestra DB sólo nos queda poder mostrarlos en nuestra función saludo() para esto consultaremos tan solo un saludo de manera random a nuestra DB (ojo con el sql)</p>
<pre class="brush:php">&lt;?php
// ya sabemos que hay arriba  /\ 

function saludo(){
   global $wpdb;
   $table_name = $wpdb-&gt;prefix . "saludos";
   $saludo= $wpdb-&gt;get_var("SELECT saludo FROM $table_name ORDER BY RAND() LIMIT 0, 1; " );
   include('template/saludo.html');
}

// ya sabemos que hay abajo   \/
?&gt;</pre>
<p>Ahora modificaremos nuestro saludo.html para que imprima la variable $saludo</p>
<pre class="brush:php">&lt;h1&gt;&lt;?php echo $saludo;?&gt;&lt;/h1&gt;</pre>
<p>Para terminar vamos modificar el html de nuestro panel para que se adapte al html del administrador de WP</p>
<pre class="brush:php"> &lt;div class="wrap"&gt;
   &lt;form method="post" action=""&gt;
      &lt;fieldset&gt;
         &lt;legend&gt;Ingresar Nuevo Saludo&lt;/legend&gt;
         &lt;label for="saludo" accesskey="s"&gt;Inserte su saludo&lt;input type='text' id='saludo_inserta'  name='saludo_inserta'  /&gt;&lt;/label&gt;
         &lt;input type='submit' name='' value='enviar' /&gt;
      &lt;/fieldset&gt;
   &lt;/form&gt;
&lt;/div&gt;</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.arvaro.org/php/como-crear-un-plugin-para-wordpress/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Reglas del Dudo</title>
		<link>http://www.arvaro.org/ni-idea/reglas-del-dudo</link>
		<comments>http://www.arvaro.org/ni-idea/reglas-del-dudo#comments</comments>
		<pubDate>Mon, 14 Sep 2009 03:37:28 +0000</pubDate>
		<dc:creator>arvaro</dc:creator>
				<category><![CDATA[amigos]]></category>
		<category><![CDATA[ni idea!]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[cacho]]></category>
		<category><![CDATA[dudo]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://www.arvaro.net/?p=400</guid>
		<description><![CDATA[HERRAMIENTAS 1 Cacho por Persona. (También puede ser un jarro, un vaso NO transparente o las manos) 5 Dados de 6 Caras por persona. (Otros más roleros pueden usar otro tipo de dados) LOS DADOS Si bien cada Pinta del dado tiene su nombre, no es necesario llamarlas por este. 1 – As (Cuenta como [...]]]></description>
			<content:encoded><![CDATA[<p><strong><img class="alignright" title="http://www.catron.cl/deportes/images/c2.jpg" src="http://www.catron.cl/deportes/images/c2.jpg" alt="" width="300" height="300" />HERRAMIENTAS </strong><br />
1 Cacho por Persona. (También puede ser un jarro, un vaso NO transparente o las manos)<br />
5 Dados de 6 Caras por persona. (Otros más roleros pueden usar otro tipo de dados)</p>
<p><strong>LOS DADOS </strong><br />
Si bien cada Pinta del dado tiene su nombre, no es necesario llamarlas por este.<br />
1 – As (Cuenta como comodín, excepto en algunas ocasiones)<br />
2 – Tonto<br />
3 – Tren<br />
4 – Cuarta<br />
5 – Quina<br />
6 – Sexta</p>
<p><strong>SISTEMA </strong></p>
<p>El Dudo es un juego de apuestas sobre “Cuantas Pintas hay en toda la mesa”.<br />
El apostador inicial da la primera apuesta y, dirigiendo con la vista hacia la derecha o izquierda, decide el rumbo de las apuestas venideras.<br />
EJ: Hay Seis Cuartas (Que en total el 4 esta repetido seis veces.)<br />
El Jugador que recibe la apuesta tiene las siguientes opciones:<br />
1.- Calzar. Crees que la apuesta es correcta y que hay exactamente esa cantidad de pintas.<br />
2.- Dudar. Crees que hay menos cantidad de pintas que la apuesta que te pasaron. OJO, siempre que se duda se esta diciendo que hay menos.<br />
3.- Pasar. Solo se puede pasar una vez hasta la siguiente ronda de apuestas. Para pasar necesitas tus 5 dados y tenerlos todos iguales o todos distintos. No se cuenta el As como Comodín.<br />
4.- Dudar el Paso. Trátese como dudar una Apuesta.<br />
5.- Cambiar la Apuesta.<br />
Para bajar la pinta se debe subir la cantidad.<br />
Para apostar una pinta mayor se puede tanto dejar igual como aumentar.<br />
La idea es nunca bajar la cantidad, solo modificar las pintas. La excepción es Cambiar la apuesta a Ases.<br />
6.- Cambiar la Apuesta a Ases. La cantidad de la pinta que te apostaron, la divides en 2, redondeado hacia arriba. (EJ: de 6 trenes pasa a 3 Ases. de 9 Cuartas pasa a 5 Ases.)<br />
7.- Cambiar la Apuesta de Ases a otra Pinta. Tomas la cantidad de Ases, lo duplicas y se sumas 1.<br />
8.- Obligar. Se explica mas adelante.</p>
<p>Cuando se Calza, o se Duda una apuesta o un Paso. Todos los jugadores levantan sus cachos para ver si es cierta o no la apuesta.<br />
El que tomo la decisión equivocada, pierde un dado. Los que pierden sus 5 dados se retiran de la partida.<br />
En el caso de haber Calzado y haber acertado, El jugador gana un dado hasta un máximo de 5.</p>
<p><strong>OBLIGAR </strong><br />
Llega un momento en que un jugador se queda con 1 solo dado. El tiene el derecho, solo por una oportunidad en todo el juego, de “Obligar”.<br />
Cuando un jugador Obliga no se puede Calzar y los Ases no cuentan como Comodín.</p>
<p>Hay 2 Formas de Obligar.<br />
1.- Obligar Abierto. Todos los jugadores ven los cachos de los demás, pero no el propio. Luego el Obligador realiza la apuesta de forma normal.<br />
2.- Obligar Cerrado. Nadie ve sus dados ni los dados de nadie. El Obligador Apuesta a X de lo que el tiene. (EJ: 2 de lo que yo tengo). Se continúa apostando o dudando en base a lo que supuestamente el Obligador Tiene.<br />
<strong><br />
APÉNDICE </strong></p>
<p>Este juego tiene por fin la entretención, en algunos casos hay apuestas (de cualquier naturaleza).<br />
Cada grupo de jugadores puede tener “Reglas de la Casa”, modificando así algunas reglas básicas o agregando otras.<br />
Las reglas aquí presentadas son las reglas básicas.<br />
Cuando te juntes con un grupo, asegúrate de preguntarles cuales son las “Reglas de la Casa” y no caer como Moska.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.arvaro.org/ni-idea/reglas-del-dudo/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Fabrica tu propio ojo de pez</title>
		<link>http://www.arvaro.org/ni-idea/fabrica-tu-propio-ojo-de-pez</link>
		<comments>http://www.arvaro.org/ni-idea/fabrica-tu-propio-ojo-de-pez#comments</comments>
		<pubDate>Thu, 28 May 2009 00:49:13 +0000</pubDate>
		<dc:creator>arvaro</dc:creator>
				<category><![CDATA[ni idea!]]></category>
		<category><![CDATA[fotografia]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[videos]]></category>

		<guid isPermaLink="false">http://www.arvaro.net/?p=309</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/_dmEY2izZpk&#038;hl=es&#038;fs=1&#038;color1=0x234900&#038;color2=0x4e9e00"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/_dmEY2izZpk&#038;hl=es&#038;fs=1&#038;color1=0x234900&#038;color2=0x4e9e00" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://www.arvaro.org/ni-idea/fabrica-tu-propio-ojo-de-pez/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

