Your IP : 216.73.216.90
<?php
if (!defined('LOADED_AS_ADMIN_MODULE'))
{
require_once('../../core/Dobi.php');
Dobi::exception('dobiExcDirectAccess', 1, '', 'direct');
}
class LanguageAdmin implements DobiAdminModule, action_add, action_show
{
private $lang_current_action_to_run;
public function __construct($lang_current_action_to_run)
{
$this->lang_current_action_to_run = $lang_current_action_to_run;
}
public function _defaultAction()
{
return $this->show();
}
public function _executeAction()
{
if (!Registry::getObject('session')->getUserAccess(LA_INSTALLERS))
{
echo '<span style="font-weight: bold;">'._ACCESS_DENIED_.'</span> ' . _ACCESS_DENIED_MSG_;
return;
}
$go = $this->lang_current_action_to_run;
$this->$go();
}
public function show()
{
$language = Registry::getObject('language');
$languages_active = $language->getActiveLanguages();
$languages_deactive = $language->getDeactiveLanguages();
$default = $language->getDefaultLanguage();
// 570px - il. komórek
echo '<div style="width: 570px; height: 20px" class="b4"> '._LANG_LIST_.' </div>
<div class="table">
<div style="width: 90px;" class="top"> '._LANG_SHORT_.' </div>
<div style="width: 100px;" class="top"> '._LANG_FULL_.' </div>
<div style="width: 70px;" class="top"> '._LANG_FLAG_.' </div>
<div style="width: 90px;" class="top"> '._WORD_DEFAULT_.' </div>
<div style="width: 90px;" class="top"> '._WORD_STATUS_.' </div>
<div style="width: 124px;" class="top"> '._WORD_ACTION_.' </div>
';
if ($language->getLanguagesAmount() <= 0)
{
echo '<div style="width: 569px;"> '._LANG_NO_LANGS_.'</div>';
}
else
{
foreach ($languages_active as $short => $long)
{
$class = 'action3';
if ($default == $short)
{
$status = '<span style="color: green">'._WORD_YES_.'</span>';
$active = true;
$class = 'action1';
}
else
{
$status = '<span style="color: red">'._WORD_NO_.'</span>';
$active = false; ;
}
$flag = '<img src="'.DOBI_FLAGS_DIR . $short . '.gif" alt="'.$long.'" />';
echo '<div style="width: 90px;" class="'.$class.'"> ' . $short . ' </div>
<div style="width: 100px;" class="'.$class.'"> ' . $long . ' </div>
<div style="width: 70px;" class="'.$class.'"> ' . $flag . ' </div>
<div style="width: 90px;" class="'.$class.'"> ' . $status . ' </div>
<div style="width: 90px;" class="'.$class.'"><span style="color: green"> '._LANG_ON_.'</span></div>
<div style="width: 124px;" class="'.$class.'">';
if (!$active)
{
echo '<a href="admin.php?module=Language&action=on&lang='.$short.'">'._LANG_SET_DEF_.'</a>
<a href="admin.php?module=Language&action=uninstall&lang='.$short.'">'._WORD_UNINSTALL_.'</a>
<a href="admin.php?module=Language&action=deactive&lang='.$short.'">'._WORD_TURN_OFF_.'</a>';
}
else echo _WORD_NONE_;
echo '</div>';
}
foreach ($languages_deactive as $short => $long)
{
$flag = '<img src="'.DOBI_FLAGS_DIR . $short . '.gif" alt="'.$long.'" />';
echo '<div style="width: 90px;" class="action2"> ' . $short . ' </div>
<div style="width: 100px;" class="action2"> ' . $long . ' </div>
<div style="width: 70px;" class="action2"> ' . $flag . ' </div>
<div style="width: 90px;" class="action2"><span style="color: red">'._WORD_ACTIVATE_.'</span></div>
<div style="width: 90px;" class="action2"><span style="color: red"> '._WORD_DEACTIVATE_.' </span></div>
<div style="width: 124px;" class="action2"><a href="admin.php?module=Language&action=uninstall&lang='.$short.'">'._WORD_UNINSTALL_.'</a>
<a href="admin.php?module=Language&action=active&lang='.$short.'">'._WORD_TURN_ON_.'</a>';
echo '</div>';
}
}
echo '</div>';
}
private function getLanguagesList()
{
$languages = array(
'de' => 'Deutsch',
'dk' => 'Dansk',
'es' => 'Espańol',
'fi' => 'Suomi',
'fr' => 'Français',
'it' => 'Italiano',
'nl' => 'Nederlands',
'ru' => 'Русско',
'se' => 'Svenska',
'en' => 'English',
'pl' => 'Polski',
'pt' => 'Portugese',
'gr' => 'Greek',
'hu' => 'Hungarian',
'hr' => 'Hrvatska');
return $languages;
}
public function add()
{
$languages_list = $this->getLanguagesList();
echo '<div class="form">';
$form = new form('add_language', Registry::getObject('dataRequest')->getActionLink('executeAdd'));
$form->setSize(10);
$form->setMaxlen(100);
$form->fieldset('normal');
$form->legend(_LANG_ADD_LANG_);
$form->addContent('<div class="help"><h4>'._WORD_HELP_.'</h4><p>'._LANG_HELP_1_.'.</p></div>');
$form->addContent('<div class="left">');
$form->select(_LANG_, 'new_language', '', 'required', 1);
foreach ($languages_list as $short => $long)
{
$form->option($long, $short);
}
$form->eSelect();
$form->addContent('</div>');
$form->addContent('<div class="submit">');
$form->submit(_WORD_INSTALL_, 'inputSubmit');
$form->reset(_WORD_CLEAR_, 'inputSubmit');
$form->addContent('</div>');
$form->eFieldset();
echo $form->getForm();
echo '</div>';
}
public function executeAdd()
{
$error = Registry::getObject('error', new error());
$error->addAction('show');
$error->setTrueMessage(_LANG_ADD_SUCC_);
$error->setFalseMessage(_LANG_ADD_FAIL_ . _ERRORS_OCCURRED_);
$dataRequest = Registry::getObject('dataRequest');
$dbUDECA = Registry::getObject('dbUDECA');
$dbUDECA->setMapper(true);
$dbUDECA->mapper( IS_REQUIRED, array(0 => 'new_language'));
if (Registry::getObject('language')->languageExists($dataRequest->getValue('new_language')))
{
$error->addError(_LANG_ERR_1_);
}
if (!$this->isValid($dataRequest->getValue('new_language')))
{
$error->addError(_LANG_ERR_2_);
}
$languages_list = $this->getLanguagesList();
$dbUDECA->insert('languages', array('lang_short' => $dataRequest->getValue('new_language'),
'lang_full' => $languages_list[$dataRequest->getValue('new_language')],
'lang_active' => '1'));
$dbUDECA->execute();
$dbUDECA->clear();
if (!$error->errorExists())
{
Registry::getObject('dbC')->updateCounter('languages');
}
$error->getErrors();
}
public function uninstall()
{
$language = Registry::getObject('language');
$lang = Registry::getObject('dataRequest')->getValue('lang');
$error = Registry::getObject('error', new error());
$error->addAction('show');
$error->setTrueMessage(_LANG_UNINSTALL_SUCC_);
$error->setFalseMessage(_LANG_UNINSTALL_FAIL_ . _ERRORS_OCCURRED_);
if (!$language->languageExists($lang))
{
$error->addError(_LANG_ERR_5_);
}
if ($language->getDefaultLanguage() == $lang)
{
$error->addError(_LANG_ERR_6_);
}
$dbUDECA = Registry::getObject( 'dbUDECA' );
$dbUDECA->setMapper(false);
$dbUDECA->setWhere('lang_short = "'. $lang .'"');
$dbUDECA->delete('languages');
$dbUDECA->execute();
$dbUDECA->clear();
Registry::getObject( 'dbC' )->updateCounter('languages', -1);
$error->getErrors();
}
public function active()
{
$language = Registry::getObject('language');
$lang = Registry::getObject('dataRequest')->getValue('lang');
$error = Registry::getObject('error', new error());
$error->addAction('show');
$error->setTrueMessage(_LANG_ACTIVE_SUCC_);
$error->setFalseMessage(_LANG_ACTIVE_FAIL_ . _ERRORS_OCCURRED_);
if (!$language->languageExists($lang))
{
$error->addError(_LANG_ERR_5_);
}
if ($language->isActive($lang))
{
$error->addError(_LANG_ERR_3_);
}
if ($language->getDefaultLanguage() == $lang)
{
$error->addError(_LANG_ERR_7_);
}
$dbUDECA = Registry::getObject( 'dbUDECA' );
$dbUDECA->setMapper(false);
$dbUDECA->setWhere('lang_short = "'.$lang.'"');
$dbUDECA->update( 'languages', array('lang_active' => '1') );
$dbUDECA->execute();
$dbUDECA->clear();
$error->getErrors();
}
public function deactive()
{
$language = Registry::getObject('language');
$lang = Registry::getObject('dataRequest')->getValue('lang');
$error = Registry::getObject('error', new error());
$error->addAction('show');
$error->setTrueMessage(_LANG_DEACTIVE_SUCC_);
$error->setFalseMessage(_LANG_DEACTIVE_FAIL_ . _ERRORS_OCCURRED_);
if (!$language->languageExists($lang))
{
$error->addError(_LANG_ERR_5_);
}
if (!$language->isActive($lang))
{
$error->addError(_LANG_ERR_4_);
}
if ($language->getDefaultLanguage() == $lang)
{
$error->addError(_LANG_ERR_7_);
}
$dbUDECA = Registry::getObject( 'dbUDECA' );
$dbUDECA->setMapper(false);
$dbUDECA->setWhere('lang_short = "'.$lang.'"');
$dbUDECA->update( 'languages', array('lang_active' => '0') );
$dbUDECA->execute();
$dbUDECA->clear();
$error->getErrors();
}
public function on()
{
$language = Registry::getObject('language');
$lang = Registry::getObject('dataRequest')->getValue('lang');
$error = Registry::getObject('error', new error());
$error->addAction('show');
$error->setTrueMessage(_LANG_ON_SUCC_);
$error->setFalseMessage(_LANG_ON_FAIL_ . _ERRORS_OCCURRED_);
if (!$this->isValid($lang))
{
$error->addError(_LANG_ERR_2_);
}
if (!$language->isActive($lang))
{
$error->addError(_LANG_ERR_4_);
}
if ($language->getDefaultLanguage() == $lang)
{
$error->addError(_LANG_ERR_8_);
}
$dbUDECA = Registry::getObject( 'dbUDECA' );
$dbUDECA->setMapper(false);
$dbUDECA->updateConfValue('default_language', $lang);
$dbUDECA->execute();
$dbUDECA->clear();
$error->getErrors();
}
public function isValid($language)
{
$path = DOBI_LANGUAGES_DIR . $language . '/';
if (!file_exists($path . 'define_admin.php') ||
!file_exists($path . 'define_index.php') ||
!file_exists($path . 'dobi_errors.php') )
{
return false;
}
return true;
}
}
?>