function cw_config_process_options($options) { global $tables; if ($options) { foreach ($options as $k => $v) { switch ($v['name']) { case 'cmpi_currency': $currs = cw_query_hash("SELECT code, name FROM {$tables['currencies']}", "code", false, true); if (empty($currs)) { unset($options[$k]); continue; } $v['variants'] = ""; foreach ($currs as $ek => $ev) { $v['variants'] .= $ek . ":({$ek}) " . $ev . "\n"; } break; } if (in_array($v['type'], array("selector", "multiselector"))) { if (empty($v['variants'])) { unset($options[$k]); continue; } $vars = cw_parse_str(trim($v['variants']), "\n", ":"); $vars = cw_array_map("trim", $vars); if ($v['type'] == "multiselector") { $v['value'] = explode(";", $v['value']); foreach ($v['value'] as $vk => $vv) { if (!isset($vars[$vv])) { unset($v['value'][$vk]); } } $options[$k]['value'] = $v['value'] = array_values($v['value']); } $options[$k]['variants'] = array(); foreach ($vars as $vk => $vv) { $options[$k]['variants'][$vk] = array("name" => $vv); if (strpos($vv, " ") === false) { $name = cw_get_langvar_by_name($vv, NULL, false, true); if (!empty($name)) { $options[$k]['variants'][$vk] = array("name" => $name); } } if ($v['type'] == "selector") { $options[$k]['variants'][$vk]['selected'] = $v['value'] == $vk; } else { $options[$k]['variants'][$vk]['selected'] = in_array($vk, $v['value']); } } } if (in_array($v['type'], array('shipping', 'memberships', 'doc_status'))) { $options[$k]['value'] = unserialize($v['value']); } } } return $options; }
function cw_qs_remove($qs) { if (func_num_args() <= 1) { return $qs; } $args = func_get_args(); array_shift($args); if (count($args) == 0 || strpos($qs, "=") === false && strpos($qs, "?") === false) { return $qs; } # Get scheme://domain/path part if (strpos($qs, '?') !== false) { list($main, $qs) = explode("?", $qs, 2); } # Get #hash part if (strrpos($qs, "#") !== false) { $hash = substr($qs, strrpos($qs, "#") + 1); $qs = substr($qs, 0, strrpos($qs, "#")); } # Parse query string $arr = cw_parse_str($qs); # Filter query string foreach ($args as $param_name) { if (empty($param_name) || !is_string($param_name)) { continue; } $reg = "/^" . preg_quote($param_name, "/") . "(\\[[^\\]]*\\])*(\\Z|=)/S"; foreach ($arr as $ak => $av) { if (preg_match($reg, $ak) || empty($ak)) { unset($arr[$ak]); break; } } } # Assembly return string foreach ($arr as $ak => $av) { $arr[$ak] = $ak . "=" . $av; } $qs = implode("&", $arr); if (isset($main)) { $qs = $main . (empty($qs) ? "" : "?" . $qs); } if (isset($hash)) { $qs .= "#" . $hash; } return $qs; }
if ($_COOKIE['adv_campaign_id_time'] >= cw_core_get_time()) { $adv_campaign_id = 'Y'; } else { setcookie('adv_campaign_id', '', 0, '/', $app_config_file['web']['http_host'], 0); setcookie('adv_campaign_id_time', '', 0, '/', $app_config_file['web']['http_host'], 0); } } # # For type 'G' (use GET parameter(s)) # if ($REQUEST_METHOD == 'GET' && empty($adv_campaign_id)) { $gets = cw_query("SELECT campaign_id, data, type FROM {$tables['salesman_adv_campaigns']} WHERE type = 'G'"); $_campaign_id = 0; if ($gets) { foreach ($gets as $v) { $tmp = cw_parse_str($v['data']); if (!empty($tmp)) { $cnt = 0; foreach ($tmp as $key => $value) { if ($_GET[$key] == $value && isset($_GET[$key])) { $cnt++; } } if ($cnt == count($tmp)) { $QUERY_STRING = implode("&", array_diff(explode("&", $QUERY_STRING), explode("&", $v['data']))); $_campaign_id = $v['campaign_id']; $_type = $v['type']; break; } } }