acl_check( 'administration', 'config', 'users', $my->usertype )) {
mosRedirect( 'index2.php', _NOT_AUTH );
}
/**
* @package Mambo
* @subpackage Config
*/
class mosConfig extends mosDBTable {
/** @var int */
var $config_offline=null;
/** @var string */
var $config_host=null;
/** @var string */
var $config_user=null;
/** @var string */
var $config_password=null;
/** @var string */
var $config_db=null;
/** @var string */
var $config_dbprefix=null;
/** @var string */
var $config_lang=null;
/** @var string */
var $config_path=null;
/** @var string */
var $config_live_site=null;
/** @var string */
var $config_sitename=null;
/** @var int */
var $config_auth=null;
/** @var int */
var $config_lifetime=null;
/** @var string */
var $config_offline_message=null;
/** @var string */
var $config_error_message=null;
/** @var int */
var $config_useractivation=null;
/** @var int */
var $config_uniquemail=null;
/** @var string */
var $config_metadesc=null;
/** @var string */
var $config_metakeys=null;
/** @var int */
var $config_metaauthor=null;
/** @var int */
var $config_metatitle=null;
/** @var int */
var $config_debug=0;
/** @var string */
var $config_locale=null;
/** @var int */
var $config_offset=null;
/** @var int */
var $config_hideauthor=null;
/** @var int */
var $config_hidecreate=null;
/** @var int */
var $config_hidemodify=null;
/** @var int */
var $config_hidepdf=null;
/** @var int */
var $config_hideprint=null;
/** @var int */
var $config_hideemail=null;
/** @var int */
var $config_enable_log_items=null;
/** @var int */
var $config_enable_log_searches=null;
/** @var int */
var $config_enable_stats=null;
/** @var int */
var $config_sef=0;
/** @var int */
var $config_vote=0;
/** @var int */
var $config_gzip=0;
/** @var int */
var $config_multipage_toc=0;
/** @var int */
var $config_allowUserRegistration=0;
/** @var int */
var $config_error_reporting=0;
/** @var int */
var $config_register_globals=0;
/** @var int */
var $config_link_titles=0;
/** @var int */
var $config_list_limit=0;
/** @var int */
var $config_caching=0;
/** @var string */
var $config_cachepath=null;
/** @var string */
var $config_cachetime=null;
/** @var string */
var $config_mailer=null;
/** @var string */
var $config_mailfrom=null;
/** @var string */
var $config_fromname=null;
/** @var string */
var $config_sendmail='/usr/sbin/sendmail';
/** @var string */
var $config_smtpauth=0;
/** @var string */
var $config_smtpuser=null;
/** @var string */
var $config_smtppass=null;
/** @var string */
var $config_smtphost=null;
/** @var string */
var $_alias=null;
/** @var int */
var $config_back_button=0;
/** @var int */
var $config_item_navigation=0;
/** @var int */
var $config_ml_support=0;
/** @var string */
var $config_secret=null;
/** @var int */
var $config_pagetitles=1;
/** @var int */
var $config_readmore=1;
/** @var int */
var $config_hits=1;
/** @var int */
var $config_icons=1;
/** @var string */
var $config_favicon=null;
/** @var string */
var $config_fileperms='0644';
/** @var string */
var $config_dirperms='0755';
/** @var string */
var $config_helpurl='';
function mosConfig() {
$this->_alias = array(
'config_offline' =>'mosConfig_offline',
'config_host' =>'mosConfig_host',
'config_user' =>'mosConfig_user',
'config_password' =>'mosConfig_password',
'config_db' =>'mosConfig_db',
'config_dbprefix' =>'mosConfig_dbprefix',
'config_lang' =>'mosConfig_lang',
'config_path' =>'mosConfig_absolute_path',
'config_live_site' =>'mosConfig_live_site',
'config_sitename' =>'mosConfig_sitename',
'config_auth' =>'mosConfig_shownoauth',
'config_useractivation' =>'mosConfig_useractivation',
'config_uniquemail' =>'mosConfig_uniquemail',
'config_offline_message' =>'mosConfig_offline_message',
'config_error_message' =>'mosConfig_error_message',
'config_debug' =>'mosConfig_debug',
'config_lifetime' =>'mosConfig_lifetime',
'config_metadesc' =>'mosConfig_MetaDesc',
'config_metakeys' =>'mosConfig_MetaKeys',
'config_metaauthor' =>'mosConfig_MetaAuthor',
'config_metatitle' =>'mosConfig_MetaTitle',
'config_locale' =>'mosConfig_locale',
'config_offset' =>'mosConfig_offset',
'config_hideauthor' =>'mosConfig_hideAuthor',
'config_hidecreate' =>'mosConfig_hideCreateDate',
'config_hidemodify' =>'mosConfig_hideModifyDate',
'config_hidepdf' =>'mosConfig_hidePdf',
'config_hideprint' =>'mosConfig_hidePrint',
'config_hideemail' =>'mosConfig_hideEmail',
'config_enable_log_items' =>'mosConfig_enable_log_items',
'config_enable_log_searches' =>'mosConfig_enable_log_searches',
'config_enable_stats' =>'mosConfig_enable_stats',
'config_sef' =>'mosConfig_sef',
'config_vote' =>'mosConfig_vote',
'config_gzip' =>'mosConfig_gzip',
'config_multipage_toc' =>'mosConfig_multipage_toc',
'config_allowUserRegistration' =>'mosConfig_allowUserRegistration',
'config_link_titles' =>'mosConfig_link_titles',
'config_error_reporting' =>'mosConfig_error_reporting',
'config_register_globals' =>'mosConfig_register_globals',
'config_list_limit' =>'mosConfig_list_limit',
'config_caching' =>'mosConfig_caching',
'config_cachepath' =>'mosConfig_cachepath',
'config_cachetime' =>'mosConfig_cachetime',
'config_mailer' =>'mosConfig_mailer',
'config_mailfrom' =>'mosConfig_mailfrom',
'config_fromname' =>'mosConfig_fromname',
'config_sendmail' =>'mosConfig_sendmail',
'config_smtpauth' =>'mosConfig_smtpauth',
'config_smtpuser' =>'mosConfig_smtpuser',
'config_smtppass' =>'mosConfig_smtppass',
'config_smtphost' =>'mosConfig_smtphost',
'config_back_button' =>'mosConfig_back_button',
'config_item_navigation' =>'mosConfig_item_navigation',
'config_secret' =>'mosConfig_secret',
'config_pagetitles' =>'mosConfig_pagetitles',
'config_readmore' =>'mosConfig_readmore',
'config_hits' =>'mosConfig_hits',
'config_icons' =>'mosConfig_icons',
'config_favicon' =>'mosConfig_favicon',
'config_fileperms' =>'mosConfig_fileperms',
'config_dirperms' =>'mosConfig_dirperms',
'config_ml_support' =>'mosConfig_mbf_content',
'config_helpurl' =>'mosConfig_helpurl'
);
}
function getVarText() {
$txt = '';
foreach ($this->_alias as $k=>$v) {
$txt .= "\$$v = '".addslashes( $this->$k )."';\n";
}
return $txt;
}
function bindGlobals() {
foreach ($this->_alias as $k=>$v) {
if(isset($GLOBALS[$v]))
$this->$k = $GLOBALS[$v];
}
}
}
require_once( str_replace('\\','/',dirname(__FILE__)) . '/admin.config.html.php' );
$confightml = new HTML_config();
switch ( $task ) {
case 'apply':
case 'save':
saveconfig( $task );
break;
case 'cancel':
mosRedirect( 'index2.php' );
break;
default:
showconfig($confightml, $database, $option);
break;
}
function showconfig($confightml, &$database, $option) {
global $database, $mosConfig_absolute_path;
$row = new mosConfig();
$row->bindGlobals();
// compile list of the languages
$langs = array();
// menuitems appears never to be used - so commented out by Martin Brampton 15 Dec 2005
// $menuitems = array();
if ($handle=opendir( "$mosConfig_absolute_path/language/" )) {
$i=0;
while (false !== ($file = readdir($handle))) {
if (!strcasecmp(substr($file,-4),".php") && $file <> "." && $file <> ".." && strcasecmp(substr($file,-11),".ignore.php")) {
$langs[] = mosHTML::makeOption( substr($file,0,-4) );
}
}
}
// sort list of languages
sort($langs);
reset($langs);
// compile list of the editors
$query = "SELECT id AS value, name AS text"
. "\n FROM #__mambots"
. "\n WHERE folder='editors' AND published >= 0"
. "\n ORDER BY ordering, name"
;
$database->setQuery( $query );
$edits = $database->loadObjectList();
$query = "SELECT id"
. "\n FROM #__mambots"
. "\n WHERE folder='editors' AND published = 1"
. "\n LIMIT 1"
;
$database->setQuery( $query );
$editor = $database->loadResult();
$lists = array();
// build the html select list
$lists['editor'] = mosHTML::selectList( $edits, 'editor', 'class="inputbox" size="1"', 'value', 'text', $editor );
// build the html select list
$lists['lang'] = mosHTML::selectList( $langs, 'config_lang', 'class="inputbox" size="1"', 'value', 'text', $row->config_lang );
// make a generic -24 - 24 list
for ($i=-24;$i<=24;$i++) {
$timeoffset[] = mosHTML::makeOption( $i, $i );
}
// menuitems appears not to be used anywhere - so commented out Martin Brampton 15 Dec 2005
// get list of menuitems
// $query = "SELECT id AS value, name AS text FROM #__menu"
// . "\n WHERE (type='content_section' OR type='components' OR type='content_typed')"
// . "\n AND published=1"
// . "\n AND access=0"
// . "\n ORDER BY name"
// ;
// $database->setQuery( $query );
// $menuitems = array_merge( $menuitems, $database->loadObjectList() );
$show_hide = array(
mosHTML::makeOption( 1, T_('Hide') ),
mosHTML::makeOption( 0, T_('Show') ),
);
$show_hide_r = array(
mosHTML::makeOption( 0, T_('Hide') ),
mosHTML::makeOption( 1, T_('Show') ),
);
$list_length = array(
mosHTML::makeOption( 5, 5 ),
mosHTML::makeOption( 10, 10 ),
mosHTML::makeOption( 15, 15 ),
mosHTML::makeOption( 20, 20 ),
mosHTML::makeOption( 25, 25 ),
mosHTML::makeOption( 30, 30 ),
mosHTML::makeOption( 50, 50 ),
);
$errors = array(
mosHTML::makeOption( -1, T_('System Default') ),
mosHTML::makeOption( 0, T_('None') ),
mosHTML::makeOption( E_ERROR|E_WARNING|E_PARSE, T_('Simple') ),
mosHTML::makeOption( E_ALL , T_('Maximum') )
);
$register_globals = array(
mosHTML::makeOption( 1, T_('On') ),
mosHTML::makeOption( 0, T_('Off') ),
);
$mailer = array(
mosHTML::makeOption( 'mail', T_('PHP mail function'), true ),
mosHTML::makeOption( 'sendmail', T_('Sendmail'), true ),
mosHTML::makeOption( 'smtp', T_('SMTP Server'), true )
);
// build the html select lists
$lists['offline'] = mosHTML::yesnoRadioList( 'config_offline', 'class="inputbox"', $row->config_offline );
$lists['auth'] = mosHTML::yesnoRadioList( 'config_auth', 'class="inputbox"', $row->config_auth );
$lists['metaauthor'] = mosHTML::yesnoRadioList( 'config_metaauthor', 'class="inputbox"', $row->config_metaauthor );
$lists['metatitle'] = mosHTML::yesnoRadioList( 'config_metatitle', 'class="inputbox"', $row->config_metatitle );
$lists['useractivation'] = mosHTML::yesnoRadioList( 'config_useractivation', 'class="inputbox"', $row->config_useractivation );
$lists['uniquemail'] = mosHTML::yesnoRadioList( 'config_uniquemail', 'class="inputbox"', $row->config_uniquemail );
$lists['allowuserregistration'] = mosHTML::yesnoRadioList( 'config_allowUserRegistration', 'class="inputbox"', $row->config_allowUserRegistration );
$lists['debug'] = mosHTML::yesnoRadioList( 'config_debug', 'class="inputbox"', $row->config_debug );
$lists['offset'] = mosHTML::selectList( $timeoffset, 'config_offset', 'class="inputbox" size="1"', 'value', 'text', $row->config_offset );
$lists['hideauthor'] = mosHTML::RadioList( $show_hide, 'config_hideauthor', 'class="inputbox"', $row->config_hideauthor, 'value', 'text' );
$lists['hidecreate'] = mosHTML::RadioList( $show_hide, 'config_hidecreate', 'class="inputbox"', $row->config_hidecreate, 'value', 'text' );
$lists['hidemodify'] = mosHTML::RadioList( $show_hide, 'config_hidemodify', 'class="inputbox"', $row->config_hidemodify, 'value', 'text' );
if (is_writable( "$mosConfig_absolute_path/media/" )) {
$lists['hidepdf'] = mosHTML::RadioList( $show_hide, 'config_hidepdf', 'class="inputbox"', $row->config_hidepdf, 'value', 'text' );
} else {
$lists['hidepdf'] = ''.T_('Yes').'';
}
$lists['hideprint'] = mosHTML::RadioList( $show_hide, 'config_hideprint', 'class="inputbox"', $row->config_hideprint, 'value', 'text' );
$lists['hideemail'] = mosHTML::RadioList( $show_hide, 'config_hideemail', 'class="inputbox"', $row->config_hideemail, 'value', 'text' );
$lists['log_items'] = mosHTML::yesnoRadioList( 'config_enable_log_items', 'class="inputbox"', $row->config_enable_log_items );
$lists['log_searches'] = mosHTML::yesnoRadioList( 'config_enable_log_searches', 'class="inputbox"', $row->config_enable_log_searches );
$lists['enable_stats'] = mosHTML::yesnoRadioList( 'config_enable_stats', 'class="inputbox"', $row->config_enable_stats );
$lists['sef'] = mosHTML::yesnoRadioList( 'config_sef', 'class="inputbox" onclick="javascript: if (document.adminForm.config_sef[1].checked) { alert(\''.T_('Remember to rename htaccess.txt to .htaccess').'\') }"', $row->config_sef );
$lists['vote'] = mosHTML::RadioList( $show_hide_r, 'config_vote', 'class="inputbox"', $row->config_vote, 'value', 'text' );
$lists['gzip'] = mosHTML::yesnoRadioList( 'config_gzip', 'class="inputbox"', $row->config_gzip );
$lists['multipage_toc'] = mosHTML::RadioList( $show_hide_r, 'config_multipage_toc', 'class="inputbox"', $row->config_multipage_toc, 'value', 'text' );
$lists['pagetitles'] = mosHTML::yesnoRadioList( 'config_pagetitles', 'class="inputbox"', $row->config_pagetitles );
$lists['error_reporting'] = mosHTML::selectList( $errors, 'config_error_reporting', 'class="inputbox" size="1"', 'value', 'text', $row->config_error_reporting );
$lists['register_globals'] = mosHTML::RadioList( $register_globals, 'config_register_globals', 'class="inputbox" size="1"', $row->config_register_globals, 'value', 'text' );
$lists['link_titles'] = mosHTML::yesnoRadioList( 'config_link_titles', 'class="inputbox"', $row->config_link_titles );
$lists['caching'] = mosHTML::yesnoRadioList( 'config_caching', 'class="inputbox"', $row->config_caching );
$lists['mailer'] = mosHTML::selectList( $mailer, 'config_mailer', 'class="inputbox" size="1"', 'value', 'text', $row->config_mailer );
$lists['smtpauth'] = mosHTML::yesnoRadioList( 'config_smtpauth', 'class="inputbox"', $row->config_smtpauth );
$lists['list_length'] = mosHTML::selectList( $list_length, 'config_list_limit', 'class="inputbox" size="1"', 'value', 'text', ( $row->config_list_limit ? $row->config_list_limit : 50 ) );
$lists['back_button'] = mosHTML::RadioList( $show_hide_r, 'config_back_button', 'class="inputbox"', $row->config_back_button, 'value', 'text' );
$lists['item_navigation'] = mosHTML::RadioList( $show_hide_r, 'config_item_navigation', 'class="inputbox"', $row->config_item_navigation, 'value', 'text' );
$lists['ml_support'] = mosHTML::yesnoRadioList( 'config_ml_support', 'class="inputbox" onclick="javascript: if (document.adminForm.config_ml_support[1].checked) { alert(\'Remember to install the MambelFish component.\') }"', $row->config_ml_support );
$lists['readmore'] = mosHTML::RadioList( $show_hide_r, 'config_readmore', 'class="inputbox"', $row->config_readmore, 'value', 'text' );
$lists['hits'] = mosHTML::RadioList( $show_hide_r, 'config_hits', 'class="inputbox"', $row->config_hits, 'value', 'text' );
$lists['icons'] = mosHTML::RadioList( $show_hide_r, 'config_icons', 'class="inputbox"', $row->config_icons, 'value', 'text' );
// $lists['favicon'] = mosHTML::RadioList( $show_hide_r, 'config_icons', 'class="inputbox"', $row->config_icons, 'value', 'text' );
$confightml->showconfig( $row, $lists, $option );
}
function saveconfig( $task ) {
global $database, $mosConfig_absolute_path;
$row = new mosConfig();
if (!$row->bind( $_POST )) {
mosRedirect( "index2.php", $row->getError() );
}
$editor = intval( mosGetParam( $_POST, 'editor', 0 ) );
if ($editor > 0) {
$query = "UPDATE #__mambots"
. "\n SET published = 0"
. "\n WHERE published >= 0 AND folder='editors'"
;
$database->setQuery( $query );
$database->query() or die( $database->getErrorMsg() );
$query = "UPDATE #__mambots"
. "\n SET published = 1"
. "\n WHERE id = $editor"
;
$database->setQuery( $query );
$database->query() or die( $database->getErrorMsg() );
}
$config = "getVarText();
$config .= "setlocale (LC_TIME, \$mosConfig_locale);\n";
$config .= '?>';
$fname = '../configuration.php';
$enable_write = mosGetParam($_POST,'enable_write',0);
$oldperms = fileperms($fname);
if ($enable_write) @chmod($fname, $oldperms | 0222);
if ( $fp = fopen($fname, 'w') ) {
fputs($fp, $config, strlen($config));
fclose($fp);
if ($enable_write) {
@chmod($fname, $oldperms);
} else {
if (mosGetParam($_POST,'disable_write',0))
@chmod($fname, $oldperms & 0777555);
} // if
$msg = T_('The Configuration Details have been updated');
// apply file and directory permissions if requested by user
$applyFilePerms = mosGetParam($_POST,'applyFilePerms',0) && $row->config_fileperms!='';
$applyDirPerms = mosGetParam($_POST,'applyDirPerms',0) && $row->config_dirperms!='';
if ($applyFilePerms || $applyDirPerms) {
$mosrootfiles = array(
'administrator',
'cache',
'components',
'editor',
'help',
'images',
'includes',
'installation',
'language',
'mambots',
'media',
'modules',
'templates',
'CHANGELOG',
'configuration.php-dist',
'configuration.php',
'globals.php',
'htaccess.txt',
'index.php',
'index2.php',
'INSTALL',
'LICENSE',
'mainbody.php',
'offline.php',
'pathway.php',
'robots.txt'
);
$filemode = NULL;
if ($applyFilePerms) $filemode = octdec($row->config_fileperms);
$dirmode = NULL;
if ($applyDirPerms) $dirmode = octdec($row->config_dirperms);
foreach ($mosrootfiles as $file)
mosChmodRecursive($mosConfig_absolute_path.'/'.$file, $filemode, $dirmode);
} // if
switch ( $task ) {
case 'apply':
mosRedirect( 'index2.php?option=com_config&hidemainmenu=1', $msg );
break;
case 'save':
default:
mosRedirect( 'index2.php', $msg );
break;
}
} else {
if ($enable_write) @chmod($fname, $oldperms);
mosRedirect( 'index2.php', T_('An Error Has Occurred! Unable to open config file to write!') );
}
}
?>