Your IP : 216.73.217.121


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

<?php

if (!defined('LOADED_AS_ADMIN_MODULE'))
{ 
		require_once('../../core/Dobi.php');  
		Dobi::exception('dobiExcDirectAccess', 1, '', 'direct');
}


class ModuleAdmin implements DobiAdminModule, action_add, action_show
{
    private $module_current_action_to_run;

	public function __construct($module_current_action_to_run)
	{
	    $this->module_current_action_to_run = $module_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->module_current_action_to_run;
	    $this->$go();
	}
	
	public function add()
	{
		$dbRC = Registry::getObject('dbRC');
		
		$dir = new dir( 'modules' );
		$dirs = $dir->readDirs();
		$dir = NULL;
	
		$dbRC->rowCache( 'installed_modules', 'modu_name', 'modules', 'modu_installed = "1"');
		$dbRC->setName( 'installed_modules' );
		$arrInstalled = array();
		while ($dbRC->rowExists())
		{
		  	// musimy to zrobić jako klucz poniewaz array_search() nie znajdue News, nie wiem czemu.
		  	$arrInstalled[ $dbRC->getRow('modu_name') ] = 1;
			$dbRC->increment();  
		}

		$dbRC->clear();
		$modules_list = array();

		for ($a = 0; $a < count($dirs); $a++)
		{
			if (!array_key_exists( $dirs[$a], $arrInstalled ))
			{
         		$modules_list[] = $dirs[$a];	  
			}
		}
		
 		// 570px - il. komórek
 		echo '<div style="width: 569px; height: 20px" class="b4"> ' . _MODULE_READY_LIST_ . ' </div>
		    <div class="table">
 	    	<div style="width: 100px;" class="top"> ' . _WORD_NAME_ . ' </div>
			<div style="width: 100px;" class="top"> ' . _WORD_AUTHOR_ . ' </div>
			<div style="width: 65px;" class="top"> ' . _WORD_VERSION_ . ' </div> 
			<div style="width: 200px;" class="top"> ' . _WORD_DESCRIPTION_ . ' </div>
			<div style="width: 100px;" class="top"> ' . _WORD_ACTION_ . ' </div>
 		';	

		$invalid_modules = array();
		foreach ($modules_list as $module_name)
		{
		    $module = new module($module_name);
		    if ($module->isValid())
			{
				$module->prepareInfo();
				echo '<div style="width: 100px;" class="action2"> ' . $module_name . ' </div>
					  <div style="width: 100px;" class="action2"> ' . $module->getValue('author') . ' </div>
					  <div style="width: 65px;" class="action2"> ' . $module->getValue('version') . ' </div> 
					  <div style="width: 200px;" class="action2"> ' . $module->getValue('description') . ' </div>
					  <div style="width: 100px;" class="action2"><a href="admin.php?module=Module&action=details&modname='.$module_name.'">' . _WORD_DETAILS_ . '</a>
					  <a href="admin.php?module=Module&action=install&modname='.$module_name.'">' . _WORD_INSTALL_ . '</a>
				      </div>		
				';				  
			}
			else $invalid_modules[] = $module_name;	
			$module = NULL;
		}	
				  
		if (count($modules_list) == 0 || count($modules_list) == count($invalid_modules))
		{
		      echo '<div style="width: 569px;"> ' . _MODULE_NO_MODULES_TO_INSTALL_ . ' </div>';
		}		
		echo '</div>';
		
		echo '<div class="frame"><div style="width: 570px; margin: 20px 0px" class="b4"> ' .  _MODULE_INVALID_MODULES_LIST_. ' </div>';
		if (count($invalid_modules) == 0) echo _WORD_NONE_;
		else
		{
			foreach ($invalid_modules as $invalid_module)  
			{
				echo '<div class="block"">' . $invalid_module . '</div>';  
			}
		}
		echo '</div>';
	}
	
	public function install()
	{
	 	$dataRequest = Registry::getObject('dataRequest');
		$module = new module( $dataRequest->getValue('modname') ); 
	  	$error = Registry::getObject('error', new error());
	  	$error->addAction('add');
	  	$error->setTrueMessage(_MODULE_ . $module->getValue('name') . _MODULE_SUCC_INSTALL_);
	  	$error->setFalseMessage(_MODULE_ . $module->getValue('name') . _MODULE_FAIL_INSTALL_ . _ERRORS_OCCURRED_);
		
		if (!$module->isValid())
		{
			$error->addError(_MODULE_ERR_1_);
			$error->addError(_MODULE_ERR_2_1_ .' (' . $module . '.php '._WORD_AND_.' admin.php) ' . _MODULE_ERR_2_2_ . ' ('.$module . _MODULE_AND_ . $module.'Admin).<br />');    
		}	
			
		$class_name = $dataRequest->getValue('modname') . 'Initial';
		$initial = new $class_name();
				 
		if ($module->isInstalled())
		{
			$error->addError(_MODULE_ERR_11_);   
		}	
		if (!$error->errorExists())
		{
			if ($initial->_install() !== true)
			{
				$initial->_uninstall();
	    		$error->addError(_MODULE_ERR_3_);  		  
			}
			else
			{
			    $module->prepareInfo();
			 	$dbUDECA = Registry::getObject( 'dbUDECA' ); 
		        $dbC = Registry::getObject( 'dbC' );    
				$dbUDECA->setMapper(false);	  
				$dbUDECA->insert( 'modules', 
							array(	'modu_name'	  	   => 	$module->getValue('name'),
									'modu_displayname' => 	$module->getValue('displayname'),
									'modu_group'       => 	$module->getValue('group'),
									'modu_version'     => 	$module->getValue('version'),
									'modu_author'      => 	$module->getValue('author'),
									'modu_description' => 	$module->getValue('description')));  
				$dbUDECA->execute();
				$dbUDECA->clear();
				$dbC->updateCounter('modules');
			}								
		}
		$error->getErrors();	  
	}
	
	public function uninstall()
	{
	 	$dataRequest = Registry::getObject('dataRequest');
		$module = new module( $dataRequest->getValue('modname') ); 
	  	$error = Registry::getObject('error', new error());
	  	$error->addAction('show');
	  	$error->setTrueMessage(_MODULE_ . $module->getValue('name') . _MODULE_SUCC_UNINSTALL_);
	  	$error->setFalseMessage(_MODULE_ . $module->getValue('name') . _MODULE_FAIL_UNINSTALL_ . _ERRORS_OCCURED_);	  	
	  	
		if (!$module->isInstalled())
        {
			$error->addError(_MODULE_ERR_4_);   
		}		
		
		if (!$module->isValid())
		{
			$error->addError(_MODULE_ERR_5_);  
		}
		
		if (in_array($module->getValue('name'), config::getSettings('cons_modules')))
		{
			$error->addError(_MODULE_ERR_7_);  
		}
				
		$class_name = $dataRequest->getValue('modname') . 'Initial';
		$initial = new $class_name();
		
		if (!$error->errorExists())
		{
			if ($initial->_uninstall() !== true)
			{
	    		$error->addError(_MODULE_ERR_6_);  		  
			}
			else
			{	
			    $dbUDECA = Registry::getObject( 'dbUDECA' ); 
		        $dbC = Registry::getObject( 'dbC' ); 
				$dbUDECA->setMapper(false);
				$dbUDECA->setWhere('modu_name = "'. $module->getValue('name') .'"');	  
				$dbUDECA->delete('modules');  
				$dbUDECA->execute();
				$dbUDECA->clear();
				$dbC->updateCounter('modules', -1);					
			}		  
		}						
		$error->getErrors();	
	}

	public function show()
	{
		$dbRC = Registry::getObject('dbRC');
	
		$dbRC->rowCache( 'installed_modules', '*', 'modules', 'modu_installed = "1"');
		$dbRC->setName( 'installed_modules' );
		
 		// 570px - il. komórek
 		echo '<div style="width: 570px; height: 20px" class="b4"> ' . _MODULE_INSTALLED_MODULES_LIST_ . ' </div>
		    <div class="table">
 	    	<div style="width: 100px;" class="top"> ' . _WORD_NAME_ . ' </div>
			<div style="width: 75px;" class="top"> ' . _WORD_AUTHOR_ . ' </div>
			<div style="width: 64px;" class="top"> ' . _WORD_VERSION_ . ' </div> 
			<div style="width: 160px;" class="top"> ' . _WORD_DESCRIPTION_ . ' </div>
			<div style="width: 65px;" class="top"> ' . _WORD_STATUS_ . ' </div>
			<div style="width: 100px;" class="top"> ' . _WORD_ACTION_ . ' </div>
 		';	

		if ($dbRC->getRowsAmount() <= 2)
		{
		  echo '<div style="width: 569px;"> ' . _MODULE_NO_MODULES_ . ' </div>';
		}
		else
		{
			$cons_modules = config::getSettings('cons_modules');
			while ($dbRC->rowExists())
			{
			    if ($dbRC->getRow('modu_active') != 1)
			    {
					$status = '<span style="color: red">' . _MODULE_OFF_ . '</span>';
					$active = 0;  
				}
				else 
				{
					$status = '<span style="color: green">' . _MODULE_ON_ . '</span>';
					$active = 1;  
				}
				$module = $dbRC->getRow('modu_name');
				if (array_search($module, $cons_modules) === FALSE) 
				{
					echo '<div style="width: 100px;" class="action3"> ' . $module . ' </div>
						  <div style="width: 75px;" class="action3"> ' . $dbRC->getRow('modu_author') . ' </div>
						  <div style="width: 64px;" class="action3"> ' . $dbRC->getRow('modu_version') . ' </div> 
						  <div style="width: 160px;" class="action3"> ' . $dbRC->getRow('modu_description') . ' </div>
						  <div style="width: 65px;" class="action3"> ' . $status . ' </div>
						  <div style="width: 100px;" class="action3"><a href="admin.php?module=Module&amp;action=details&amp;modname='.$module.'">' . _WORD_DETAILS_ . '</a> 
						  <a href="admin.php?module=Module&amp;action=uninstall&amp;modname='.$module.'">' . _WORD_UNINSTALL_ . '</a>
		      	    ';		  
					if (!$active)
					{
						echo '<a href="admin.php?module=Module&amp;action=active&amp;modname='.$module.'">' . _WORD_ACTIVATE_ . '</a>';  
					}
					else
					{
						echo '<a href="admin.php?module=Module&amp;action=deactive&amp;modname='.$module.'">' . _WORD_DEACTIVATE_ . '</a>';  				  
					}														 
					echo '</div>';				  
				}	
				$dbRC->increment();  
			}		  
		}
		echo '</div>';
		$dbRC->clear();
	}	
	
	public function active()
	{
	  	$dataRequest = Registry::getObject('dataRequest');
		$module = new module( $dataRequest->getValue('modname') ); 
	  	$error = Registry::getObject('error', new error());
	  	$error->addAction('show');
	  	$error->setTrueMessage(_MODULE_ . $module->getValue('name') . _MODULE_SUCC_TURN_ON_);
	  	$error->setFalseMessage(_MODULE_ . $module->getValue('name') . _MODULE_FAIL_TURN_ON_ . _ERRORS_OCCURRED_);	  	

		if (in_array($module->getValue('name'), config::getSettings('cons_modules')))
		{
			$error->addError(_MODULE_ERR_7_);  
		}		
	
		$dbUDECA = Registry::getObject( 'dbUDECA' ); 	
	   
	    if (!$module->isInstalled())
        {
			$error->addError(_MODULE_ERR_8_);   
		}
		if (!$error->errorExists())
		{
			$dbUDECA->setMapper(false);
			$dbUDECA->setWhere('modu_name = "'.$module->getValue('name').'"');
			$dbUDECA->update( 'modules', array('modu_active' => '1') );
			$dbUDECA->execute(); 
			$dbUDECA->clear(); 
		}
		$error->getErrors();	  
	}
	
	public function deactive()
	{
	  	$dataRequest = Registry::getObject('dataRequest');
		$module = new module( $dataRequest->getValue('modname') );
	  	$error = Registry::getObject('error', new error());
	  	$error->addAction('show');
	  	$error->setTrueMessage(_MODULE_ . $module->getValue('name') . _MODULE_SUCC_TURN_OFF_);
	  	$error->setFalseMessage(_MODULE_ . $module->getValue('name') . _MODULE_FAIL_TURN_OFF_ . _ERRORS_OCCURRED_);	  	
			
		if (in_array($module->getValue('name'), config::getSettings('cons_modules')))
		{
			$error->addError(_MODULE_ERR_7_);  
		}		
	
		$dbUDECA = Registry::getObject( 'dbUDECA' ); 	
        if (!$module->isActive())
        {
			$error->addError(_MODULE_ERR_9_);   
		}
		
		if (!$error->errorExists())
		{
			$dbUDECA->setMapper(false);
			$dbUDECA->setWhere('modu_name = "'.$module->getValue('name').'"');
			$dbUDECA->update( 'modules', array('modu_active' => '0') );
			$dbUDECA->execute();  
			$dbUDECA->clear(); 			
		}
		
		$error->getErrors();	  
	}
	
	public function details()
	{
	  	$dataRequest = Registry::getObject('dataRequest');
		$module = new module( $dataRequest->getValue('modname') );
		
		if ($module->isValid())
		{
			$module->prepareInfo();
			$www = str_replace('http://', '', $module->getValue('www'));
			echo '
			<div align="center" style="font-weight: bold;"> '.$module->getValue('name').' :: '._MODULE_INFORMATION_.' </div><br />
			<div style="padding-left: 40px;">
				<span style="font-weight: bold;">'._MODULE_INFO_1_.' </span>'.$module->getValue('name').'<br />
				<span style="font-weight: bold;">'._MODULE_INFO_2_.' </span>'.$module->getValue('displayname').'<br />
				<span style="font-weight: bold;">'._MODULE_INFO_3_.' </span>'.$module->getValue('group').'<br />
				<span style="font-weight: bold;">'._MODULE_INFO_4_.' </span>'.$module->getValue('version').'<br />
				<span style="font-weight: bold;">'._MODULE_INFO_5_.' </span>'.$module->getValue('date').'<br />
				<span style="font-weight: bold;">'._MODULE_INFO_6_.' </span>'.$module->getValue('description').'<br />
				<span style="font-weight: bold;">'._MODULE_INFO_7_.' </span>'.$module->getValue('author').'<br />
				<span style="font-weight: bold;">'._MODULE_INFO_8_.' </span><a href="mailto: '.$module->getValue('contact').'">'.$module->getValue('contact').'</a><br />
				<span style="font-weight: bold;">'._MODULE_INFO_9_.' </span><a href="http://'.$www.'" target="_blank">'.$www.'</a><br />
			</div><br />
			';	  
		}
		else
		{
	  		$error = Registry::getObject('error', new error());
	  		$error->addAction('show');
	  	    $error->setFalseMessage(_MODULE_CANT_SHOW_INFO_ . $module->getValue('name') .  _ERRORS_OCCURED_);	  		
			$error->addError(_MODULE_ERR_10_);
			$error->getErrors();						  			 
		}  	
	}					 		
}

?>