b2evolution

Multilingual multiuser multiblog engine

b2evolution Technical Documentation (Version 1.9) [ class tree: evocore ] [ index: evocore ] [ all elements ]

Class: Results

Source Location: /blogs/inc/_misc/_results.class.php

Class Results

Direct descendents
Child Class Description
FilteredResults
DataObjectList Data Object List Base Class
ResultSel ResultSel class: displays Results and provides Selection capabilities
ArchiveList Archive List Class

[ Top ]
Inherited Properties, Constants, and Methods
Inherited Properties Inherited Methods Inherited Constants

Inherited From Widget

Widget::$global_icons
Widget::$title

Inherited From Widget

Widget::gen_global_icons()
Generate img tags for registered icons, through global_icon().
Widget::global_icon()
Registers a global action icon
Widget::replace_callback()
Callback function used to replace only necessary values in template.
Widget::replace_callback_wrapper()
This is an additional wrapper to replace_vars() that allows to react on the return value of it.
Widget::replace_vars()
Replaces $vars$ with appropriate values.

[ Top ]
Property Summary
mixed   $Cache   Cache to use to instantiate an object and cache it for each line of results.
mixed   $cols   Definitions for each column:
boolean   $col_headers   Do we want to display column headers?
string   $current_group_ID   Current group identifier:
mixed   $current_idx   Current object idx in $rows array:
mixed   $current_Obj   This will hold the object instantiated by the Cache for the current line.
mixed   $DB  
mixed   $filter_area   Parameters for the filter area:
mixed   $functions_area   Parameters for the functions area (to display functions at the end of results array):
mixed   $global_idx   idx relative to whole list (range: 0 to total_rows-1)
mixed   $global_is_first   Is this gobally the 1st item in the list? (NOT just the 1st in current page)
mixed   $global_is_last   Is this gobally the last item in the list? (NOT just the last in current page)
string   $group_by   Fieldname to group on.
mixed   $grp_cols   Definitions for each GROUP column:
string   $ID_col   Fieldname to detect empty data rows.
mixed   $limit   Number of lines per page
mixed   $nb_cols   Lazy filled.
array   $order_callbacks  
mixed   $order_field_list   List of sortable fields
mixed   $order_param  
mixed   $page   Current page
mixed   $page_ID_array   Array of IDs for current page.
mixed   $page_ID_list   List of IDs for current page.
mixed   $page_param  
mixed   $params   Display parameters
mixed   $param_prefix   URL param names
mixed   $result_num_rows   Number of rows in result set for current page.
mixed   $rows   Array of DB rows for current page.
mixed   $sql   SQL query
mixed   $total_pages   Total number of pages
mixed   $total_rows   Total number of rows (if > $limit, it will result in multiple pages)

[ Top ]
Method Summary
Results   Results()   Constructor
void   count_total_rows()   Count the total number of rows of the SQL result (all pages)
int   display()   Display paged list/table based on object parameters
void   display_body()   Display list/table body.
void   display_colselect()   Display the column selection
void   display_filters()   Display the filtering form
void   display_first()   returns the link to the first page, if necessary
void   display_functions()   Display the functions
void   display_head()   Display list/table head.
true   display_if_empty()   Template function: display message if list is empty
void   display_init()   Initialize things in order to be ready for displaying.
void   display_last()   returns the link to the last page, if necessary
void   display_list_end()   Display list/table end.
void   display_list_start()   Display list/table start.
void   display_nav()   Display navigation text, based on template.
void   display_next()   returns a link to next pages, if necessary
void   display_option_area()   Display options area
void   display_prev()   returns a link to previous pages, if necessary
void   display_totals()   Display totals line if set.
void   first()   Returns the first page number to be displayed in the list
array   get_col_sort_values()   Returns values needed to make sort links for a given column
integer   get_num_rows()   Get number of rows available for display
string   get_order_field_list()   Returns order field list add to SQL query:
void   get_page_ID_array()   Get an array of IDs for current page
void   get_page_ID_list()   Get a list of IDs for current page
void   instantiate_page_to_Cache()   Note: this function might actually not be very useful.
void   last()   returns the last page number to be displayed in the list
void   move_icons()  
void   next_idx()   Increment and update all necessary counters before processing a new line in result set
integer   order_callback_wrapper_objects()   Wrapper method to http://www.php.net/usort, which instantiates objects and passed them on to the order callback.
integer   order_callback_wrapper_rows()   Wrapper method to http://www.php.net/usort, which passes the rows to the order callback.
void   page_list()   Returns the page link list under the table
void   page_scroll_list()  
void   parse_col_content()   Handle variable subtitutions for column contents.
void   query()   Run the query now!
string   replace_callback()   Widget callback for template vars.
void   restart()   Rewind resultset

[ Top ]
Properties
mixed   $Cache [line 124]

Cache to use to instantiate an object and cache it for each line of results.

For this to work, all columns of the related table must be selected in the query


[ Top ]
mixed   $cols [line 150]

Definitions for each column:

  • th
  • td
  • order: SQL column name(s) to sort by (delimited by comma)
  • order_objects_callback: a PHP callback function (can be array($Object, $method)). This gets three params: $a, $b, $desc. $a and $b are instantiated objects from Results::Cache $desc is either 'ASC' or 'DESC'. The function has to return -1, 0 or 1, according to if the $a < $b, $a == $b or $a > $b.
  • order_rows_callback: a PHP callback function (can be array($Object, $method)). This gets three params: $a, $b, $desc. $a and $b are DB row objects $desc is either 'ASC' or 'DESC'. The function has to return -1, 0 or 1, according to if the $a < $b, $a == $b or $a > $b.
  • td_class


[ Top ]
boolean   $col_headers = true [line 161]

Do we want to display column headers?


[ Top ]
string   $current_group_ID = 0 [line 183]

Current group identifier:


[ Top ]
mixed   $current_idx = 0 [line 101]

Current object idx in $rows array:


[ Top ]
mixed   $current_Obj [line 129]

This will hold the object instantiated by the Cache for the current line.


[ Top ]
mixed   $DB [line 49]

[ Top ]
mixed   $filter_area [line 227]

Parameters for the filter area:


[ Top ]
mixed   $functions_area [line 233]

Parameters for the functions area (to display functions at the end of results array):


[ Top ]
mixed   $global_idx [line 106]

idx relative to whole list (range: 0 to total_rows-1)


[ Top ]
mixed   $global_is_first [line 111]

Is this gobally the 1st item in the list? (NOT just the 1st in current page)


[ Top ]
mixed   $global_is_last [line 116]

Is this gobally the last item in the list? (NOT just the last in current page)


[ Top ]
string   $group_by = '' [line 177]

Fieldname to group on.

Leave empty if you don't want to group.


[ Top ]
mixed   $grp_cols = NULL [line 194]

Definitions for each GROUP column:

-td -td_start. A column with no def will de displayed using the default defs from Results::params, that is to say, one of these:

  • $this->params['grp_col_start_first'];
  • $this->params['grp_col_start_last'];
  • $this->params['grp_col_start'];


[ Top ]
string   $ID_col = '' [line 204]

Fieldname to detect empty data rows.

Empty data rows can happen when left joining on groups. Leave empty if you don't want to detect empty datarows.


[ Top ]
mixed   $limit [line 64]

Number of lines per page


[ Top ]
mixed   $nb_cols [line 155]

Lazy filled.


[ Top ]
array   $order_callbacks [line 221]

[ Top ]
mixed   $order_field_list [line 216]

List of sortable fields


[ Top ]
mixed   $order_param [line 211]

[ Top ]
mixed   $page [line 79]

Current page


[ Top ]
mixed   $page_ID_array [line 96]

Array of IDs for current page.

API Tags:
Uses:  Results::ID_col


[ Top ]
mixed   $page_ID_list [line 90]

List of IDs for current page.

API Tags:
Uses:  Results::ID_col


[ Top ]
mixed   $page_param [line 210]

[ Top ]
mixed   $params = NULL [line 167]

Display parameters


[ Top ]
mixed   $param_prefix [line 209]

URL param names


[ Top ]
mixed   $result_num_rows [line 69]

Number of rows in result set for current page.


[ Top ]
mixed   $rows [line 84]

Array of DB rows for current page.


[ Top ]
mixed   $sql [line 54]

SQL query


[ Top ]
mixed   $total_pages [line 74]

Total number of pages


[ Top ]
mixed   $total_rows [line 59]

Total number of rows (if > $limit, it will result in multiple pages)


[ Top ]
Methods
Constructor Results  [line 252]

  Results Results( string $sql, [string $param_prefix = ''], [string $default_order = ''], [integer $limit = 20], [boolean $count_sql = NULL], [NULL|string $init_page = true]  )

Constructor

Parameters:
string   $sql:  SQL query
string   $param_prefix:  prefix to differentiate page/order params when multiple Results appear one same page
string   $default_order:  default ordering of columns (special syntax) if not specified in the URL params example: -A-- will sort in ascending order on 2nd column example: ---D will sort in descending order on 4th column
integer   $limit:  number of lines displayed on one page (NULL to disable paging)
boolean   $count_sql: 
NULL|string   $init_page:  SQL query used to count the total # of rows (if NULL, we'll try to COUNT(*) by ourselves)

Information Tags:
Todo:  we might not want to count total rows when not needed...
Todo:  fplanque: I am seriously considering putting $count_sqlinto 2nd or 3rd position. Any prefs?

[ Top ]
count_total_rows  [line 507]

  void count_total_rows( [ $sql_count = NULL]  )

Count the total number of rows of the SQL result (all pages)

This is done by dynamically modifying the SQL query and forging a COUNT() into it.

Parameters:
   $sql_count: 

Information Tags:
Todo:  allow overriding?
Todo:  handle problem of empty groups!

Redefined in descendants as:

[ Top ]
display  [line 605]

  int display( [array|NULL $display_params = NULL], [array $fadeout = array()]  )

Display paged list/table based on object parameters

This is the meat of this class!

Parameters:
array|NULL   $display_params: 
array   $fadeout:  Fadeout settings (column key => crit (array))

API Tags:
Return:  # of rows displayed


[ Top ]
display_body  [line 1196]

  void display_body( [array $fadeout = array()]  )

Display list/table body.

This includes groups and data rows.

Parameters:
array   $fadeout:  fadeout list

API Tags:
Access:  protected


[ Top ]
display_colselect  [line 857]

  void display_colselect( )

Display the column selection



[ Top ]
display_filters  [line 873]

  void display_filters( )

Display the filtering form



[ Top ]
display_first  [line 1986]

  void display_first( )

returns the link to the first page, if necessary



[ Top ]
display_functions  [line 1471]

  void display_functions( )

Display the functions



Redefined in descendants as:

[ Top ]
display_head  [line 895]

  void display_head( )

Display list/table head.

This includes list head/title and column headers. This is optional and will only produce output if column headers are defined. EXPERIMENTAL: also dispays <tfoot>


API Tags:
Access:  protected


[ Top ]
display_if_empty  [line 2148]

  true display_if_empty( [string $message = '']  )

Template function: display message if list is empty

Parameters:
string   $message:  String to display if list is empty

API Tags:
Return:  if empty


Redefined in descendants as:

[ Top ]
display_init  [line 667]

  void display_init( [ $display_params = NULL]  )

Initialize things in order to be ready for displaying.

This is useful when manually displaying, i-e: not by using Results::display()

Parameters:
   $display_params: 


[ Top ]
display_last  [line 2002]

  void display_last( )

returns the link to the last page, if necessary



[ Top ]
display_list_end  [line 721]

  void display_list_end( [boolean $detect_no_results = true]  )

Display list/table end.

Typically outputs </ul> or </table>

Parameters:
boolean   $detect_no_results:  do we want special treatment when there are no results


Redefined in descendants as:

[ Top ]
display_list_start  [line 701]

  void display_list_start( [boolean $detect_no_results = true]  )

Display list/table start.

Typically outputs UL or TABLE tags.

Parameters:
boolean   $detect_no_results:  do we want special treatment when there are no results


Redefined in descendants as:

[ Top ]
display_nav  [line 1526]

  void display_nav( string $template  )

Display navigation text, based on template.

Parameters:
string   $template:  template: 'header' or 'footer'

API Tags:
Access:  protected


[ Top ]
display_next  [line 2032]

  void display_next( )

returns a link to next pages, if necessary



[ Top ]
display_option_area  [line 744]

  void display_option_area( string $option_name, string $area_name, string $option_title, string $submit_title, [string $default_folde_state = 'expanded']  )

Display options area

Parameters:
string   $option_name:  name of the option ( ma_colselect, tsk_filter....)
string   $area_name:  area name ( colselect_area, filter_area )
string   $option_title:  option title
string   $submit_title:  submit button title
string   $default_folde_state:  default folde state when is empty in the session


[ Top ]
display_prev  [line 2018]

  void display_prev( )

returns a link to previous pages, if necessary



[ Top ]
display_totals  [line 1392]

  void display_totals( )

Display totals line if set.



[ Top ]
first  [line 1950]

  void first( )

Returns the first page number to be displayed in the list



[ Top ]
get_col_sort_values  [line 1559]

  array get_col_sort_values( integer $col_idx  )

Returns values needed to make sort links for a given column

Returns an array containing the following values:

  • current_order : 'ASC', 'DESC' or ''
  • order_asc : url to order in ascending order
  • order_desc
  • order_toggle : url to toggle sort order

Parameters:
integer   $col_idx:  column to sort


Redefined in descendants as:

[ Top ]
get_num_rows  [line 2136]

  integer get_num_rows( )

Get number of rows available for display



[ Top ]
get_order_field_list  [line 1629]

  string get_order_field_list( )

Returns order field list add to SQL query:


API Tags:
Return:  May be empty


[ Top ]
get_page_ID_array  [line 483]

  void get_page_ID_array( )

Get an array of IDs for current page


API Tags:
Uses:  Results::ID_col


[ Top ]
get_page_ID_list  [line 466]

  void get_page_ID_list( )

Get a list of IDs for current page


API Tags:
Uses:  Results::ID_col


[ Top ]
instantiate_page_to_Cache  [line 579]

  void instantiate_page_to_Cache( DataObjectCache &$Cache  )

Note: this function might actually not be very useful.

If you define ->Cache before display, all rows will be instantiated on the fly. No need to restart et go through the rows a second time here.

Parameters:
DataObjectCache   &$Cache: 


[ Top ]
last  [line 1970]

  void last( )

returns the last page number to be displayed in the list



[ Top ]
move_icons  [line 1783]

  void move_icons( )


Information Tags:
Todo:  Support Results::order_callbacks

[ Top ]
next_idx  [line 300]

  void next_idx( )

Increment and update all necessary counters before processing a new line in result set



[ Top ]
order_callback_wrapper_objects  [line 439]

  integer order_callback_wrapper_objects( $row_a, $row_b  )

Wrapper method to http://www.php.net/usort, which instantiates objects and passed them on to the order callback.

Parameters:
   $row_a: 
   $row_b: 


[ Top ]
order_callback_wrapper_rows  [line 454]

  integer order_callback_wrapper_rows( $row_a, $row_b  )

Wrapper method to http://www.php.net/usort, which passes the rows to the order callback.

Parameters:
   $row_a: 
   $row_b: 


[ Top ]
page_list  [line 2045]

  void page_list( $min, $max  )

Returns the page link list under the table

Parameters:
   $min: 
   $max: 


[ Top ]
page_scroll_list  [line 2068]

  void page_scroll_list( )



[ Top ]
parse_col_content  [line 1744]

  void parse_col_content( $content  )

Handle variable subtitutions for column contents.

This is one of the key functions to look at when you want to use the Results class.

  • $var$
  • £var£
  • #var#
  • {row}
  • {global_idx}
  • {global_is_first}
  • {global_is_last}
  • %func()%
  • ¤func()¤

Parameters:
   $content: 


[ Top ]
query  [line 319]

  void query( [ $create_default_cols_if_needed = true], [ $append_limit = true], [ $append_order_by = true]  )

Run the query now!

Will only run if it has not executed before.

Parameters:
   $create_default_cols_if_needed: 
   $append_limit: 
   $append_order_by: 


Redefined in descendants as:

[ Top ]
replace_callback  [line 1874]

  string replace_callback( $matches  )

Widget callback for template vars.

This allows to replace template vars, see Widget::replace_callback().

Parameters:
   $matches: 


Redefinition of:
Widget::replace_callback()
Callback function used to replace only necessary values in template.

[ Top ]
restart  [line 280]

  void restart( )

Rewind resultset



Redefined in descendants as:

[ Top ]

Documentation generated on Tue, 18 Dec 2007 22:51:47 +0100 by phpDocumentor 1.4.0