Your IP : 216.73.217.121
<?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&action=details&modname='.$module.'">' . _WORD_DETAILS_ . '</a>
<a href="admin.php?module=Module&action=uninstall&modname='.$module.'">' . _WORD_UNINSTALL_ . '</a>
';
if (!$active)
{
echo '<a href="admin.php?module=Module&action=active&modname='.$module.'">' . _WORD_ACTIVATE_ . '</a>';
}
else
{
echo '<a href="admin.php?module=Module&action=deactive&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();
}
}
}
?>