New way to initialize and modify filter parameters

This commit is contained in:
Manuel Cillero 2017-09-18 03:00:12 +02:00
parent ce5f89b38f
commit 6b9f1ad9d5
14 changed files with 541 additions and 526 deletions

View file

@ -11,19 +11,16 @@ function stormperson_list() {
if (array_key_exists('organization_nid', $_GET)) {
if ($_SESSION['stormperson_list_filter']['organization_nid'] != $_GET['organization_nid']) {
$_SESSION['stormperson_list_filter']['organization_nid'] = $_GET['organization_nid'];
_storm_set_filter_param('person', 'organization_nid', $_GET['organization_nid']);
}
if (array_key_exists('view', $_GET) && $_GET['view'] == 'all') {
$_SESSION['stormperson_list_filter']['name'] = '';
_storm_set_filter_param('person', 'name', '');
}
}
$i = new stdClass();
$i->type = 'stormperson';
$params = $_GET;
$params['organization_nid'] = isset($_SESSION['stormperson_list_filter']['organization_nid']) ? $_SESSION['stormperson_list_filter']['organization_nid'] : NULL;
$header = array(
array(
'data' => t('Organization'),
@ -38,7 +35,7 @@ function stormperson_list() {
'field' => 'spe.email',
),
array(
'data' => storm_icon_add_node($i, $params),
'data' => storm_icon_add_node($i, $_GET),
'class' => 'storm_list_operations',
),
);
@ -47,23 +44,24 @@ function stormperson_list() {
$args = array();
$filterfields = array();
$s = "SELECT n.*, spe.*, nre.format FROM {node} AS n
$s = "SELECT n.*, spe.*, nre.format FROM {node} AS n
INNER JOIN {stormperson} AS spe ON n.vid=spe.vid
INNER JOIN {node_revisions} AS nre ON n.vid = nre.vid
WHERE n.status=1 AND n.type='stormperson' ";
if (isset($_SESSION['stormperson_list_filter']['organization_nid']) && $_SESSION['stormperson_list_filter']['organization_nid'] != 0) {
if (_storm_isset_filter_param('person', 'organization_nid', 0)) {
$where[] = 'spe.organization_nid=%d';
$args[] = $_SESSION['stormperson_list_filter']['organization_nid'];
$filterfields[] = t('Organization');
}
if (isset($_SESSION['stormperson_list_filter']['name']) && $_SESSION['stormperson_list_filter']['name'] != '') {
if (_storm_isset_filter_param('person', 'name', '')) {
$where[] = "LOWER(n.title) LIKE LOWER('%%%s%%')";
$args[] = $_SESSION['stormperson_list_filter']['name'];
$filterfields[] = t('Name');
}
// Sets $itemsperpage for fieldset label, but this section does not control storing of session variable.
$itemsperpage = isset($_SESSION['stormperson_list_filter']['itemsperpage']) ? $_SESSION['stormperson_list_filter']['itemsperpage'] : variable_get('storm_default_items_per_page', 10);
$itemsperpage = _storm_get_filter_param('person', 'itemsperpage', variable_get('storm_default_items_per_page', 10));
if (count($filterfields) == 0) {
$filterdesc = t('Not filtered');
@ -92,11 +90,11 @@ function stormperson_list() {
}
function stormperson_list_filter(&$form_state, $filterdesc = 'Filter') {
$organization_nid = isset($_SESSION['stormperson_list_filter']['organization_nid']) ? $_SESSION['stormperson_list_filter']['organization_nid'] : 0;
$name = isset($_SESSION['stormperson_list_filter']['name']) ? $_SESSION['stormperson_list_filter']['name'] : '';
$organization_nid = _storm_get_filter_param('person', 'organization_nid', 0);
$name = _storm_get_filter_param('person', 'name', '');
$itemsperpage = _storm_get_filter_param('person', 'itemsperpage', variable_get('storm_default_items_per_page', 10));
$itemsperpage = isset($_SESSION['stormperson_list_filter']['itemsperpage']) ? $_SESSION['stormperson_list_filter']['itemsperpage'] : variable_get('storm_default_items_per_page', 10);
$_SESSION['stormperson_list_filter']['itemsperpage'] = $itemsperpage;
$form = array();