[feature/module_services] Get rid of compatibility with old modules

This commit is contained in:
Marc Alexander
2013-11-17 01:52:57 +01:00
parent 64ee68568b
commit 801066801c

View File

@@ -418,8 +418,6 @@ class portal_module
if ($add_column) if ($add_column)
{ {
$submit = (isset($_POST['submit'])) ? true : false; $submit = (isset($_POST['submit'])) ? true : false;
$directory = $this->root_path . 'portal/modules/';
if ($submit) if ($submit)
{ {
$module_classname = request_var('module_classname', ''); $module_classname = request_var('module_classname', '');
@@ -460,18 +458,7 @@ class portal_module
} }
else else
{ {
$class = 'portal_' . $module_classname . '_module'; continue;
if (!class_exists($class))
{
include($directory . 'portal_' . $module_classname . '.' . $this->php_ex);
}
if (!class_exists($class))
{
trigger_error('CLASS_NOT_FOUND', E_USER_ERROR);
}
$this->c_class = new $class();
} }
$sql = 'SELECT module_order $sql = 'SELECT module_order
@@ -486,8 +473,8 @@ class portal_module
'module_classname' => $module_classname, 'module_classname' => $module_classname,
'module_column' => $add_column, 'module_column' => $add_column,
'module_order' => $module_order, 'module_order' => $module_order,
'module_name' => $this->c_class->name, 'module_name' => $this->c_class->get_name(),
'module_image_src' => $this->c_class->image_src, 'module_image_src' => $this->c_class->get_image(),
'module_group_ids' => '', 'module_group_ids' => '',
'module_image_height' => 16, 'module_image_height' => 16,
'module_image_width' => 16, 'module_image_width' => 16,
@@ -529,72 +516,7 @@ class portal_module
$this->template->assign_var('S_EDIT', true); $this->template->assign_var('S_EDIT', true);
$fileinfo = array(); $fileinfo = array();
$column_string = column_num_string($add_column);
// @todo: remove old school way of getting modules
$dh = @opendir($directory);
if (!$dh)
{
return $fileinfo;
}
while (($file = readdir($dh)) !== false)
{
// Is module?
if (preg_match('/^portal_.+\.' . $this->php_ex . '$/', $file))
{
$class = str_replace(".{$this->php_ex}", '', $file) . '_module';
$module_class = str_replace(array('portal_', ".{$this->php_ex}"), '', $file);
$column_string = column_num_string($add_column);
// do we want to add the module to the side columns or to the center columns?
if ($module_class != 'custom')
{
if (in_array($column_string, array('left', 'right')))
{
// does the module already exist in the side columns?
if (isset($module_column[$module_class]) &&
(in_array('left', $module_column[$module_class]) || in_array('right', $module_column[$module_class])))
{
continue;
}
}
elseif (in_array($column_string, array('center', 'top', 'bottom')))
{
// does the module already exist in the center columns?
if (isset($module_column[$module_class]) &&
(in_array('center', $module_column[$module_class]) ||
in_array('top', $module_column[$module_class]) ||
in_array('bottom', $module_column[$module_class])))
{
continue;
}
}
}
if (!class_exists($class))
{
include($directory . $file);
}
// Get module title tag
if (class_exists($class))
{
$this->c_class = new $class();
if ($this->c_class->columns & column_string_const($add_module))
{
if ($this->c_class->get_language())
{
$this->user->add_lang_ext('board3/portal', 'mods/portal/' . $this->c_class->get_language());
}
$fileinfo[] = array(
'module' => substr($class, 7, -7),
'name' => $this->user->lang[$this->c_class->get_name()],
);
}
}
}
}
closedir($dh);
// Find new modules // Find new modules
foreach ($this->modules as $module_class => $module) foreach ($this->modules as $module_class => $module)
@@ -659,27 +581,13 @@ class portal_module
} }
else else
{ {
$directory = $this->root_path . 'portal/modules/';
$portal_modules = obtain_portal_modules(); $portal_modules = obtain_portal_modules();
foreach($portal_modules as $row) foreach($portal_modules as $row)
{ {
if (!isset($this->modules[$row['module_classname']])) if (!isset($this->modules[$row['module_classname']]))
{ {
$class = 'portal_' . $row['module_classname'] . '_module'; continue;
if (!class_exists($class))
{
include($directory . 'portal_' . $row['module_classname'] . '.' . $this->php_ex);
}
if (class_exists($class))
{
$this->c_class = new $class();
}
else
{
continue;
}
} }
else else
{ {
@@ -1207,25 +1115,19 @@ class portal_module
$module_data = $this->db->sql_fetchrow($result); $module_data = $this->db->sql_fetchrow($result);
$this->db->sql_freeresult($result); $this->db->sql_freeresult($result);
$directory = $this->root_path . 'portal/modules/';
if ($module_data !== false) if ($module_data !== false)
{ {
$module_classname = request_var('module_classname', ''); $module_classname = request_var('module_classname', '');
$class = 'portal_' . $module_classname . '_module';
if (!class_exists($class)) if (!isset($this->modules[$module_classname]))
{
include($directory . 'portal_' . $module_classname . '.' . $this->php_ex);
}
if (!class_exists($class))
{ {
trigger_error('CLASS_NOT_FOUND', E_USER_ERROR); trigger_error('CLASS_NOT_FOUND', E_USER_ERROR);
} }
if (confirm_box(true)) if (confirm_box(true))
{ {
$this->c_class = new $class(); $this->c_class = $this->modules[$module_classname];
$this->c_class->uninstall($module_data['module_id']); $this->c_class->uninstall($module_data['module_id'], $this->db);
$sql = 'DELETE FROM ' . PORTAL_MODULES_TABLE . ' $sql = 'DELETE FROM ' . PORTAL_MODULES_TABLE . '
WHERE module_id = ' . (int) $module_id; WHERE module_id = ' . (int) $module_id;
@@ -1243,10 +1145,10 @@ class portal_module
} }
else else
{ {
$this->c_class = new $class(); $this->c_class = $this->modules[$module_classname];
if ($this->c_class->language) if ($this->c_class->get_language())
{ {
$this->user->add_lang('mods/portal/' . $this->c_class->language); $this->user->add_lang_ext('board3/portal', 'mods/portal/' . $this->c_class->get_language());
} }
$confirm_text = (isset($this->user->lang[$module_data['module_name']])) ? sprintf($this->user->lang['DELETE_MODULE_CONFIRM'], $this->user->lang[$module_data['module_name']]) : sprintf($this->user->lang['DELETE_MODULE_CONFIRM'], utf8_normalize_nfc($module_data['module_name'])); $confirm_text = (isset($this->user->lang[$module_data['module_name']])) ? sprintf($this->user->lang['DELETE_MODULE_CONFIRM'], $this->user->lang[$module_data['module_name']]) : sprintf($this->user->lang['DELETE_MODULE_CONFIRM'], utf8_normalize_nfc($module_data['module_name']));
confirm_box(false, $confirm_text, build_hidden_fields(array( confirm_box(false, $confirm_text, build_hidden_fields(array(