mambo的cms源代码

源代码在线查看: admin.languages.php

软件大小: 2053 K
上传用户: bonylee_java
关键词: mambo cms 源代码
下载地址: 免注册下载 普通下载 VIP

相关代码

								/**				* @version $Id: admin.languages.php,v 1.7 2005/02/16 14:31:26 kochp Exp $				* @package Mambo				* @subpackage Languages				* @copyright (C) 2000 - 2005 Miro International Pty Ltd				* @license http://www.gnu.org/copyleft/gpl.html GNU/GPL				* Mambo is Free Software				*/								/** ensure this file is being included by a parent file */				defined( '_VALID_MOS' ) or die( 'Direct Access to this location is not allowed.' );								// ensure user has access to this function				if (!$acl->acl_check( 'administration', 'config', 'users', $my->usertype )) {					mosRedirect( 'index2.php', _NOT_AUTH );				}												require_once( $mainframe->getPath( 'admin_html' ) );				// XML library				require_once( "$mosConfig_absolute_path/includes/domit/xml_domit_lite_include.php" );								$task = trim( strtolower( mosGetParam( $_REQUEST, "task", "" ) ) );				$cid = mosGetParam( $_REQUEST, "cid", array(0) );								if (!is_array( $cid )) {					$cid = array(0);				}								switch ($task) {					case "new":					mosRedirect( "index2.php?option=com_installer&element=language" );					break;									case "edit_source":					editLanguageSource( $cid[0], $option );					break;									case "save_source":					saveLanguageSource( $option );					break;									case "remove":					removeLanguage( $cid[0], $option );					break;									case "publish":					publishLanguage( $cid[0], $option );					break;									case "cancel":					mosRedirect( "index2.php?option=$option" );					break;									default:					viewLanguages( $option );					break;				}								/**				* Compiles a list of installed languages				*/				function viewLanguages( $option ) {					global $languages;					global $mainframe;					global $mosConfig_lang, $mosConfig_absolute_path, $mosConfig_list_limit;									$limit = $mainframe->getUserStateFromRequest( "viewlistlimit", 'limit', $mosConfig_list_limit );					$limitstart = $mainframe->getUserStateFromRequest( "view{$option}limitstart", 'limitstart', 0 );									// get current languages					$cur_language = $mosConfig_lang;									$rows = array();					// Read the template dir to find templates					$languageBaseDir = mosPathName(mosPathName($mosConfig_absolute_path) . "language");									$rowid = 0;									$xmlFilesInDir = mosReadDirectory($languageBaseDir,'.xml$');									$dirName = $languageBaseDir;					foreach($xmlFilesInDir as $xmlfile) {						// Read the file to see if it's a valid template XML file						$xmlDoc =& new DOMIT_Lite_Document();						$xmlDoc->resolveErrors( true );						if (!$xmlDoc->loadXML( $dirName . $xmlfile, false, true )) {							continue;						}										$element = &$xmlDoc->documentElement;										if ($element->getTagName() != 'mosinstall') {							continue;						}						if ($element->getAttribute( "type" ) != "language") {							continue;						}										$row = new StdClass();						$row->id = $rowid;						$row->language = substr($xmlfile,0,-4);						$element = &$xmlDoc->getElementsByPath('name', 1 );						$row->name = $element->getText();										$element = &$xmlDoc->getElementsByPath('creationDate', 1);						$row->creationdate = $element ? $element->getText() : 'Unknown';										$element = &$xmlDoc->getElementsByPath('author', 1);						$row->author = $element ? $element->getText() : 'Unknown';										$element = &$xmlDoc->getElementsByPath('copyright', 1);						$row->copyright = $element ? $element->getText() : '';										$element = &$xmlDoc->getElementsByPath('authorEmail', 1);						$row->authorEmail = $element ? $element->getText() : '';										$element = &$xmlDoc->getElementsByPath('authorUrl', 1);						$row->authorUrl = $element ? $element->getText() : '';										$element = &$xmlDoc->getElementsByPath('version', 1);						$row->version = $element ? $element->getText() : '';										// if current than set published						if ($cur_language == $row->language) {							$row->published	= 1;						} else {							$row->published = 0;						}										$row->checked_out = 0;						$row->mosname = strtolower( str_replace( " ", "_", $row->name ) );						$rows[] = $row;						$rowid++;					}									require_once( $GLOBALS['mosConfig_absolute_path'] . '/administrator/includes/pageNavigation.php' );					$pageNav = new mosPageNav( count( $rows ), $limitstart, $limit );									$rows = array_slice( $rows, $pageNav->limitstart, $pageNav->limit );									HTML_languages::showLanguages( $cur_language, $rows, $pageNav, $option );				}								/**				* Publish, or make current, the selected language				*/				function publishLanguage( $p_lname, $option ) {					global $mosConfig_lang, $adminLanguage;									$config = "";									$fp = fopen("../configuration.php","r");					while(!feof($fp)){						$buffer = fgets($fp,4096);						if (strstr($buffer,"\$mosConfig_lang")){							$config .= "\$mosConfig_lang = \"$p_lname\";\n";						} else {							$config .= $buffer;						}					}					fclose($fp);									if ($fp = fopen("../configuration.php","w")){						fputs($fp, $config, strlen($config));						fclose($fp);						mosRedirect("index2.php", $adminLanguage->A_COMP_LANG_UPDATED );					} else {						mosRedirect("index2.php", $adminLanguage->A_COMP_LANG_M_SURE );					}								}								/**				* Remove the selected language				*/				function removeLanguage( $cid, $option, $client ) {					global $mosConfig_lang, $adminLanguage;									$client_id = $client=='admin' ? 1 : 0;									$cur_language = $mosConfig_lang;									if ($cur_language == $cid) {						echo "alert(\"". $adminLanguage->A_COMP_LANG_CANNOT ."\"); window.history.go(-1); \n";						exit();					}									/*$lang_path = "../language/$cid.php";					$lang_ignore_path = "../language/$cid.ignore.php";					$xml_path = "../language/$cid.xml";									unlink($lang_path);					unlink($lang_ignore_path);					unlink($xml_path);					*/									mosRedirect( 'index2.php?option=com_installer&element=language&client='. $client .'&task=remove&cid[]='. $cid );								}								function editLanguageSource( $p_lname, $option) {				    global $adminLanguage;					$file = stripslashes( "../language/$p_lname.php" );									if ($fp = fopen( $file, "r" )) {						$content = fread( $fp, filesize( $file ) );						$content = htmlspecialchars( $content );										HTML_languages::editLanguageSource( $p_lname, $content, $option );					} else {						mosRedirect( "index2.php?option=$option&mosmsg=". $adminLanguage->A_COMP_LANG_FAILED_OPEN ." ". $file );					}				}								function saveLanguageSource( $option ) {				    global $adminLanguage;					$language = trim( mosGetParam( $_POST, 'language', '' ) );					$filecontent = mosGetParam( $_POST, 'filecontent', '', _MOS_ALLOWHTML );									if (!$language) {						mosRedirect( "index2.php?option=$option&mosmsg=". $adminLanguage->A_COMP_LANG_FAILED_SPEC );					}					if (!$filecontent) {						mosRedirect( "index2.php?option=$option&mosmsg=". $adminLanguage->A_COMP_LANG_FAILED_EMPTY );					}									$file = "../language/$language.php";				    $enable_write = mosGetParam($_POST,'enable_write',0);					$oldperms = fileperms($file);					if ($enable_write) @chmod($file, $oldperms | 0222);									clearstatcache();					if (is_writable( $file ) == false) {						mosRedirect( "index2.php?option=$option&mosmsg=". $adminLanguage->A_COMP_LANG_FAILED_UNWRT );					}									if ($fp = fopen ($file, "w")) {						fputs( $fp, stripslashes( $filecontent ) );						fclose( $fp );						if ($enable_write) {							@chmod($file, $oldperms);						} else {							if (mosGetParam($_POST,'disable_write',0))								@chmod($file, $oldperms & 0777555);						} // if						mosRedirect( "index2.php?option=$option" );					} else {						if ($enable_write) @chmod($file, $oldperms);						mosRedirect( "index2.php?option=$option&mosmsg=". $adminLanguage->A_COMP_LANG_FAILED_FILE );					}								}								?>			

相关资源