/* Only play with the plugin if there is something to play with */ echo '<script type="text/javascript">location.href = \'' . $serendipity['baseurl'] . '?serendipity[adminModule]=plugins&serendipity[plugin_to_conf]=' . $inst . '\';</script>'; die; } else { /* If no config is available, redirect to plugin overview, because we do not want that a user can install the plugin a second time via accidental browser refresh */ echo '<script type="text/javascript">location.href = \'' . $serendipity['baseurl'] . '?serendipity[adminModule]=plugins\';</script>'; die; } } } if (isset($_POST['REMOVE']) && serendipity_checkFormToken()) { if (is_array($_POST['serendipity']['plugin_to_remove'])) { foreach ($_POST['serendipity']['plugin_to_remove'] as $key) { $plugin =& serendipity_plugin_api::load_plugin($key); if ($plugin->serendipity_owner == '0' || $plugin->serendipity_owner == $serendipity['authorid'] || serendipity_checkPermission('adminPluginsMaintainOthers')) { serendipity_plugin_api::remove_plugin_instance($key); } } } } ?> <?php if (isset($_POST['SAVE'])) { ?> <div class="serendipityAdminMsgSuccess"><img style="width: 22px; height: 22px; border: 0px; padding-right: 4px; vertical-align: middle" src="<?php echo serendipity_getTemplateFile('admin/img/admin_msg_success.png'); ?> " alt="" /><?php echo DONE . ': ' . sprintf(SETTINGS_SAVED_AT, serendipity_strftime('%H:%M:%S')); ?>
/** * Auto-Register dependencies of a plugin * * This method evaluates the "dependencies" member variable to check which plugins need to be installed. * * @access public * @param boolean If true, a depending plugin will be removed when this plugin is uninstalled * @param int The owner id of the current plugin * @return true */ function register_dependencies($remove = false, $authorid = '0') { global $serendipity; if (isset($this->dependencies) && is_array($this->dependencies)) { if ($remove) { $dependencies = @explode(';', $this->get_config('dependencies')); $modes = @explode(';', $this->get_config('dependency_modes')); if (!empty($dependencies) && is_array($dependencies)) { foreach ($dependencies as $idx => $dependency) { if ($modes[$idx] == 'remove' && serendipity_plugin_api::exists($dependency)) { serendipity_plugin_api::remove_plugin_instance($dependency); } } } } else { $keys = array(); $modes = array(); foreach ($this->dependencies as $dependency => $mode) { $exists = serendipity_plugin_api::exists($dependency); if (!$exists) { if (serendipity_plugin_api::is_event_plugin($dependency)) { $keys[] = serendipity_plugin_api::autodetect_instance($dependency, $authorid, true); } else { $keys[] = serendipity_plugin_api::autodetect_instance($dependency, $authorid, false); } } else { $keys[] = $exists; } $modes[] = $mode; } $this->set_config('dependencies', implode(';', $keys)); $this->set_config('dependency_modes', implode(';', $modes)); } } return true; }