Your IP : 216.73.216.11
<?php
if (!defined('LOADED_AS_ADMIN_MODULE'))
{
require_once('../../core/Dobi.php');
Dobi::exception('dobiExcDirectAccess', 1, '', 'direct');
}
class SettingsAdmin implements DobiAdminModule, action_extra
{
private $settings_current_action_to_run;
public function __construct($settings_current_action_to_run)
{
$this->settings_current_action_to_run = $settings_current_action_to_run;
}
public function _defaultAction()
{
return $this->system();
}
public function _executeAction()
{
if (!Registry::getObject('session')->getUserAccess(LA_SETTINGS))
{
echo '<span style="font-weight: bold;">'._ACCESS_DENIED_.'</span> ' . _ACCESS_DENIED_MSG_;
return;
}
$go = $this->settings_current_action_to_run;
$this->$go();
}
public function extraImplements()
{
$array = array('system' => _DOBI_MENU_OPTION_SYSTEM_, 'meta' => _DOBI_MENU_OPTION_META_);
return $array;
}
public function system()
{
$languages = Registry::getObject('language')->getLanguages();
$modules = $this->getNormalModulesList();
$theme = new theme();
$themes = $theme->getInstalledList();
$theme = NULL;
$db = Registry::getObject('db');
$def_language = $db->getConfValue('default_language');
$def_theme = $db->getConfValue('default_theme');
$def_module = $db->getConfValue('default_module');
$def_scheme = $db->getConfValue('default_scheme');
$def_tinyMCE = $db->getConfValue('tinyMCE');
$form = new form('system_settings', Registry::getObject('dataRequest')->getActionLink('updSystem'));
$form->setSize(10);
$form->setMaxlen(100);
$form->fieldset('normal');
$form->legend(_SETTINGS_DEFAULT_);
$form->addContent('<div class="help"><h4>'._WORD_HELP_.'</h4><p>'._HELP_1_.'</p><p>'._SETTINGS_HELP_3_.'</p></div>');
$form->addContent('<div class="left">');
$form->checkbox(_SETTINGS_EDITOR_, 'default_tinyMCE', 1, 'sett_box', 'sett_box', '', $def_tinyMCE);
$form->select(_SETTINGS_DEF_LANG_, 'default_language', 'settings', 'settings', 1);
foreach ($languages as $key => $value)
{
if ($key == $def_language)
{
$form->option($value, $key, '', 1);
}
else $form->option($value, $key);
}
$form->eSelect();
$form->select(_SETTINGS_DEF_THEME_, 'default_theme', 'settings', 'settings', 1);
foreach ($themes as $value)
{
if ($value == $def_theme)
{
$form->option($value, $value, '', 1);
}
else $form->option($value, $value);
}
$form->eSelect();
$form->text(_SETTINGS_DEF_SCHEME_, 'default_scheme', $def_scheme, 'settings', 'settings');
$form->select(_SETTINGS_DEF_MODULE_, 'default_module', 'settings', 'settings', 1);
foreach ($modules as $value)
{
if ($value == $def_module)
{
$form->option($value, $value, '', 1);
}
else $form->option($value, $value);
}
$form->eSelect();
$form->addContent('</div>');
$form->hidden('old_language', $def_language);
$form->hidden('old_theme', $def_theme);
$form->addContent('<div class="submit">');
$form->submit(_WORD_UPDATE_, 'inputSubmit');
$form->reset(_WORD_CLEAR_, 'inputSubmit');
$form->addContent('</div>');
$form->eFieldset();
// view
echo '<div class="form">';
echo $form->getForm();
echo '</div>';
}
public function updSystem()
{
$dataRequest = Registry::getObject('dataRequest');
$error = Registry::getObject('error', new error());
$error->addAction('system');
$error->setTrueMessage(_SETTINGS_UPDATE_SUCC_);
$error->setFalseMessage(_SETTINGS_UPDATE_FAIL_ . _ERRORS_OCCURRED_);
$def_language = $dataRequest->getValue('default_language');
$def_theme = $dataRequest->getValue('default_theme');
$def_module = $dataRequest->getValue('default_module');
$def_scheme = $dataRequest->getValue('default_scheme');
$def_tinyMCE = $dataRequest->getValue('default_tinyMCE');
if (strpos($def_scheme, '.php'))
{
$def_scheme = str_replace('.php', '', $def_scheme);
}
$dbUDECA = Registry::getObject('dbUDECA');
$dbUDECA->setMapper(true);
$dbUDECA->mapper(IS_REQUIRED, array(0 => 'default_language', 'default_theme', 'default_module', 'default_scheme'));
$dbUDECA->updateConfValue('default_language', $def_language);
$dbUDECA->execute();
$dbUDECA->updateConfValue('default_theme', $def_theme);
$dbUDECA->execute();
$dbUDECA->updateConfValue('default_module', $def_module);
$dbUDECA->execute();
$dbUDECA->updateConfValue('default_scheme', $def_scheme);
$dbUDECA->execute();
$dbUDECA->updateConfValue('tinyMCE', $def_tinyMCE);
$dbUDECA->execute();
if ($dataRequest->getValue('old_language') != $def_language)
{
$dbUDECA->setWhere('sess_language = "'.$dataRequest->getValue('old_language').'"');
$dbUDECA->update('sessions', array('sess_language' => $def_language));
$dbUDECA->execute();
}
if ($dataRequest->getValue('old_theme') != $def_theme)
{
$dbUDECA->setWhere('sess_theme = "'.$dataRequest->getValue('old_theme').'"');
$dbUDECA->update('sessions', array('sess_theme' => $def_theme));
$dbUDECA->execute();
}
$dbUDECA->clear();
$error->getErrors();
}
public function getNormalModulesList()
{
$dbRC = Registry::getObject('dbRC');
$dbRC->rowCache( 'installed_modules', '*', 'modules', 'modu_installed = "1"');
$dbRC->setName( 'installed_modules' );
$modules = array();
while ($dbRC->rowExists())
{
$module_name = $dbRC->getRow('modu_name');
$path = DOBI_MODULES_DIR . $module_name . '/' . $module_name . '.php';
if (file_exists($path) && $module_name != 'admin' && $module_name != 'Admin')
{
$modules[] = $module_name;
}
$dbRC->increment();
}
$dbRC->clear();
return $modules;
}
public function meta()
{
$doctypes = config::getSettings('doctypes');
$charsets = config::getSettings('charsets');
$db = Registry::getObject('db');
$doctype = $db->getConfValue('site_doctype');
$charset = $db->getConfValue('site_charset');
$site_adress = $db->getConfValue('site_adress');
$site_author = $db->getConfValue('site_author');
$site_copyright = $db->getConfValue('site_copyright');
$site_robots = $db->getConfValue('site_robots');
$site_replyto = $db->getConfValue('site_reply-to');
$site_render = $db->getConfValue('site_render');
$current_lang = Registry::getObject('language')->getSessionLanguage();
$dbRC = Registry::getObject('dbRC');
$dbRC->rowCache( 'head_section', 'tran_translation', 'translations', 'tran_key = "head_section"');
$head_section = $dbRC->getRow('tran_translation', 'head_section');
$dbRC->clear('head_section');
$dbRC->rowCache( 'translations', 'tran_translation, tran_key', 'translations', 'tran_language="' . $current_lang . '"');
$dbRC->setName('translations');
while ($dbRC->rowExists())
{
$key = $dbRC->getRow('tran_key');
$$key = $dbRC->getRow('tran_translation');
$dbRC->increment();
}
$dbRC->clear();
$form = new form('meta_settings', Registry::getObject('dataRequest')->getActionLink('updMeta'));
$form->setSize(10);
$form->setMaxlen(100);
$form->fieldset('normal');
$form->legend(_SETTINGS_HEAD_);
$form->addContent('<div class="help"><h4>'._WORD_HELP_.'</h4><p>'._HELP_1_.'</p></div>');
$form->addContent('<div class="left">');
$form->select(_SETTINGS_DOCTYPE_, 'doctype', 'normal', 'required', 1);
foreach ($doctypes as $key => $value)
{
$value = str_replace('<', '', $value);
$value = str_replace('>', '', $value);
if ($value == $doctype)
{
$form->option($value, $key, '', 1);
}
else $form->option($value, $key);
}
$form->eSelect();
$form->select(_SETTINGS_CHARSET_, 'charset', 'normal', 'required', 1);
foreach ($charsets as $value)
{
if ($value == $charset)
{
$form->option($value, $value, '', 1);
}
else $form->option($value, $value);
}
$form->eSelect();
$form->text(_SETTINGS_ADRESS_, 'site_adress', $site_adress, '', 'required');
$form->text(_SETTINGS_AUTHOR_, 'site_author', $site_author, '', '');
$form->text(_SETTINGS_COPY_, 'site_copyright', $site_copyright, '', '');
$form->text(_SETTINGS_ROBOTS_, 'site_robots', $site_robots, '', '');
$form->text(_SETTINGS_REPLY_, 'site_replyto', $site_replyto, '', '');
$form->textarea(_SETTINGS_TAGS_, 'head_section', $head_section, 60, 10);
$form->checkbox(_SETTINGS_RENDER_, 'site_render', 1, 'checkbox', 'checkbox', '', $site_render);
$form->addContent('</div>');
$form->addContent('<div class="submit">');
$form->submit(_WORD_UPDATE_, 'inputSubmit');
$form->reset(_WORD_CLEAR_, 'inputSubmit');
$form->addContent('</div>');
$form->eFieldset();
$form_two = new form('meta_settings_lang', Registry::getObject('dataRequest')->getActionLink('updMetaLang'));
$form_two->setSize(10);
$form_two->setMaxlen(100);
$form_two->fieldset('normal');
$form_two->legend(_SETTINGS_HEAD_2_ . '<img src="'.DOBI_FLAGS_DIR . $current_lang . '.gif" alt="" />');
$form_two->addContent('<div class="help"><h4>'._WORD_HELP_.'</h4><p>'._HELP_1_.'</p><p>'._SETTINGS_HELP_1_.'('.$current_lang.')'._SETTINGS_HELP_2_.'</p></div>');
$form_two->addContent('<div class="left">');
$form_two->text(_SETTINGS_TITLE_, 'site_title', $site_title, '', 'required');
$form_two->textarea(_SETTINGS_DESC_, 'site_description', $site_description, 60, 5, '', 'required');
$form_two->textarea(_SETTINGS_KEYWORDS_, 'site_keywords', $site_keywords, 60, 5,'', 'required');
$form_two->textarea(_SETTINGS_FOOTER_, 'footer_info', $footer_info, 60, 5);
$form_two->addContent('</div>');
$form_two->hidden('language', $current_lang);
$form_two->addContent('<div class="submit">');
$form_two->submit(_WORD_UPDATE_, 'inputSubmit');
$form_two->reset(_WORD_CLEAR_, 'inputSubmit');
$form_two->addContent('</div>');
$form_two->eFieldset();
// view
echo '<div class="form">';
echo $form->getForm();
echo $form_two->getForm();
echo '</div>';
}
public function updMeta()
{
$dataRequest = Registry::getObject('dataRequest');
$error = Registry::getObject('error', new error());
$error->addAction('meta');
$error->setTrueMessage(_SETTINGS_UPDATE_SUCC_);
$error->setFalseMessage(_SETTINGS_UPDATE_FAIL_ . _ERRORS_OCCURRED_);
$site_adress = $dataRequest->getValue('site_adress');
$site_adress = str_replace('http://', '', $site_adress);
$site_adress = 'http://' . $site_adress;
$mapper = new mapper();
$mapper->mapping('head_section', FILTR_T, array('exceptions_strip_tags' => '<meta><link>'));
$head_section = $mapper->getValue('head_section');
$mapper = NULL;
$dbUDECA = Registry::getObject('dbUDECA');
$dbUDECA->setMapper(true);
$dbUDECA->mapper(IS_REQUIRED, array(0 => 'doctype', 'charset', 'site_adress'));
$dbUDECA->updateConfValue('site_doctype', $dataRequest->getValue('doctype'));
$dbUDECA->execute();
$dbUDECA->updateConfValue('site_charset', $dataRequest->getValue('charset'));
$dbUDECA->execute();
$dbUDECA->updateConfValue('site_adress', $site_adress);
$dbUDECA->execute();
$dbUDECA->updateConfValue('site_author', $dataRequest->getValue('site_author'));
$dbUDECA->execute();
$dbUDECA->updateConfValue('site_copyright', $dataRequest->getValue('site_copyright'));
$dbUDECA->execute();
$dbUDECA->updateConfValue('site_robots', $dataRequest->getValue('site_robots'));
$dbUDECA->execute();
$dbUDECA->updateConfValue('site_reply-to', $dataRequest->getValue('site_replyto'));
$dbUDECA->execute();
$dbUDECA->updateConfValue('site_render', $dataRequest->getValue('site_render'));
$dbUDECA->execute();
$dbUDECA->setWhere('tran_key = "head_section"');
$dbUDECA->update('translations', array('tran_translation' => $head_section));
$dbUDECA->execute();
$dbUDECA->clear();
$error->getErrors();
}
public function updMetaLang()
{
$dataRequest = Registry::getObject('dataRequest');
$error = Registry::getObject('error', new error());
$error->addAction('meta');
$error->setTrueMessage(_SETTINGS_UPDATE_SUCC_);
$error->setFalseMessage(_SETTINGS_UPDATE_FAIL_ . _ERRORS_OCCURRED_);
$language = $dataRequest->getValue('language');
$mapper = new mapper();
$mapper->mapping('footer_info', FILTR_T, array('exceptions_strip_tags' => '<div><span><a><br><p><img>'));
$footer_info = $mapper->getValue('footer_info');
$mapper = NULL;
$dbUDECA = Registry::getObject('dbUDECA');
$dbUDECA->setMapper(true);
$dbUDECA->mapper(IS_REQUIRED, array(0 => 'site_title', 'site_description', 'site_keywords'));
$dbUDECA->setWhere('tran_key = "site_title" AND tran_language="'.$language.'"');
$dbUDECA->update('translations', array('tran_translation' => $dataRequest->getValue('site_title')));
$dbUDECA->execute();
$dbUDECA->setWhere('tran_key = "site_description" AND tran_language="'.$language.'"');
$dbUDECA->update('translations', array('tran_translation' => $dataRequest->getValue('site_description')));
$dbUDECA->execute();
$dbUDECA->setWhere('tran_key = "site_keywords" AND tran_language="'.$language.'"');
$dbUDECA->update('translations', array('tran_translation' => $dataRequest->getValue('site_keywords')));
$dbUDECA->execute();
$dbUDECA->setWhere('tran_key = "footer_info" AND tran_language="'.$language.'"');
$dbUDECA->update('translations', array('tran_translation' => $footer_info));
$dbUDECA->execute();
$dbUDECA->clear();
$error->getErrors();
}
}
?>