← Back to Modification Graveyard

Group Plugins by Product in the ACP Plugin Manager
Mod Version: 1.01, by Paul M

This thread is in the Modification Graveyard.
vB Version: 3.5.x Rating: (1 vote - 5.00 average) Installs: 15
Released: 05 Nov 2005 Last Update: Never Downloads: 19
Not Supported  

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&amp;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&amp;pluginid=$plugin[pluginid]") .
            
construct_link_code($vbphrase['delete'], "plugin.php?" . $vbulletin->session->vars['sessionurl'] . "do=delete&amp;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&amp;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&amp;pluginid=$plugin[pluginid]") .
            
construct_link_code($vbphrase['delete'], "plugin.php?" . $vbulletin->session->vars['sessionurl'] . "do=delete&amp;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.

Download

This modification cannot be downloaded.

Screenshots

 


vblts.ru supports vBulletin®, 2022-2025