Add support for 'navlink' hooks in the plugin architecture.
authorLeonardo Sapiras <l.sapiras@gmail.com>
Wed, 4 Jan 2012 00:00:09 +0000 (01:00 +0100)
committerJehan-Guillaume (ioguix) de Rorthais <ioguix@free.fr>
Wed, 22 Aug 2012 10:26:04 +0000 (12:26 +0200)
By Leonardo Sapiras during the GSoC 2011. Reviewed, massively patched,
fixed, integrated and commited by ioguix

30 files changed:
aggregates.php
all_db.php
classes/Misc.php
classes/PluginManager.php
colproperties.php
constraints.php
display.php
domains.php
fulltext.php
functions.php
groups.php
history.php
indexes.php
operators.php
privileges.php
reports.php
roles.php
rules.php
schemas.php
sequences.php
servers.php
sql.php
tables.php
tablespaces.php
tblproperties.php
triggers.php
types.php
users.php
viewproperties.php
views.php

index 3f55f29525cdd451c9f002febf0854a074accd1f..fdf10223813f9c5a799333f241ea6bc61a21a226 100644 (file)
                }
                else echo "<p>{$lang['strnodata']}</p>\n";
 
-               echo "<ul class=\"navlink\">\n\t<li><a class=\"navlink\" href=\"aggregates.php?{$misc->href}\">{$lang['straggrshowall']}</a></li>\n";
+               $navlinks = array (
+                       array (
+                               'attr'=> array (
+                                       'href' => array (
+                                               'url' => 'aggregates.php',
+                                               'urlvars' => array (
+                                                       'server' => $_REQUEST['server'],
+                                                       'database' => $_REQUEST['database'],
+                                                       'schema' => $_REQUEST['schema']
+                                               )
+                                       )
+                               ),
+                               'content' => $lang['straggrshowall']
+                       )
+               );
+
                if ($data->hasAlterAggregate()) {
-               echo "\t<li><a class=\"navlink\" href=\"aggregates.php?action=alter&amp;{$misc->href}&amp;aggrname=", 
-                       urlencode($_REQUEST['aggrname']), "&amp;aggrtype=", urlencode($_REQUEST['aggrtype']), "\">{$lang['stralter']}</a></li>\n";
+                       $navlinks[] = array (
+                               'attr'=> array (
+                                       'href' => array (
+                                               'url' => 'aggregates.php',
+                                               'urlvars' => array (
+                                                       'action' => 'alter',
+                                                       'server' => $_REQUEST['server'],
+                                                       'database' => $_REQUEST['database'],
+                                                       'schema' => $_REQUEST['schema'],
+                                                       'aggrname' => $_REQUEST['aggrname'],
+                                                       'aggrtype' => $_REQUEST['aggrtype']
+                                               )
+                                       )
+                               ),
+                               'content' => $lang['stralter']
+                       );
                }
-               echo "\t<li><a class=\"navlink\" href=\"aggregates.php?action=confirm_drop&amp;{$misc->href}&amp;aggrname=",
-                       urlencode($_REQUEST['aggrname']), "&amp;aggrtype=", urlencode($_REQUEST['aggrtype']), "\">{$lang['strdrop']}</a></li>\n</ul>\n";
+
+               $navlinks[] = array (
+                       'attr'=> array (
+                               'href' => array (
+                                       'url' => 'aggregates.php',
+                                       'urlvars' => array (
+                                               'action' => 'confirm_drop',
+                                               'server' => $_REQUEST['server'],
+                                               'database' => $_REQUEST['database'],
+                                               'schema' => $_REQUEST['schema'],
+                                               'aggrname' => $_REQUEST['aggrname'],
+                                               'aggrtype' => $_REQUEST['aggrtype']
+                                       )
+                               )
+                       ),
+                       'content' => $lang['strdrop']
+               );
+
+               $misc->printNavLinks($navlinks, 'aggregates-properties');
        }
 
 
 
                if (!$data->hasAlterAggregate()) unset($actions['alter']);
                $misc->printTable($aggregates, $columns, $actions, $lang['strnoaggregates']);
-               
-               echo "<p><a class=\"navlink\" href=\"aggregates.php?action=create&amp;{$misc->href}\">{$lang['strcreateaggregate']}</a></p>\n";
+
+               $navlinks = array (
+                       array (
+                               'attr'=> array (
+                                       'href' => array (
+                                               'url' => 'aggregates.php',
+                                               'urlvars' => array (
+                                                       'action' => 'create',
+                                                       'server' => $_REQUEST['server'],
+                                                       'database' => $_REQUEST['database'],
+                                                       'schema' => $_REQUEST['schema'],
+                                               )
+                                       )
+                               ),
+                               'content' => $lang['strcreateaggregate']
+                       )
+               );
+               $misc->printNavLinks($navlinks, 'aggregates-aggregates');
        }
 
        /**
index 7b500e336c48a8db17016b76fb0c998d7d8ba498..71508f98d24e2a0ce82d2ef24b73ddb6f93202f8 100644 (file)
 
                $misc->printTable($databases, $columns, $actions, $lang['strnodatabases']);
 
-               echo "<p><a class=\"navlink\" href=\"all_db.php?action=create&amp;{$misc->href}\">{$lang['strcreatedatabase']}</a></p>\n";
-
+               $navlinks = array (
+                   array (
+                       'attr'=> array (
+                           'href' => array (
+                               'url' => 'all_db.php',
+                               'urlvars' => array (
+                                   'action' => 'create',
+                                   'server' => $_REQUEST['server']
+                               )
+                           )
+                       ),
+                       'content' => $lang['strcreatedatabase']
+                   )
+               );
+               $misc->printNavLinks($navlinks, 'all_db-databases');
        }
 
        function doTree() {
index 7ba4a125a8c5735f9915ad4be62327e1560085c3..64cd26f777170482c094295efc7af8871c4af9e3 100644 (file)
                        return htmlentities($href);
                }
 
-               function getHREFSubject($subject) {
+               function getSubjectParams($subject) {
 
                        $vars = array();
 
                        switch($subject) {
                                case 'root':
-                                       return 'redirect.php?subject=root';
+                                       $vars = array (
+                                               'params' => array(
+                                                       'subject' => 'root'
+                                               )
+                                       );
                                        break;
                                case 'server':
-                                       $vars = array (
+                                       $vars = array ('params' => array(
                                                'server' => $_REQUEST['server'],
                                                'subject' => 'server'
-                                       );
+                                       ));
                                        break;
                                case 'report':
-                                       return 'reports.php?'. http_build_query(array(
-                                               'server' => $_REQUEST['server'],
-                                               'subject' => 'report',
-                                               'report' => $_REQUEST['report']
-                                       ), '', '&amp;');
+                                       $vars = array(
+                                               'url' => 'reports.php',
+                                               'params' => array(
+                                                       'server' => $_REQUEST['server'],
+                                                       'subject' => 'report',
+                                                       'report' => $_REQUEST['report']
+                                       ));
                                        break;
                                case 'role':
-                                       $vars = array(
+                                       $vars = array('params' => array(
                                                'server' => $_REQUEST['server'],
                                                'subject' => 'role',
                                                'action' => 'properties',
                                                'rolename' => $_REQUEST['rolename']
-                                       );
+                                       ));
                                        break;
                                case 'database':
-                                       $vars = array(
+                                       $vars = array('params' => array(
                                                'server' => $_REQUEST['server'],
                                                'subject' => 'database',
                                                'database' => $_REQUEST['database'],
-                                       );
+                                       ));
                                        break;
                                case 'schema':
-                                       $vars = array(
+                                       $vars = array('params' => array(
                                                'server' => $_REQUEST['server'],
                                                'subject' => 'schema',
                                                'database' => $_REQUEST['database'],
                                                'schema' => $_REQUEST['schema']
-                                       );
-                                       break;
-                               case 'slony_cluster':
-                                       $vars = array(
-                                               'server' => $_REQUEST['server'],
-                                               'subject' => 'slony_cluster',
-                                               'database' => $_REQUEST['database'],
-                                               'schema' => $_REQUEST['schema'],
-                                               'slony_cluster' => $_REQUEST['slony_cluster']
-                                       );
+                                       ));
                                        break;
                                case 'table':
-                                       $vars = array(
+                                       $vars = array('params' => array(
                                                'server' => $_REQUEST['server'],
                                                'subject' => 'table',
                                                'database' => $_REQUEST['database'],
                                                'schema' => $_REQUEST['schema'],
                                                'table' => $_REQUEST['table']
-                                       );
+                                       ));
                                        break;
                                case 'selectrows':
-                                       return 'tables.php?'. http_build_query(array(
-                                               'server' => $_REQUEST['server'],
-                                               'subject' => 'table',
-                                               'database' => $_REQUEST['database'],
-                                               'schema' => $_REQUEST['schema'],
-                                               'table' => $_REQUEST['table'],
-                                               'action' => 'confselectrows'
-                                       ), '', '&amp;');
+                                       $vars = array(
+                                               'url' => 'tables.php',
+                                               'params' => array(
+                                                       'server' => $_REQUEST['server'],
+                                                       'subject' => 'table',
+                                                       'database' => $_REQUEST['database'],
+                                                       'schema' => $_REQUEST['schema'],
+                                                       'table' => $_REQUEST['table'],
+                                                       'action' => 'confselectrows'
+                                       ));
                                        break;
                                case 'view':
-                                       $vars = array(
+                                       $vars = array('params' => array(
                                                'server' => $_REQUEST['server'],
                                                'subject' => 'view',
                                                'database' => $_REQUEST['database'],
                                                'schema' => $_REQUEST['schema'],
                                                'view' => $_REQUEST['view']
-                                       );
+                                       ));
                                        break;
                                case 'fulltext':
                                case 'ftscfg':
-                                       $vars = array(
+                                       $vars = array('params' => array(
                                                'server' => $_REQUEST['server'],
                                                'subject' => 'fulltext',
                                                'database' => $_REQUEST['database'],
                                                'schema' => $_REQUEST['schema'],
                                                'action' => 'viewconfig',
                                                'ftscfg' => $_REQUEST['ftscfg']
-                                       );
+                                       ));
                                        break;
                                case 'function':
-                                       $vars = array(
+                                       $vars = array('params' => array(
                                                'server' => $_REQUEST['server'],
                                                'subject' => 'function',
                                                'database' => $_REQUEST['database'],
                                                'schema' => $_REQUEST['schema'],
                                                'function' => $_REQUEST['function'],
                                                'function_oid' => $_REQUEST['function_oid']
-                                       );
+                                       ));
                                        break;
                                case 'aggregate':
-                                       $vars = array(
+                                       $vars = array('params' => array(
                                                'server' => $_REQUEST['server'],
                                                'subject' => 'aggregate',
                                                'action' => 'properties',
                                                'schema' => $_REQUEST['schema'],
                                                'aggrname' => $_REQUEST['aggrname'],
                                                'aggrtype' => $_REQUEST['aggrtype']
-                                       );
-                                       break;
-                               case 'slony_node':
-                                       $vars = array(
-                                               'server' => $_REQUEST['server'],
-                                               'subject' => 'slony_cluster',
-                                               'database' => $_REQUEST['database'],
-                                               'schema' => $_REQUEST['schema'],
-                                               'no_id' => $_REQUEST['no_id'],
-                                               'no_name' => $_REQUEST['no_name']
-                                       );
-                                       break;
-                               case 'slony_set':
-                                       $vars = array(
-                                               'server' => $_REQUEST['server'],
-                                               'subject' => 'slony_set',
-                                               'database' => $_REQUEST['database'],
-                                               'schema' => $_REQUEST['schema'],
-                                               'slony_set_id' => $_REQUEST['slony_set'],
-                                               'slony_set' => $_REQUEST['slony_set']
-                                       );
+                                       ));
                                        break;
                                case 'column':
                                        if (isset($_REQUEST['table']))
-                                               $vars = array(
+                                               $vars = array('params' => array(
                                                        'server' => $_REQUEST['server'],
                                                        'subject' => 'column',
                                                        'database' => $_REQUEST['database'],
                                                        'schema' => $_REQUEST['schema'],
                                                        'table' => $_REQUEST['table'],
                                                        'column' => $_REQUEST['column']
-                                               );
+                                               ));
                                        else
-                                               $vars = array(
+                                               $vars = array('params' => array(
                                                        'server' => $_REQUEST['server'],
                                                        'subject' => 'column',
                                                        'database' => $_REQUEST['database'],
                                                        'schema' => $_REQUEST['schema'],
                                                        'view' => $_REQUEST['view'],
                                                        'column' => $_REQUEST['column']
-                                               );
+                                               ));
                                        break;
                                default:
                                        return false;
                        }
 
-                       return 'redirect.php?'. http_build_query($vars, '', '&amp;');
+                       if (!isset($vars['url']))
+                               $vars['url'] = 'redirect.php';
+
+                       return $vars;
+               }
+
+               function getHREFSubject($subject) {
+                       $vars = $this->getSubjectParams($subject);
+                       return "{$vars['url']}?". http_build_query($vars['params'], '', '&amp;');
                }
 
                /**
                /**
                 * Display a list of links
                 * @param $links An associative array of links to print
-                *   links = array(
-                *     'attr' => array( // list of A tag attribute
-                *        ...
-                *     ),
-                *     'content' => The link text
-                *     'fields' => the data from which content and attr's values are obtained
-                *   );
+                *     links = array(
+                *       'attr' => array( // list of A tag attribute
+                *          'attrname' => attribute value
+                *          ...
+                *       ),
+                *       'content' => The link text
+                *       'fields' => the data from which content and attr's values are obtained
+                *     );
+                *   the special attribute 'href' might be a string or an array. If href is an array it
+                *   will be generated by getActionUrl. See getActionUrl comment for array format.
                 * @param $class An optional class or list of classes seprated by a space
                 *   WARNING: This field is NOT escaped! No user should be able to inject something here, use with care.
                 */
                                                        'target' => "sqledit",
                                                        'onclick' => "window.open('{$sql_url}&action=sql','{$sql_window_id}','toolbar=no,width=700,height=500,resizable=yes,scrollbars=yes').focus(); return false;"
                                                ),
-                                               'content' => noEscape(field('strsql')),
-                                               'fields' => $lang
+                                               'content' => $lang['strsql']
                                        ),
                                        array (
                                                'attr' => array (
                                                        'href' => $history_url,
                                                        'onclick' => "window.open('{$history_url}','{$history_window_id}','toolbar=no,width=800,height=600,resizable=yes,scrollbars=yes').focus(); return false;",
                                                ),
-                                               'content' => noEscape(field('strhistory')),
-                                               'fields' => $lang
+                                               'content' => $lang['strhistory']
                                        ),
                                        array (
                                                'attr' => array (
                                                        'target' => "sqledit",
                                                        'onclick' => "window.open('{$sql_url}&action=find','{$sql_window_id}','toolbar=no,width=700,height=500,resizable=yes,scrollbars=yes').focus(); return false;",
                                                ),
-                                               'content' => noEscape(field('strfind')),
-                                               'fields' => $lang
+                                               'content' => $lang['strfind']
                                        ),
                                        array(
                                                'attr' => array (
                                                        'href' => "servers.php?action=logout&logoutServer=".htmlentities($server_info['host']).":".htmlentities($server_info['port']).":".htmlentities($server_info['sslmode']),
                                                        'onclick' => $logout_shared,
                                                ),
-                                               'content' => noEscape(field('strlogout')),
-                                               'fields' => $lang
+                                               'content' => $lang['strlogout']
                                        )
                                );
 
                        return $trail;
                }
 
+               /**
+               * Display the navlinks
+               *
+               * @param $navlinks - An array with the the attributes and values that will be shown. See printLinksList for array format.
+               * @param $place - Place where the $navlinks are displayed. Like 'display-browse', where 'display' is the file (display.php)
+               * and 'browse' is the place inside that code (doBrowse).
+               */
+               function printNavLinks($navlinks=array(), $place) {
+                       global $plugin_manager;
+
+                       // Navlinks hook's place
+                       $plugin_functions_parameters = array(
+                               'navlinks' => &$navlinks,
+                               'place' => $place
+                       );
+                       $plugin_manager->do_hook('navlinks', $plugin_functions_parameters);
+
+                       if (count($navlinks) > 0) {
+                               $this->printLinksList($navlinks, 'navlink');
+                       }
+               }
+
+
                /**
                 * Do multi-page navigation.  Displays the prev, next and page options.
                 * @param $page the page currently viewed
index 14ac543f76a8e4e59f1eec342f63aea6116e03f5..3932f8ce00533314a3d51f4528af9e578ebf4a36 100644 (file)
@@ -10,7 +10,7 @@ class PluginManager {
         * Attributes
         */
        private $plugins_list = array();
-       private $available_hooks = array('toplinks', 'tabs', 'trail' /* wip, more hooks to come in next commits */);
+       private $available_hooks = array('toplinks', 'tabs', 'trail', 'navlinks' /* wip, more hooks to come in next commits */);
        private $actions = array();
        private $hooks = array();
 
index c16ae900e57f16e347e0ee30aac046572bf938f2..75051423125353fa2ef56489a43a4f28a76fd785 100644 (file)
 
                        echo "<br />\n";
 
-                       echo "<ul class=\"navlink\">\n";
                        $f_attname = $_REQUEST['column'];
                        $f_table = $tableName;
                        $f_schema = $data->_schema;
                        $data->fieldClean($f_attname);
                        $data->fieldClean($f_table);
                        $data->fieldClean($f_schema);
-                       $query_url = urlencode("SELECT \"{$f_attname}\", count(*) AS \"count\" FROM \"{$f_schema}\".\"{$f_table}\" GROUP BY \"{$f_attname}\" ORDER BY \"{$f_attname}\"") ;
+                       $query = "SELECT \"{$f_attname}\", count(*) AS \"count\" FROM \"{$f_schema}\".\"{$f_table}\" GROUP BY \"{$f_attname}\" ORDER BY \"{$f_attname}\"";
 
                        if ($isTable) {
+
                                /* Browse link */
                                /* FIXME browsing a col should somehow be a action so we don't
                                 * send an ugly SQL in the URL */
-                               echo "\t<li><a href=\"display.php?{$misc->href}&amp;subject=column&amp;table=",
-                                       urlencode($_REQUEST['table']),
-                                       "&amp;column=", urlencode($_REQUEST['column']),
-                                       "&amp;return=column",
-                                       "&amp;query={$query_url}\">{$lang['strbrowse']}</a></li>\n";
 
-                               /* Edit link */
-                               echo "\t<li><a href=\"colproperties.php?action=properties&amp;{$misc->href}&amp;table=", urlencode($tableName),
-                                   "&amp;column=", urlencode($_REQUEST['column']) . "\">{$lang['stralter']}</a></li>\n";
-                               
-                               echo "\t<li><a href=\"tblproperties.php?action=confirm_drop&amp;{$misc->href}&amp;table=", urlencode($tableName),
-                                       "&amp;column=" . urlencode($_REQUEST['column']) . "\">{$lang['strdrop']}</a></li>\n";
-                       } else {
+                               $navlinks = array (
+                                       array (
+                                               'attr'=> array (
+                                                       'href' => array (
+                                                               'url' => 'display.php',
+                                                               'urlvars' => array (
+                                                                       'subject' => 'column',
+                                                                       'server' => $_REQUEST['server'],
+                                                                       'database' => $_REQUEST['database'],
+                                                                       'schema' => $_REQUEST['schema'],
+                                                                       'table' => $tableName,
+                                                                       'column' => $_REQUEST['column'],
+                                                                       'return' => 'column',
+                                                                       'query' => $query
+                                                               )
+                                                       )
+                                               ),
+                                               'content' => $lang['strbrowse'],
+                                       ),
+                                       array (
+                                               'attr'=> array (
+                                                       'href' => array (
+                                                               'url' => 'colproperties.php',
+                                                               'urlvars' => array (
+                                                                       'action' => 'properties',
+                                                                       'server' => $_REQUEST['server'],
+                                                                       'database' => $_REQUEST['database'],
+                                                                       'schema' => $_REQUEST['schema'],
+                                                                       'table' => $tableName,
+                                                                       'column' => $_REQUEST['column'],
+                                                               )
+                                                       )
+                                               ),
+                                               'content' => $lang['stralter'],
+                                       ),
+                                       array (
+                                               'attr'=> array (
+                                                       'href' => array (
+                                                               'url' => 'tblproperties.php',
+                                                               'urlvars' => array (
+                                                                       'action' => 'confirm_drop',
+                                                                       'server' => $_REQUEST['server'],
+                                                                       'database' => $_REQUEST['database'],
+                                                                       'schema' => $_REQUEST['schema'],
+                                                                       'table' => $tableName,
+                                                                       'column' => $_REQUEST['column'],
+                                                               )
+                                                       )
+                                               ),
+                                               'content' => $lang['strdrop'],
+                                       )
+                               );
+                       }
+                       else {
                                /* Browse link */
-                               echo "\t<li><a href=\"display.php?{$misc->href}&amp;subject=column&amp;view=",
-                                       urlencode($_REQUEST['view']),
-                                       "&amp;column=", urlencode($_REQUEST['column']),
-                                       "&amp;return=column",
-                                       "&amp;query={$query_url}\">{$lang['strbrowse']}</a></li>\n";
+                               $navlinks = array (
+                                       array (
+                                               'attr'=> array (
+                                                       'href' => array (
+                                                               'url' => 'display.php',
+                                                               'urlvars' => array (
+                                                                       'subject' => 'column',
+                                                                       'server' => $_REQUEST['server'],
+                                                                       'database' => $_REQUEST['database'],
+                                                                       'schema' => $_REQUEST['schema'],
+                                                                       'view' => $tableName,
+                                                                       'column' => $_REQUEST['column'],
+                                                                       'return' => 'column',
+                                                                       'query' => $query
+                                                               )
+                                                       )
+                                               ),
+                                               'content' => $lang['strbrowse']
+                                       )
+                               );
                        }
 
-                       echo "</ul>\n";
+                       $misc->printNavLinks($navlinks, 'colproperties-colproperties');
                }
        }
 
index f966f48dfa37af90392f367573ed6be5eaaffc44..93c2036b1e0560519d5b0b87d632396987d146dc 100644 (file)
 
                $misc->printTable($constraints, $columns, $actions, $lang['strnoconstraints'], 'cnPre');
 
-               echo "<ul class=\"navlink\">\n\t<li><a href=\"constraints.php?action=add_check&amp;{$misc->href}&amp;table=", urlencode($_REQUEST['table']),
-                       "\">{$lang['straddcheck']}</a></li>\n";
-               echo "\t<li><a href=\"constraints.php?action=add_unique_key&amp;{$misc->href}&amp;table=", urlencode($_REQUEST['table']),
-                       "\">{$lang['stradduniq']}</a></li>\n";
-               echo "\t<li><a href=\"constraints.php?action=add_primary_key&amp;{$misc->href}&amp;table=", urlencode($_REQUEST['table']),
-                       "\">{$lang['straddpk']}</a></li>\n";
-               echo "\t<li><a href=\"constraints.php?action=add_foreign_key&amp;{$misc->href}&amp;table=", urlencode($_REQUEST['table']),
-                       "\">{$lang['straddfk']}</a></li>\n</ul>\n";
+               $navlinks = array (
+                       array (
+                               'attr'=> array (
+                                       'href' => array (
+                                               'url' => 'constraints.php',
+                                               'urlvars' => array (
+                                                       'action' => 'add_check',
+                                                       'server' => $_REQUEST['server'],
+                                                       'database' => $_REQUEST['database'],
+                                                       'schema' => $_REQUEST['schema'],
+                                                       'table' => $_REQUEST['table']
+                                               )
+                                       )
+                               ),
+                               'content' => $lang['straddcheck'],
+                       ),
+                       array (
+                               'attr'=> array (
+                                       'href' => array (
+                                               'url' => 'constraints.php',
+                                               'urlvars' => array (
+                                                       'action' => 'add_unique_key',
+                                                       'server' => $_REQUEST['server'],
+                                                       'database' => $_REQUEST['database'],
+                                                       'schema' => $_REQUEST['schema'],
+                                                       'table' => $_REQUEST['table']
+                                               )
+                                       )
+                               ),
+                               'content' => $lang['stradduniq'],
+                       ),
+                       array (
+                               'attr'=> array (
+                                       'href' => array (
+                                               'url' => 'constraints.php',
+                                               'urlvars' => array (
+                                                       'action' => 'add_primary_key',
+                                                       'server' => $_REQUEST['server'],
+                                                       'database' => $_REQUEST['database'],
+                                                       'schema' => $_REQUEST['schema'],
+                                                       'table' => $_REQUEST['table']
+                                               )
+                                       )
+                               ),
+                               'content' => $lang['straddpk'],
+                       ),
+                       array (
+                               'attr'=> array (
+                                       'href' => array (
+                                               'url' => 'constraints.php',
+                                               'urlvars' => array (
+                                                       'action' => 'add_foreign_key',
+                                                       'server' => $_REQUEST['server'],
+                                                       'database' => $_REQUEST['database'],
+                                                       'schema' => $_REQUEST['schema'],
+                                                       'table' => $_REQUEST['table']
+                                               )
+                                       )
+                               ),
+                               'content' => $lang['straddfk']
+                       )
+               );
+               $misc->printNavLinks($navlinks, 'constraints-constraints');
        }
 
        function doTree() {
index f4d18d8455f93980feff4fc19a4c6268310f6ed7..a05e872eb571a01998459e5879c59d02812092f9 100644 (file)
         * Displays requested data
         */
        function doBrowse($msg = '') {
-               global $data, $conf, $misc, $lang;
+               global $data, $conf, $misc, $lang, $plugin_manager;
 
                $save_history = false;
                // If current page is not set, default to first page
                if (isset($_REQUEST['return'])) $gets .= "&amp;return=" . urlencode($_REQUEST['return']);
                if (isset($_REQUEST['search_path'])) $gets .= "&amp;search_path=" . urlencode($_REQUEST['search_path']);
                if (isset($_REQUEST['table'])) $gets .= "&amp;table=" . urlencode($_REQUEST['table']);
-               
+
+               // Build strings for GETs in array
+               $_gets = array(
+                       'server' => $_REQUEST['server'],
+                       'database' => $_REQUEST['database']
+               );
+
+               if (isset($_REQUEST['schema'])) $_gets['schema'] = $_REQUEST['schema'];
+               if (isset($object)) $_gets[$subject] = $object;
+               if (isset($subject)) $_gets['subject'] = $subject;
+               if (isset($_REQUEST['query'])) $_gets['query'] = $_REQUEST['query'];
+               if (isset($_REQUEST['report'])) $_gets['report'] = $_REQUEST['report'];
+               if (isset($_REQUEST['count'])) $_gets['count'] = $_REQUEST['count'];
+               if (isset($_REQUEST['return'])) $_gets['return'] = $_REQUEST['return'];
+               if (isset($_REQUEST['search_path'])) $_gets['search_path'] = $_REQUEST['search_path'];
+               if (isset($_REQUEST['table'])) $_gets['table'] = $_REQUEST['table'];
+
                // This string just contains sort info
                $getsort = "sortkey=" . urlencode($_REQUEST['sortkey']) .
                        "&amp;sortdir=" . urlencode($_REQUEST['sortdir']);
 
+               // This array only contains sort info
+               $_getsort = array(
+                       'sortkey' => $_REQUEST['sortkey'],
+                       'sortdir' => $_REQUEST['sortdir']
+               );
+
                if ($save_history && is_object($rs) && ($type == 'QUERY')) //{
                        $misc->saveScriptHistory($_REQUEST['query']);
 
                }
                else echo "<p>{$lang['strnodata']}</p>\n";
 
-               // Navigation links     
-               echo "<ul class=\"navlink\">\n";
+               // Navigation links
+               $navlinks = array();
+
+               $fields = array(
+                       'server' => $_REQUEST['server'],
+                       'database' => $_REQUEST['database'],
+               );
+
+               if (isset($_REQUEST['schema']))
+                       $fields['schema'] = $_REQUEST['schema'];
 
                // Return
                if (isset($_REQUEST['return'])) {
-                       $return_url = $misc->getHREFSubject($_REQUEST['return']);
-
-                       if ($return_url)
-                               echo "\t<li><a href=\"{$return_url}\">{$lang['strback']}</a></li>\n";
+                       $urlvars = $misc->getSubjectParams($_REQUEST['return']);
+
+                       $navlinks[] = array (
+                               'attr'=> array (
+                                       'href' => array (
+                                               'url' => $urlvars['url'],
+                                               'urlvars' => $urlvars['params']
+                                       )
+                               ),
+                               'content' => $lang['strback']
+                       );
                }
 
                // Edit SQL link
                if (isset($_REQUEST['query']))
-                       echo "\t<li><a href=\"database.php?{$misc->href}&amp;action=sql&amp;paginate=on&amp;query=",
-                               urlencode($_REQUEST['query']), "\">{$lang['streditsql']}</a></li>\n";
+                       $navlinks[] = array (
+                               'attr'=> array (
+                                       'href' => array (
+                                               'url' => 'database.php',
+                                               'urlvars' => array_merge($fields, array (
+                                                       'action' => 'sql',
+                                                       'paginate' => 'on',
+                                                       'query' => $_REQUEST['query']
+                                               ))
+                                       )
+                               ),
+                               'content' => $lang['streditsql']
+                       );
 
                // Expand/Collapse
                if ($_REQUEST['strings'] == 'expanded')
-                       echo "\t<li><a href=\"display.php?{$gets}&amp;{$getsort}&amp;strings=collapsed&amp;page=", 
-                               urlencode($_REQUEST['page']), "\">{$lang['strcollapse']}</a></li>\n";
+                       $navlinks[] = array (
+                               'attr'=> array (
+                                       'href' => array (
+                                               'url' => 'display.php',
+                                               'urlvars' => array_merge(
+                                                       $_gets, $_getsort,
+                                                       array (
+                                                               'strings' => 'collapsed',
+                                                               'page' => $_REQUEST['page']
+                                               ))
+                                       )
+                               ),
+                               'content' => $lang['strcollapse']
+                       );
                else
-                       echo "\t<li><a href=\"display.php?{$gets}&amp;{$getsort}&amp;strings=expanded&amp;page=", 
-                               urlencode($_REQUEST['page']), "\">{$lang['strexpand']}</a></li>\n";
+                       $navlinks[] = array (
+                               'attr'=> array (
+                                       'href' => array (
+                                               'url' => 'display.php',
+                                               'urlvars' => array_merge(
+                                                       $_gets, $_getsort,
+                                                       array (
+                                                               'strings' => 'expanded',
+                                                               'page' => $_REQUEST['page']
+                                               ))
+                                       )
+                               ),
+                               'content' => $lang['strexpand']
+                       );
 
                // Create report
-               if (isset($_REQUEST['query']) && ($subject !== 'report') && $conf['show_reports'] && isset($rs) && is_object($rs) && $rs->recordCount() > 0)
-                       echo "\t<li><a href=\"reports.php?{$misc->href}&amp;action=create&amp;report_sql=",
-                               urlencode($_REQUEST['query']), "&amp;paginate=", (isset($_REQUEST['paginate'])? urlencode($_REQUEST['paginate']):'f'), "\">{$lang['strcreatereport']}</a></li>\n";
+               if (isset($_REQUEST['query']) && ($subject !== 'report') && $conf['show_reports'] && isset($rs) && is_object($rs) && $rs->recordCount() > 0) {
+                       $navlinks[] = array (
+                               'attr'=> array (
+                                       'href' => array (
+                                               'url' => 'reports.php',
+                                               'urlvars' => array_merge($fields, array(
+                                                       'action' => 'create',
+                                                       'report_sql' => $_REQUEST['query'],
+                                                       'paginate' => isset($_REQUEST['paginate'])? $_REQUEST['paginate']:'f'
+                                               ))
+                                       )
+                               ),
+                               'content' => $lang['strcreatereport']
+                       );
+               }
 
                // Create view and download
                if (isset($_REQUEST['query']) && isset($rs) && is_object($rs) && $rs->recordCount() > 0) {
+                       
+
                        // Report views don't set a schema, so we need to disable create view in that case
-                       if (isset($_REQUEST['schema'])) 
-                               echo "\t<li><a href=\"views.php?action=create&amp;formDefinition=",
-                                       urlencode($_REQUEST['query']), "&amp;{$misc->href}\">{$lang['strcreateview']}</a></li>\n";
-                       echo "\t<li><a href=\"dataexport.php?query=", urlencode($_REQUEST['query']);
+                       if (isset($_REQUEST['schema'])) {
+
+                               $navlinks[] = array (
+                                       'attr'=> array (
+                                               'href' => array (
+                                                       'url' => 'views.php',
+                                                       'urlvars' => array_merge($fields, array(
+                                                               'action' => 'create',
+                                                               'formDefinition' => $_REQUEST['query']
+                                                       ))
+                                               )
+                                       ),
+                                       'content' => $lang['strcreateview']
+                               );
+                       }
+
+                       $urlvars = array('query' => $_REQUEST['query']);
                        if (isset($_REQUEST['search_path']))
-                               echo "&amp;search_path=", urlencode($_REQUEST['search_path']);
-                       echo "&amp;{$misc->href}\">{$lang['strdownload']}</a></li>\n";
+                               $urlvars['search_path'] = $_REQUEST['search_path'];
+
+                       $navlinks[] = array (
+                               'attr'=> array (
+                                       'href' => array (
+                                               'url' => 'dataexport.php',
+                                               'urlvars' => array_merge($fields, $urlvars)
+                                       )
+                               ),
+                               'content' => $lang['strdownload']
+                       );
                }
 
                // Insert
                if (isset($object) && (isset($subject) && $subject == 'table'))
-                       echo "\t<li><a href=\"tables.php?action=confinsertrow&amp;table=",
-                               urlencode($object), "&amp;{$misc->href}\">{$lang['strinsert']}</a></li>\n";
+                       $navlinks[] = array (
+                               'attr'=> array (
+                                       'href' => array (
+                                               'url' => 'tables.php',
+                                               'urlvars' => array_merge($fields, array(
+                                                       'action' => 'confinsertrow',
+                                                       'table' => $object
+                                               ))
+                                       )
+                               ),
+                               'content' => $lang['strinsert']
+                       );
 
                // Refresh
-               echo "\t<li><a href=\"display.php?{$gets}&amp;{$getsort}&amp;strings=", urlencode($_REQUEST['strings']), 
-                       "&amp;page=" . urlencode($_REQUEST['page']),
-                       "\">{$lang['strrefresh']}</a></li>\n";
-               echo "</ul>\n";
+               $navlinks[] = array (
+                       'attr'=> array (
+                               'href' => array (
+                                       'url' => 'display.php',
+                                       'urlvars' => array_merge(
+                                               $_gets, $_getsort,
+                                               array(
+                                                       'strings' => $_REQUEST['strings'],
+                                                       'page' => $_REQUEST['page']
+                                       ))
+                               )
+                       ),
+                       'content' => $lang['strrefresh']
+               );
+
+               $misc->printNavLinks($navlinks, 'display-browse');
        }
 
 
index 79a26c911ab4796eab56b1315692f6e86d26542e..1df7fa507ffab746b6889c66b9aca0d67ebd402d 100644 (file)
                }
                else echo "<p>{$lang['strnodata']}</p>\n";
                
-               echo "<ul class=\"navlink\">\n\t<li><a href=\"domains.php?action=confirm_drop&amp;{$misc->href}&amp;domain=", urlencode($_REQUEST['domain']),"\">{$lang['strdrop']}</a></li>\n";
+               $navlinks = array (
+                       array (
+                               'attr'=> array (
+                                       'href' => array (
+                                               'url' => 'domains.php',
+                                               'urlvars' => array (
+                                                       'action' => 'confirm_drop',
+                                                       'server' => $_REQUEST['server'],
+                                                       'database' => $_REQUEST['database'],
+                                                       'schema' => $_REQUEST['schema'],
+                                                       'domain' => $_REQUEST['domain']
+                                               )
+                                       )
+                               ),
+                               'content' => $lang['strdrop']
+                       )
+               );
                if ($data->hasAlterDomains()) {
-                       echo "\t<li><a href=\"domains.php?action=add_check&amp;{$misc->href}&amp;domain=", urlencode($_REQUEST['domain']),
-                               "\">{$lang['straddcheck']}</a></li>\n";
-                       echo "\t<li><a href=\"domains.php?action=alter&amp;{$misc->href}&amp;domain=", 
-                               urlencode($_REQUEST['domain']), "\">{$lang['stralter']}</a></li>\n";
+                       $navlinks[] = array (
+                               'attr'=> array (
+                                       'href' => array (
+                                               'url' => 'domains.php',
+                                               'urlvars' => array (
+                                                       'action' => 'add_check',
+                                                       'server' => $_REQUEST['server'],
+                                                       'database' => $_REQUEST['database'],
+                                                       'schema' => $_REQUEST['schema'],
+                                                       'domain' => $_REQUEST['domain']
+                                               )
+                                       )
+                               ),
+                               'content' => $lang['straddcheck']
+                       );
+                       $navlinks[] = array (
+                               'attr'=> array (
+                                       'href' => array (
+                                               'url' => 'domains.php',
+                                               'urlvars' => array (
+                                                       'action' => 'alter',
+                                                       'server' => $_REQUEST['server'],
+                                                       'database' => $_REQUEST['database'],
+                                                       'schema' => $_REQUEST['schema'],
+                                                       'domain' => $_REQUEST['domain']
+                                               )
+                                       )
+                               ),
+                               'content' => $lang['stralter']
+                       );
                }
-               echo "</ul>\n";
+               
+               $misc->printNavLinks($navlinks, 'domains-properties');
        }
        
        /**
                if (!$data->hasAlterDomains()) unset($actions['alter']);
                
                $misc->printTable($domains, $columns, $actions, $lang['strnodomains']);
-               
-               echo "<p><a class=\"navlink\" href=\"domains.php?action=create&amp;{$misc->href}\">{$lang['strcreatedomain']}</a></p>\n";
 
+               $navlinks = array (
+                       array (
+                               'attr'=> array (
+                                       'href' => array (
+                                               'url' => 'domains.php',
+                                               'urlvars' => array (
+                                                       'action' => 'create',
+                                                       'server' => $_REQUEST['server'],
+                                                       'database' => $_REQUEST['database'],
+                                                       'schema' => $_REQUEST['schema'],
+                                               )
+                                       )
+                               ),
+                               'content' => $lang['strcreatedomain']
+                       )
+               );
+               $misc->printNavLinks($navlinks, 'domains-domains');
        }
        
        /**
index 9c8733cab20a708b740dbe021bc71e527b060023..8d16da928b11eda4d8604a23b9897f2f8cdc9a17 100644 (file)
 
                $misc->printTable($cfgs, $columns, $actions, $lang['strftsnoconfigs']);
 
-
-               echo "<ul class=\"navlink\">\n";
-               echo "\t<li><a href=\"fulltext.php?action=createconfig&amp;{$misc->href}\">{$lang['strftscreateconfig']}</a></li>\n";
-               echo "</ul>\n";
+               $navlinks = array(
+                       array (
+                               'attr'=> array (
+                                       'href' => array (
+                                               'url' => 'fulltext.php',
+                                               'urlvars' => array (
+                                                       'action' => 'createconfig',
+                                                       'server' => $_REQUEST['server'],
+                                                       'database' => $_REQUEST['database'],
+                                                       'schema' => $_REQUEST['schema']
+                                               )
+                                       )
+                               ),
+                               'content' => $lang['strftscreateconfig']
+                       )
+               );
+                       
+               $misc->printNavLinks($navlinks, 'fulltext-fulltext');
        }
 
        function doDropConfig($confirm) {
 
                $misc->printTable($parsers, $columns, $actions, $lang['strftsnoparsers']);
 
-               //TODO: create parser
-               //echo "<ul class=\"navlink\">\n";
-               //echo "\t<li><a href=\"#\">{$lang['strftscreateparser']}</a></li>\n";
-               //echo "</ul>\n";
+               //TODO: navlink to "create parser"
        }
 
 
 
                $misc->printTable($dicts, $columns, $actions, $lang['strftsnodicts']);
 
-               echo "<ul class=\"navlink\">\n";
-               echo "\t<li><a href=\"fulltext.php?action=createdict&amp;{$misc->href}&amp;\">{$lang['strftscreatedict']}</a></li>\n";
-               echo "</ul>\n";
+               $navlinks = array(
+                       array (
+                               'attr'=> array (
+                                       'href' => array (
+                                               'url' => 'fulltext.php',
+                                               'urlvars' => array (
+                                                       'action' => 'createdict',
+                                                       'server' => $_REQUEST['server'],
+                                                       'database' => $_REQUEST['database'],
+                                                       'schema' => $_REQUEST['schema'],
+                                               )
+                                       )
+                               ),
+                               'content' => $lang['strftscreatedict']
+                       )
+               );
+
+               $misc->printNavLinks($navlinks, 'fulltext-viewdicts');
        }
 
 
 
                $misc->printTable($map, $columns, $actions, $lang['strftsemptymap']);
 
-               echo "<ul class=\"navlink\">\n";
-               echo "\t<li><a href=\"fulltext.php?action=addmapping&amp;{$misc->href}&ftscfg={$ftscfg}\">{$lang['strftsaddmapping']}</a></li>\n";
-               echo "</ul>\n";
+               $navlinks = array(
+                       array (
+                               'attr'=> array (
+                                       'href' => array (
+                                               'url' => 'fulltext.php',
+                                               'urlvars' => array (
+                                                       'action' => 'addmapping',
+                                                       'server' => $_REQUEST['server'],
+                                                       'database' => $_REQUEST['database'],
+                                                       'schema' => $_REQUEST['schema'],
+                                                       'ftscfg' => $ftscfg
+                                               )
+                                       )
+                               ),
+                               'content' => $lang['strftsaddmapping']
+                       )
+               );
 
+               $misc->printNavLinks($navlinks, 'fulltext-viewconfig');
        }
 
        /**
index 4a043cf660b6d0979968385a35f1c0d4205b7aaa..84ef140af3aa775f71b49e7f6444ebbdd0c54678 100644 (file)
                }
                else echo "<p>{$lang['strnodata']}</p>\n";
 
-               echo "<ul class=\"navlink\">\n\t<li><a href=\"functions.php?{$misc->href}\">{$lang['strshowallfunctions']}</a></li>\n";
-               echo "\t<li><a href=\"functions.php?action=edit&amp;{$misc->href}&amp;function=",
-                       urlencode($_REQUEST['function']), "&amp;function_oid=", urlencode($_REQUEST['function_oid']), "\">{$lang['stralter']}</a></li>\n";
-               echo "\t<li><a href=\"functions.php?action=confirm_drop&amp;{$misc->href}&amp;function=",
-                       urlencode($func_full), "&amp;function_oid=", $_REQUEST['function_oid'], "\">{$lang['strdrop']}</a></li>\n</ul>";
+               $navlinks = array(
+                       array (
+                               'attr'=> array (
+                                       'href' => array (
+                                               'url' => 'functions.php',
+                                               'urlvars' => array (
+                                                       'server' => $_REQUEST['server'],
+                                                       'database' => $_REQUEST['database'],
+                                                       'schema' => $_REQUEST['schema'],
+                                               )
+                                       )
+                               ),
+                               'content' => $lang['strshowallfunctions']
+                       ),
+                       array (
+                               'attr'=> array (
+                                       'href' => array (
+                                               'url' => 'functions.php',
+                                               'urlvars' => array (
+                                                       'action' => 'edit',
+                                                       'server' => $_REQUEST['server'],
+                                                       'database' => $_REQUEST['database'],
+                                                       'schema' => $_REQUEST['schema'],
+                                                       'function' => $_REQUEST['function'],
+                                                       'function_oid' => $_REQUEST['function_oid']
+                                               )
+                                       )
+                               ),
+                               'content' => $lang['stralter']
+                       ),
+                       array (
+                               'attr'=> array (
+                                       'href' => array (
+                                               'url' => 'functions.php',
+                                               'urlvars' => array (
+                                                       'action' => 'confirm_drop',
+                                                       'server' => $_REQUEST['server'],
+                                                       'database' => $_REQUEST['database'],
+                                                       'schema' => $_REQUEST['schema'],
+                                                       'function' => $func_full,
+                                                       'function_oid' => $_REQUEST['function_oid']
+                                               )
+                                       )
+                               ),
+                               'content' => $lang['strdrop']
+                       )
+               );
+
+               $misc->printNavLinks($navlinks, 'functions-properties');
        }
 
        /**
 
                $misc->printTable($funcs, $columns, $actions, $lang['strnofunctions']);
 
-               echo "<ul class=\"navlink\">\n\t<li><a href=\"functions.php?action=create&amp;{$misc->href}\">{$lang['strcreateplfunction']}</a></li>\n";
-               echo "\t<li><a href=\"functions.php?action=create&amp;language=internal&amp;{$misc->href}\">{$lang['strcreateinternalfunction']}</a></li>\n";
-               echo "\t<li><a href=\"functions.php?action=create&amp;language=C&amp;{$misc->href}\">{$lang['strcreatecfunction']}</a></li>\n</ul>\n";
+               $navlinks = array(
+                       array (
+                               'attr'=> array (
+                                       'href' => array (
+                                               'url' => 'functions.php',
+                                               'urlvars' => array (
+                                                       'action' => 'create',
+                                                       'server' => $_REQUEST['server'],
+                                                       'database' => $_REQUEST['database'],
+                                                       'schema' => $_REQUEST['schema']
+                                               )
+                                       )
+                               ),
+                               'content' => $lang['strcreateplfunction']
+                       ),
+                       array (
+                               'attr'=> array (
+                                       'href' => array (
+                                               'url' => 'functions.php',
+                                               'urlvars' => array (
+                                                       'action' => 'create',
+                                                       'language' => 'internal',
+                                                       'server' => $_REQUEST['server'],
+                                                       'database' => $_REQUEST['database'],
+                                                       'schema' => $_REQUEST['schema']
+                                               )
+                                       )
+                               ),
+                               'content' => $lang['strcreateinternalfunction']
+                       ),
+                       array (
+                               'attr'=> array (
+                                       'href' => array (
+                                               'url' => 'functions.php',
+                                               'urlvars' => array (
+                                                       'action' => 'create',
+                                                       'language' => 'C',
+                                                       'server' => $_REQUEST['server'],
+                                                       'database' => $_REQUEST['database'],
+                                                       'schema' => $_REQUEST['schema']
+                                               )
+                                       )
+                               ),
+                               'content' => $lang['strcreatecfunction']
+                       )
+               );
+
+               $misc->printNavLinks($navlinks, 'functions-functions');
        }
 
        /**
index 8aed969037fffd63d9a615d399d6f640138009f8..18f009360143f3cdf7ef78d55e3838177802f849 100644 (file)
                echo "<input type=\"hidden\" name=\"action\" value=\"add_member\" />\n";
                echo "</form>\n";
                
-               echo "<p><a class=\"navlink\" href=\"groups.php?{$misc->href}\">{$lang['strshowallgroups']}</a></p>\n";
+               $misc->printNavLinks(array (array (
+                               'attr'=> array (
+                                       'href' => array (
+                                               'url' => 'groups.php',
+                                               'urlvars' => array (
+                                                       'server' => $_REQUEST['server']
+                                               )
+                                       )
+                               ),
+                               'content' => $lang['strshowallgroups']
+                       )), 'groups-properties');
        }
        
        /**
                
                $misc->printTable($groups, $columns, $actions, $lang['strnogroups']);
                
-               echo "<p><a class=\"navlink\" href=\"groups.php?action=create&amp;{$misc->href}\">{$lang['strcreategroup']}</a></p>\n";
+               $misc->printNavLinks(array (array (
+                               'attr'=> array (
+                                       'href' => array (
+                                               'url' => 'groups.php',
+                                               'urlvars' => array (
+                                                       'action' => 'create',
+                                                       'server' => $_REQUEST['server']
+                                               )
+                                       )
+                               ),
+                               'content' => $lang['strcreategroup']
+                       )), 'groups-groups');
 
        }
 
index 83b2dff4a89a39b6e2a05cdd0eae92c73a3e7961..c0db8188ad6a1206baa181abb10d604180d81ece 100644 (file)
                }
                else echo "<p>{$lang['strnohistory']}</p>\n";
 
-               echo "<ul class=\"navlink\">\n";
+               $navlinks = array (
+                       array (
+                               'attr'=> array (
+                                       'href' => array (
+                                               'url' => 'history.php',
+                                               'urlvars' => array (
+                                                       'action' => 'history',
+                                                       'server' => $_REQUEST['server'],
+                                                       'database' => $_REQUEST['database'],
+                                               )
+                                       )
+                               ),
+                               'content' => $lang['strrefresh']
+                       )
+               );
+
                if (isset($_SESSION['history'][$_REQUEST['server']][$_REQUEST['database']]) 
-                               && count($_SESSION['history'][$_REQUEST['server']][$_REQUEST['database']]))
-                       echo "\t<li><a href=\"history.php?action=confclearhistory&amp;{$misc->href}\">{$lang['strclearhistory']}</a></li>\n";
-               echo "\t<li><a href=\"history.php?action=history&amp;{$misc->href}\">{$lang['strrefresh']}</a></li>\n";
-               echo "\t<li><a href=\"history.php?action=download&amp;{$misc->href}\">{$lang['strdownload']}</a></li>\n</ul>\n";
+                               && count($_SESSION['history'][$_REQUEST['server']][$_REQUEST['database']])) {
+                       $navlinks[] = array (
+                               'attr'=> array (
+                                       'href' => array (
+                                               'url' => 'history.php',
+                                               'urlvars' => array (
+                                                       'action' => 'download',
+                                                       'server' => $_REQUEST['server'],
+                                                       'database' => $_REQUEST['database']
+                                               )
+                                       )
+                               ),
+                               'content' => $lang['strdownload']
+                       );
+                       $navlinks[] = array (
+                               'attr'=> array (
+                                       'href' => array (
+                                               'url' => 'history.php',
+                                               'urlvars' => array(
+                                                       'action' => 'confclearhistory',
+                                                       'server' => $_REQUEST['server'],
+                                                       'database' => $_REQUEST['database']
+                                               )
+                                       )
+                               ),
+                               'content' => $lang['strclearhistory']
+                       );
+               }
+
+               $misc->printNavLinks($navlinks, 'history-history');
        }
 
        function doDelHistory($qid, $confirm) {
index 23682a2122193e256bf218edf1c9b41d0bb1bb8e..fa5f296c5258aa024ac6c6287b82e83d10b4396c 100644 (file)
                
                $misc->printTable($indexes, $columns, $actions, $lang['strnoindexes'], 'indPre');
                
-               echo "<p><a class=\"navlink\" href=\"indexes.php?action=create_index&amp;{$misc->href}&amp;table=", 
-                       urlencode($_REQUEST['table']), "\">{$lang['strcreateindex']}</a></p>\n";                
+               $misc->printNavLinks(array (
+                       array (
+                               'attr'=> array (
+                                       'href' => array (
+                                               'url' => 'indexes.php',
+                                               'urlvars' => array (
+                                                       'action' => 'create_index',
+                                                       'server' => $_REQUEST['server'],
+                                                       'database' => $_REQUEST['database'],
+                                                       'schema' => $_REQUEST['schema'],
+                                                       'table' => $_REQUEST['table']
+                                               )
+                                       )
+                               ),
+                               'content' => $lang['strcreateindex']
+                       )
+               ), 'indexes-indexes');
        }
 
        function doTree() {
index 1447519901e7b8517b665272a5e057aee3dc5035..02a886f3a27b37699cb98f02b289a1cfcdd9d15e 100644 (file)
                        }
                        echo "</table>\n";
 
-                       echo "<p><a class=\"navlink\" href=\"operators.php?{$misc->href}\">{$lang['strshowalloperators']}</a></p>\n";
+                       $misc->printNavLinks(array (
+                               array (
+                                       'attr'=> array (
+                                               'href' => array (
+                                                       'url' => 'operators.php',
+                                                       'urlvars' => array (
+                                                               'server' => $_REQUEST['server'],
+                                                               'database' => $_REQUEST['database'],
+                                                               'schema' => $_REQUEST['schema']
+                                                       )
+                                               )
+                                       ),
+                                       'content' => $lang['strshowalloperators']
+                               )), 'operators-properties'
+                       );
                }
                else
                        doDefault($lang['strinvalidparam']);
                
                $misc->printTable($operators, $columns, $actions, $lang['strnooperators']);
                
-//             echo "<p><a class=\"navlink\" href=\"operators.php?action=create&amp;{$misc->href}\">{$lang['strcreateoperator']}</a></p>\n";
+//             TODO operators.php action=create $lang['strcreateoperator']
        }
 
        /**
index b552543a234b6e9935c75c31f2449b9b2a22a53a..b5e9a67e9536226eb6ea549c267b6b133c6d4c39 100644 (file)
                                break;
                }
                
-               $subject = htmlspecialchars(urlencode($_REQUEST['subject']));
-               $object = htmlspecialchars(urlencode($_REQUEST[$_REQUEST['subject']]));
+               $subject = $_REQUEST['subject'];
+               $object = $_REQUEST[$_REQUEST['subject']];
                
                if ($_REQUEST['subject'] == 'function') {
                        $objectoid = $_REQUEST[$_REQUEST['subject'].'_oid'];
-                       $alterurl = "privileges.php?action=alter&amp;{$misc->href}&amp;{$subject}={$object}&amp;{$subject}_oid={$objectoid}&amp;subject={$subject}&amp;mode=";
+                       $urlvars = array (
+                               'action' => 'alter',
+                               'server' => $_REQUEST['server'],
+                               'database' => $_REQUEST['database'],
+                               'schema' => $_REQUEST['schema'],
+                               $subject => $object,
+                               "{$_subject}_oid" => $objectoid,
+                               'subject'=> $subject
+                       );
                }
                else if ($_REQUEST['subject'] == 'column') {
-                       $alterurl = "privileges.php?action=alter&amp;{$misc->href}&amp;{$subject}={$object}"
-                               ."&amp;subject={$subject}&amp;table=". urlencode($_REQUEST['table']) ."&amp;mode=";
+                       $urlvars = array (
+                               'action' => 'alter',
+                               'server' => $_REQUEST['server'],
+                               'database' => $_REQUEST['database'],
+                               'schema' => $_REQUEST['schema'],
+                               $subject => $object,
+                               'subject'=> $subject
+                       );
+
+                       if (isset($_REQUEST['table']))
+                               $urlvars['table'] = $_REQUEST['table'];
+                       else
+                               $urlvars['view'] = $_REQUEST['view'];
                }
                else {
-                       $alterurl = "privileges.php?action=alter&amp;{$misc->href}&amp;{$subject}={$object}&amp;subject={$subject}&amp;mode=";
+                       $urlvars = array (
+                               'action' => 'alter',
+                               'server' => $_REQUEST['server'],
+                               'database' => $_REQUEST['database'],
+                               'schema' => $_REQUEST['schema'],
+                               $subject => $object,
+                               'subject'=> $subject
+                       );
                }
-       
-               echo "<ul class=\"navlink\">\n\t<li><a href=\"{$alterurl}grant\">{$lang['strgrant']}</a></li>\n";
-               echo "\t<li><a href=\"{$alterurl}revoke\">{$lang['strrevoke']}</a></li>\n";
-               if (isset($allurl))
-                       echo "\t<li><a href=\"{$allurl}?{$misc->href}\">{$alltxt}</a></li>\n";
-               
-               echo "</ul>\n";
+
+               $navlinks = array (
+                       array (
+                               'attr'=> array (
+                                       'href' => array (
+                                               'url' => 'privileges.php',
+                                               'urlvars' => array_merge($urlvars, array('mode' => 'grant'))
+                                       )
+                               ),
+                               'content' => $lang['strgrant']
+                       ),
+                       array (
+                               'attr'=> array (
+                                       'href' => array (
+                                               'url' => 'privileges.php',
+                                               'urlvars' => array_merge($urlvars, array('mode' => 'revoke'))
+                                       )
+                               ),
+                               'content' => $lang['strrevoke']
+                       )
+               );
+
+               if (isset($allurl)) {
+                       $navlinks[] = array (
+                               'attr'=> array (
+                                       'href' => array (
+                                               'url' => $allurl,
+                                               'urlvars' => array (
+                                                       'server' => $_REQUEST['server'],
+                                                       'database' => $_REQUEST['database'],
+                                                       'schema' => $_REQUEST['schema']
+                                               )
+                                       )
+                               ),
+                               'content' => $alltxt
+                       );
+               }
+
+               $misc->printNavLinks($navlinks, 'privileges-privileges');
        }
 
        $misc->printHeader($lang['strprivileges']);
index 148ff5c93ac9ca6bf61023fda41952e808ccc047..005ce03e4a9b3e71eab96ead8e56b5ad10800e83 100644 (file)
                }
                else echo "<p>{$lang['strinvalidparam']}</p>\n";
 
-               echo "<ul class=\"navlink\">\n\t<li><a href=\"reports.php?{$misc->href}\">{$lang['strshowallreports']}</a></li>\n";
-               echo "\t<li><a href=\"reports.php?action=edit&amp;{$misc->href}&amp;report_id={$report->fields['report_id']}\">{$lang['stredit']}</a></li>\n</ul>\n";
+               $urlvars = array ('server' => $_REQUEST['server']);
+               if (isset($_REQUEST['schema'])) $urlvars['schema'] = $_REQUEST['schema'];
+               if (isset($_REQUEST['database'])) $urlvars['database'] = $_REQUEST['database'];
+
+               $navlinks = array (
+                       array (
+                               'attr'=> array (
+                                       'href' => array (
+                                               'url' => 'reports.php',
+                                               'urlvars' => $urlvars
+                                       )
+                               ),
+                               'content' => $lang['strshowallreports']
+                       ),
+                       array (
+                               'attr'=> array (
+                                       'href' => array (
+                                               'url' => 'reports.php',
+                                               'urlvars' => array_merge($urlvars, array(
+                                                       'action' => 'edit',
+                                                       'report_id' => $report->fields['report_id']
+                                               ))
+                                       )
+                               ),
+                               'content' => $lang['stredit']
+                       ),
+                       array (
+                               'attr'=> array (
+                                       'href' => array (
+                                               'url' => 'sql.php',
+                                               'urlvars' => array_merge($urlvars, array(
+                                                       'subject' => 'report',
+                                                       'report' => $report->fields['report_name'],
+                                                       'return' => 'report',
+                                                       'database' => $report->fields['db_name'],
+                                                       'reportid' => $report->fields['report_id'],
+                                                       'paginate' => $report->fields['paginate']
+                                               ))
+                                       )
+                               ),
+                               'content' => $lang['strexecute']
+                       )
+               );
+               $misc->printNavLinks($navlinks, 'reports-properties');
        }
 
        /**
                
                $misc->printTable($reports, $columns, $actions, $lang['strnoreports']);
                
-               echo "<p><a class=\"navlink\" href=\"reports.php?action=create&amp;{$misc->href}\">{$lang['strcreatereport']}</a></p>\n";
+               $urlvars = array ('server' => $_REQUEST['server']);
+               if (isset($_REQUEST['database'])) $urlvars['database'] = $_REQUEST['database'];
+               if (isset($_REQUEST['schema'])) $urlvars['schema'] = $_REQUEST['schema'];
+
+               $misc->printNavLinks(array (
+                       array (
+                               'attr'=> array (
+                                       'href' => array (
+                                               'url' => 'reports.php',
+                                               'urlvars' => array_merge(array (
+                                                       'action' => 'create'
+                                               ), $urlvars)
+                                       )
+                               ),
+                               'content' => $lang['strcreatereport']
+                       )), 'reports-reports'
+               );
        }
-       
+
        $misc->printHeader($lang['strreports']);
        $misc->printBody();
 
index 5d0d35f94406bd8c5dd0b8ee035bbfc52836499c..e57ce6c5529b861defe23caf1c7296c1ea3a8ff8 100644 (file)
--- a/roles.php
+++ b/roles.php
                }
                else echo "<p>{$lang['strnodata']}</p>\n";
 
-               echo "<ul class=\"navlink\">\n\t<li><a href=\"roles.php?{$misc->href}\">{$lang['strshowallroles']}</a></li>\n";
-               echo "\t<li><a href=\"roles.php?action=alter&amp;{$misc->href}&amp;rolename=", 
-                       urlencode($_REQUEST['rolename']), "\">{$lang['stralter']}</a></li>\n";
-               echo "\t<li><a href=\"roles.php?action=confirm_drop&amp;{$misc->href}&amp;rolename=",
-                       urlencode($_REQUEST['rolename']), "\">{$lang['strdrop']}</li>\n</ul>\n";
+               $navlinks = array (
+                       array (
+                               'attr'=> array (
+                                       'href' => array (
+                                               'url' => 'roles.php',
+                                               'urlvars' => array (
+                                                       'server' => $_REQUEST['server']
+                                               )
+                                       )
+                               ),
+                               'content' => $lang['strshowallroles']
+                       ),
+                       array (
+                               'attr'=> array (
+                                       'href' => array (
+                                       'url' => 'roles.php',
+                                               'urlvars' => array (
+                                                       'action' => 'alter',
+                                                       'server' => $_REQUEST['server'],
+                                                       'rolename' => $_REQUEST['rolename']
+                                               )
+                                       )
+                               ),
+                               'content' => $lang['stralter']
+                       ),
+                       array (
+                               'attr'=> array (
+                                       'href' => array (
+                                       'url' => 'roles.php',
+                                               'urlvars' => array (
+                                                       'action' => 'confirm_drop',
+                                                       'server' => $_REQUEST['server'],
+                                                       'rolename' => $_REQUEST['rolename']
+                                               )
+                                       )
+                               ),
+                               'content' => $lang['strdrop']
+                       )
+               );
+
+               $misc->printNavLinks($navlinks, 'roles-properties');
        }
 
        /**
                }
                else echo "<p>{$lang['strnodata']}</p>\n";
                
-               echo "<p><a class=\"navlink\" href=\"roles.php?action=confchangepassword&amp;{$misc->href}\">{$lang['strchangepassword']}</a></p>\n";
+               $misc->printNavLinks(array (array (
+                               'attr'=> array (
+                                       'href' => array (
+                                       'url' => 'roles.php',
+                                               'urlvars' => array (
+                                                       'action' => 'confchangepassword',
+                                                       'server' => $_REQUEST['server']
+                                               )
+                                       )
+                               ),
+                               'content' => $lang['strchangepassword']
+                       )), 'roles-account');
        }
        
        /**
                
                $misc->printTable($roles, $columns, $actions, $lang['strnoroles']);
 
-               echo "<p><a class=\"navlink\" href=\"roles.php?action=create&amp;{$misc->href}\">{$lang['strcreaterole']}</a></p>\n";
-
+               $navlinks = array (
+                       array (
+                               'attr'=> array (
+                                       'href' => array (
+                                               'url' => 'roles.php',
+                                               'urlvars' => array (
+                                                       'action' => 'create',
+                                                       'server' => $_REQUEST['server']
+                                               )
+                                       )
+                               ),
+                               'content' => $lang['strcreaterole']
+                       )
+               );
+               $misc->printNavLinks($navlinks, 'roles-roles');
        }
 
        $misc->printHeader($lang['strroles']);
index 871dd199014682f7b028f54720b6791ac934bd07..89bc9a926591a3a87646e0905cdec352b6f5378d 100644 (file)
--- a/rules.php
+++ b/rules.php
 
                $misc->printTable($rules, $columns, $actions, $lang['strnorules']);
 
-               echo "<p><a class=\"navlink\" href=\"rules.php?action=create_rule&amp;{$misc->href}&amp;{$subject}={$object}&amp;subject={$subject}\">{$lang['strcreaterule']}</a></p>\n";
+               $misc->printNavLinks(array (array (
+                               'attr'=> array (
+                                       'href' => array (
+                                               'url' => 'rules.php',
+                                               'urlvars' => array (
+                                                       'action' => 'create_rule',
+                                                       'server' => $_REQUEST['server'],
+                                                       'database' => $_REQUEST['database'],
+                                                       'schema' => $_REQUEST['schema'],
+                                                       $subject => $object,
+                                                       'subject' => $subject
+                                               )
+                                       )
+                               ),
+                               'content' => $lang['strcreaterule']
+                       )), 'rules-rules');
        }
 
        function doTree() {
index c6be36552f43a667ac4b34ef586e30842e1b717c..0935f016973ffee5df84b58f54e8ad9edf6206dc 100755 (executable)
 
                $misc->printTable($schemas, $columns, $actions, $lang['strnoschemas']);
 
-               echo "<p><a class=\"navlink\" href=\"schemas.php?action=create&amp;{$misc->href}\">{$lang['strcreateschema']}</a></p>\n";
+               $misc->printNavLinks(array (array (
+                               'attr'=> array (
+                                       'href' => array (
+                                               'url' => 'schemas.php',
+                                               'urlvars' => array (
+                                                       'action' => 'create',
+                                                       'server' => $_REQUEST['server'],
+                                                       'database' => $_REQUEST['database']
+                                               )
+                                       )
+                               ),
+                               'content' => $lang['strcreateschema']
+                       )), 'schemas-schemas');
        }
 
        /**
index 1e9a32716e1f7f06c9a08f60eaa78092e88489f3..433ed61cb55433071f6b64d1795a94f260bb9986 100644 (file)
 
                $misc->printTable($sequences, $columns, $actions, $lang['strnosequences']);
 
-               echo "<p><a class=\"navlink\" href=\"sequences.php?action=create&amp;{$misc->href}\">{$lang['strcreatesequence']}</a></p>\n";
+               $misc->printNavLinks(array (array (
+                               'attr'=> array (
+                                       'href' => array (
+                                               'url' => 'sequences.php',
+                                               'urlvars' => array (
+                                                       'action' => 'create',
+                                                       'server' => $_REQUEST['server'],
+                                                       'database' => $_REQUEST['database'],
+                                                       'schema' => $_REQUEST['schema']
+                                               )
+                                       )
+                               ),
+                               'content' => $lang['strcreatesequence']
+                       )), 'sequences-sequences');
        }
 
        /**
                        echo "</tr>";
                        echo "</table>";
 
-                       echo "<ul class=\"navlink\">\n";
-                       echo "\t<li><a href=\"sequences.php?action=confirm_alter&amp;{$misc->href}&amp;sequence=", urlencode($sequence->fields['seqname']), "\">{$lang['stralter']}</a></li>\n";
-                       echo "\t<li><a href=\"sequences.php?action=confirm_setval&amp;{$misc->href}&amp;sequence=", urlencode($sequence->fields['seqname']), "\">{$lang['strsetval']}</a></li>\n";
-                       echo "\t<li><a href=\"sequences.php?action=nextval&amp;{$misc->href}&amp;sequence=", urlencode($sequence->fields['seqname']), "\">{$lang['strnextval']}</a></li>\n";
-                       if ($data->hasAlterSequenceStart()) {
-                               echo "\t<li><a href=\"sequences.php?action=restart&amp;{$misc->href}&amp;sequence=", urlencode($sequence->fields['seqname']), "\">{$lang['strrestart']}</a></li>\n";
-                       }
-                       echo "\t<li><a href=\"sequences.php?action=reset&amp;{$misc->href}&amp;sequence=", urlencode($sequence->fields['seqname']), "\">{$lang['strreset']}</a></li>\n";
-                       echo "\t<li><a href=\"sequences.php?{$misc->href}\">{$lang['strshowallsequences']}</a></li>\n</ul>\n";
+                       $navlinks = array (
+                               array (
+                                       'attr'=> array (
+                                               'href' => array (
+                                                       'url' => 'sequences.php',
+                                                       'urlvars' => array (
+                                                               'action' => 'confirm_alter',
+                                                               'server' => $_REQUEST['server'],
+                                                               'database' => $_REQUEST['database'],
+                                                               'schema' => $_REQUEST['schema'],
+                                                               'sequence' => $sequence->fields['seqname']
+                                                       )
+                                               )
+                                       ),
+                                       'content' => $lang['stralter']
+                               ),
+                               array (
+                                       'attr'=> array (
+                                               'href' => array (
+                                                       'url' => 'sequences.php',
+                                                       'urlvars' => array (
+                                                               'action' => 'confirm_setval',
+                                                               'server' => $_REQUEST['server'],
+                                                               'database' => $_REQUEST['database'],
+                                                               'schema' => $_REQUEST['schema'],
+                                                               'sequence' => $sequence->fields['seqname']
+                                                       )
+                                               )
+                                       ),
+                                       'content' => $lang['strsetval']
+                               ),
+                               array (
+                                       'attr'=> array (
+                                               'href' => array (
+                                                       'url' => 'sequences.php',
+                                                       'urlvars' => array (
+                                                               'action' => 'nextval',
+                                                               'server' => $_REQUEST['server'],
+                                                               'database' => $_REQUEST['database'],
+                                                               'schema' => $_REQUEST['schema'],
+                                                               'sequence' => $sequence->fields['seqname']
+                                                       )
+                                               )
+                                       ),
+                                       'content' => $lang['strnextval']
+                               ),
+                               'restart' => array (
+                                       'attr'=> array (
+                                               'href' => array (
+                                                       'url' => 'sequences.php',
+                                                       'urlvars' => array (
+                                                               'action' => 'restart',
+                                                               'server' => $_REQUEST['server'],
+                                                               'database' => $_REQUEST['database'],
+                                                               'schema' => $_REQUEST['schema'],
+                                                               'sequence' => $sequence->fields['seqname']
+                                                       )
+                                               )
+                                       ),
+                                       'content' => $lang['strrestart']
+                               ),
+                               array (
+                                       'attr'=> array (
+                                               'href' => array (
+                                                       'url' => 'sequences.php',
+                                                       'urlvars' => array (
+                                                               'action' => 'reset',
+                                                               'server' => $_REQUEST['server'],
+                                                               'database' => $_REQUEST['database'],
+                                                               'schema' => $_REQUEST['schema'],
+                                                               'sequence' => $sequence->fields['seqname']
+                                                       )
+                                               )
+                                       ),
+                                       'content' => $lang['strreset']
+                               ),
+                               array (
+                                       'attr'=> array (
+                                               'href' => array (
+                                                       'url' => 'sequences.php',
+                                                       'urlvars' => array (
+                                                               'server' => $_REQUEST['server'],
+                                                               'database' => $_REQUEST['database'],
+                                                               'schema' => $_REQUEST['schema']
+                                                       )
+                                               )
+                                       ),
+                                       'content' => $lang['strshowallsequences']
+                               )
+                       );
+
+                       if (! $data->hasAlterSequenceStart())
+                               unset($navlinks['restart']);
+
+                       $misc->printNavLinks($navlinks, 'sequences-properties');
                }
                else echo "<p>{$lang['strnodata']}</p>\n";
        }
index 775fb321ab0e1a795eb02c96073385f1df0266a2..505835444fc11a08aeb33aae94c6e0c3dbe79f81 100644 (file)
@@ -97,7 +97,6 @@
                }
                
                $misc->printTable($servers, $columns, $actions, $lang['strnoobjects'], 'svPre');
-
        }
        
        function doTree() {
diff --git a/sql.php b/sql.php
index 66ad3903ba447fb48dc4ea0e75605ce78dc8ac89..0dec1074750f136e11bad2d5850713b9cd9deac7 100644 (file)
--- a/sql.php
+++ b/sql.php
        
        echo "<p>{$lang['strsqlexecuted']}</p>\n";
                        
-       echo "<ul class=\"navlink\">\n";
+       $navlinks = array();
+       $fields = array(
+               'server' => $_REQUEST['server'],
+               'database' => $_REQUEST['database'],
+       );
+
+       if(isset($_REQUEST['schema']))
+               $fields['schema'] = $_REQUEST['schema'];
        
        // Return
        if (isset($_REQUEST['return'])) {
-               $return_url = $misc->getHREFSubject($_REQUEST['return']);
-               echo "\t<li><a href=\"{$return_url}\">{$lang['strback']}</a></li>\n";
+               $urlvars = $misc->getSubjectParams($_REQUEST['return']);
+               $navlinks[] = array (
+                       'attr'=> array (
+                               'href' => array (
+                                       'url' => $urlvars['url'],
+                                       'urlvars' => $urlvars['params']
+                               )
+                       ),
+                       'content' => $lang['strback']
+               );
        }
 
        // Edit         
-       echo "\t<li><a href=\"database.php?database=", urlencode($_REQUEST['database']),
-               "&amp;server=", urlencode($_REQUEST['server']), "&amp;action=sql\">{$lang['streditsql']}</a></li>\n";
-                               
+       $navlinks[] = array (
+               'attr'=> array (
+                       'href' => array (
+                               'url' => 'database.php',
+                               'urlvars' => array_merge($fields, array (
+                                       'action' => 'sql',
+                               ))
+                       )
+               ),
+               'content' => $lang['streditsql']
+       );
+
        // Create report
-       if (($subject !== 'report') && $conf['show_reports'] && isset($rs) && is_object($rs) && $rs->recordCount() > 0)
-               echo "\t<li><a href=\"reports.php?{$misc->href}&amp;action=create&amp;report_sql=",
-                       urlencode($_SESSION['sqlquery']), "\">{$lang['strcreatereport']}</a></li>\n";
+       if (($subject !== 'report') && $conf['show_reports'] && isset($rs) && is_object($rs) && $rs->recordCount() > 0) {
+               $navlinks[] = array (
+                       'attr'=> array (
+                               'href' => array (
+                                       'url' => 'reports.php',
+                                       'urlvars' => array_merge($fields, array (
+                                               'action' => 'create',
+                                               'report_sql' => $_SESSION['sqlquery']
+                                       ))
+                               )
+                       ),
+                       'content' => $lang['strcreatereport']
+               );
+   }
        
        // Create view and download
        if (isset($_SESSION['sqlquery']) && isset($rs) && is_object($rs) && $rs->recordCount() > 0) {
                // Report views don't set a schema, so we need to disable create view in that case
-               if (isset($_REQUEST['schema'])) 
-                       echo "\t<li><a href=\"views.php?action=create&amp;formDefinition=",
-                               urlencode($_SESSION['sqlquery']), "&amp;{$misc->href}\">{$lang['strcreateview']}</a></li>\n";
-               echo "\t<li><a href=\"dataexport.php?query=", urlencode($_SESSION['sqlquery']);
+               if (isset($_REQUEST['schema'])) {
+                       $navlinks[] = array (
+                               'attr'=> array (
+                                       'href' => array (
+                                               'url' => 'views.php',
+                                               'urlvars' => array_merge($fields, array (
+                                                       'action' => 'create',
+                                                       'formDefinition' => $_SESSION['sqlquery']
+                                               ))
+                                       )
+                               ),
+                               'content' => $lang['strcreateview']
+                       );
+               }
+
                if (isset($_REQUEST['search_path']))
-                       echo "&amp;search_path=", urlencode($_REQUEST['search_path']);
-               echo "&amp;{$misc->href}\">{$lang['strdownload']}</a></li>\n";
+                       $fields['search_path'] = $_REQUEST['search_path'];
+
+               $navlinks['download'] = array (
+                       'attr'=> array (
+                               'href' => array (
+                                       'url' => 'dataexport.php',
+                                       'urlvars' => array_merge($fields, array(
+                                               'query' => $_SESSION['sqlquery']
+                                       ))
+                               )
+                       ),
+                       'content' => $lang['strdownload']
+               );
        }
 
-       echo "</ul>\n";
+       $misc->printNavLinks($navlinks, 'sql-form');
        
        $misc->printFooter();
 ?>
index a5b470fd8f2dcb087810ddfddde9c9cd56daa2ff..34009aacfeece7bf26228a23144e35932c36bcb1 100644 (file)
 
                $misc->printTable($tables, $columns, $actions, $lang['strnotables']);
 
-               echo "<ul class=\"navlink\">\n\t<li><a href=\"tables.php?action=create&amp;{$misc->href}\">{$lang['strcreatetable']}</a></li>\n";
-               if (($tables->recordCount() > 0) && $data->hasCreateTableLike())
-                       echo "\t<li><a href=\"tables.php?action=createlike&amp;{$misc->href}\">{$lang['strcreatetablelike']}</a></li>\n";
-               echo "</ul>\n";
+               $navlinks = array (
+                       array (
+                               'attr'=> array (
+                                       'href' => array (
+                                               'url' => 'tables.php',
+                                               'urlvars' => array (
+                                                       'action' => 'create',
+                                                       'server' => $_REQUEST['server'],
+                                                       'database' => $_REQUEST['database'],
+                                                       'schema' => $_REQUEST['schema']
+                                               )
+                                       )
+                               ),
+                               'content' => $lang['strcreatetable']
+                       )
+               );
+
+               if (($tables->recordCount() > 0) && $data->hasCreateTableLike()) {
+                       $navlinks[] = array (
+                               'attr'=> array (
+                                       'href' => array (
+                                               'url' => 'tables.php',
+                                               'urlvars' => array (
+                                                       'action' => 'createlike',
+                                                       'server' => $_REQUEST['server'],
+                                                       'database' => $_REQUEST['database'],
+                                                       'schema' => $_REQUEST['schema']
+                                               )
+                                       )
+                               ),
+                               'content' => $lang['strcreatetablelike']
+                       );
+               }
+
+               $misc->printNavLinks($navlinks, 'tables-tables');
        }
        
        require('./admin.php');
index 5e2ffb78a7fe6c8fed9206e20147075ac2461816..c9cfb7ff52a08384d310d43a754c54a8d3d792e0 100755 (executable)
                                
                $misc->printTable($tablespaces, $columns, $actions, $lang['strnotablespaces']);
                
-               echo "<p><a class=\"navlink\" href=\"tablespaces.php?action=create&amp;{$misc->href}\">{$lang['strcreatetablespace']}</a></p>\n";
-
+               $misc->printNavLinks(array (array (
+                               'attr'=> array (
+                                       'href' => array (
+                                               'url' => 'tablespaces.php',
+                                               'urlvars' => array (
+                                                       'action' => 'create',
+                                                       'server' => $_REQUEST['server']
+                                               )
+                                       )
+                               ),
+                               'content' => $lang['strcreatetablespace']
+                       )), 'tablespaces-tablespaces');
        }
 
        $misc->printHeader($lang['strtablespaces']);
index 9c462a1c8ab1c74430481e5ceeece376ccc4d511..5eeccf3701a2f1976e67671784298b271b7b9740 100644 (file)
 
                $misc->printTable($attrs, $columns, $actions, null, 'attPre');
 
-               echo "<ul class=\"navlink\">\n";
-               echo "\t<li><a href=\"display.php?{$misc->href}&amp;table=", urlencode($_REQUEST['table']), "&amp;subject=table&amp;return=table\">{$lang['strbrowse']}</a></li>\n";
-               echo "\t<li><a href=\"tables.php?action=confselectrows&amp;{$misc->href}&amp;table=", urlencode($_REQUEST['table']),"\">{$lang['strselect']}</a></li>\n";
-               echo "\t<li><a href=\"tables.php?action=confinsertrow&amp;{$misc->href}&amp;table=", urlencode($_REQUEST['table']),"\">{$lang['strinsert']}</a></li>\n";
-               echo "\t<li><a href=\"tables.php?action=confirm_empty&amp;{$misc->href}&amp;table=", urlencode($_REQUEST['table']),"\">{$lang['strempty']}</a></li>\n";
-               echo "\t<li><a href=\"tables.php?action=confirm_drop&amp;{$misc->href}&amp;table=", urlencode($_REQUEST['table']),"\">{$lang['strdrop']}</a></li>\n";
-               echo "\t<li><a href=\"tblproperties.php?action=add_column&amp;{$misc->href}&amp;table=", urlencode($_REQUEST['table']),"\">{$lang['straddcolumn']}</a></li>\n";
-               echo "\t<li><a href=\"tblproperties.php?action=confirm_alter&amp;{$misc->href}&amp;table=", urlencode($_REQUEST['table']),"\">{$lang['stralter']}</a></li>\n";
-               echo "</ul>\n";
+               $navlinks = array (
+                       array (
+                               'attr'=> array (
+                                       'href' => array (
+                                               'url' => 'display.php',
+                                               'urlvars' => array (
+                                                       'server' => $_REQUEST['server'],
+                                                       'database' => $_REQUEST['database'],
+                                                       'schema' => $_REQUEST['schema'],
+                                                       'table' => $_REQUEST['table'],
+                                                       'subject' => 'table',
+                                                       'return' => 'table'
+                                               )
+                                       )
+                               ),
+                               'content' => $lang['strbrowse']
+                       ),
+                       array (
+                               'attr'=> array (
+                                       'href' => array (
+                                               'url' => 'tables.php',
+                                               'urlvars' => array (
+                                                       'action' => 'confselectrows',
+                                                       'server' => $_REQUEST['server'],
+                                                       'database' => $_REQUEST['database'],
+                                                       'schema' => $_REQUEST['schema'],
+                                                       'table' => $_REQUEST['table']
+                                               )
+                                       )
+                               ),
+                               'content' => $lang['strselect']
+                       ),
+                       array (
+                               'attr'=> array (
+                                       'href' => array (
+                                       'url' => 'tables.php',
+                                               'urlvars' => array (
+                                                       'action' => 'confinsertrow',
+                                                       'server' => $_REQUEST['server'],
+                                                       'database' => $_REQUEST['database'],
+                                                       'schema' => $_REQUEST['schema'],
+                                                       'table' => $_REQUEST['table']
+                                               )
+                                       )
+                               ),
+                               'content' => $lang['strinsert']
+                       ),
+                       array (
+                               'attr'=> array (
+                                       'href' => array (
+                                       'url' => 'tables.php',
+                                               'urlvars' => array (
+                                                       'action' => 'confirm_empty',
+                                                       'server' => $_REQUEST['server'],
+                                                       'database' => $_REQUEST['database'],
+                                                       'schema' => $_REQUEST['schema'],
+                                                       'table' => $_REQUEST['table']
+                                               )
+                                       )
+                               ),
+                               'content' => $lang['strempty']
+                       ),
+                       array (
+                               'attr'=> array (
+                                       'href' => array (
+                                               'url' => 'tables.php',
+                                               'urlvars' => array (
+                                                       'action' => 'confirm_drop',
+                                                       'server' => $_REQUEST['server'],
+                                                       'database' => $_REQUEST['database'],
+                                                       'schema' => $_REQUEST['schema'],
+                                                       'table' => $_REQUEST['table'],
+                                               )
+                                       )
+                               ),
+                               'content' => $lang['strdrop']
+                       ),
+                       array (
+                               'attr'=> array (
+                                       'href' => array (
+                                               'url' => 'tblproperties.php',
+                                               'urlvars' => array (
+                                                       'action' => 'add_column',
+                                                       'server' => $_REQUEST['server'],
+                                                       'database' => $_REQUEST['database'],
+                                                       'schema' => $_REQUEST['schema'],
+                                                       'table' => $_REQUEST['table']
+                                               )
+                                       )
+                               ),
+                               'content' => $lang['straddcolumn']
+                       ),
+                       array (
+                               'attr'=> array (
+                                       'href' => array (
+                                               'url' => 'tblproperties.php',
+                                               'urlvars' => array (
+                                                       'action' => 'confirm_alter',
+                                                       'server' => $_REQUEST['server'],
+                                                       'database' => $_REQUEST['database'],
+                                                       'schema' => $_REQUEST['schema'],
+                                                       'table' => $_REQUEST['table']
+                                               )
+                                       )
+                               ),
+                               'content' => $lang['stralter']
+                       )
+               );
+               $misc->printNavLinks($navlinks, 'tblproperties-tblproperties');
+
        }
 
        $misc->printHeader($lang['strtables'] . ' - ' . $_REQUEST['table']);
index c81b2a3ddc6bc127396c10784b06fd0d35a631ed..90d05348d536f08e0ce695ab23ef983d36dc1da1 100644 (file)
 
                $misc->printTable($triggers, $columns, $actions, $lang['strnotriggers'], 'tgPre');
                
-               echo "<p><a class=\"navlink\" href=\"triggers.php?action=create&amp;{$misc->href}&amp;table=", urlencode($_REQUEST['table']), "\">{$lang['strcreatetrigger']}</a></p>\n";
+               $misc->printNavLinks(array (array (
+                               'attr'=> array (
+                                       'href' => array (
+                                       'url' => 'triggers.php',
+                                               'urlvars' => array (
+                                                       'action' => 'create',
+                                                       'server' => $_REQUEST['server'],
+                                                       'database' => $_REQUEST['database'],
+                                                       'schema' => $_REQUEST['schema'],
+                                                       'table' => $_REQUEST['table']
+                                               )
+                                       )
+                               ),
+                               'content' => $lang['strcreatetrigger']
+                       )), 'triggers-triggers');
        }
 
        function doTree() {
index 6b28e6f2225da32c0f2aed40f3d85946b2100510..0fd13227f29f6006b0fad55d59ad0bae399ca084 100644 (file)
--- a/types.php
+++ b/types.php
                                echo "</table>\n";
                        }
 
-                       echo "<p><a class=\"navlink\" href=\"types.php?{$misc->href}\">{$lang['strshowalltypes']}</a></p>\n";
+                       $misc->printNavLinks(array (array (
+                                       'attr'=> array (
+                                               'href' => array (
+                                               'url' => 'types.php',
+                                                       'urlvars' => array (
+                                                               'server' => $_REQUEST['server'],
+                                                               'database' => $_REQUEST['database'],
+                                                               'schema' => $_REQUEST['schema'],
+                                                       )
+                                               )
+                                       ),
+                                       'content' => $lang['strshowalltypes']
+                               )), 'types-properties');
                } else
                        doDefault($lang['strinvalidparam']);
        }
                
                $misc->printTable($types, $columns, $actions, $lang['strnotypes']);
 
-               echo "<ul class=\"navlink\">\n\t<li><a href=\"types.php?action=create&amp;{$misc->href}\">{$lang['strcreatetype']}</a></li>\n";
-               echo "\t<li><a href=\"types.php?action=create_comp&amp;{$misc->href}\">{$lang['strcreatecomptype']}</a></li>\n";
-               if ($data->hasEnumTypes())
-                       echo "\t<li><a href=\"types.php?action=create_enum&amp;{$misc->href}\">{$lang['strcreateenumtype']}</a></li>\n";
-               echo "</ul>\n";
+               $navlinks = array (
+                       array (
+                               'attr'=> array (
+                                       'href' => array (
+                                               'url' => 'types.php',
+                                               'urlvars' => array (
+                                                       'action' => 'create',
+                                                       'server' => $_REQUEST['server'],
+                                                       'database' => $_REQUEST['database'],
+                                                       'schema' => $_REQUEST['schema']
+                                               )
+                                       )
+                               ),
+                               'content' => $lang['strcreatetype']
+                       ),
+                       array (
+                               'attr'=> array (
+                                       'href' => array (
+                                               'url' => 'types.php',
+                                               'urlvars' => array (
+                                                       'action' => 'create_comp',
+                                                       'server' => $_REQUEST['server'],
+                                                       'database' => $_REQUEST['database'],
+                                                       'schema' => $_REQUEST['schema']
+                                               )
+                                       )
+                               ),
+                               'content' => $lang['strcreatecomptype']
+                       ),
+                       'enum' => array (
+                               'attr'=> array (
+                                       'href' => array(
+                                               'url' => 'types.php',
+                                               'urlvars' => array (
+                                                       'action' => 'create_enum',
+                                                       'server' => $_REQUEST['server'],
+                                                       'database' => $_REQUEST['database'],
+                                                       'schema' => $_REQUEST['schema']
+                                               )
+                                       )
+                               ),
+                               'content' => $lang['strcreateenumtype']
+                       )
+               );
+
+               if (! $data->hasEnumTypes()) {
+                       unset($navlinks['enum']);
+               }
+
+               $misc->printNavLinks($navlinks, 'types-types');
        }
        
        /**
index 1a0c20d3f686bd98b5c9f83279ee7e28f17dbff4..de88f2505a262b9cf71b60b6ee744c37349955bc 100644 (file)
--- a/users.php
+++ b/users.php
                }
                else echo "<p>{$lang['strnodata']}</p>\n";
                
-               echo "<p><a class=\"navlink\" href=\"users.php?action=confchangepassword&amp;{$misc->href}\">{$lang['strchangepassword']}</a></p>\n";
+               $misc->printNavLinks(array (array (
+                               'attr'=> array (
+                                       'href' => array (
+                                               'url' => 'users.php',
+                                               'urlvars' => array (
+                                                       'action' => 'confchangepassword',
+                                                       'server' => $_REQUEST['server']
+                                               )
+                                       )
+                               ),
+                               'content' => $lang['strchangepassword']
+                       )), 'users-account');
        }
        
        /**
                
                $misc->printTable($users, $columns, $actions, $lang['strnousers']);
 
-               echo "<p><a class=\"navlink\" href=\"users.php?action=create&amp;{$misc->href}\">{$lang['strcreateuser']}</a></p>\n";
+               $misc->printNavLinks(array (array (
+                               'attr'=> array (
+                                       'href' => array (
+                                               'url' => 'users.php',
+                                               'urlvars' => array (
+                                                       'action' => 'create',
+                                                       'server' => $_REQUEST['server']
+                                               )
+                                       )
+                               ),
+                               'content' => $lang['strcreateuser']
+                       )), 'users-users');
 
        }
 
index 3073352c005e038d7ae1219678d4681ffda56f39..8fa8317df3f6383285c52572bd64608ac4988d94 100755 (executable)
                }
                else echo "<p>{$lang['strnodata']}</p>\n";
                
-               echo "<p><a class=\"navlink\" href=\"viewproperties.php?action=edit&amp;{$misc->href}&amp;view=", 
-                       urlencode($_REQUEST['view']), "\">{$lang['stralter']}</a></p>\n";
+               $misc->printNavLinks(array (array (
+                               'attr'=> array (
+                                       'href' => array (
+                                               'url' => 'viewproperties.php',
+                                               'urlvars' => array (
+                                                       'action' => 'edit',
+                                                       'server' => $_REQUEST['server'],
+                                                       'database' => $_REQUEST['database'],
+                                                       'schema' => $_REQUEST['schema'],
+                                                       'view' => $_REQUEST['view']
+                                               )
+                                       )
+                               ),
+                               'content' => $lang['stralter']
+                       )), 'viewproperties-definition');
        }
 
        /**
        
                echo "<br />\n";
 
-               echo "<ul class=\"navlink\">\n";
-               echo "\t<li><a href=\"display.php?{$misc->href}&amp;view=", urlencode($_REQUEST['view']), "&amp;subject=view&amp;return=view\">{$lang['strbrowse']}</a></li>\n";
-               echo "\t<li><a href=\"views.php?action=confselectrows&amp;{$misc->href}&amp;view=", urlencode($_REQUEST['view']),"\">{$lang['strselect']}</a></li>\n";
-               echo "\t<li><a href=\"views.php?action=confirm_drop&amp;{$misc->href}&amp;view=", urlencode($_REQUEST['view']),"\">{$lang['strdrop']}</a></li>\n";
-               echo "\t<li><a href=\"viewproperties.php?action=confirm_alter&amp;{$misc->href}&amp;view=", urlencode($_REQUEST['view']),"\">{$lang['stralter']}</a></li>\n";
-               echo "</ul>\n";
+               $navlinks = array (
+                       array (
+                               'attr'=> array (
+                                       'href' => array (
+                                       'url' => 'display.php',
+                                               'urlvars' => array (
+                                                       'server' => $_REQUEST['server'],
+                                                       'database' => $_REQUEST['database'],
+                                                       'schema' => $_REQUEST['schema'],
+                                                       'view' => $_REQUEST['view'],
+                                                       'subject' => 'view',
+                                                       'return' => 'view'
+                                               )
+                                       )
+                               ),
+                               'content' => $lang['strbrowse']
+                       ),
+                       array (
+                               'attr'=> array (
+                                       'href' => array (
+                                       'url' => 'views.php',
+                                               'urlvars' => array (
+                                                       'action' => 'confselectrows',
+                                                       'server' => $_REQUEST['server'],
+                                                       'database' => $_REQUEST['database'],
+                                                       'schema' => $_REQUEST['schema'],
+                                                       'view' => $_REQUEST['view']
+                                               )
+                                       )
+                               ),
+                               'content' => $lang['strselect']
+                       ),
+                       array (
+                               'attr'=> array (
+                                       'href' => array (
+                                       'url' => 'views.php',
+                                               'urlvars' => array (
+                                                       'action' => 'confirm_drop',
+                                                       'server' => $_REQUEST['server'],
+                                                       'database' => $_REQUEST['database'],
+                                                       'schema' => $_REQUEST['schema'],
+                                                       'view' => $_REQUEST['view']
+                                               )
+                                       )
+                               ),
+                               'content' => $lang['strdrop']
+                       ),
+                       array (
+                               'attr'=> array (
+                                       'href' => array (
+                                       'url' => 'viewproperties.php',
+                                               'urlvars' => array (
+                                                       'action' => 'confirm_alter',
+                                                       'server' => $_REQUEST['server'],
+                                                       'database' => $_REQUEST['database'],
+                                                       'schema' => $_REQUEST['schema'],
+                                                       'view' => $_REQUEST['view']
+                                               )
+                                       )
+                               ),
+                               'content' => $lang['stralter']
+                       )
+               );
+
+               $misc->printNavLinks($navlinks, 'viewproperties-viewproperties');
        }
 
        $misc->printHeader($lang['strviews'] . ' - ' . $_REQUEST['view']);
index 1d03bc8cdd0def86b56d33bf09110287000b438a..c95830b598986037827019d26db3a8f9330f1124 100644 (file)
--- a/views.php
+++ b/views.php
                
                $misc->printTable($views, $columns, $actions, $lang['strnoviews']);
                
-               echo "<ul class=\"navlink\">\n\t<li><a href=\"views.php?action=create&amp;{$misc->href}\">{$lang['strcreateview']}</a></li>\n";
-               echo "\t<li><a href=\"views.php?action=wiz_create&amp;{$misc->href}\">{$lang['strcreateviewwiz']}</a></li>\n</ul>\n";
+               $navlinks = array (
+                       array (
+                               'attr'=> array (
+                                       'href' => array (
+                                       'url' => 'views.php',
+                                               'urlvars' => array (
+                                                       'action' => 'create',
+                                                       'server' => $_REQUEST['server'],
+                                                       'database' => $_REQUEST['database'],
+                                                       'schema' => $_REQUEST['schema']
+                                               )
+                                       )
+                               ),
+                               'content' => $lang['strcreateview']
+                       ),
+                       array (
+                               'attr'=> array (
+                                       'href' => array (
+                                       'url' => 'views.php',
+                                               'urlvars' => array (
+                                                       'action' => 'wiz_create',
+                                                       'server' => $_REQUEST['server'],
+                                                       'database' => $_REQUEST['database'],
+                                                       'schema' => $_REQUEST['schema']
+                                               )
+                                       )
+                               ),
+                               'content' => $lang['strcreateviewwiz']
+                       )
+               );
+               $misc->printNavLinks($navlinks, 'views-views');
 
        }