diff options
author | Felipe Figueroa <amenadiel@gmail.com> | 2018-06-06 19:24:27 +0300 |
---|---|---|
committer | Felipe Figueroa <amenadiel@gmail.com> | 2018-06-06 19:24:27 +0300 |
commit | 6fc4d93c6b6bed6d3c588847eb01633717896756 (patch) | |
tree | ca45d804231f72c2b2132b0870c5a7687b26cac5 /src/controllers/DisplayController.php | |
parent | ef375c6c8bd7cbe8e783a3d92f4f58f6d75bf77a (diff) |
extract determination of query, title and type from DisplayController::doBrowse()
Diffstat (limited to 'src/controllers/DisplayController.php')
-rw-r--r-- | src/controllers/DisplayController.php | 66 |
1 files changed, 38 insertions, 28 deletions
diff --git a/src/controllers/DisplayController.php b/src/controllers/DisplayController.php index 39782ebe..67a44e12 100644 --- a/src/controllers/DisplayController.php +++ b/src/controllers/DisplayController.php @@ -148,34 +148,8 @@ class DisplayController extends BaseController $this->printTabs($subject, $tabsPosition); - $fkey = $this->coalesceArr($_REQUEST, 'fkey')['fkey']; - - $query = $this->coalesceArr($_REQUEST, 'query')['query']; - // This code is used when browsing FK in pure-xHTML (without js) - if ($fkey) { - $ops = []; - foreach (array_keys($fkey) as $x) { - $ops[$x] = '='; - } - $query = $data->getSelectSQL($_REQUEST['table'], [], $fkey, $ops); - $_REQUEST['query'] = $query; - } - - $title = 'strqueryresults'; - $type = 'QUERY'; - - if ($object && $query) { - $_SESSION['sqlquery'] = $query; - $title = 'strselect'; - $type = 'SELECT'; - } elseif ($object) { - $title = 'strselect'; - $type = 'TABLE'; - } elseif (isset($_SESSION['sqlquery'])) { - $query = $_SESSION['sqlquery']; - } - - $this->printTitle($this->lang['strqueryresults']); + list($query, $title, $type) = $this->getQueryTitleAndType($data); + $this->printTitle($title); //$this->prtrace($subject, $object, $query, $_SESSION['sqlquery']); @@ -269,6 +243,38 @@ class DisplayController extends BaseController $this->printNavLinks($navlinks, 'display-browse', get_defined_vars()); } + public function getQueryTitleAndType($data) + { + $fkey = $this->coalesceArr($_REQUEST, 'fkey')['fkey']; + + $query = $this->coalesceArr($_REQUEST, 'query')['query']; + // This code is used when browsing FK in pure-xHTML (without js) + if ($fkey) { + $ops = []; + foreach (array_keys($fkey) as $x) { + $ops[$x] = '='; + } + $query = $data->getSelectSQL($_REQUEST['table'], [], $fkey, $ops); + $_REQUEST['query'] = $query; + } + + $title = 'strqueryresults'; + $type = 'QUERY'; + + if ($object && $query) { + $_SESSION['sqlquery'] = $query; + $title = 'strselect'; + $type = 'SELECT'; + } elseif ($object) { + $title = 'strselect'; + $type = 'TABLE'; + } elseif (isset($_SESSION['sqlquery'])) { + $query = $_SESSION['sqlquery']; + } + + return [$query, $title, $type]; + } + public function getBrowseNavLinks($type, $_gets, $page, $subject, $object, $resultset) { $fields = [ @@ -599,6 +605,10 @@ class DisplayController extends BaseController { $data = $this->misc->getDatabaseAccessor(); + if (!is_array($resultset->fields)) { + return; + } + foreach (array_keys($resultset->fields) as $index => $key) { if (($key === $data->id) && (!($withOid && $this->conf['show_oids']))) { continue; |