mirror of
https://github.com/e107inc/e107.git
synced 2025-08-03 13:17:24 +02:00
Fix for duplicate messages and plugin install issue.
This commit is contained in:
@@ -190,6 +190,7 @@ class eMessage
|
|||||||
{
|
{
|
||||||
$message = array($message);
|
$message = array($message);
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach ($message as $m)
|
foreach ($message as $m)
|
||||||
{
|
{
|
||||||
$this->add(array($m, $mstack), $type, $session);
|
$this->add(array($m, $mstack), $type, $session);
|
||||||
@@ -430,7 +431,7 @@ class eMessage
|
|||||||
$this->mergeWithSession(true, $mstack);
|
$this->mergeWithSession(true, $mstack);
|
||||||
}
|
}
|
||||||
$ret = array();
|
$ret = array();
|
||||||
|
$unique = array();
|
||||||
foreach ($this->_get_types() as $type)
|
foreach ($this->_get_types() as $type)
|
||||||
{
|
{
|
||||||
if(E_MESSAGE_DEBUG === $type && !deftrue('E107_DEBUG_LEVEL'))
|
if(E_MESSAGE_DEBUG === $type && !deftrue('E107_DEBUG_LEVEL'))
|
||||||
@@ -448,7 +449,7 @@ class eMessage
|
|||||||
if($reset) $this->reset(false, $mstack);
|
if($reset) $this->reset(false, $mstack);
|
||||||
if(true === $raw || empty($ret)) return ($raw ? $ret : '');
|
if(true === $raw || empty($ret)) return ($raw ? $ret : '');
|
||||||
|
|
||||||
//changed to class
|
|
||||||
return "
|
return "
|
||||||
<div class='s-message'>
|
<div class='s-message'>
|
||||||
".implode("\n", $ret)."
|
".implode("\n", $ret)."
|
||||||
@@ -469,6 +470,7 @@ class eMessage
|
|||||||
if (empty($message)) return '';
|
if (empty($message)) return '';
|
||||||
elseif (is_array($message))
|
elseif (is_array($message))
|
||||||
{
|
{
|
||||||
|
$message = array_unique($message); // quick fix for duplicates.
|
||||||
$message = "<div class='s-message-item'>".implode("</div>\n<div class='s-message-item'>", $message)."</div>";
|
$message = "<div class='s-message-item'>".implode("</div>\n<div class='s-message-item'>", $message)."</div>";
|
||||||
}
|
}
|
||||||
return "
|
return "
|
||||||
|
@@ -1175,38 +1175,6 @@ class e107plugin
|
|||||||
$canContinue = FALSE;
|
$canContinue = FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* NEW upgrade XML - Not required.
|
|
||||||
* higher priority -> from-to version upgrade XML - e.g. upgrade/upgrade_1.0-1.1.xml (v1.0 to v1.1 only)
|
|
||||||
* when above not present -> generic version upgrade XML - e.g. upgrade/upgrade_1.1.xml (all prior versions to v1.1)
|
|
||||||
* last checked -> generic upgrade file - plugName/plugin_upgrade.xml (all version)
|
|
||||||
* All upgrade XMLs are optional BUT recommended (at least plugin_upgrade.xml)
|
|
||||||
* The reason is plugin prefs will be reset to default values, user classes will be duplicated etx if plugin.xml is used
|
|
||||||
* To avoid this, put upgrade XML with basic data nodes (version, description, category, author etc)
|
|
||||||
*/
|
|
||||||
/*
|
|
||||||
if ($canContinue && $function === 'upgrade')
|
|
||||||
{
|
|
||||||
$found = false;
|
|
||||||
$search = array(
|
|
||||||
'upgrade/upgrade_'.$this->current_plug['plugin_version'].'-'.$this->plug_vars['@attributes']['version'].'.xml',
|
|
||||||
'upgrade/upgrade_'.$this->plug_vars['@attributes']['version'].'.xml',
|
|
||||||
'plugin_upgrade.xml',
|
|
||||||
);
|
|
||||||
foreach ($search as $case)
|
|
||||||
{
|
|
||||||
if(file_exists($path.$case) && is_readable($path.$case) && $this->parse_plugin_xml($plug['plugin_path'], $case))
|
|
||||||
{
|
|
||||||
// TODO - lan
|
|
||||||
$mes->addSuccess('Upgrade using '.$case);
|
|
||||||
$plug_vars = $this->plug_vars;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
* */
|
|
||||||
// END upgrade XML
|
|
||||||
|
|
||||||
if (varset($plug_vars['languageFiles']))
|
if (varset($plug_vars['languageFiles']))
|
||||||
{
|
{
|
||||||
$this->XmlLanguageFiles($function, $plug_vars['languageFiles'], 'pre'); // First of all, see if there's a language file specific to install
|
$this->XmlLanguageFiles($function, $plug_vars['languageFiles'], 'pre'); // First of all, see if there's a language file specific to install
|
||||||
@@ -1225,45 +1193,17 @@ class e107plugin
|
|||||||
|
|
||||||
// All the dependencies are OK - can start the install now
|
// All the dependencies are OK - can start the install now
|
||||||
|
|
||||||
if ($canContinue)
|
if ($canContinue) // Run custom {plugin}_setup install/upgrade etc. for INSERT, ALTER etc. etc. etc.
|
||||||
{
|
{
|
||||||
$ret = $this->execute_function($path, $function, 'pre');
|
$ret = $this->execute_function($path, $function, 'pre');
|
||||||
if (!is_bool($ret))
|
if (!is_bool($ret))
|
||||||
$txt .= $ret;
|
$txt .= $ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* XXX - sql upgrade draft - we need better 'parse sql' support, INSERTs, ALTERs, etc
|
|
||||||
* NEW upgrade SQL - ALREADY EXISTS - use upgrade_pre($var) OR upgrade_post() methods in the {plugin}_setup.php file.
|
|
||||||
* All upgrade sql scripts are optional, if not found system is using the auto detection mode (diff against main sql file)
|
|
||||||
* ONLY table CONTENT should be changed with this.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
// Handle tables
|
||||||
$doSql = true;
|
if ($canContinue && count($sql_list)) // TODO - move to it's own function. XmlTables().
|
||||||
if($canContinue && $function === 'upgrade')
|
|
||||||
{
|
{
|
||||||
$search = array(
|
|
||||||
'upgrade/sql_'.$this->current_plug['plugin_version'].'-'.$this->plug_vars['@attributes']['version'].'.php',
|
|
||||||
'upgrade/sql_'.$this->plug_vars['@attributes']['version'].'.php',
|
|
||||||
);
|
|
||||||
foreach ($search as $case)
|
|
||||||
{
|
|
||||||
if(file_exists($path.$case) && is_readable($path.$case) && $this->parse_plugin_xml($plug['plugin_path'], $case))
|
|
||||||
{
|
|
||||||
// TODO - lan
|
|
||||||
$mes->addSuccess('(draft) Upgrade using '.$case);
|
|
||||||
$doSql = false;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
if ($canContinue && $doSql && count($sql_list)) // TODO - move to it's own function.
|
|
||||||
|
|
||||||
{ // Handle tables
|
|
||||||
|
|
||||||
require_once(e_HANDLER.'db_table_admin_class.php');
|
require_once(e_HANDLER.'db_table_admin_class.php');
|
||||||
$dbHandler = new db_table_admin;
|
$dbHandler = new db_table_admin;
|
||||||
@@ -1283,7 +1223,7 @@ class e107plugin
|
|||||||
{
|
{
|
||||||
case 'install':
|
case 'install':
|
||||||
$sqlTable = str_replace("CREATE TABLE ".MPREFIX.'`', "CREATE TABLE `".MPREFIX, preg_replace("/create table\s+/si", "CREATE TABLE ".MPREFIX, $ct[0]));
|
$sqlTable = str_replace("CREATE TABLE ".MPREFIX.'`', "CREATE TABLE `".MPREFIX, preg_replace("/create table\s+/si", "CREATE TABLE ".MPREFIX, $ct[0]));
|
||||||
$txt = "Adding table: {$ct[1]} ... ";
|
$txt = "Adding Table: {$ct[1]} ... ";
|
||||||
$status = $this->manage_tables('add', array($sqlTable)) ? E_MESSAGE_SUCCESS : E_MESSAGE_ERROR; // Pass the statement to create the table
|
$status = $this->manage_tables('add', array($sqlTable)) ? E_MESSAGE_SUCCESS : E_MESSAGE_ERROR; // Pass the statement to create the table
|
||||||
$mes->add($txt, $status);
|
$mes->add($txt, $status);
|
||||||
break;
|
break;
|
||||||
@@ -1291,7 +1231,7 @@ class e107plugin
|
|||||||
$tmp = $dbHandler->update_table_structure($ct, FALSE, TRUE, $pref['multilanguage']);
|
$tmp = $dbHandler->update_table_structure($ct, FALSE, TRUE, $pref['multilanguage']);
|
||||||
if ($tmp === FALSE)
|
if ($tmp === FALSE)
|
||||||
{
|
{
|
||||||
$error[] = 'Error updating table: '.$ct[1];
|
$error[] = 'Error Updating Table: '.$ct[1];
|
||||||
}
|
}
|
||||||
elseif ($tmp !== TRUE)
|
elseif ($tmp !== TRUE)
|
||||||
{
|
{
|
||||||
@@ -1303,7 +1243,7 @@ class e107plugin
|
|||||||
case 'uninstall':
|
case 'uninstall':
|
||||||
if (vartrue($options['delete_tables'], FALSE))
|
if (vartrue($options['delete_tables'], FALSE))
|
||||||
{
|
{
|
||||||
$txt = "Removing table {$ct[1]} <br />";
|
$txt = "Removing Table: {$ct[1]} <br />";
|
||||||
$status = $this->manage_tables('remove', array($ct[1])) ? E_MESSAGE_SUCCESS : E_MESSAGE_ERROR; // Delete the table
|
$status = $this->manage_tables('remove', array($ct[1])) ? E_MESSAGE_SUCCESS : E_MESSAGE_ERROR; // Delete the table
|
||||||
$mes->add($txt, $status);
|
$mes->add($txt, $status);
|
||||||
}
|
}
|
||||||
@@ -1408,8 +1348,9 @@ class e107plugin
|
|||||||
}
|
}
|
||||||
}*/
|
}*/
|
||||||
|
|
||||||
if (!$this->execute_function($path, $function, 'post')) // Call any custom post functions defined in <plugin>_setup.php or the deprecated <management> section
|
// Run custom {plugin}_setup install/upgrade etc. for INSERT, ALTER etc. etc. etc.
|
||||||
|
// Call any custom post functions defined in <plugin>_setup.php or the deprecated <management> section
|
||||||
|
if (!$this->execute_function($path, $function, 'post'))
|
||||||
{
|
{
|
||||||
if ($function == 'install')
|
if ($function == 'install')
|
||||||
{
|
{
|
||||||
@@ -1427,6 +1368,17 @@ class e107plugin
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Placeholder.
|
||||||
|
function XmlTables($data)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Process XML Tag <dependencies> (deprecated 'depend' which is a brand of adult diapers)
|
* Process XML Tag <dependencies> (deprecated 'depend' which is a brand of adult diapers)
|
||||||
* @param array $tag
|
* @param array $tag
|
||||||
|
Reference in New Issue
Block a user