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

📄 factory.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: Factory.php,v 1.9 2005/05/14 03:06:00 alan_k Exp $////  Factory tools for managing groups of HTML_Elements//require_once 'HTML/Template/Flexy/Element.php';class HTML_Template_Flexy_Factory {    /**    * fromArray - builds a set of elements from a key=>value array (eg. DO->toArray())    * the second parameter is an optional HTML_Element array to merge it into.    *     *     * @param   array   key(tag name) => value       * @param   optional array   key(tag name) => HTML_Element    *    * @return   array    Array of HTML_Elements    * @access   public    */      function fromArray($ar,$ret=array())     {                foreach($ar as $k=>$v) {            if (is_array($v)) {                $ret = HTML_Template_Flexy_Factory::fromArrayPrefixed($k,$v,$ret);            }                                    if (!isset($ret[$k])) {                $ret[$k] = new HTML_Template_Flexy_Element();            }            $ret[$k]->setValue($v);        }        return $ret;    }        /**    * fromArrayPrefixed - takes a multi dimensional array, and builds the 'xxx[sss][xx]' => value    *     * @param   array   key(tag name) => value       * @param   array   key(tag name) => value       * @param   optional array   key(tag name) => HTML_Element    *    * @return   array    Array of HTML_Elements    * @access   public    */      function fromArrayPrefixed($prefix, $ar,$ret=array())     {              foreach($ar as $k=>$v) {            if (is_array($v)) {                $ret = HTML_Template_Flexy_Factory::fromArrayPrefixed($prefix.'['.$k.']',$v,$ret);                if (!isset($ret[$prefix.'['.$k.'][]'])) {                    $ret[$prefix.'['.$k.'][]'] = new HTML_Template_Flexy_Element();                }                $ret[$prefix.'['.$k.'][]']->setValue($v);            }                        if (!isset($ret[$prefix.'['.$k.']'])) {                $ret[$prefix.'['.$k.']'] = new HTML_Template_Flexy_Element();            }            $ret[$prefix.'['.$k.']']->setValue($v);                                            }        return $ret;    }            /**    * setErrors - sets the suffix of an element to a value..    *      * HTML_Element_Factory::setErrors($elements,array('name','not long enough'));    *    * @depreciated  - this is really outside the scope of Factory - it should be     *                   seperated into a rendering toolkit of some kind.     * @param   array    of HTML_Element's    * @param    array   key(tag name) => error    * @param    string sprintf error format..    *    * @return   array    Array of HTML_Elements     * @access   public    */      function &setErrors(&$ret,$set,$format='<span class="error">%s</span>')     {        if (empty($ret) || !is_array($ret)) {            $ret = array();        }        // check what you send this.. !!!        if (!is_array($set)) {            return HTML_Template_Flexy::raiseError(                'invalid arguments "$set" (should be an array) sent to HTML_Template_Flexy_Factory::setErrors',                 0, HTML_TEMPLATE_FLEXY_ERROR_DIE);        }
        foreach($set as $k=>$v) {            if (!$v) {                continue;            }            if (!isset($ret[$k])) {                $ret[$k] = new HTML_Template_Flexy_Element;            }            $ret[$k]->suffix .= sprintf($format,$v);        }        return $ret;    }            /**    * setRequired - sets the prefix of an element to a value..    *      * HTML_Element_Factory::setRequired($elements,array('name',true));    *    * @depreciated  - this is really outside the scope of Factory - it should be     *               seperated into a rendering toolkit    *     * @param    array   of HTML_Element's    * @param    array  key(tag name) => error    * @param    string sprintf error format..    *    *    * @return   array    Array of HTML_Elements    * @access   public    */      function &setRequired(&$ret,$set,$format='<span class="required">*</span>')     {                        if (empty($ret) || !is_array($ret)) {            $ret = array();        }        foreach($set as $k=>$v) {            if (!$v) {                continue;            }            if (!isset($ret[$k])) {                $ret[$k] = new HTML_Template_Flexy_Element();            }            $ret[$k]->prefix .= sprintf($format,$v);        }        return $ret;    }            /**    * freeze - freeze's an element. - just copies the value to the override.    * this probably needs more thought.. - it would probably need to merge    * the full tag info with types, to be usefull..    *      * $ar = HTML_Element_Factory::freeze($ar);    *    * @depreciated  - this is really outside the scope of Factory - it should be     *               seperated into a rendering toolkit    *     *    * @param   array   (return by referencekey(tag name) => HTML_Element    *    * @return   array    Array of HTML_Elements    * @access   public    */    function freeze(&$array) {            foreach($array as $k=>$v) {            $array[$k]->override = $array[$k]->value;        }    }    }

⌨️ 快捷键说明

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