Your IP : 216.73.216.90


Current Path : /home/semix18/public_html/optimum-wycena.pl/modules/Language/
Upload File :
Current File : /home/semix18/public_html/optimum-wycena.pl/modules/Language/admin.php

<?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&amp;action=on&amp;lang='.$short.'">'._LANG_SET_DEF_.'</a>
					<a href="admin.php?module=Language&amp;action=uninstall&amp;lang='.$short.'">'._WORD_UNINSTALL_.'</a>
					<a href="admin.php?module=Language&amp;action=deactive&amp;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&amp;action=uninstall&amp;lang='.$short.'">'._WORD_UNINSTALL_.'</a>
					  <a href="admin.php?module=Language&amp;action=active&amp;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' => '&#1056;&#1091;&#1089;&#1089;&#1082;&#1086;',
		'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;
	}
			
}

?>