]> git.joonet.de Git - adminer.git/commitdiff
selectQueryBuild() method
authorJakub Vrana <jakub@vrana.cz>
Fri, 24 Aug 2012 05:17:44 +0000 (22:17 -0700)
committerJakub Vrana <jakub@vrana.cz>
Fri, 24 Aug 2012 05:17:44 +0000 (22:17 -0700)
adminer/include/adminer.inc.php
adminer/select.inc.php
changes.txt
editor/include/adminer.inc.php

index 2cd5831e5c942d9ece0067291e5e082ddbe8ce8b..263d6c02ef0586ef8a1903001833318888d95065 100644 (file)
@@ -452,6 +452,19 @@ username.form['auth[driver]'].onchange();
                return false;
        }
        
+       /** Build SQL query used in select
+       * @param array result of selectColumnsProcess()[0]
+       * @param array result of selectSearchProcess()
+       * @param array result of selectColumnsProcess()[1]
+       * @param array result of selectOrderProcess()
+       * @param int result of selectLimitProcess()
+       * @param int index of page starting at zero
+       * @return string empty string to use default query
+       */
+       function selectQueryBuild($select, $where, $group, $order, $limit, $page) {
+               return "";
+       }
+       
        /** Query printed after execution in the message
        * @param string executed query
        * @return string
index fefc6204615005cde07236dc16dc544c8334c51d..ec1af0821b26488accb20578d029d76d785a9b69 100644 (file)
@@ -230,7 +230,16 @@ if (!$columns) {
                $page = floor(max(0, $found_rows - 1) / $limit);
        }
 
-       $query = "SELECT" . limit((+$limit && $group && count($group) < count($select) && $jush == "sql" ? "SQL_CALC_FOUND_ROWS " : "") . $from, ($where ? "\nWHERE " . implode(" AND ", $where) : "") . $group_by, ($limit != "" ? +$limit : null), ($page ? $limit * $page : 0), "\n");
+       $query = $adminer->selectQueryBuild($select, $where, $group, $order, $limit, $page);
+       if (!$query) {
+               $query = "SELECT" . limit(
+                       (+$limit && $group && count($group) < count($select) && $jush == "sql" ? "SQL_CALC_FOUND_ROWS " : "") . $from,
+                       ($where ? "\nWHERE " . implode(" AND ", $where) : "") . $group_by,
+                       ($limit != "" ? +$limit : null),
+                       ($page ? $limit * $page : 0),
+                       "\n"
+               );
+       }
        echo $adminer->selectQuery($query);
        
        $result = $connection->query($query);
index 6fb517348c43ff6aeefd10e43d596ea88e7858d6..405b0da96ebbdf23babe42c2802f57fbf577da99 100644 (file)
@@ -4,6 +4,7 @@ Edit strings with \n in textarea
 Time out long running database list and select count
 Use VALUES() in INSERT+UPDATE export
 Style logout button as link
+selectQueryBuild() method (customization)
 
 Adminer 3.5.1 (released 2012-08-10):
 Support same name fields in CSV export
index ea66d33ff654d3b4a7b02aa08c076ce508dc8021..d8e1fa41f7e1e1cba8979e6cc10aa3ddf366dfb5 100644 (file)
@@ -411,6 +411,10 @@ ORDER BY ORDINAL_POSITION", null, "") as $row) { //! requires MySQL 5
                return false;
        }
        
+       function selectQueryBuild($select, $where, $group, $order, $limit, $page) {
+               return "";
+       }
+       
        function messageQuery($query) {
                return " <span class='time'>" . @date("H:i:s") . "</span><!--\n" . str_replace("--", "--><!-- ", $query) . "\n-->";
        }