if (!empty($_GET['reg_ext'])) {
// We are about to register a new extension
- $do = "register"; $id = $_GET['reg_ext'];
+ $do = "register"; $ext_id = bigintval($_GET['reg_ext']);
// The ID comes from task management and it is - of course - *not* the extension's name!
} elseif ((isset($_POST['change'])) && ($SEL > 0) && (!IS_DEMO())) {
// De-/activate extensions
- foreach ($_POST['sel'] as $id => $active) {
+ foreach ($_POST['sel'] as $ext_id => $active) {
// Shall we keep the extension always active?
- if ((isset($cacheArray['active_extensions'][GET_EXT_NAME($id)])) && ($cacheArray['active_extensions'][GET_EXT_NAME($id)] == "Y") && ($active == "N")) {
+ if ((isset($cacheArray['active_extensions'][GET_EXT_NAME($ext_id)])) && ($cacheArray['active_extensions'][GET_EXT_NAME($ext_id)] == "Y") && ($active == "N")) {
// Keep this extension active!
} else {
// De/activate extension
$ACT = "N"; $EXT_LOAD_MODE = "deactivate";
if ($active == "N") { $ACT = "Y"; $EXT_LOAD_MODE = "activate"; }
- $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_extensions SET ext_active='".$ACT."' WHERE id=%s AND ext_active='%s' LIMIT 1",
- array(bigintval($id), $active), __FILE__, __LINE__);
+ SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_extensions SET ext_active='".$ACT."' WHERE id=%s AND ext_active='%s' LIMIT 1",
+ array(bigintval($ext_id), $active), __FILE__, __LINE__);
// Run embeded SQL commands
- EXTENSION_RUN_SQLS($id, $EXT_LOAD_MODE);
+ EXTENSION_RUN_SQLS($ext_id, $EXT_LOAD_MODE);
}
}
} elseif (((isset($_POST['edit'])) || (isset($_POST['modify']))) && ($SEL > 0) && (!IS_DEMO())) {
if (isset($_POST['modify'])) {
// Change entries
$cache_update = 0;
- foreach ($_POST['sel'] as $id => $sel) {
+ foreach ($_POST['sel'] as $ext_id => $sel) {
// Secure ID
- $id = bigintval($id);
+ $ext_id = bigintval($ext_id);
// Change this extension?
if ($sel == 1) {
// Update extension's record
- $active = $_POST['active'][$id];
+ $active = $_POST['active'][$ext_id];
if (GET_EXT_VERSION("sql_patches") >= "0.0.6") {
// Update also CSS column when extensions sql_patches is newer or exact v0.0.6
- $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_extensions SET ext_has_css='%s', ext_active='%s' WHERE id=%s LIMIT 1",
- array($_POST['css'][$id], $active, $id), __FILE__, __LINE__);
+ SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_extensions SET ext_has_css='%s', ext_active='%s' WHERE id=%s LIMIT 1",
+ array($_POST['css'][$ext_id], $active, $ext_id), __FILE__, __LINE__);
} else {
// When extension is older than v0.0.6 there is no column for the CSS information
- $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_extensions SET ext_active='%s' WHERE id=%s LIMIT 1",
- array($active, $id), __FILE__, __LINE__);
+ SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_extensions SET ext_active='%s' WHERE id=%s LIMIT 1",
+ array($active, $ext_id), __FILE__, __LINE__);
}
// Run SQLs on activation / deactivation
switch ($active) {
- case 'Y': $EXT_LOAD_MODE = "activate"; break;
- case 'N': $EXT_LOAD_MODE = "deactivate"; break;
+ case "Y": $EXT_LOAD_MODE = "activate"; break;
+ case "N": $EXT_LOAD_MODE = "deactivate"; break;
}
// Run embeded SQL commands
- EXTENSION_RUN_SQLS($id, $EXT_LOAD_MODE);
+ EXTENSION_RUN_SQLS($ext_id, $EXT_LOAD_MODE);
}
}
} else {
// Edit selected entries
$SW = "2"; $OUT = "";
- foreach ($_POST['sel'] as $id => $sel) {
+ foreach ($_POST['sel'] as $ext_id => $sel) {
// Edit this extension?
if (($sel == "Y") || ($sel == "N")) {
// Load required data
if (GET_EXT_VERSION("sql_patches") >= "0.0.6") {
$result = SQL_QUERY_ESC("SELECT ext_name, ext_has_css, ext_active FROM "._MYSQL_PREFIX."_extensions WHERE id=%s LIMIT 1",
- array(bigintval($id)), __FILE__, __LINE__);
+ array(bigintval($ext_id)), __FILE__, __LINE__);
list($name, $css, $active) = SQL_FETCHROW($result);
SQL_FREERESULT($result);
} else {
$result = SQL_QUERY_ESC("SELECT ext_name, ext_active FROM "._MYSQL_PREFIX."_extensions WHERE id=%s LIMIT 1",
- array(bigintval($id)), __FILE__, __LINE__);
+ array(bigintval($ext_id)), __FILE__, __LINE__);
list($name, $active) = SQL_FETCHROW($result);
SQL_FREERESULT($result);
$css = "X";
// Output row
$CSS = "---";
- if (GET_EXT_VERSION("sql_patches") >= "0.0.6") $CSS = ADD_SELECTION("yn", $css, "css", $id);
+ if (GET_EXT_VERSION("sql_patches") >= "0.0.6") $CSS = ADD_SELECTION("yn", $css, "css", $ext_id);
// Prepare data for the row template
$content = array(
'sw' => $SW,
- 'id' => $id,
+ 'id' => $ext_id,
'name' => $name,
- 'active' => ADD_SELECTION("yn", $active, "active", $id),
+ 'active' => ADD_SELECTION("yn", $active, "active", $ext_id),
'css' => $CSS,
);
} elseif ((isset($_POST['delete'])) && ($SEL > 0) && (!IS_DEMO())) {
// List extensions and when verbose is enabled SQL statements which will be executed
$SW = 2; $OUT = "";
- foreach ($_POST['sel'] as $id => $sel) {
+ foreach ($_POST['sel'] as $ext_id => $sel) {
// Init variables
$VERBOSE_OUT = ""; $SQLs = array();
// Secure id number
- $id = bigintval($id);
+ $ext_id = bigintval($ext_id);
// Get extension name
- $ext_name = GET_EXT_NAME($id);
- $ext_ver = GET_EXT_VERSION($ext_name);
+ $ext_name = GET_EXT_NAME($ext_id);
- if ($_CONFIG['verbose_sql']) {
+ if (getConfig('verbose_sql') == "Y") {
// Load SQL commands in remove mode
- $EXT_LOAD_MODE = "remove";
- $EXT_ALWAYS_ACTIVE = "N";
- $file = sprintf("%sinc/extensions/ext-%s.php", PATH, $ext_name);
- if (FILE_READABLE($file)) {
- // Load file
- include($file);
-
+ if (LOAD_EXTENSION($ext_name, "remove", "", true, $SQLs)) {
// Generate extra table with loaded SQL commands
$VERBOSE_OUT = EXTENSION_VERBOSE_TABLE($SQLs);
- }
+ } // END - if
} // END - if
// Prepare data for the row template
$content = array(
'sw' => $SW,
- 'id' => $id,
+ 'id' => $ext_id,
'ext_name' => $ext_name,
- 'ext_ver' => $ext_ver,
+ 'ext_ver' => GET_EXT_VERSION($ext_name),
'verbose' => $VERBOSE_OUT
);
} elseif ((isset($_POST['remove'])) && ($SEL > 0) && (!IS_DEMO())) {
// Remove extensions from DB (you have to delete all files manually!)
$cache_update = 0;
- foreach ($_POST['sel'] as $id => $active) {
+ foreach ($_POST['sel'] as $ext_id => $active) {
// Secure ID number
- $id = bigintval($id);
+ $ext_id = bigintval($ext_id);
// Is this extension selected?
if ($active == 1) {
+ // Run any assigned removal filters
+ RUN_FILTER('extension_remove', GET_EXT_NAME($ext_id));
+
// Run embeded SQL commands
- EXTENSION_RUN_SQLS($id, "remove");
+ EXTENSION_RUN_SQLS($ext_id, "remove");
} // END - if
} // END - foreach
} elseif (!empty($_GET['do']) && (!IS_DEMO())) {
break;
case "register": // Register new extension
- $result = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_task_system WHERE assigned_admin='%s' AND task_type='EXTENSION' LIMIT 1",
- array(bigintval(GET_ADMIN_ID(get_session('admin_login')))), __FILE__, __LINE__);
+ $result = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_task_system WHERE assigned_admin=%s AND task_type='EXTENSION' LIMIT 1",
+ array(GET_CURRENT_ADMIN_ID()), __FILE__, __LINE__);
$task_found = SQL_NUMROWS($result);
// Free result
SQL_FREERESULT($result);
// Is the ID number valid and the task was found?
- if (($id > 0) && ($task_found == 1)) {
+ if (($ext_id > 0) && ($task_found == 1)) {
// ID is valid so begin with registration, we first want to it's real name from task management (subject column)
$result = SQL_QUERY_ESC("SELECT subject FROM "._MYSQL_PREFIX."_task_system WHERE id=%s LIMIT 1",
- array(bigintval($id)), __FILE__, __LINE__);
+ array(bigintval($ext_id)), __FILE__, __LINE__);
list($subj) = SQL_FETCHROW($result);
SQL_FREERESULT($result);
$ext_name = trim(substr($subj, 1, strpos($subj, ":") - 1));
// Test the extension for deprecation
- $EXT_DEPRECATED = "N"; $EXT_LOAD_MODE = "";
- include(PATH."inc/extensions/ext-".$ext_name.".php");
+ global $EXT_DEPRECATED;
+ LOAD_EXTENSION($ext_name, "test");
// Is the extension deprecated?
if ($EXT_DEPRECATED == "N") {
// ... so we can finally register and load it in registration mode
- $status = EXTENSION_REGISTER($ext_name, $id);
+ $status = EXTENSION_REGISTER($ext_name, $ext_id);
if ($status == true) {
// Extension was found and successfully registered
LOAD_TEMPLATE("admin_settings_saved", false, ADMIN_EXTENSION_REGISTERED);