/** * Make URL from specified parameters. If you need more parameters than default * action and section add them as array pair of param and value. * * @param string $action * @param string $section * @return string * @example url_Make( "action", "section", array("param", "value"), array("param2", "value2") ); * @author Mladen Mijatov */ function url_Make($action = '', $section = '') { global $url_rewrite, $url_add_extension, $url_language_optional, $language; $arguments = array(); // make sure we have all parameters if (!empty($section)) { $arguments['section'] = $section; } else { $arguments['section'] = 'home'; } if (!empty($action)) { $arguments['action'] = $action; } else { $arguments['action'] = '_default'; } // get additional arguments if (func_num_args() > 2) { $tmp = array_slice(func_get_args(), 2); foreach ($tmp as $param) { if (is_array($param)) { $arguments[$param[0]] = $param[1]; } } } $result = url_MakeFromArray($arguments); return $result; }
/** * Prints language menu using OL * * @param array $global_params */ private function printMenus($tag_params) { global $action, $section; // check if we were asked to get languages from specific module if (isset($tag_params['from_module']) && class_exists($tag_params['from_module'])) { $module = call_user_func(array($tag_params['from_module'], 'getInstance')); $list = $module->language->getLanguages(true); } else { $list = MainLanguageHandler::getInstance()->getLanguages(true); } $template = $this->loadTemplate($tag_params, 'list_item.xml'); // prepare params $params = $_REQUEST; $link_params = array(); foreach ($params as $key => $value) { if (!in_array($key, $this->invalid_params)) { $link_params[$key] = escape_chars($value); } } // print language list if (count($list) > 0) { foreach ($list as $short => $long) { $link_params['language'] = $short; $link = url_MakeFromArray($link_params); $params = array('short_name' => $short, 'long_name' => $long, 'url' => $link); $template->restoreXML(); $template->setLocalParams($params); $template->parse(); } } }
/** * Register new referral * * @return boolean */ private function createReferral() { $result = false; $manager = AffiliatesManager::getInstance(); $referrals_manager = AffiliateReferralsManager::getInstance(); // prepare data $uid = fix_chars($_REQUEST['affiliate']); $referer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : null; $base_url = url_GetBaseURL(); $landing = url_MakeFromArray($_REQUEST); $landing = mb_substr($landing, 0, mb_strlen($base_url)); // get affiliate $affiliate = $manager->getSingleItem($manager->getFieldNames(), array('uid' => $uid)); // if affiliate code is not valid, assign to default affiliate if (!is_object($affiliate)) { $affiliate = $manager->getSingleItem($manager->getFieldNames(), array('default' => 1)); } // if affiliate exists, update if (is_object($affiliate) && !is_null($referer)) { $referral_data = array('url' => $referer, 'landing' => $landing, 'affiliate' => $affiliate->id, 'conversion' => 0); $referrals_manager->insertData($data); $id = $referrals_manager->getInsertedID(); $_SESSION['referral_id'] = $id; // increase referrals counter $manager->updateData(array('clicks' => '`clicks` + 1'), array('id' => $affiliate->id)); $result = true; } return result; }
/** * Page switcher tag handler * * @param array $tag_params * @param array $children */ public function tag_PageSwitch($tag_params, $children) { // create template handler $template = $this->loadTemplate($tag_params, 'page_switch.xml'); $template->registerTagHandler('_pages', $this, 'tag_Pages'); // calculate number of total pages $total_pages = ceil($this->total_items / $this->per_page); if ($total_pages == 0) { $total_pages = 1; } // prepare param arrays $params_first = array_merge($this->url_params, array($this->param_name => 1)); $params_last = array_merge($this->url_params, array($this->param_name => $total_pages)); $params_next = array_merge($this->url_params, array($this->param_name => $this->current_page + 1)); $params_previous = array_merge($this->url_params, array($this->param_name => $this->current_page - 1)); // create links for pages if ($this->current_page > 1) { $link_first = url_MakeFromArray($params_first); $link_previous = url_MakeFromArray($params_previous); } else { $link_first = 'javascript: void(0);'; $link_previous = 'javascript: void(0);'; } if ($this->current_page < $total_pages) { $link_last = url_MakeFromArray($params_last); $link_next = url_MakeFromArray($params_next); } else { $link_last = 'javascript: void(0);'; $link_next = 'javascript: void(0);'; } // prepare template params $params = array('total_pages' => $total_pages, 'items_per_page' => $this->per_page, 'total_items' => $this->total_items, 'current_page' => $this->current_page, 'link_next' => $link_next, 'link_previous' => $link_previous, 'link_first' => $link_first, 'link_last' => $link_last); // parse template $template->setLocalParams($params); $template->restoreXML(); $template->parse(); }