Paul M |
11-04-2005 10:00 PM |
Group Plugins by Product in the ACP Plugin Manager
This modification is no longer available or supported.
Having upgraded to vb 3.5.1 and now having over 60 plugins across 15 products I finally got fed up of the current way they are displayed so I simply switched the Products/Hooks around in the display to group plugins [for a product] together. Much easier to see what's related this way.
Simply find this section of code in the admincp/plugin.php file ;
PHP Code:
if ($_REQUEST['do'] == 'modify')
{
$products = fetch_product_list(true);
print_form_header('plugin', 'updateactive');
print_table_header($vbphrase['plugin_system'], 4);
print_cells_row(array($vbphrase['title'], $vbphrase['product'], $vbphrase['active'], $vbphrase['controls']), 1);
$plugins = $db->query_read("SELECT * FROM " . TABLE_PREFIX . "plugin ORDER BY hookname, title");
$prevhook = '';
while ($plugin = $db->fetch_array($plugins))
{
if ($plugin['hookname'] != $prevhook)
{
$prevhook = $plugin['hookname'];
print_description_row("$vbphrase[hook_location] : " . $plugin['hookname'], 0, 4, 'tfoot');
}
$product = $products[($plugin['product'] ? $plugin['product'] : 'vbulletin')];
if (!$product)
{
$product = array('title' => "<em>$plugin[product]</em>", 'active' => 1);
}
if (!$product['active'])
{
$product['title'] = "<strike>$product[title]</strike>";
}
$title = htmlspecialchars_uni($plugin['title']);
$title = ($plugin['active'] AND $product['active']) ? $title : "<strike>$title</strike>";
print_cells_row(array(
"<a href=\"plugin.php?" . $vbulletin->session->vars['sessionurl'] . "do=edit&pluginid=$plugin[pluginid]\">$title</a>",
$product['title'],
"<input type=\"checkbox\" name=\"active[$plugin[pluginid]]\" value=\"1\"" . ($plugin['active'] ? ' checked="checked"' : '') . " />",
construct_link_code($vbphrase['edit'], "plugin.php?" . $vbulletin->session->vars['sessionurl'] . "do=edit&pluginid=$plugin[pluginid]") .
construct_link_code($vbphrase['delete'], "plugin.php?" . $vbulletin->session->vars['sessionurl'] . "do=delete&pluginid=$plugin[pluginid]")
));
}
print_submit_row($vbphrase['save_active_status'], false, 4);
echo '<p align="center">' . construct_link_code($vbphrase['add_new_plugin'], "plugin.php?" . $vbulletin->session->vars['sessionurl'] . "do=add") . '</p>';
}
and replace it with this ;
PHP Code:
if ($_REQUEST['do'] == 'modify')
{
$products = fetch_product_list(true);
print_form_header('plugin', 'updateactive');
print_table_header($vbphrase['plugin_system'], 4);
print_cells_row(array($vbphrase['title'], $vbphrase['hook_location'], $vbphrase['active'], $vbphrase['controls']), 1);
$plugins = $db->query_read("SELECT * FROM " . TABLE_PREFIX . "plugin ORDER BY product, hookname, title");
$prevhook = '';
while ($plugin = $db->fetch_array($plugins))
{
$product = $products[($plugin['product'] ? $plugin['product'] : 'vbulletin')];
if ($plugin['product'] != $prevhook)
{
$prevhook = $plugin['product'];
print_description_row("(" . $plugin['product'] . ") : " . $product['title'], 0, 4, 'tfoot');
}
if (!$product)
{
$product = array('title' => "<em>$plugin[product]</em>", 'active' => 1);
}
if (!$product['active'])
{
$product['title'] = "<strike>$product[title]</strike>";
}
$title = htmlspecialchars_uni($plugin['title']);
$title = ($plugin['active'] AND $product['active']) ? $title : "<strike>$title</strike>";
print_cells_row(array(
"<a href=\"plugin.php?" . $vbulletin->session->vars['sessionurl'] . "do=edit&pluginid=$plugin[pluginid]\">$title</a>",
$plugin['hookname'],
"<input type=\"checkbox\" name=\"active[$plugin[pluginid]]\" value=\"1\"" . ($plugin['active'] ? ' checked="checked"' : '') . " />",
construct_link_code($vbphrase['edit'], "plugin.php?" . $vbulletin->session->vars['sessionurl'] . "do=edit&pluginid=$plugin[pluginid]") .
construct_link_code($vbphrase['delete'], "plugin.php?" . $vbulletin->session->vars['sessionurl'] . "do=delete&pluginid=$plugin[pluginid]")
));
}
print_submit_row($vbphrase['save_active_status'], false, 4);
echo '<p align="center">' . construct_link_code($vbphrase['add_new_plugin'], "plugin.php?" . $vbulletin->session->vars['sessionurl'] . "do=add") . '</p>';
}
That's it, job done. :)
History:
v1.01 : First Release.
|