/** * Create URL based from current * * @param array $params Array of params to place/replace to the url * @param boolean $addReplace If replace, will add and replace params, else, will create new based on params * @return string */ function zbase_url_from_current($params = [], $replace = true, $add = false) { if (!empty($replace) && !empty($add)) { $queryStrings = array_replace_recursive(zbase_request_query_inputs(), $params); } else { $queryStrings = $params; } if (!empty($replace)) { $qs = zbase_request_query_inputs(); foreach ($params as $pK => $pV) { if (array_key_exists($pK, $qs)) { unset($qs[$pK]); } } $queryStrings = array_replace_recursive($qs, $params); } $urlQ = []; foreach ($queryStrings as $k => $v) { if (is_array($v)) { foreach ($v as $vK => $vV) { $urlQ[] = $k . '[' . $vK . ']=' . $vV; } } else { $urlQ[] = $k . '=' . $v; } } if (zbase_is_angular_template()) { $home = route('index'); return '#' . str_replace($home, '', zbase_url() . '?' . implode('&', $urlQ)); } return zbase_url() . '?' . implode('&', $urlQ); }
if (!empty($s['label'])) { $selected = ''; if (!empty($currentSorting) && array_key_exists($column, $currentSorting)) { $selected = ' selected="selected"'; $currentDir = $currentSorting[$column]; $params = ['sort' => [$column => strtolower($currentDir) == 'asc' ? 'desc' : 'asc']]; } else { $params = ['sort' => [$column => 'asc']]; } $url = zbase_url_from_current($params); $sortingOptions[] = '<option ' . $selected . ' value="' . $url . '">' . $s['label'] . '</option>'; } } } } } if (!empty($sortingOptions)) { ?> <div class="form-group"> <select class="form-control" onchange="window.location = jQuery(this).val();"> <option value="<?php echo zbase_url(); ?> ">Sort</option> <?php echo implode('', $sortingOptions); ?> </select> </div> <?php }