0
0
mirror of https://github.com/postfixadmin/postfixadmin.git synced 2024-09-20 03:36:20 +02:00

PFAHandler.php:

- split off build_select_query() from read_from_db() as preparation for
  using build_select_query() to generate the pagebrowser query



git-svn-id: https://svn.code.sf.net/p/postfixadmin/code/trunk@1756 a1433add-5e2c-0410-b055-b7f2511e0802
This commit is contained in:
Christian Boltz 2015-03-19 22:05:49 +00:00
parent 46d807c83d
commit 28fe7042e8

View File

@ -535,22 +535,18 @@ abstract class PFAHandler {
/** /**
* read_from_db * build_select_query
* *
* reads all fields specified in $this->struct from the database * helper function to build the inner part of the select query
* and auto-converts them to database-independent values based on the field type (see $colformat) * can be used by read_from_db() and for generating the pagebrowser
*
* calls $this->read_from_db_postprocess() to postprocess the result
* *
* @param array or string - condition (an array will be AND'ed using db_where_clause, a string will be directly used) * @param array or string - condition (an array will be AND'ed using db_where_clause, a string will be directly used)
* (if you use a string, make sure it is correctly escaped!) * (if you use a string, make sure it is correctly escaped!)
* - WARNING: will be changed to array only in the future, with an option to include a raw string inside the array * - WARNING: will be changed to array only in the future, with an option to include a raw string inside the array
* @param array searchmode - operators to use (=, <, >) if $condition is an array. Defaults to = if not specified for a field. * @param array searchmode - operators to use (=, <, >) if $condition is an array. Defaults to = if not specified for a field.
* @param integer limit - maximum number of rows to return * @return array - contains query parts
* @param integer offset - number of first row to return
* @return array - rows (as associative array, with the ID as key)
*/ */
protected function read_from_db($condition, $searchmode = array(), $limit=-1, $offset=-1) { protected function build_select_query($condition, $searchmode) {
$select_cols = array(); $select_cols = array();
$yes = escape_string(Config::lang('YES')); $yes = escape_string(Config::lang('YES'));
@ -610,7 +606,30 @@ abstract class PFAHandler {
$where = " WHERE ( $condition ) $additional_where"; $where = " WHERE ( $condition ) $additional_where";
} }
$query = "SELECT $cols FROM $table $extrafrom $where ORDER BY " . $this->order_by; return array(
'select_cols' => " SELECT $cols ",
'from_where_order' => " FROM $table $extrafrom $where ORDER BY " . $this->order_by,
);
}
/**
* read_from_db
*
* reads all fields specified in $this->struct from the database
* and auto-converts them to database-independent values based on the field type (see $colformat)
*
* calls $this->read_from_db_postprocess() to postprocess the result
*
* @param array or string condition -see build_select_query() for details
* @param array searchmode - see build_select_query() for details
* @param integer limit - maximum number of rows to return
* @param integer offset - number of first row to return
* @return array - rows (as associative array, with the ID as key)
*/
protected function read_from_db($condition, $searchmode = array(), $limit=-1, $offset=-1) {
$queryparts = $this->build_select_query($condition, $searchmode);
$query = $queryparts['select_cols'] . $queryparts['from_where_order'];
$limit = (int) $limit; # make sure $limit and $offset are really integers $limit = (int) $limit; # make sure $limit and $offset are really integers
$offset = (int) $offset; $offset = (int) $offset;