⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 plugin.php

📁 FP2 CRM code+Mysql DB
💻 PHP
字号:
<?php/* vim: set expandtab tabstop=4 shiftwidth=4: */// +----------------------------------------------------------------------+// | PHP Version 4                                                        |// +----------------------------------------------------------------------+// | Copyright (c) 1997-2002 The PHP Group                                |// +----------------------------------------------------------------------+// | This source file is subject to version 2.02 of the PHP license,      |// | that is bundled with this package in the file LICENSE, and is        |// | available at through the world-wide-web at                           |// | http://www.php.net/license/2_02.txt.                                 |// | If you did not receive a copy of the PHP license and are unable to   |// | obtain it through the world-wide-web, please send a note to          |// | license@php.net so we can mail you a copy immediately.               |// +----------------------------------------------------------------------+// | Authors:  nobody <nobody@localhost>                                  |// +----------------------------------------------------------------------+//// $Id: Plugin.php,v 1.10 2005/05/14 03:44:26 alan_k Exp $//// Plugin API provides support for  < ? = $this->plugin(".....",.....); ? >//  or {this.plugin(#xxxxx#,#xxxx#):h}//// BASICALLY THIS IS SAVANT'S PLUGIN PROVIDER.// @author Paul M. Jones <pmjones@ciaweb.net>  class HTML_Template_Flexy_Plugin {        /**    * reference to main engine..    *    * @var object HTML_Template_Flexy    * @access public    */    var $flexy; // reference to flexy.    var $pluginCache = array(); // store of instanced plugins..        /**    * Call a Plugin method.    *    * Look up in all the plugins to see if the method exists, if it does, call it.    *     *     * @param   array        name of method, arguments.    *     *    * @return   string      hopefully    * @access   public    */      function call($args)    {                        $method = $args[0];        // attempt to load the plugin on-the-fly        $class = $this->_loadPlugins($method);                 if (is_a($class,'PEAR_Error')) {            //echo $class->toString();            return $class->toString();        }                         // first argument is always the plugin name; shift the first        // argument off the front of the array and reduce the number of        // array elements.        array_shift($args);                return call_user_func_array(array(&$this->plugins[$class],$method), $args);    }        /**    * Load the plugins, and lookup which one provides the required method     *    *     * @param   string           Name    *    * @return   string|PEAR_Error   the class that provides it.    * @access   private    */        function _loadPlugins($name)     {        // name can be:        // ahref = maps to {class_prefix}_ahref::ahref        $this->plugins = array();        if (empty($this->plugins)) {                      foreach ($this->flexy->options['plugins'] as $cname=>$file) {                if (!is_int($cname)) {                    include_once $file;                    $this->plugins[$cname] = new $cname;                    $this->plugins[$cname]->flexy = &$this->flexy;                    continue;                }                $cname = $file;                require_once 'HTML/Template/Flexy/Plugin/'. $cname . '.php';                $class = "HTML_Template_Flexy_Plugin_{$cname}";                $this->plugins[$class] = new $class;                $this->plugins[$class]->flexy = &$this->flexy;            }        }                                foreach ($this->plugins as $class=>$o) {            //echo "checking :". get_class($o). ":: $name\n";            if (method_exists($o,$name)) {                return $class;            }        }        return HTML_Template_Flexy::raiseError("could not find plugin with method: '$name'");    }        }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -