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

📄 module.class.inc.php

📁 This is the script which used on 10minutemail.com for temporary email.
💻 PHP
📖 第 1 页 / 共 2 页
字号:
<?php

/** 
 * GentleSource News Script
 * 
 * (C) Ralf Stadtaus http://www.gentlesource.com/
 */


require 'modulecommon.class.inc.php';




/**
 * Manage modules
 * 
 * Triggers:
 * 
 * frontend_page_header 
 * frontend_page_footer
 * 
 * backend_source_head 		(include i.e. javascript into the HTML head)
 * 
 * frontend_content			(content row after reading from database)
 * backend_content 			(content row after reading from database)
 * 
 * frontend_textarea
 * backend_textarea
 * 
 * frontend_save_comment 
 * frontend_comment_form 
 * backend_comment_control	(button/link list in comment list)
 * 
 * backend_navigation
 * 
 * backend_save_content
 * backend_update_content
 * 
 * date_picker				
 * 
 * module_demo
 * 
 * standalone
 * 
 */
class t12l_module
{




    /**
     * Call module on trigger
     * 
     * Use $t12l['module_additional'] if no genuine $additional is at hand.
     * 
     * @access public
     */     
    function call_module($trigger, &$data, &$additional)
    {
        global $t12l;
        
        $module_container = t12l_module::container();
        reset($module_container);
        while (list($module, $instance) = each($module_container))
        {
            if (in_array($trigger, $instance->get_property('trigger'))
                    and $instance->get_property('module_active') == true) {
                $instance->process($trigger, $t12l, $data, $additional);
            }
        }
    }

// -----------------------------------------------------------------------------




    /**
     * Call module on trigger with output
     * 
     * @access public
     */
    function call_module_output($parameter, &$smarty)
    {
        global $t12l;
        
        if (!isset($parameter['trigger'])) {
            return false;
        } else {
            $trigger = $parameter['trigger'];
        }
        
        $module_container = t12l_module::container();
        $output = array();
        reset($module_container);
        while (list($module, $instance) = each($module_container))
        {
            if (in_array($trigger, $instance->get_property('trigger'))
                    and $instance->get_property('module_active') == true) {
                $instance->process($trigger, $t12l, $parameter, $t12l['module_additional']);
                $output[] = $instance->get_output($trigger);
            }
        }
        return join('', $output);
    }

// -----------------------------------------------------------------------------




    /**
     * Call module on trigger with tab output
     * 
     * @access public
     */
    function call_module_tab_output($parameter, &$smarty)
    {
        global $t12l;
        
        if (!isset($parameter['trigger'])) {
            return false;
        } else {
            $trigger = $parameter['trigger'];
        }
        
        $module_container = t12l_module::container();
        $output = array();
        reset($module_container);
        while (list($module, $instance) = each($module_container))
        {
            if (in_array($trigger, $instance->get_property('trigger'))
                    and $instance->get_property('module_active') == true) {
                $instance->process($trigger, $t12l, $parameter, $t12l['module_additional']);                
                if ($instance->get_output($trigger) == '') {
                    continue;
                }                
                $output[] = '<div class="tabbertab" style="min-height:40px;"><h2>' . $instance->get_property('name') . '</h2>' . $instance->get_output($trigger) . '</div>';
            }
        }
        
        if (sizeof($output) > 0) {
            $result  = '<div class="tabber">';
            $result .= join('', $output);
            $result .= '</div>';
            
            return $result;
        }
    }

// -----------------------------------------------------------------------------




    /**
     * Create module instance
     * 
     * @access public
     */
    function load_module($module, $all = false)
    {
        global $t12l;
        
        if (false == $all and !in_array($module, $t12l['installed_modules'])) {
            t12l_system_debug::add_message('Module Failure', 'Module is not listed in $t12l[\'installed_modules\']');
            return false;
        }
        
        $module_file =  T12L_ROOT . 
                        $t12l['module_directory'] . 
                        $module . '/' .
                        $module . '.class.inc.php';
        if (!is_file($module_file)) {
            t12l_system_debug::add_message('Module Failure', 'Module file not found in: ' . $module_file);
            return false;
        }

        if (!in_array($module_file, get_included_files())) {
            require $module_file;
        }
        
        if (!class_exists($module)) {
            t12l_system_debug::add_message('Module Failure', 'Module class "' . $module . '" does not exist.');
            return false;
        }

        $instance = new $module($t12l);
        return $instance;
    }

// -----------------------------------------------------------------------------




    /**
     * Re-instanciate module
     */
    function reload_module($module)
    {
        global $t12l;
        
        if (!in_array($module, $t12l['installed_modules'])) {
            t12l_system_debug::add_message('Module Failure', 'Module is not listed in $t12l[\'installed_modules\']');
            return false;
        }

        $instance = new $module($t12l);
        return $instance;
    }

// -----------------------------------------------------------------------------




    /**
     * Contains/creates module instances
     * 
     */
    function &container($reload = false, $cache = true)
    {
        global $t12l;
        static $module_data = null;

        if ($reload == false and $cache == true and is_array($module_data)) {
            return $module_data;
        }

        $module_data = array();
        foreach ($t12l['installed_modules'] AS $module)
        {
            trim($module);
            
            if (isset($module_data[$module])) {
                continue;
            }
            
            if ($reload == true and $instance = t12l_module::reload_module($module)) {
                $module_data[$module] = $instance;
                continue;
            }
            
            if ($instance = t12l_module::load_module($module)) {
                $module_data[$module] = $instance;
            }
        }
        return $module_data;
    }

// -----------------------------------------------------------------------------




    /**
     * Administration module list
     * 
     * @access public
     */
    function module_list()
    {
        $module_container = t12l_module::container();
        reset($module_container);
        $module_list = array();
        while (list($module, $instance) = each($module_container))
        {
            // Skip hidden modules or modules without administration
            if($instance->get_property('hidden') == true) {
                continue;
            }
            $module_list[] = array( 'name'          => $instance->get_property('name'),
                                    'description'   => $instance->get_property('description'),
                                    'module'    => $module
                                    );
        }
        return $module_list;
    }

// -----------------------------------------------------------------------------




    /**
     * List of all available modules
     * 
     * @access public
     */
    function available_module_list()
    {
        global $t12l;
        
        $module_container = t12l_module::container();
        reset($module_container);

        $available_modules = t12l_module::folder_list(T12L_ROOT . $t12l['module_directory']);
        asort($available_modules);
        $available_modules = array_merge($t12l['installed_modules'], $available_modules);
        $available_modules = array_unique($available_modules);
        $module_list = array();
        while (list($key, $module) = each($available_modules))
        {
            $module = trim($module);
            
            if (isset($module_container[$module])) {
                $instance = $module_container[$module];
                $install_status = true;
            } else {         
                if (!$instance = t12l_module::load_module($module, true)) {
                    continue;
                } else {
                    $install_status = false;
                }
            }
            $module_list[] = array( 'name'          => $instance->get_property('name'),
                                    'description'   => $instance->get_property('description'),
                                    'module'        => $module,
                                    'installed'     => $install_status
                                    );
        }
        return $module_list;
    }

⌨️ 快捷键说明

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