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

📄 babelkit.php

📁 BabelKit是一个通用多语言数据库代码表的接口。它接收维护使用多语言的多个数据库代码定义集中的所有编程工作。代码管理和翻译页可以让开发人员定义新的虚拟代码表
💻 PHP
📖 第 1 页 / 共 2 页
字号:
<?php#       #       #       ### BabelKit.php## Interface to a Universal Multilingual Code Table.## Copyright (C) 2003 John Gorman <jgorman@webbysoft.com># http://www.webbysoft.com/babelkit#### Public methods:## $bk = new BabelKit($dbh, $param=array());#               'table' => 'bk_code'#### Get code descriptions safe for HTML display:# # $str = $bk->desc(   $code_set, $code_lang, $code_code);# $str = $bk->ucfirst($code_set, $code_lang, $code_code);# $str = $bk->ucwords($code_set, $code_lang, $code_code);#### Get code descriptions not safe for HTML display:## $str = $bk->render($code_set, $code_lang, $code_code);# $str = $bk->data(  $code_set, $code_lang, $code_code);# $str = $bk->param( $code_set, $code_code)#### HTML select common options:##               'var_name'      => 'start_day'#               'value'         => $start_day#               'default'       => 1#               'subset'        => array( 1, 2, 3, 4, 5 )#               'options'       => 'onchange="submit()"'#### HTML select single value methods:# # $str = $bk->select($code_set, $code_lang, $param=array());#               'select_prompt' => "Code set description?"#               'blank_prompt'  => "None"## $str = $bk->radio($code_set, $code_lang, $param=array());#               'blank_prompt'  => "None"#               'sep'           => "<br>\n"#### HTML select multiple value methods:## $str = $bk->multiple($code_set, $code_lang, $param=array());#               'size'          => 10## $str = $bk->checkbox($code_set, $code_lang, $param=array());#               'sep'           => "<br>\n"#### Code sets:## $rows = $bk->lang_set($code_set, $code_lang);# $rows = $bk->full_set($code_set, $code_lang);#### Code table updates:# # $bk->slave($code_set, $code_code, $code_desc);## $bk->remove($code_set, $code_code);## list($code_desc, $code_order, $code_flag) =#   $bk->get($code_set, $code_lang, $code_code);## $bk->put($code_set, $code_lang, $code_code, $code_desc,#          $code_order = 0, $code_flag = '');##       #       #       #### Public methods:class BabelKit {    var $dbh;           # Library handle.    var $lib_type;      # Library type: pear | adodb | phplib.    var $table;         # Code table name.    var $native;        # Native language.    function BabelKit($dbh, $param=array()) {        $this->dbh = $dbh;        if (!is_object($dbh))            die('BabelKit($dbh): $dbh is not an object');        if (isset($dbh->databaseType))            $this->lib_type = 'adodb';        elseif (isset($dbh->Database))            $this->lib_type = 'phplib';        elseif (isset($dbh->connection))            $this->lib_type = 'pear';        else            die('BabelKit($dbh): $dbh is not a pear/adodb/phplib handle');        $this->table = $param['table'] ? $param['table'] : 'bk_code';        $this->native = $this->_find_native();        if (!$this->native)            die("BabelKit(): unable to determine native language. " .                "Check table '$this->table' for code_admin/code_admin record.");    }### Get code descriptions safe for HTML display:    #       #       #       #    # Get a code description safe for html display.    # Fill missing translations with the native desc or code.    #    function desc($code_set, $code_lang, $code_code) {        return htmlspecialchars(            $this->render($code_set, $code_lang, $code_code)        );    }    #       #       #       #    # Get a code description with the First letter capitalized.    #    function ucfirst($code_set, $code_lang, $code_code) {        return ucfirst( $this->desc($code_set, $code_lang, $code_code) );    }    #       #       #       #    # Get a code description with Each Word Capitalized.    #    function ucwords($code_set, $code_lang, $code_code) {        return ucwords( $this->desc($code_set, $code_lang, $code_code) );    }### Get code descriptions not safe for HTML display:    #       #       #       #    # Get a raw code description *not* safe for html display.    # Fill missing translations with the native desc or code.    #    function render($code_set, $code_lang, $code_code) {        $code_desc = $this->data($code_set, $code_lang, $code_code);        if ($code_desc == '') {            $code_desc = $this->data($code_set, $this->native, $code_code);            if ($code_desc == '')                $code_desc = $code_code;        }        return $code_desc;    }    #       #       #       #    # Get a raw code_desc, *not* safe for html display.    #    function data($code_set, $code_lang, $code_code) {        $result = $this->_query("            select  code_desc            from    $this->table            where   code_set  = '$code_set'            and     code_lang = '$code_lang'            and     code_code = '$code_code'        ");        return $result[0][0];    }    #       #       #       #    # Get a raw config parameter (native).    #    function param($code_set, $code_code) {        return $this->data($code_set, $this->native, $code_code);    }### HTML select single value methods:    #       #       #       #    # Create an html form selection dropdown from a code set.    #    function select($code_set, $code_lang, $param=array()) {        $var_name      = $param['var_name'];        $value         = $param['value'];        $default       = $param['default'];        $subset        = $param['subset'];        $options       = $param['options'];        $select_prompt = $param['select_prompt'];        $blank_prompt  = $param['blank_prompt'];        # Variable name.        if (!$var_name) $var_name = $code_set;        if (!isset($value)) {            $value = $_POST ? $_POST[$var_name] : $_GET[$var_name];        }        if (!isset($value)) $value = $default;        if (is_array($subset)) {            $Subset = array();            foreach ( $subset as $val ) $Subset[$val] = 1;        }        if ($options) $options = " $options";        # Drop down box.        $select = "<select name=\"$var_name\"$options>\n";        # Blank options.        $selected = '';        if ($value == '') {            if ($select_prompt == '')                $select_prompt =                    $this->ucwords('code_set', $code_lang, $code_set).'?';            $select .= "<option value=\"\" selected>$select_prompt\n";            $selected = 1;        } elseif ($blank_prompt <> '') {            $select .= "<option value=\"\">$blank_prompt\n";        }        # Show code set options.        $set_list = $this->full_set($code_set, $code_lang);        foreach ( $set_list as $row ) {            list($code_code, $code_desc) = $row;            if ($Subset && !$Subset[$code_code] && $code_code <> $value)                continue;            $code_desc = htmlspecialchars(ucfirst($code_desc));            if ($code_code == $value) {                $selected = 1;                $select .= "<option value=\"$code_code\" selected>$code_desc\n";            } elseif ($row[3] <> 'd') {                $select .= "<option value=\"$code_code\">$code_desc\n";            }        }        # Show a missing value.        if (!$selected) {            $select .= "<option value=\"$value\" selected>$value\n";        }        $select .= "</select>\n";        return $select;    }    #       #       #       #    # Create an html form radio box from a code set.    #    function radio($code_set, $code_lang, $param=array()) {        $var_name     = $param['var_name'];        $value        = $param['value'];        $default      = $param['default'];        $subset       = $param['subset'];        $options       = $param['options'];        $blank_prompt = $param['blank_prompt'];        $sep          = $param['sep'];        # Variable name.        if (!$var_name) $var_name = $code_set;        if (!isset($value)) {            $value = $_POST ? $_POST[$var_name] : $_GET[$var_name];        }        if (!isset($value)) $value = $default;        if (is_array($subset)) {            $Subset = array();            foreach ( $subset as $val ) $Subset[$val] = 1;        }        if ($options) $options = " $options";        if (!isset($sep)) $sep = "<br>\n";        # Blank options.        if ($value == '') {            $selected = 1;            if ($blank_prompt <> '') {                $select .= "<input type=\"radio\" name=\"$var_name\"$options";                $select .= " value=\"\" checked>$blank_prompt";            }        } else {            if ($blank_prompt <> '') {                $select .= "<input type=\"radio\" name=\"$var_name\"$options";                $select .= " value=\"\">$blank_prompt";            }        }        # Show code set options.        $set_list = $this->full_set($code_set, $code_lang);        foreach ( $set_list as $row ) {            list($code_code, $code_desc) = $row;            if ($Subset && !$Subset[$code_code] && $code_code <> $value)                continue;            $code_desc = htmlspecialchars(ucfirst($code_desc));            if ( $code_code == $value ) {                if ($select) $select .= $sep;                $selected = 1;                $select .= "<input type=\"radio\" name=\"$var_name\"$options";                $select .= " value=\"$code_code\" checked>$code_desc";            } elseif ($row[3] <> 'd') {                if ($select) $select .= $sep;                $select .= "<input type=\"radio\" name=\"$var_name\"$options";                $select .= " value=\"$code_code\">$code_desc";            }        }        # Show missing values.        if (!$selected) {            if ($select) $select .= $sep;            $select .= "<input type=\"radio\" name=\"$var_name\"$options";            $select .= " value=\"$value\" checked>$value";        }        return $select;    }### HTML select multiple value methods:    #       #       #       #    # Create an html form multiple select box from a code set.    #    function multiple($code_set, $code_lang, $param=array()) {        $var_name = $param['var_name'];        $value    = $param['value'];        $default  = $param['default'];        $subset   = $param['subset'];        $options       = $param['options'];        $size     = $param['size'];        # Variable name.        if (!$var_name) $var_name = $code_set;        if (!isset($value)) {            $value = $_POST ? $_POST[$var_name] : $_GET[$var_name];        }        if (!isset($value)) $value = $default;        $Value = array();        if (is_array($value)) {            foreach ( $value as $val ) $Value[$val] = 1;        } elseif ($value <> '') {            $Value[$value] = 1;

⌨️ 快捷键说明

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