From: <be...@us...> - 2012-07-31 10:13:47
|
Revision: 9954 http://xoops.svn.sourceforge.net/xoops/?rev=9954&view=rev Author: beckmi Date: 2012-07-31 10:13:35 +0000 (Tue, 31 Jul 2012) Log Message: ----------- Updating to 3.04 (minor fixes) Modified Paths: -------------- XoopsModules/xlanguage/branches/mamba/xlanguage/admin/admin_footer.php XoopsModules/xlanguage/branches/mamba/xlanguage/admin/langform.inc.php XoopsModules/xlanguage/branches/mamba/xlanguage/admin/main.php XoopsModules/xlanguage/branches/mamba/xlanguage/class/language.php XoopsModules/xlanguage/branches/mamba/xlanguage/docs/changelog.txt XoopsModules/xlanguage/branches/mamba/xlanguage/include/functions.php XoopsModules/xlanguage/branches/mamba/xlanguage/xoops_version.php XoopsModules/xlanguage/trunk/xlanguage/admin/admin_footer.php XoopsModules/xlanguage/trunk/xlanguage/admin/langform.inc.php XoopsModules/xlanguage/trunk/xlanguage/admin/main.php XoopsModules/xlanguage/trunk/xlanguage/class/language.php XoopsModules/xlanguage/trunk/xlanguage/docs/changelog.txt XoopsModules/xlanguage/trunk/xlanguage/include/functions.php XoopsModules/xlanguage/trunk/xlanguage/xoops_version.php Modified: XoopsModules/xlanguage/branches/mamba/xlanguage/admin/admin_footer.php =================================================================== --- XoopsModules/xlanguage/branches/mamba/xlanguage/admin/admin_footer.php 2012-07-31 09:28:57 UTC (rev 9953) +++ XoopsModules/xlanguage/branches/mamba/xlanguage/admin/admin_footer.php 2012-07-31 10:13:35 UTC (rev 9954) @@ -2,7 +2,7 @@ echo "<div class='adminfooter'>\n" ." <div style='text-align: center;'>\n" - ." <a href='http://www.xoops.org' target='_blank'><img src='{$pathIcon32}/xoopsmicrobutton.gif' alt='XOOPS' title='XOOPS'></a>\n" + ." <a href='http://www.xoops.org' rel='external'><img src='{$pathIcon32}/xoopsmicrobutton.gif' alt='XOOPS' title='XOOPS'></a>\n" ." </div>\n" ." " . _AM_MODULEADMIN_ADMIN_FOOTER . "\n" ."</div>"; Modified: XoopsModules/xlanguage/branches/mamba/xlanguage/admin/langform.inc.php =================================================================== --- XoopsModules/xlanguage/branches/mamba/xlanguage/admin/langform.inc.php 2012-07-31 09:28:57 UTC (rev 9953) +++ XoopsModules/xlanguage/branches/mamba/xlanguage/admin/langform.inc.php 2012-07-31 10:13:35 UTC (rev 9954) @@ -41,18 +41,18 @@ $sform->addElement(new XoopsFormText(_AM_XLANG_DESC, 'lang_desc', 50, 255, $lang_desc)); +//$sform->addElement(new XoopsFormText(_AM_XLANG_CODE, 'lang_code', 50, 255, $lang_code), true); +$lang_code = new XoopsFormText(_AM_XLANG_CODE, 'lang_code', 50, 255, $lang_code); +$lang_code->setDescription(_AM_XLANG_CODE_DESC); +$sform->addElement($lang_code, true); + //$sform->addElement(new XoopsFormText(_AM_XLANG_CHARSET, 'lang_charset', 50, 255, $lang_charset), true); $lang_charset = new XoopsFormText(_AM_XLANG_CHARSET, 'lang_charset', 50, 255, $lang_charset); $lang_charset->setDescription(_AM_XLANG_CHARSET_DESC); $sform->addElement($lang_charset, true); -//$sform->addElement(new XoopsFormText(_AM_XLANG_CODE, 'lang_code', 50, 255, $lang_code), true); -$lang_code = new XoopsFormText(_AM_XLANG_CODE, 'lang_charset', 50, 255, $lang_code); -$lang_code->setDescription(_AM_XLANG_CODE_DESC); -$sform->addElement($lang_code, true); - if(!$isBase){ $baseList =& $xlanguage_handler->getAll(); $base_list = array(); @@ -87,9 +87,8 @@ $button_tray = new XoopsFormElementTray('', ''); $button_tray->addElement(new XoopsFormHidden('op', 'save')); -$button_tray->addElement(new XoopsFormButton('', '', _GO, 'submit')); +$button_tray->addElement(new XoopsFormButton('', '', _SUBMIT, 'submit')); $button_tray->addElement(new XoopsFormButton('', '', _CANCEL, 'submit')); $sform->addElement($button_tray); -$sform->display(); -?> \ No newline at end of file +$sform->display(); \ No newline at end of file Modified: XoopsModules/xlanguage/branches/mamba/xlanguage/admin/main.php =================================================================== --- XoopsModules/xlanguage/branches/mamba/xlanguage/admin/main.php 2012-07-31 09:28:57 UTC (rev 9953) +++ XoopsModules/xlanguage/branches/mamba/xlanguage/admin/main.php 2012-07-31 10:13:35 UTC (rev 9954) @@ -1,245 +1,245 @@ -<?php -// $Id$ -// ------------------------------------------------------------------------ // -// Xlanguage: eXtensible Language Management For Xoops // -// Copyright (c) 2004 Xoops China Community // -// <http://www.xoops.org.cn/> // -// ------------------------------------------------------------------------ // -// This program is free software; you can redistribute it and/or modify // -// it under the terms of the GNU General Public License as published by // -// the Free Software Foundation; either version 2 of the License, or // -// (at your option) any later version. // -// // -// You may not change or alter any portion of this comment or credits // -// of supporting developers from this source code or any supporting // -// source code which is considered copyrighted (c) material of the // -// original comment or credit authors. // -// // -// This program is distributed in the hope that it will be useful, // -// but WITHOUT ANY WARRANTY; without even the implied warranty of // -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // -// GNU General Public License for more details. // -// // -// You should have received a copy of the GNU General Public License // -// along with this program; if not, write to the Free Software // -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// ------------------------------------------------------------------------ // -// Author: D.J.(phppp) ph...@ho... // -// URL: http://www.xoops.org.cn // -// ------------------------------------------------------------------------- // -include '../../../include/cp_header.php'; -include_once 'admin_header.php'; - -include_once(XOOPS_ROOT_PATH.'/modules/xlanguage/include/vars.php'); -include_once(XOOPS_ROOT_PATH.'/modules/xlanguage/include/functions.php'); - -$op = ""; -if ( isset( $_POST ) ){ - foreach ( $_POST as $k => $v ) { - ${$k} = $v; - } -} -if ( isset( $_GET ) ){ - foreach ( $_GET as $k => $v ) { - ${$k} = $v; - } -} - -define("XLANG_CONFIG_LINK","<a href='main.php' target='_self'>"._AM_XLANG_CONFIG."</a>"); - -$xlanguage_handler =& xoops_getmodulehandler('language', 'xlanguage'); -$xlanguage_handler->loadConfig(); - -switch ( $op ) -{ - case "del": - if (!isset($_POST['ok']) || $_POST['ok'] != 1 ){ - xoops_cp_header(); -$aboutAdmin = new ModuleAdmin(); -echo $aboutAdmin->addNavigation('main.php'); -// echo "<h4>" . XLANG_CONFIG_LINK . "</h4>"; - xoops_confirm( array( 'op' => 'del', 'type' => $_GET['type'], 'lang_id' => intval( $_GET['lang_id'] ), 'ok' => 1 ), 'main.php', _AM_XLANG_DELETE_CFM ); - }else{ - if(isset($type)&&$type=='ext') $isBase = false; - else $isBase = true; - $lang =& $xlanguage_handler->get($lang_id, $isBase); - $xlanguage_handler->delete($lang); - redirect_header("main.php",2,_AM_XLANG_DELETED); - } - break; - - case "save": - if(isset($type)&&$type=='ext') $isBase = false; - else $isBase = true; - if(isset($lang_id)&&$lang_id>0){ - $lang =& $xlanguage_handler->get($lang_id, $isBase); - }else{ - $lang =& $xlanguage_handler->create(true, $isBase); - } - $lang_name = preg_replace("/[^a-zA-Z0-9\_\-]/", "", $lang_name); - - $lang->setVar('lang_name',$lang_name); - $lang->setVar('lang_desc',$lang_desc); - $lang->setVar('lang_code',$lang_code); - $lang->setVar('lang_charset',$lang_charset); - $lang->setVar('lang_image',$lang_image); - if(!$isBase){ - $lang->setVar('lang_base',$lang_base); - } - $lang->setVar('weight',$weight); - $xlanguage_handler->insert($lang); - redirect_header("index.php",2,_AM_XLANG_SAVED); - break; - - case "edit": - xoops_cp_header(); -$aboutAdmin = new ModuleAdmin(); -echo $aboutAdmin->addNavigation('main.php'); - // echo "<h4>" . XLANG_CONFIG_LINK . "</h4>"; - // echo "<br />"; - echo "<h4>" . _AM_XLANG_EDITLANG . "</h4>"; - if(isset($type)&&$type=='ext') $isBase = false; - else $isBase = true; - if(isset($lang_id)&&$lang_id>0){ - $lang =& $xlanguage_handler->get($lang_id, $isBase); - }elseif(isset($lang_name)){ - $lang =& $xlanguage_handler->getByName($lang_name, $isBase); - }else{ - $lang =& $xlanguage_handler->create(true, $isBase); - } - $lang_name = $lang->getVar('lang_name'); - $lang_desc = $lang->getVar('lang_desc'); - $lang_code = $lang->getVar('lang_code'); - $lang_charset = $lang->getVar('lang_charset'); - $lang_image = $lang->getVar('lang_image'); - $weight = $lang->getVar('weight'); - if(!$isBase){ - $lang_base = $lang->getVar('lang_base'); - } - include "langform.inc.php"; - break; - - case "add": - xoops_cp_header(); -$aboutAdmin = new ModuleAdmin(); -// echo "<h4>" . XLANG_CONFIG_LINK . "</h4>"; -// echo "<br />"; -// echo "<h4>" . _AM_XLANG_ADDLANG . "</h4>"; - if(isset($type)&&$type=='ext') { - $isBase = false; - echo $aboutAdmin->addNavigation('main.php?op=add&type=ext'); } - else { - $isBase = true; - echo $aboutAdmin->addNavigation('main.php?op=add&type=base'); - } - $lang_name = ''; - $lang_desc = ''; - $lang_code = ''; - $lang_charset = ''; - $lang_image = ''; - $weight = 1; - $lang_base = ''; - include "langform.inc.php"; - break; - - case 'createconfig': - xlanguage_createConfig(); - redirect_header( 'main.php', 1, _AM_XLANG_CREATED ); - exit(); - break; - - case "default": - default: - xoops_cp_header(); -$mainAdmin = new ModuleAdmin(); -echo $mainAdmin->addNavigation('main.php'); - - - // if (TDMDownloads_checkModuleAdmin()){ - // $mainAdmin = new ModuleAdmin(); - // echo $mainAdmin->addNavigation('downloads.php'); - $mainAdmin->addItemButton(_MI_XLANGUAGE_ADMENU1, 'main.php?op=add&type=base', 'add'); - $mainAdmin->addItemButton(_MI_XLANGUAGE_ADMENU2, 'main.php?op=add&type=ext', 'insert_table_row'); - - echo $mainAdmin->renderButton(); -// } - -// echo "<h4>" . XLANG_CONFIG_LINK . "</h4>"; - languageList(); - $configfile_status = (@is_readable(XLANGUAGE_CONFIG_FILE))?_AM_XLANG_CONFIGOK:_AM_XLANG_CONFIGNOTOK; - echo"<table width='100%' border='0' cellspacing='1' class='outer'><tr><td class=\"odd\"><br />"; -// echo " - <b><a href='index.php?op=add&type=base'>" . _AM_XLANG_ADDBASE . "</a></b><br /><br />\n"; -// echo " - <b><a href='index.php?op=add&type=ext'>" . _AM_XLANG_ADDEXT . "</a></b><br /><br />\n"; - echo "<b>".$configfile_status."</b>: ".XLANGUAGE_CONFIG_FILE." (<a href='main.php?op=createconfig' title='"._AM_XLANG_CREATECONFIG."'>" . _AM_XLANG_CREATECONFIG . "</a>)<br /><br />\n"; -// echo " - <b><a href='about.php'>" . _AM_XLANG_ABOUT . "</a></b>"; - echo"</td></tr></table>"; - break; -} -xoops_cp_footer(); - - -function languageList() -{ - global $xlanguage_handler, $xoopsModule; - -global $pathIcon16; - - $lang_list =& $xlanguage_handler->getAllList(); - if ( is_array($lang_list)&&count( $lang_list ) > 0 ){ - echo"<table width='100%' border='0' cellspacing='1' class='outer'><tr><td class=\"odd\">"; - echo "<div style='text-align: center;'><b><h4>" . _AM_XLANG_LANGLIST . "</h4></b><br />"; - echo "<table class='outer' width='100%' border='0' cellpadding='0' cellspacing='0' ><tr class='bg2'><th align='center'>" . _AM_XLANG_DESC . "</th><th align='center'>" . _AM_XLANG_NAME . "</th><th align='center'>" . _AM_XLANG_CHARSET . "</th><th align='center'>" . _AM_XLANG_CODE . "</th><th align='center'>" . _AM_XLANG_IMAGE . "</th><th align='center'>" . _AM_XLANG_WEIGHT . "</th><th align='center'>" . _AM_XLANG_BASE . "</th><th align='center'>" . _AM_XLANG_ACTION . "</th></tr>\n"; - $class = 'even'; - foreach( array_keys($lang_list) as $lang_name ) { - $lang =& $lang_list[$lang_name]; - $isOrphan = true; - if(isset($lang['base'])){ - echo "<tr>\n"; - echo "<td class='$class' >" . $lang['base'] -> getVar('lang_desc') . "</td>\n"; - echo "<td class='$class' ><b>" . $lang['base'] -> getVar('lang_name') . "</b></td>\n"; - echo "<td class='$class' ><b>" . $lang['base'] -> getVar('lang_charset') . "</b></td>\n"; - echo "<td class='$class' >" . $lang['base'] -> getVar('lang_code') . "</td>\n"; - if(is_readable(XOOPS_ROOT_PATH.'/modules/xlanguage/images/'.$lang['base'] -> getVar('lang_image'))){ - $lang_image = $lang['base'] -> getVar('lang_image'); - }else{ - $lang_image = 'noflag.gif'; - } - echo "<td class='$class' ><img src='" . XOOPS_URL.'/modules/xlanguage/images/'.$lang_image . "' alt='".$lang['base'] -> getVar('lang_desc')."' /></td>\n"; - echo "<td class='$class' >" . $lang['base'] -> getVar('weight') . "</td>\n"; - echo "<td class='$class' >Ø</td>\n"; - echo "<td class='$class' ><a href='main.php?op=edit&type=base&lang_id=" . $lang['base'] -> getVar('lang_id') . "'><img src=".$pathIcon16.'/edit.png title=' . _EDIT . "></a>\n". - "<a href='main.php?op=del&type=base&lang_id=" . $lang['base'] -> getVar('lang_id') . "'><img src=".$pathIcon16.'/delete.png title=' . _DELETE ."></td>\n"; - echo "</tr>\n"; - $isOrphan = false; - $class = ($class == 'odd') ? 'even' : 'odd'; - } - if(!isset($lang['ext'])||count($lang['ext'])<1) continue; - foreach($lang['ext'] as $ext){ - echo "<tr>\n"; - echo "<td class='$class' >" . $ext -> getVar('lang_desc') . "</td>\n"; - echo "<td class='$class' >" . $ext -> getVar('lang_name') . "</td>\n"; - echo "<td class='$class' ><b>" . $ext -> getVar('lang_charset') . "</b></td>\n"; - echo "<td class='$class' >" . $ext -> getVar('lang_code') . "</td>\n"; - if(is_readable(XOOPS_ROOT_PATH.'/modules/xlanguage/images/'.$ext -> getVar('lang_image'))){ - $lang_image = $ext -> getVar('lang_image'); - }else{ - $lang_image = 'noflag.gif'; - } - echo "<td class='$class' ><img src='" . XOOPS_URL.'/modules/xlanguage/images/'.$lang_image . "' alt='".$ext -> getVar('lang_desc')."' /></td>\n"; - echo "<td class='$class' >" . $ext -> getVar('weight') . "</td>\n"; - $lang_base = ($isOrphan)?"<font color='red'>".$ext -> getVar('lang_base')."</font>":$ext -> getVar('lang_base'); - echo "<td class='$class' ><b>" . $lang_base . "</b></td>\n"; - echo "<td class='$class' ><a href='main.php?op=edit&type=ext&lang_id=" . $ext -> getVar('lang_id') . "'><img src=".$pathIcon16.'/edit.png title=' . _EDIT . "></a>\n". - "<a href='main.php?op=del&type=ext&lang_id=" . $ext -> getVar('lang_id') . "'><img src=".$pathIcon16.'/delete.png title=' . _DELETE ."></td>\n"; - echo "</tr>\n"; - } - echo "<tr><td colspan='9' ></td></tr>\n"; - $class = ($class == 'odd') ? 'even' : 'odd'; - } - - echo "</table></div>\n"; - echo"</td></tr></table>"; - echo "<br />"; - } -} -?> +<?php +// $Id$ +// ------------------------------------------------------------------------ // +// Xlanguage: eXtensible Language Management For Xoops // +// Copyright (c) 2004 Xoops China Community // +// <http://www.xoops.org.cn/> // +// ------------------------------------------------------------------------ // +// This program is free software; you can redistribute it and/or modify // +// it under the terms of the GNU General Public License as published by // +// the Free Software Foundation; either version 2 of the License, or // +// (at your option) any later version. // +// // +// You may not change or alter any portion of this comment or credits // +// of supporting developers from this source code or any supporting // +// source code which is considered copyrighted (c) material of the // +// original comment or credit authors. // +// // +// This program is distributed in the hope that it will be useful, // +// but WITHOUT ANY WARRANTY; without even the implied warranty of // +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // +// GNU General Public License for more details. // +// // +// You should have received a copy of the GNU General Public License // +// along with this program; if not, write to the Free Software // +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // +// ------------------------------------------------------------------------ // +// Author: D.J.(phppp) ph...@ho... // +// URL: http://www.xoops.org.cn // +// ------------------------------------------------------------------------- // +include '../../../include/cp_header.php'; +include_once 'admin_header.php'; + +include_once(XOOPS_ROOT_PATH.'/modules/xlanguage/include/vars.php'); +include_once(XOOPS_ROOT_PATH.'/modules/xlanguage/include/functions.php'); + +$op = ""; +if ( isset( $_POST ) ){ + foreach ( $_POST as $k => $v ) { + ${$k} = $v; + } +} +if ( isset( $_GET ) ){ + foreach ( $_GET as $k => $v ) { + ${$k} = $v; + } +} + +define("XLANG_CONFIG_LINK","<a href='main.php' target='_self'>"._AM_XLANG_CONFIG."</a>"); + +$xlanguage_handler =& xoops_getmodulehandler('language', 'xlanguage'); +$xlanguage_handler->loadConfig(); + +switch ( $op ) +{ + case "del": + if (!isset($_POST['ok']) || $_POST['ok'] != 1 ){ + xoops_cp_header(); +$aboutAdmin = new ModuleAdmin(); +echo $aboutAdmin->addNavigation('main.php'); +// echo "<h4>" . XLANG_CONFIG_LINK . "</h4>"; + xoops_confirm( array( 'op' => 'del', 'type' => $_GET['type'], 'lang_id' => intval( $_GET['lang_id'] ), 'ok' => 1 ), 'main.php', _AM_XLANG_DELETE_CFM ); + }else{ + if(isset($type)&&$type=='ext') $isBase = false; + else $isBase = true; + $lang =& $xlanguage_handler->get($lang_id, $isBase); + $xlanguage_handler->delete($lang); + redirect_header("main.php",2,_AM_XLANG_DELETED); + } + break; + + case "save": + if(isset($type)&&$type=='ext') $isBase = false; + else $isBase = true; + if(isset($lang_id)&&$lang_id>0){ + $lang =& $xlanguage_handler->get($lang_id, $isBase); + }else{ + $lang =& $xlanguage_handler->create(true, $isBase); + } + $lang_name = preg_replace("/[^a-zA-Z0-9\_\-]/", "", $lang_name); + + $lang->setVar('lang_name',$lang_name); + $lang->setVar('lang_desc',$lang_desc); + $lang->setVar('lang_code',$lang_code); + $lang->setVar('lang_charset',$lang_charset); + $lang->setVar('lang_image',$lang_image); + if(!$isBase){ + $lang->setVar('lang_base',$lang_base); + } + $lang->setVar('weight',$weight); + $xlanguage_handler->insert($lang); + redirect_header("main.php",2,_AM_XLANG_SAVED); + break; + + case "edit": + xoops_cp_header(); +$aboutAdmin = new ModuleAdmin(); +echo $aboutAdmin->addNavigation('main.php'); + // echo "<h4>" . XLANG_CONFIG_LINK . "</h4>"; + // echo "<br />"; + echo "<h4>" . _AM_XLANG_EDITLANG . "</h4>"; + if(isset($type)&&$type=='ext') $isBase = false; + else $isBase = true; + if(isset($lang_id)&&$lang_id>0){ + $lang =& $xlanguage_handler->get($lang_id, $isBase); + }elseif(isset($lang_name)){ + $lang =& $xlanguage_handler->getByName($lang_name, $isBase); + }else{ + $lang =& $xlanguage_handler->create(true, $isBase); + } + $lang_name = $lang->getVar('lang_name'); + $lang_desc = $lang->getVar('lang_desc'); + $lang_code = $lang->getVar('lang_code'); + $lang_charset = $lang->getVar('lang_charset'); + $lang_image = $lang->getVar('lang_image'); + $weight = $lang->getVar('weight'); + if(!$isBase){ + $lang_base = $lang->getVar('lang_base'); + } + include "langform.inc.php"; + break; + + case "add": + xoops_cp_header(); +$aboutAdmin = new ModuleAdmin(); +// echo "<h4>" . XLANG_CONFIG_LINK . "</h4>"; +// echo "<br />"; +// echo "<h4>" . _AM_XLANG_ADDLANG . "</h4>"; + if(isset($type)&&$type=='ext') { + $isBase = false; + echo $aboutAdmin->addNavigation('main.php?op=add&type=ext'); } + else { + $isBase = true; + echo $aboutAdmin->addNavigation('main.php?op=add&type=base'); + } + $lang_name = ''; + $lang_desc = ''; + $lang_code = ''; + $lang_charset = ''; + $lang_image = ''; + $weight = 1; + $lang_base = ''; + include "langform.inc.php"; + break; + + case 'createconfig': + xlanguage_createConfig(); + redirect_header( 'main.php', 1, _AM_XLANG_CREATED ); + exit(); + break; + + case "default": + default: + xoops_cp_header(); +$mainAdmin = new ModuleAdmin(); +echo $mainAdmin->addNavigation('main.php'); + + + // if (TDMDownloads_checkModuleAdmin()){ + // $mainAdmin = new ModuleAdmin(); + // echo $mainAdmin->addNavigation('downloads.php'); + $mainAdmin->addItemButton(_MI_XLANGUAGE_ADMENU1, 'main.php?op=add&type=base', 'add'); + $mainAdmin->addItemButton(_MI_XLANGUAGE_ADMENU2, 'main.php?op=add&type=ext', 'insert_table_row'); + + echo $mainAdmin->renderButton(); +// } + +// echo "<h4>" . XLANG_CONFIG_LINK . "</h4>"; + languageList(); + $configfile_status = (@is_readable(XLANGUAGE_CONFIG_FILE))?_AM_XLANG_CONFIGOK:_AM_XLANG_CONFIGNOTOK; + echo"<table width='100%' border='0' cellspacing='1' class='outer'><tr><td class=\"odd\"><br />"; +// echo " - <b><a href='index.php?op=add&type=base'>" . _AM_XLANG_ADDBASE . "</a></b><br /><br />\n"; +// echo " - <b><a href='index.php?op=add&type=ext'>" . _AM_XLANG_ADDEXT . "</a></b><br /><br />\n"; + echo "<b>".$configfile_status."</b>: ".XLANGUAGE_CONFIG_FILE." (<a href='main.php?op=createconfig' title='"._AM_XLANG_CREATECONFIG."'>" . _AM_XLANG_CREATECONFIG . "</a>)<br /><br />\n"; +// echo " - <b><a href='about.php'>" . _AM_XLANG_ABOUT . "</a></b>"; + echo"</td></tr></table>"; + break; +} +xoops_cp_footer(); + + +function languageList() +{ + global $xlanguage_handler, $xoopsModule; + +global $pathIcon16; + + $lang_list =& $xlanguage_handler->getAllList(); + if ( is_array($lang_list)&&count( $lang_list ) > 0 ){ + echo"<table width='100%' border='0' cellspacing='1' class='outer'><tr><td class=\"odd\">"; + echo "<div style='text-align: center;'><b><h4>" . _AM_XLANG_LANGLIST . "</h4></b><br />"; + echo "<table class='outer' width='100%' border='0' cellpadding='0' cellspacing='0' ><tr class='bg2'><th align='center'>" . _AM_XLANG_DESC . "</th><th align='center'>" . _AM_XLANG_NAME . "</th><th align='center'>" . _AM_XLANG_CHARSET . "</th><th align='center'>" . _AM_XLANG_CODE . "</th><th align='center'>" . _AM_XLANG_IMAGE . "</th><th align='center'>" . _AM_XLANG_WEIGHT . "</th><th align='center'>" . _AM_XLANG_BASE . "</th><th align='center'>" . _AM_XLANG_ACTION . "</th></tr>\n"; + $class = 'even'; + foreach( array_keys($lang_list) as $lang_name ) { + $lang =& $lang_list[$lang_name]; + $isOrphan = true; + if(isset($lang['base'])){ + echo "<tr>\n"; + echo "<td class='$class' >" . $lang['base'] -> getVar('lang_desc') . "</td>\n"; + echo "<td class='$class' ><b>" . $lang['base'] -> getVar('lang_name') . "</b></td>\n"; + echo "<td class='$class' ><b>" . $lang['base'] -> getVar('lang_charset') . "</b></td>\n"; + echo "<td class='$class' >" . $lang['base'] -> getVar('lang_code') . "</td>\n"; + if(is_readable(XOOPS_ROOT_PATH.'/modules/xlanguage/images/'.$lang['base'] -> getVar('lang_image'))){ + $lang_image = $lang['base'] -> getVar('lang_image'); + }else{ + $lang_image = 'noflag.gif'; + } + echo "<td class='$class' ><img src='" . XOOPS_URL.'/modules/xlanguage/images/'.$lang_image . "' alt='".$lang['base'] -> getVar('lang_desc')."' /></td>\n"; + echo "<td class='$class' >" . $lang['base'] -> getVar('weight') . "</td>\n"; + echo "<td class='$class' >Ø</td>\n"; + echo "<td class='$class' ><a href='main.php?op=edit&type=base&lang_id=" . $lang['base'] -> getVar('lang_id') . "'><img src=".$pathIcon16.'/edit.png title=' . _EDIT . "></a>\n". + "<a href='main.php?op=del&type=base&lang_id=" . $lang['base'] -> getVar('lang_id') . "'><img src=".$pathIcon16.'/delete.png title=' . _DELETE ."></td>\n"; + echo "</tr>\n"; + $isOrphan = false; + $class = ($class == 'odd') ? 'even' : 'odd'; + } + if(!isset($lang['ext'])||count($lang['ext'])<1) continue; + foreach($lang['ext'] as $ext){ + echo "<tr>\n"; + echo "<td class='$class' >" . $ext -> getVar('lang_desc') . "</td>\n"; + echo "<td class='$class' >" . $ext -> getVar('lang_name') . "</td>\n"; + echo "<td class='$class' ><b>" . $ext -> getVar('lang_charset') . "</b></td>\n"; + echo "<td class='$class' >" . $ext -> getVar('lang_code') . "</td>\n"; + if(is_readable(XOOPS_ROOT_PATH.'/modules/xlanguage/images/'.$ext -> getVar('lang_image'))){ + $lang_image = $ext -> getVar('lang_image'); + }else{ + $lang_image = 'noflag.gif'; + } + echo "<td class='$class' ><img src='" . XOOPS_URL.'/modules/xlanguage/images/'.$lang_image . "' alt='".$ext -> getVar('lang_desc')."' /></td>\n"; + echo "<td class='$class' >" . $ext -> getVar('weight') . "</td>\n"; + $lang_base = ($isOrphan)?"<font color='red'>".$ext -> getVar('lang_base')."</font>":$ext -> getVar('lang_base'); + echo "<td class='$class' ><b>" . $lang_base . "</b></td>\n"; + echo "<td class='$class' ><a href='main.php?op=edit&type=ext&lang_id=" . $ext -> getVar('lang_id') . "'><img src=".$pathIcon16.'/edit.png title=' . _EDIT . "></a>\n". + "<a href='main.php?op=del&type=ext&lang_id=" . $ext -> getVar('lang_id') . "'><img src=".$pathIcon16.'/delete.png title=' . _DELETE ."></td>\n"; + echo "</tr>\n"; + } + echo "<tr><td colspan='9' ></td></tr>\n"; + $class = ($class == 'odd') ? 'even' : 'odd'; + } + + echo "</table></div>\n"; + echo"</td></tr></table>"; + echo "<br />"; + } +} +?> Modified: XoopsModules/xlanguage/branches/mamba/xlanguage/class/language.php =================================================================== --- XoopsModules/xlanguage/branches/mamba/xlanguage/class/language.php 2012-07-31 09:28:57 UTC (rev 9953) +++ XoopsModules/xlanguage/branches/mamba/xlanguage/class/language.php 2012-07-31 10:13:35 UTC (rev 9954) @@ -39,12 +39,12 @@ $this -> db = & XoopsDatabaseFactory::getDatabaseConnection(); $this -> table = $this -> db -> prefix( "xlanguage_base" ); $this->initVar('lang_id', XOBJ_DTYPE_INT); + $this->initVar('weight', XOBJ_DTYPE_INT); + $this->initVar('lang_name', XOBJ_DTYPE_TXTBOX); $this->initVar('lang_desc', XOBJ_DTYPE_TXTBOX); - $this->initVar('lang_name', XOBJ_DTYPE_TXTBOX); $this->initVar('lang_code', XOBJ_DTYPE_TXTBOX); $this->initVar('lang_charset', XOBJ_DTYPE_TXTBOX); $this->initVar('lang_image', XOBJ_DTYPE_TXTBOX); - $this->initVar('weight', XOBJ_DTYPE_INT); } function prepareVars() @@ -240,9 +240,9 @@ if ( $lang->isNew() ) { if($lang->isBase){ - $var_array = array("lang_id", "lang_name", "lang_desc", "lang_image", "weight", "lang_code", "lang_charset"); + $var_array = array("lang_id", "weight", "lang_name", "lang_desc", "lang_code", "lang_charset", "lang_image"); }else{ - $var_array = array("lang_id", "lang_name", "lang_desc", "lang_image", "weight", "lang_code", "lang_charset", "lang_base"); + $var_array = array("lang_id", "weight", "lang_name", "lang_desc", "lang_image", "lang_charset", "lang_code", "lang_base"); } $lang_id = $this->db->genId($lang->table."_lang_id_seq"); foreach($var_array as $var){ @@ -257,9 +257,9 @@ $lang->setVar('lang_id', $lang_id); }else{ if($lang->isBase){ - $var_array = array("lang_name", "lang_desc", "lang_image", "weight", "lang_code", "lang_charset"); + $var_array = array("weight", "lang_name", "lang_desc", "lang_code", "lang_charset", "lang_image"); }else{ - $var_array = array("lang_name", "lang_desc", "lang_image", "weight", "lang_code", "lang_charset", "lang_base"); + $var_array = array("weight", "lang_name", "lang_desc", "lang_code", "lang_charset", "lang_base"); } $set_array = array(); foreach($var_array as $var){ @@ -310,13 +310,13 @@ $file_content .= "\n \$".XLANGUAGE_CONFIG_VAR."['xlanguage_base'] = array("; foreach( $baseArray as $lang ) { $file_content .= "\n \"".$lang->getVar('lang_name')."\"=>array("; + $file_content .= "\n \"lang_id\"=>".$lang->getVar('lang_id').","; + $file_content .= "\n \"weight\"=>".$lang->getVar('weight').","; $file_content .= "\n \"lang_name\"=>\"".$lang->getVar('lang_name')."\","; $file_content .= "\n \"lang_desc\"=>\"".$lang->getVar('lang_desc')."\","; - $file_content .= "\n \"lang_charset\"=>\"".$lang->getVar('lang_charset')."\","; $file_content .= "\n \"lang_code\"=>\"".$lang->getVar('lang_code')."\","; - $file_content .= "\n \"lang_image\"=>\"".$lang->getVar('lang_image')."\","; - $file_content .= "\n \"lang_id\"=>".$lang->getVar('lang_id').","; - $file_content .= "\n \"weight\"=>".$lang->getVar('weight').""; + $file_content .= "\n \"lang_charset\"=>\"".$lang->getVar('lang_charset')."\","; + $file_content .= "\n \"lang_image\"=>\"".$lang->getVar('lang_image')."\""; $file_content .= "\n ),"; } $file_content .= "\n );"; @@ -327,15 +327,15 @@ $file_content .= "\n \$".XLANGUAGE_CONFIG_VAR."['xlanguage_ext'] = array("; foreach( $extArray as $lang ) { $file_content .= "\n \"".$lang->getVar('lang_name')."\"=>array("; + $file_content .= "\n \"lang_id\"=>".$lang->getVar('lang_id').","; + $file_content .= "\n \"weight\"=>".$lang->getVar('weight').","; $file_content .= "\n \"lang_name\"=>\"".$lang->getVar('lang_name')."\","; $file_content .= "\n \"lang_desc\"=>\"".$lang->getVar('lang_desc')."\","; - $file_content .= "\n \"lang_charset\"=>\"".$lang->getVar('lang_charset')."\","; $file_content .= "\n \"lang_code\"=>\"".$lang->getVar('lang_code')."\","; + $file_content .= "\n \"lang_charset\"=>\"".$lang->getVar('lang_charset')."\","; $file_content .= "\n \"lang_image\"=>\"".$lang->getVar('lang_image')."\","; - $file_content .= "\n \"lang_base\"=>\"".$lang->getVar('lang_base')."\","; - $file_content .= "\n \"lang_id\"=>".$lang->getVar('lang_id').","; - $file_content .= "\n \"weight\"=>".$lang->getVar('weight').""; - $file_content .= "\n ),"; + $file_content .= "\n \"lang_base\"=>\"".$lang->getVar('lang_base').""; + $file_content .= "\n )."; } $file_content .= "\n );"; } Modified: XoopsModules/xlanguage/branches/mamba/xlanguage/docs/changelog.txt =================================================================== --- XoopsModules/xlanguage/branches/mamba/xlanguage/docs/changelog.txt 2012-07-31 09:28:57 UTC (rev 9953) +++ XoopsModules/xlanguage/branches/mamba/xlanguage/docs/changelog.txt 2012-07-31 10:13:35 UTC (rev 9954) @@ -1,3 +1,8 @@ +xlanguage 3.04: +------------------- +- updated POSIX Regex to PCRE (Mamba) +- minor fixes (Mamba) + xlanguage 3.03: ------------------- 1 updated to XOOPS 2.5.x GUI using ModuleAdmin class (Mamba) Modified: XoopsModules/xlanguage/branches/mamba/xlanguage/include/functions.php =================================================================== --- XoopsModules/xlanguage/branches/mamba/xlanguage/include/functions.php 2012-07-31 09:28:57 UTC (rev 9953) +++ XoopsModules/xlanguage/branches/mamba/xlanguage/include/functions.php 2012-07-31 10:13:35 UTC (rev 9954) @@ -1,284 +1,283 @@ -<?php -// $Id$ -// ------------------------------------------------------------------------ // -// Xlanguage: eXtensible Language Management For Xoops // -// Copyright (c) 2004 Xoops China Community // -// <http://www.xoops.org.cn/> // -// ------------------------------------------------------------------------ // -// This program is free software; you can redistribute it and/or modify // -// it under the terms of the GNU General Public License as published by // -// the Free Software Foundation; either version 2 of the License, or // -// (at your option) any later version. // -// // -// You may not change or alter any portion of this comment or credits // -// of supporting developers from this source code or any supporting // -// source code which is considered copyrighted (c) material of the // -// original comment or credit authors. // -// // -// This program is distributed in the hope that it will be useful, // -// but WITHOUT ANY WARRANTY; without even the implied warranty of // -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // -// GNU General Public License for more details. // -// // -// You should have received a copy of the GNU General Public License // -// along with this program; if not, write to the Free Software // -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// ------------------------------------------------------------------------ // -// Author: D.J.(phppp) ph...@ho... // -// URL: http://www.xoops.org.cn // -// ------------------------------------------------------------------------- // - -function xlanguage_convert_encoding($value, $out_charset, $in_charset) -{ - if (is_array($value)) { - foreach($value as $key => $val){ - $value[$key] = xlanguage_convert_encoding($val, $out_charset, $in_charset); - } - } - else { - $value = xlanguage_convert_item($value, $out_charset, $in_charset); - } - return $value; -} - -function xlanguage_convert_item($value, $out_charset, $in_charset) -{ - if(strtolower($in_charset) == strtolower($out_charset)) { - return $value; - } - $xconv_handler = @xoops_getmodulehandler('xconv', 'xconv', true); - if(is_object($xconv_handler) && - $converted_value = @$xconv_handler->convert_encoding($value, $out_charset, $in_charset) - ){ - return $converted_value; - } - if(XOOPS_USE_MULTIBYTES && function_exists('mb_convert_encoding')) { - $converted_value = @mb_convert_encoding($value, $out_charset, $in_charset); - }elseif(function_exists('iconv')) { - $converted_value = @iconv($in_charset, $out_charset, $value); - } - $value = empty($converted_value) ? $value : $converted_value; - - return $value; -} - -function xlanguage_createConfig() -{ - $xlang_handler=& xoops_getmodulehandler('language', 'xlanguage'); - return $xlang_handler->createConfig(); -} - -function &xlanguage_loadConfig() -{ - $xlang_handler=& xoops_getmodulehandler('language', 'xlanguage'); - $config =& $xlang_handler->loadFileConfig(); - return $config; -} - -/** - * Analyzes some PHP environment variables to find the most probable language - * that should be used - * - * @param string $ string to analyze - * @param integer $ type of the PHP environment variable which value is $str - * @global array the list of available translations - * @global string the retained translation keyword - * @access private - */ -function xlanguage_lang_detect($str = '', $envType = '') -{ - global $available_languages; - $lang=''; - - if(!empty($available_languages)) { - foreach ($available_languages AS $key => $value) { - // $envType = 1 for the 'HTTP_ACCEPT_LANGUAGE' environment variable, - // 2 for the 'HTTP_USER_AGENT' one - $expr = $value[0]; - if (strpos($expr, '[-_]') === FALSE) { - $expr = str_replace('|', '([-_][[:alpha:]]{2,3})?|', $expr); - } - if (($envType == 1 && eregi('^(' . $expr . ')(;q=[0-9]\\.[0-9])?$', $str)) - || ($envType == 2 && eregi('(\(|\[|;[[:space:]])(' . $expr . ')(;|\]|\))', $str))) { - $lang = $key; - //if($lang != 'en') - break; - } - } - } - - return $lang; -} - -function xlanguage_detectLang() -{ - global $available_languages,$_SERVER; - - if (!empty($_SERVER['HTTP_ACCEPT_LANGUAGE'])) { - $HTTP_ACCEPT_LANGUAGE = $_SERVER['HTTP_ACCEPT_LANGUAGE']; - } - - if (!empty($_SERVER['HTTP_USER_AGENT'])) { - $HTTP_USER_AGENT = $_SERVER['HTTP_USER_AGENT']; - } - - $lang = ''; - $xoops_lang =''; - // 1. try to findout user's language by checking its HTTP_ACCEPT_LANGUAGE - // variable - if (empty($lang) && !empty($HTTP_ACCEPT_LANGUAGE)) { - $accepted = explode(',', $HTTP_ACCEPT_LANGUAGE); - $acceptedCnt = count($accepted); - reset($accepted); - for ($i = 0; $i < $acceptedCnt; $i++) { - $lang = xlanguage_lang_detect($accepted[$i], 1); - if(strncasecmp($lang,'en',2)){ - break; - } - } - } - // 2. try to findout user's language by checking its HTTP_USER_AGENT variable - if (empty($lang) && !empty($HTTP_USER_AGENT)) { - $lang = xlanguage_lang_detect($HTTP_USER_AGENT, 2); - } - // 3. If we catch a valid language, configure it - if (!empty($lang)) { - $xoops_lang = $available_languages[$lang][1]; - } - return $xoops_lang; -} - -function xlanguage_encoding($output){ - global $xlanguage; - $output = xlanguage_ml($output); - // escape XML doc - if(preg_match("/^\<\?[\s]?xml[\s]+version=([\"'])[^\>]+\\1[\s]+encoding=([\"'])[^\>]+\\2[\s]?\?\>/i", $output)){ - return $output; - } - $in_charset = $xlanguage["charset_base"]; - $out_charset = $xlanguage["charset"]; - - return $output = xlanguage_convert_encoding($output, $out_charset, $in_charset); -} - -function xlanguage_ml($s) -{ - global $xoopsConfig; - global $xlanguage_langs; - - if(!isset($xlanguage_langs)){ - $langs =& $GLOBALS["xlanguage_handler"]->getAll(true); - foreach( array_keys($langs) as $_lang ) { - $xlanguage_langs[$_lang] = $langs[$_lang]->getVar("lang_code"); - } - unset($langs); - } - if(empty($xlanguage_langs) || count($xlanguage_langs) ==0) return $s; - - // escape brackets inside of <code>...</code> - $patterns[] = '/(\<code>.*\<\/code>)/isU'; - - // escape brackets inside of <input type="..." value="..."> - $patterns[] = '/(\<input\b(?![^\>]*\btype=([\'"]?)(submit|image|reset|button))[^\>]*\>)/isU'; - - // escape brackets inside of <textarea></textarea> - $patterns[] = '/(\<textarea\b[^>]*>[^\<]*\<\/textarea>)/isU'; - - $s = preg_replace_callback( $patterns , 'xlanguage_ml_escape_bracket' , $s ) ; - - - // create the pattern between language tags - $pqhtmltags = explode( ',' , preg_quote( XLANGUAGE_TAGS_RESERVED , '/' ) ) ; - $mid_pattern = '(?:(?!(' . implode( '|' , $pqhtmltags ) . ')).)*' ; - - $patterns = array(); - $replaces = array(); - /* */ - if(isset($xlanguage_langs[$xoopsConfig['language']])) { - $lang = $xlanguage_langs[$xoopsConfig['language']]; - $patterns[] = '/(\[([^\]]*\|)?'.preg_quote($lang).'(\|[^\]]*)?\])('.$mid_pattern.')(\[\/([^\]]*\|)?'.preg_quote($lang).'(\|[^\]]*)?\])/isU'; - $replaces[] = '$4'; - } - /* */ - foreach( array_keys($xlanguage_langs) as $_lang ) { - if($_lang == @$xoopsConfig['language']) continue; - $name = $xlanguage_langs[$_lang]; - $patterns[] = '/(\[([^\]]*\|)?'.preg_quote($name).'(\|[^\]]*)?\])('.$mid_pattern.')(\[\/([^\]]*\|)?'.preg_quote($name).'(\|[^\]]*)?(\]\<br[\s]?[\/]?\>|\]))/isU'; - $replaces[] = ''; - } - if(!empty($xoopsConfig['language'])){ - $s = preg_replace( '/\[[\/]?[\|]?'.preg_quote($xoopsConfig['language']).'[\|]?\](\<br \/\>)?/i' , '' , $s ) ; - } - if(count($replaces)>0){ - $s = preg_replace( $patterns , $replaces , $s ) ; - } - - return $s ; -} - -function xlanguage_ml_escape_bracket( $matches ) -{ - global $xlanguage_langs; - $ret = $matches[1]; - if(!empty($xlanguage_langs)) { - $pattern = '/(\[([\/])?('.implode("|",array_map("preg_quote", array_values($xlanguage_langs))).')([\|\]]))/isU'; - $ret = preg_replace($pattern, "[\\2\\3\\4", $ret); - } - return $ret; -} - - -function xlanguage_select_show($options = null) -{ - include_once XOOPS_ROOT_PATH."/modules/xlanguage/blocks/xlanguage_blocks.php"; - if(empty($options)){ - $options[0] = "images"; // display style: image, text, select - $options[1] = " "; // delimitor - $options[2] = 5; // items per line - } - - $block = b_xlanguage_select_show($options); - $block["tag"] = "xlanguage"; - - $content = ""; - $i = 1; - if(!empty($block["display"])) { //mb - if(in_array($block["display"], array("images", "text"))){ - foreach($block["languages"] as $name => $lang){ - $content .= "<a href=\"".$block["url"].$lang["name"]."\" title=\"".$lang["desc"]."\">"; - if($block["display"] == "images"){ - $content .= "<img src=\"".$lang["image"]."\" alt=\"".$lang["desc"]."\""; - if($block["selected"] != $lang["name"]){ - $content .= " style=\"MozOpacity: .8; opacity: .8; filter:Alpha(opacity=80);\""; - } - $content .= "/>"; - }else{ - $content .= $lang["desc"]; - } - $content .= "</a>"; - if( ( $i++ % $block["number"] ) == 0){ - $content .= "<br />"; - } - } - }else{ - $content .= "<select name=\"".$block["tag"]."\" - onChange=\"if(this.options[this.selectedIndex].value.length >0 ) { window.document.location=this.options[this.selectedIndex].value;}\" - >"; - if(!empty($block["languages"])) { //mb - foreach($block["languages"] as $name => $lang){ - $content .= "<option value=\"".$block["url"].$lang["name"]."\""; - if($block["selected"] == $lang["name"]){ - $content .= " selected "; - } - $content .= "/>".$lang["desc"]."</option>"; - } - } - $content .= "</select>"; - } - } - - define("XLANGUAGE_SWITCH_CODE", $content); - return true; -} - -?> +<?php +// $Id$ +// ------------------------------------------------------------------------ // +// Xlanguage: eXtensible Language Management For Xoops // +// Copyright (c) 2004 Xoops China Community // +// <http://www.xoops.org.cn/> // +// ------------------------------------------------------------------------ // +// This program is free software; you can redistribute it and/or modify // +// it under the terms of the GNU General Public License as published by // +// the Free Software Foundation; either version 2 of the License, or // +// (at your option) any later version. // +// // +// You may not change or alter any portion of this comment or credits // +// of supporting developers from this source code or any supporting // +// source code which is considered copyrighted (c) material of the // +// original comment or credit authors. // +// // +// This program is distributed in the hope that it will be useful, // +// but WITHOUT ANY WARRANTY; without even the implied warranty of // +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // +// GNU General Public License for more details. // +// // +// You should have received a copy of the GNU General Public License // +// along with this program; if not, write to the Free Software // +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // +// ------------------------------------------------------------------------ // +// Author: D.J.(phppp) ph...@ho... // +// URL: http://www.xoops.org.cn // +// ------------------------------------------------------------------------- // + +function xlanguage_convert_encoding($value, $out_charset, $in_charset) +{ + if (is_array($value)) { + foreach($value as $key => $val){ + $value[$key] = xlanguage_convert_encoding($val, $out_charset, $in_charset); + } + } + else { + $value = xlanguage_convert_item($value, $out_charset, $in_charset); + } + return $value; +} + +function xlanguage_convert_item($value, $out_charset, $in_charset) +{ + if(strtolower($in_charset) == strtolower($out_charset)) { + return $value; + } + $xconv_handler = @xoops_getmodulehandler('xconv', 'xconv', true); + if(is_object($xconv_handler) && + $converted_value = @$xconv_handler->convert_encoding($value, $out_charset, $in_charset) + ){ + return $converted_value; + } + if(XOOPS_USE_MULTIBYTES && function_exists('mb_convert_encoding')) { + $converted_value = @mb_convert_encoding($value, $out_charset, $in_charset); + }elseif(function_exists('iconv')) { + $converted_value = @iconv($in_charset, $out_charset, $value); + } + $value = empty($converted_value) ? $value : $converted_value; + + return $value; +} + +function xlanguage_createConfig() +{ + $xlang_handler=& xoops_getmodulehandler('language', 'xlanguage'); + return $xlang_handler->createConfig(); +} + +function &xlanguage_loadConfig() +{ + $xlang_handler=& xoops_getmodulehandler('language', 'xlanguage'); + $config =& $xlang_handler->loadFileConfig(); + return $config; +} + +/** + * Analyzes some PHP environment variables to find the most probable language + * that should be used + * + * @param string $ string to analyze + * @param integer $ type of the PHP environment variable which value is $str + * @global array the list of available translations + * @global string the retained translation keyword + * @access private + */ +function xlanguage_lang_detect($str = '', $envType = '') +{ + global $available_languages; + $lang=''; + + if(!empty($available_languages)) { + foreach ($available_languages AS $key => $value) { + // $envType = 1 for the 'HTTP_ACCEPT_LANGUAGE' environment variable, + // 2 for the 'HTTP_USER_AGENT' one + $expr = $value[0]; + if (strpos($expr, '[-_]') === FALSE) { + $expr = str_replace('|', '([-_][[:alpha:]]{2,3})?|', $expr); + } +// if (($envType == 1 && eregi('^(' . $expr . ')(;q=[0-9]\\.[0-9])?$', $str)) +// || ($envType == 2 && eregi('(\(|\[|;[[:space:]])(' . $expr . ')(;|\]|\))', $str))) { + if (($envType == 1 && preg_match('#^(' . $expr . ')(;q=[0-9]\\.[0-9])?$#i', $str)) + || ($envType == 2 && preg_match('#(\(|\[|;[[:space:]])(' . $expr . ')(;|\]|\))#i', $str))) { + $lang = $key; + //if($lang != 'en') + break; + } + } + } + return $lang; +} + +function xlanguage_detectLang() +{ + global $available_languages,$_SERVER; + + if (!empty($_SERVER['HTTP_ACCEPT_LANGUAGE'])) { + $HTTP_ACCEPT_LANGUAGE = $_SERVER['HTTP_ACCEPT_LANGUAGE']; + } + + if (!empty($_SERVER['HTTP_USER_AGENT'])) { + $HTTP_USER_AGENT = $_SERVER['HTTP_USER_AGENT']; + } + + $lang = ''; + $xoops_lang =''; + // 1. try to findout user's language by checking its HTTP_ACCEPT_LANGUAGE + // variable + if (empty($lang) && !empty($HTTP_ACCEPT_LANGUAGE)) { + $accepted = explode(',', $HTTP_ACCEPT_LANGUAGE); + $acceptedCnt = count($accepted); + reset($accepted); + for ($i = 0; $i < $acceptedCnt; $i++) { + $lang = xlanguage_lang_detect($accepted[$i], 1); + if(strncasecmp($lang,'en',2)){ + break; + } + } + } + // 2. try to findout user's language by checking its HTTP_USER_AGENT variable + if (empty($lang) && !empty($HTTP_USER_AGENT)) { + $lang = xlanguage_lang_detect($HTTP_USER_AGENT, 2); + } + // 3. If we catch a valid language, configure it + if (!empty($lang)) { + $xoops_lang = $available_languages[$lang][1]; + } + return $xoops_lang; +} + +function xlanguage_encoding($output){ + global $xlanguage; + $output = xlanguage_ml($output); + // escape XML doc + if(preg_match("/^\<\?[\s]?xml[\s]+version=([\"'])[^\>]+\\1[\s]+encoding=([\"'])[^\>]+\\2[\s]?\?\>/i", $output)){ + return $output; + } + $in_charset = $xlanguage["charset_base"]; + $out_charset = $xlanguage["charset"]; + + return $output = xlanguage_convert_encoding($output, $out_charset, $in_charset); +} + +function xlanguage_ml($s) +{ + global $xoopsConfig; + global $xlanguage_langs; + + if(!isset($xlanguage_langs)){ + $langs =& $GLOBALS["xlanguage_handler"]->getAll(true); + foreach( array_keys($langs) as $_lang ) { + $xlanguage_langs[$_lang] = $langs[$_lang]->getVar("lang_code"); + } + unset($langs); + } + if(empty($xlanguage_langs) || count($xlanguage_langs) ==0) return $s; + + // escape brackets inside of <code>...</code> + $patterns[] = '/(\<code>.*\<\/code>)/isU'; + + // escape brackets inside of <input type="..." value="..."> + $patterns[] = '/(\<input\b(?![^\>]*\btype=([\'"]?)(submit|image|reset|button))[^\>]*\>)/isU'; + + // escape brackets inside of <textarea></textarea> + $patterns[] = '/(\<textarea\b[^>]*>[^\<]*\<\/textarea>)/isU'; + + $s = preg_replace_callback( $patterns , 'xlanguage_ml_escape_bracket' , $s ) ; + + + // create the pattern between language tags + $pqhtmltags = explode( ',' , preg_quote( XLANGUAGE_TAGS_RESERVED , '/' ) ) ; + $mid_pattern = '(?:(?!(' . implode( '|' , $pqhtmltags ) . ')).)*' ; + + $patterns = array(); + $replaces = array(); + /* */ + if(isset($xlanguage_langs[$xoopsConfig['language']])) { + $lang = $xlanguage_langs[$xoopsConfig['language']]; + $patterns[] = '/(\[([^\]]*\|)?'.preg_quote($lang).'(\|[^\]]*)?\])('.$mid_pattern.')(\[\/([^\]]*\|)?'.preg_quote($lang).'(\|[^\]]*)?\])/isU'; + $replaces[] = '$4'; + } + /* */ + foreach( array_keys($xlanguage_langs) as $_lang ) { + if($_lang == @$xoopsConfig['language']) continue; + $name = $xlanguage_langs[$_lang]; + $patterns[] = '/(\[([^\]]*\|)?'.preg_quote($name).'(\|[^\]]*)?\])('.$mid_pattern.')(\[\/([^\]]*\|)?'.preg_quote($name).'(\|[^\]]*)?(\]\<br[\s]?[\/]?\>|\]))/isU'; + $replaces[] = ''; + } + if(!empty($xoopsConfig['language'])){ + $s = preg_replace( '/\[[\/]?[\|]?'.preg_quote($xoopsConfig['language']).'[\|]?\](\<br \/\>)?/i' , '' , $s ) ; + } + if(count($replaces)>0){ + $s = preg_replace( $patterns , $replaces , $s ) ; + } + + return $s ; +} + +function xlanguage_ml_escape_bracket( $matches ) +{ + global $xlanguage_langs; + $ret = $matches[1]; + if(!empty($xlanguage_langs)) { + $pattern = '/(\[([\/])?('.implode("|",array_map("preg_quote", array_values($xlanguage_langs))).')([\|\]]))/isU'; + $ret = preg_replace($pattern, "[\\2\\3\\4", $ret); + } + return $ret; +} + + +function xlanguage_select_show($options = null) +{ + include_once XOOPS_ROOT_PATH."/modules/xlanguage/blocks/xlanguage_blocks.php"; + if(empty($options)){ + $options[0] = "images"; // display style: image, text, select + $options[1] = " "; // delimitor + $options[2] = 5; // items per line + } + + $block = b_xlanguage_select_show($options); + $block["tag"] = "xlanguage"; + + $content = ""; + $i = 1; + if(!empty($block["display"])) { //mb + if(in_array($block["display"], array("images", "text"))){ + foreach($block["languages"] as $name => $lang){ + $content .= "<a href=\"".$block["url"].$lang["name"]."\" title=\"".$lang["desc"]."\">"; + if($block["display"] == "images"){ + $content .= "<img src=\"".$lang["image"]."\" alt=\"".$lang["desc"]."\""; + if($block["selected"] != $lang["name"]){ + $content .= " style=\"MozOpacity: .8; opacity: .8; filter:Alpha(opacity=80);\""; + } + $content .= "/>"; + }else{ + $content .= $lang["desc"]; + } + $content .= "</a>"; + if( ( $i++ % $block["number"] ) == 0){ + $content .= "<br />"; + } + } + }else{ + $content .= "<select name=\"".$block["tag"]."\" + onChange=\"if(this.options[this.selectedIndex].value.length >0 ) { window.document.location=this.options[this.selectedIndex].value;}\" + >"; + if(!empty($block["languages"])) { //mb + foreach($block["languages"] as $name => $lang){ + $content .= "<option value=\"".$block["url"].$lang["name"]."\""; + if($block["selected"] == $lang["name"]){ + $content .= " selected "; + } + $content .= "/>".$lang["desc"]."</option>"; + } + } + $content .= "</select>"; + } + } + + define("XLANGUAGE_SWITCH_CODE", $content); + return true; +} \ No newline at end of file Modified: XoopsModules/xlanguage/branches/mamba/xlanguage/xoops_version.php =================================================================== --- XoopsModules/xlanguage/branches/mamba/xlanguage/xoops_version.php 2012-07-31 09:28:57 UTC (rev 9953) +++ XoopsModules/xlanguage/branches/mamba/xlanguage/xoops_version.php 2012-07-31 10:13:35 UTC (rev 9954) @@ -28,10 +28,10 @@ // URL: http://xoops.org.cn // // ------------------------------------------------------------------------- // $modversion['name'] = _MI_XLANGUAGE_NAME; -$modversion['version'] = 3.03; +$modversion['version'] = 3.04; $modversion['description'] = _MI_XLANGUAGE_DESC; $modversion['credits'] = "Adi Chiributa - web...@ar...; wjue - http://www.wjue.org; GIJOE - http://www.peak.ne.jp"; -$modversion['author'] = "phppp(D.J.) - http://xoops.org.cn, http://xoopsforge.com"; +$modversion['author'] = "phppp(D.J.)" ; $modversion['help'] = "page=help"; $modversion['license'] = "GNU GPL"; $modversion['license_url'] = "www.gnu.org/licenses/gpl-2.0.html/"; @@ -44,9 +44,9 @@ //about $modversion['release_date'] = '2012/06/19'; -$modversion["module_website_url"] = "http://www.xoops.org/"; +$modversion["module_website_url"] = "www.xoops.org/"; $modversion["module_website_name"] = "XOOPS"; -$modversion["module_status"] = "Final"; +$modversion["module_status"] = "RC"; $modversion['min_php']='5.2'; $modversion['min_xoops']="2.5"; $modversion['min_admin']='1.1'; @@ -88,5 +88,4 @@ $modversion['demo_site_url'] = "http://xoops.org.cn"; $modversion['demo_site_name'] = "Xoops China"; $modversion['support_site_url'] = "http://xoopsforge.com"; -$modversion['support_site_name'] = "XForge"; -?> \ No newline at end of file +$modversion['support_site_name'] = "XForge"; \ No newline at end of file Modified: XoopsModules/xlanguage/trunk/xlanguage/admin/admin_footer.php =================================================================== --- XoopsModules/xlanguage/trunk/xlanguage/admin/admin_footer.php 2012-07-31 09:28:57 UTC (rev 9953) +++ XoopsModules/xlanguage/trunk/xlanguage/admin/admin_footer.php 2012-07-31 10:13:35 UTC (rev 9954) @@ -2,7 +2,7 @@ echo "<div class='adminfooter'>\n" ." <div style='text-align: center;'>\n" - ." <a href='http://www.xoops.org' target='_blank'><img src='{$pathIcon32}/xoopsmicrobutton.gif' alt='XOOPS' title='XOOPS'></a>\n" + ." <a href='http://www.xoops.org' rel='external'><img src='{$pathIcon32}/xoopsmicrobutton.gif' alt='XOOPS' title='XOOPS'></a>\n" ." </div>\n" ." " . _AM_MODULEADMIN_ADMIN_FOOTER . "\n" ."</div>"; Modified: XoopsModules/xlanguage/trunk/xlanguage/admin/langform.inc.php =================================================================== --- XoopsModules/xlanguage/trunk/xlanguage/admin/langform.inc.php 2012-07-31 09:28:57 UTC (rev 9953) +++ XoopsModules/xlanguage/trunk/xlanguage/admin/langform.inc.php 2012-07-31 10:13:35 UTC (rev 9954) @@ -41,18 +41,18 @@ $sform->addElement(new XoopsFormText(_AM_XLANG_DESC, 'lang_desc', 50, 255, $lang_desc)); +//$sform->addElement(new XoopsFormText(_AM_XLANG_CODE, 'lang_code', 50, 255, $lang_code), true); +$lang_code = new XoopsFormText(_AM_XLANG_CODE, 'lang_code', 50, 255, $lang_code); +$lang_code->setDescription(_AM_XLANG_CODE_DESC); +$sform->addElement($lang_code, true); + //$sform->addElement(new XoopsFormText(_AM_XLANG_CHARSET, 'lang_charset', 50, 255, $lang_charset), true); $lang_charset = new XoopsFormText(_AM_XLANG_CHARSET, 'lang_charset', 50, 255, $lang_charset); $lang_charset->setDescription(_AM_XLANG_CHARSET_DESC); $sform->addElement($lang_charset, true); -//$sform->addElement(new XoopsFormText(_AM_XLANG_CODE, 'lang_code', 50, 255, $lang_code), true); -$lang_code = new XoopsFormText(_AM_XLANG_CODE, 'lang_charset', 50, 255, $lang_code); -$lang_code->setDescription(_AM_XLANG_CODE_DESC); -$sform->addElement($lang_code, true); - if(!$isBase){ $baseList =& $xlanguage_handler->getAll(); $base_list = array(); @@ -87,9 +87,8 @@ $button_tray = new XoopsFormElementTray('', ''); $button_tray->addElement(new XoopsFormHidden('op', 'save')); -$button_tray->addElement(new XoopsFormButton('', '', _GO, 'submit')); +$button_tray->addElement(new XoopsFormButton('', '', _SUBMIT, 'submit')); $button_tray->addElement(new XoopsFormButton('', '', _CANCEL, 'submit')); $sform->addElement($button_tray); -$sform->display(); -?> \ No newline at end of file +$sform->display(); \ No newline at end of file Modified: XoopsModules/xlanguage/trunk/xlanguage/admin/main.php =================================================================== --- XoopsModules/xlanguage/trunk/xlanguage/admin/main.php 2012-07-31 09:28:57 UTC (rev 9953) +++ XoopsModules/xlanguage/trunk/xlanguage/admin/main.php 2012-07-31 10:13:35 UTC (rev 9954) @@ -1,245 +1,245 @@ -<?php -// $Id: main.php 8586 2011-12-27 12:03:19Z beckmi $ -// ------------------------------------------------------------------------ // -// Xlanguage: eXtensible Language Management For Xoops // -// Copyright (c) 2004 Xoops China Community // -// <http://www.xoops.org.cn/> // -// ------------------------------------------------------------------------ // -// This program is free software; you can redistribute it and/or modify // -// it under the terms of the GNU General Public License as published by // -// the ... [truncated message content] |