<?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>mjcarrascosa.com &#187; CodeIgniter</title>
	<atom:link href="http://mjcarrascosa.com/tag/codeigniter/feed/" rel="self" type="application/rss+xml" />
	<link>http://mjcarrascosa.com</link>
	<description>Desarrollo web y otras hierbas</description>
	<lastBuildDate>Fri, 08 Jul 2011 07:41:10 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Extendiendo helpers en CodeIgniter</title>
		<link>http://mjcarrascosa.com/extendiendo-helpers-en-codeigniter/</link>
		<comments>http://mjcarrascosa.com/extendiendo-helpers-en-codeigniter/#comments</comments>
		<pubDate>Tue, 15 Sep 2009 10:42:41 +0000</pubDate>
		<dc:creator>Manuel Jesús Carrascosa de la Blanca</dc:creator>
				<category><![CDATA[CodeIgniter]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://mjcarrascosa.com/?p=345</guid>
		<description><![CDATA[Añadir nuevas funciones a los helpers que vienen en CodeIgniter es realmente sencillo. Lo primero que tenemos que hacer es crearnos un archivo con el siguiente formato de nombre &#8220;prefijo_nombre_helper.php&#8221; en el directorio helpers de nuestra aplicación. El prefijo será usualmente MY, aunque esto es configurable. Vamos a ver un ejemplo y vamos a extender [...]]]></description>
			<content:encoded><![CDATA[<p>Añadir nuevas funciones a los helpers que vienen en CodeIgniter es realmente sencillo. Lo primero que tenemos que hacer es crearnos un archivo con el siguiente formato de nombre <em>&#8220;prefijo_nombre_helper.php&#8221;</em> en el directorio helpers de nuestra aplicación. El prefijo será usualmente <em>MY</em>, aunque esto es configurable. Vamos a ver un ejemplo y vamos a extender el helper html. Para ello creamos un archivo llamado <em>MY_html_helper.php</em> cuyo código es el siguiente:</p>
<pre class="brush:php">&lt;?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

if( ! function_exists('link_tag_multiple'))
{
  function link_tag_multiple($links)
  {
     $link_result = array();
     if(is_array($links))
     {
       if(count($links) &gt; 0)
       {
         foreach($links as $link)
         {
           $link_result[] = link_tag($link);
         }
       }
       else
       {
         return FALSE;
       }
     }
     else
     {
       return FALSE;
     }

     return $link_result;
  }
}

if( ! function_exists('script'))
{
  function script($src = '', $language = "JavaScript")
  {
    $CI = &amp; get_instance();

    $script = '&lt;script ';
    if(is_array($src))
    {
      $script .= 'language="'.$src['language'].'" src="';
      if(strpos($src['src'],"://") == FALSE)
      {
        $script .= $CI-&gt;config-&gt;slash_item('base_url').$src['src'];
      }
      else
      {
        $script .= $src['src'];
      }
    }
    else
    {
      $script .= 'language="'.$language.'" src="';
      if(strpos($src,"://") == FALSE)
      {
        $script .= $CI-&gt;config-&gt;slash_item('base_url').$src;
      }
      else
      {
        $script .= $src;
      }
    }

    $script .= '"&gt;&lt;/script&gt;';

    return $script;

  }
}

if( ! function_exists('script_multiple'))
{
  function script_multiple($scripts)
  {
    $scripts_result = array();

    if(is_array($scripts))
    {
      if(count($scripts) &gt; 0)
      {
        foreach($scripts as $script)
        {
          $scripts_result[] = script($script['src'], $script['language']);
        }
      }
      else
      {
        return FALSE;
      }
    }
    else
    {
      return FALSE;
    }

    return $scripts_result;
  }
}</pre>
<p>Bien como se puede ver con la primera linea evitamos el acceso directo a este archivo. Despues definimos tres nuevas funciones, siempre que no existieran antes. Acabamos de extender nuestro helper. Ahora al cargarlo disponemos de estas tres nuevas funciones.</p>
<p>Si a alguien le intereas esas tres funciones las uso para añadir multiples CSS en una vista y para añadir scripts de JavaScript.</p>
<p><strong>Fe de erratas:</strong></p>
<p>En el código original la función <em>script_multiple</em> hace una llamada a la función <em>script</em> y los parámetros estaban intercambiados. Es decir, antes de la corrección se pasaba <em>$script['language']</em> y <em>$script['src']</em> cuando debería ser <em>$script['src']</em> y <em>$script['language']</em>. Esto ya está corregido en esta edición.</p>
]]></content:encoded>
			<wfw:commentRss>http://mjcarrascosa.com/extendiendo-helpers-en-codeigniter/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

