Re: cvs: smarty / NEWS /libs Smarty.class.php

boots <[email protected]> Tue, 19 Jun 2007 10:50:16 -0700 (PDT)
Newsgroups gmane.comp.php.cvs.smarty
Message-ID <[email protected]>
Hi.

see: http://www.phpinsider.com/smarty-forum/viewtopic.php?p=31745#31745

Doing this just for filter plugins doesn't make sense to me. Maybe we can
discuss these changes on the dev list first?

--- Danilo Buerger <[email protected]> wrote:

> danilo		Mon Jun 18 14:29:00 2007 UTC
> 
>   Modified files:              
>     /smarty/libs	Smarty.class.php 
>     /smarty	NEWS 
>   Log:
>   Added the ability to (un)register multiple filters of the same type with
> the same method name but different class name. Before it was not possible due
> to the fact that only the method name was used to distinguish between
> different filters of the same type. This does however not allow (same as
> before) to register multiple filters of the same type with the same method
> and class name (i.e. different instances of the same class).
>   
>
http://cvs.php.net/viewvc.cgi/smarty/libs/Smarty.class.php?r1=1.529&r2=1.530&diff_format=u
> Index: smarty/libs/Smarty.class.php
> diff -u smarty/libs/Smarty.class.php:1.529 smarty/libs/Smarty.class.php:1.530
> --- smarty/libs/Smarty.class.php:1.529	Thu Mar  8 19:11:22 2007
> +++ smarty/libs/Smarty.class.php	Mon Jun 18 14:29:00 2007
> @@ -30,7 +30,7 @@
>   * @version 2.6.19-dev
>   */
>  
> -/* $Id: Smarty.class.php,v 1.529 2007/03/08 19:11:22 mohrt Exp $ */
> +/* $Id: Smarty.class.php,v 1.530 2007/06/18 14:29:00 danilo Exp $ */
>  
>  /**
>   * DIR_SEP isn't used anymore, but third party apps might
> @@ -838,69 +838,66 @@
>       * Registers a prefilter function to apply
>       * to a template before compiling
>       *
> -     * @param string $function name of PHP function to register
> +     * @param callback $function
>       */
>      function register_prefilter($function)
>      {
> -    $_name = (is_array($function)) ? $function[1] : $function;
> -        $this->_plugins['prefilter'][$_name]
> +        $this->_plugins['prefilter'][$this->_get_filter_name($function)]
>              = array($function, null, null, false);
>      }
>  
>      /**
>       * Unregisters a prefilter function
>       *
> -     * @param string $function name of PHP function
> +     * @param callback $function
>       */
>      function unregister_prefilter($function)
>      {
> -        unset($this->_plugins['prefilter'][$function]);
> +       
> unset($this->_plugins['prefilter'][$this->_get_filter_name($function)]);
>      }
>  
>      /**
>       * Registers a postfilter function to apply
>       * to a compiled template after compilation
>       *
> -     * @param string $function name of PHP function to register
> +     * @param callback $function
>       */
>      function register_postfilter($function)
>      {
> -    $_name = (is_array($function)) ? $function[1] : $function;
> -        $this->_plugins['postfilter'][$_name]
> +        $this->_plugins['postfilter'][$this->_get_filter_name($function)]
>              = array($function, null, null, false);
>      }
>  
>      /**
>       * Unregisters a postfilter function
>       *
> -     * @param string $function name of PHP function
> +     * @param callback $function
>       */
>      function unregister_postfilter($function)
>      {
> -        unset($this->_plugins['postfilter'][$function]);
> +       
> unset($this->_plugins['postfilter'][$this->_get_filter_name($function)]);
>      }
>  
>      /**
>       * Registers an output filter function to apply
>       * to a template output
>       *
> -     * @param string $function name of PHP function
> +     * @param callback $function
>       */
>      function register_outputfilter($function)
>      {
> -    $_name = (is_array($function)) ? $function[1] : $function;
> -        $this->_plugins['outputfilter'][$_name]
> +        $this->_plugins['outputfilter'][$this->_get_filter_name($function)]
>              = array($function, null, null, false);
>      }
>  
>      /**
>       * Unregisters an outputfilter function
>       *
> -     * @param string $function name of PHP function
> +     * @param callback $function
>       */
>      function unregister_outputfilter($function)
>      {
> -        unset($this->_plugins['outputfilter'][$function]);
> +       
> unset($this->_plugins['outputfilter'][$this->_get_filter_name($function)]);
>      }
>  
>      /**
> @@ -1935,6 +1932,25 @@
>      {
>          return eval($code);
>      }
> +    
> +    /**
> +     * Extracts the filter name from the given callback
> +     * 
> +     * @param callback $function
> +     * @return string
> +     */
> +	function _get_filter_name($function)
> +	{
> +		if (is_array($function)) {
> +			$_class_name = (is_object($function[0]) ?
> +				get_class($function[0]) : $function[0]);
> +			return $_class_name . '_' . $function[1];
> +		}
> +		else {
> +			return $function;
> +		}
> +	}
> +    
>      /**#@-*/
>  
>  }
> http://cvs.php.net/viewvc.cgi/smarty/NEWS?r1=1.556&r2=1.557&diff_format=u
> Index: smarty/NEWS
> diff -u smarty/NEWS:1.556 smarty/NEWS:1.557
> --- smarty/NEWS:1.556	Fri May 11 13:45:36 2007
> +++ smarty/NEWS	Mon Jun 18 14:29:00 2007
> @@ -1,5 +1,11 @@
> +- fix when (un)registering filters with the same method name but different
> class
> +  name (danilo)
>  - fix calling registered objects' methods with an empty argument list
>    (marcello, messju)
> + 
> +Version 2.6.18 (Mar 7th, 2007)
> +------------------------------
> +
>  - fix html_select_date separator when parts are missing (hayk,
>    monte)
>  - fix broken detection of non-cached blocks introduced in 2.6.17
> 



      ____________________________________________________________________________________
Fussy? Opinionated? Impossible to please? Perfect.  Join Yahoo!'s user panel and lay it on us. http://surveylink.yahoo.com/gmrs/yahoo_panel_invite.asp?a=7 

-- 
Smarty CVS Mailing List (http://cvs.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php