cbdd6ed2e9f81180a98e1cc204aa8a471c0f9ce5
3 +--------------------------------------------------------------------+
4 | CiviCRM version 4.7 |
5 +--------------------------------------------------------------------+
6 | Copyright CiviCRM LLC (c) 2004-2015 |
7 +--------------------------------------------------------------------+
8 | This file is a part of CiviCRM. |
10 | CiviCRM is free software; you can copy, modify, and distribute it |
11 | under the terms of the GNU Affero General Public License |
12 | Version 3, 19 November 2007 and the CiviCRM Licensing Exception. |
14 | CiviCRM is distributed in the hope that it will be useful, but |
15 | WITHOUT ANY WARRANTY; without even the implied warranty of |
16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. |
17 | See the GNU Affero General Public License for more details. |
19 | You should have received a copy of the GNU Affero General Public |
20 | License and the CiviCRM Licensing Exception along |
21 | with this program; if not, contact CiviCRM LLC |
22 | at info[AT]civicrm[DOT]org. If you have questions about the |
23 | GNU Affero General Public License or the licensing of CiviCRM, |
24 | see the CiviCRM license FAQ at http://civicrm.org/licensing |
25 +--------------------------------------------------------------------+
29 * This interface defines the set of functions a class needs to implement
30 * to use the CRM/Selector object.
32 * Using this interface allows us to standardize on multiple things including
33 * list display, pagination, sorting and export in multiple formats (CSV is
34 * supported right now, XML support will be added as and when needed
38 * @copyright CiviCRM LLC (c) 2004-2015
42 interface CRM_Core_Selector_API
{
45 * Based on the action, the GET variables and the session state
46 * it adds various key => value pairs to the params array including
48 * status - the status message to display. Modifiers will be defined
49 * to integrate the total count and the current state of the
50 * page: e.g. Displaying Page 3 of 5
51 * csvString - The html string to display for export as csv
52 * rowCount - the number of rows to be included
54 * @param string $action
55 * The action being performed.
56 * @param array $params
57 * The array that the pagerParams will be inserted into.
61 public function getPagerParams($action, &$params);
64 * Returns the sort order array for the given action.
66 * @param string $action
67 * The action being performed.
70 * the elements that can be sorted along with their properties
72 public function &getSortOrder($action);
75 * Returns the column headers as an array of tuples:
76 * (name, sortName (key to the sort array))
78 * @param string $action
79 * The action being performed.
81 * What should the result set include (web/email/csv).
84 * the column headers that need to be displayed
86 public function &getColumnHeaders($action = NULL, $type = NULL);
89 * Returns the number of rows for this action.
91 * @param string $action
92 * The action being performed.
95 * the total number of rows for this action
97 public function getTotalCount($action);
100 * Returns all the rows in the given offset and rowCount.
102 * @param string $action
103 * The action being performed.
105 * The row number to start from.
106 * @param int $rowCount
107 * The number of rows to return.
108 * @param string $sort
109 * The sql string that describes the sort order.
110 * @param string $type
111 * What should the result set include (web/email/csv).
114 * the total number of rows for this action
116 public function &getRows($action, $offset, $rowCount, $sort, $type = NULL);
119 * Return the template (.tpl) filename
121 * @param string $action
122 * The action being performed.
126 public function getTemplateFileName($action = NULL);
129 * Return the filename for the exported CSV.
131 * @param string $type
132 * The type of export required: csv/xml/foaf etc.
135 * the fileName which we will munge to skip spaces and
136 * special characters to avoid various browser issues
138 public function getExportFileName($type = 'csv');