Update of /cvsroot/php-blog/serendipity/include/admin
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10943/include/admin
Modified Files:
plugins.inc.php
Log Message:
Rewrote how s9y fetches external plugins: The path setting is now irrelevant,
only filenames count. They can be placed in any subdirectory as long as their
name matches *_(plugin|event)_*.php. This allows plugin authors to put one
ore more event/sidebar plugin into one bundled directory and reduces swamping
the plugins directory.
Needed to adjust several calls, but it seems to work well.
Requires DB scheme update.
Index: plugins.inc.php
===================================================================
RCS file: /cvsroot/php-blog/serendipity/include/admin/plugins.inc.php,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -d -r1.5 -r1.6
--- plugins.inc.php 3 Dec 2004 14:46:50 -0000 1.5
+++ plugins.inc.php 6 Dec 2004 10:46:32 -0000 1.6
@@ -499,21 +499,22 @@
$errorstack = $pluginstack = array();
$classes = serendipity_plugin_api::enum_plugin_classes(($serendipity['GET']['type'] == 'event'));
- foreach ($classes as $class_name) {
- $plugin =& serendipity_plugin_api::load_plugin($class_name);
+ foreach ($classes as $class_data) {
+ $plugin =& serendipity_plugin_api::load_plugin($class_data['name'], null, $class_data['pluginPath']);
if (is_object($plugin)) {
$bag = new serendipity_property_bag;
$plugin->introspect($bag);
- $pluginstack[] = array('plugin_class' => $class_name,
+ $pluginstack[] = array('plugin_class' => $class_data['name'],
'class_name' => get_class($plugin),
'name' => $bag->get('name'),
'desc' => $bag->get('description'),
- 'installable' => !($bag->get('stackable') === false && in_array($class_name, $plugins)),
+ 'installable' => !($bag->get('stackable') === false && in_array($class_data['name'], $plugins)),
'author' => $bag->get('author'),
'version' => $bag->get('version'),
- 'website' => $bag->get('website'));
+ 'website' => $bag->get('website'),
+ 'pluginPath' => $class_data['pluginPath']);
} else {
- $errorstack[] = $class_name;
+ $errorstack[] = $class_data['name'];
}
}
usort($pluginstack, 'serendipity_pluginListSort');
@@ -542,7 +543,7 @@
<td><strong><?php echo $plug['name'] ?></strong></td>
<td width="100" align="center" valign="middle" rowspan="3">
<?php if ( $plug['installable'] == true ) { ?>
- <a href="?serendipity[adminModule]=plugins&serendipity[install_plugin]=<?php echo $plug['plugin_class'] ?>"><?php echo INSTALL ?></a>
+ <a href="?serendipity[adminModule]=plugins&serendipity[pluginPath]=<?php echo $plug['pluginPath']; ?>&serendipity[install_plugin]=<?php echo $plug['plugin_class'] ?>"><?php echo INSTALL ?></a>
<?php } else { ?>
<span style="color: #cccccc"><?php echo ALREADY_INSTALLED ?></span>
<?php } ?>
@@ -588,7 +589,7 @@
$authorid = '0';
}
- $inst = serendipity_plugin_api::create_plugin_instance($serendipity['GET']['install_plugin'], null, (serendipity_plugin_api::is_event_plugin($serendipity['GET']['install_plugin']) ? 'event': 'right'), $authorid);
+ $inst = serendipity_plugin_api::create_plugin_instance($serendipity['GET']['install_plugin'], null, (serendipity_plugin_api::is_event_plugin($serendipity['GET']['install_plugin']) ? 'event': 'right'), $authorid, serendipity_db_escape_string($serendipity['GET']['pluginPath']));
/* Load the new plugin */
$plugin = &serendipity_plugin_api::load_plugin($inst);
|