/** * Make link string from given formatted string. * If OUTPUT_LINK_STYLE is * * @param string $string * @param boolean $with_gets $_GET parametrs to the end * @param string $exclude param from $_GET. (should be coma separated) * @return string */ function smarty_modifier_glink($link, $with_gets = false, $exclude = '') { $exclude = explode(",", $exclude); if ($with_gets) { $link = RewriteURL::ensureSourceLastDelimiter($link) . get_all_get_params($exclude); } $link = Reg::get('rewriteURL')->glink($link); return $link; }
/** * Draw Pager * * @param $id * @param $visualPagesCount * @param $exclude * @return string */ function smarty_function_draw_pager($params, Smarty_Internal_Template &$smarty) { $id = null; $visualPagesCount = null; $excludedGetsArray = array(); extract($params); if (empty($visualPagesCount)) { $visualPagesCount = ConfigManager::getConfig("Pager", "Pager")->AuxConfig->defaultVidualPagesCount; } if (empty($id)) { $id = null; } if (isset($exclude) and !empty($exclude)) { $excludedGetsArray = explode(",", str_replace(" ", "", $exclude)); } $pager = Pager::getPager($id); if ($pager instanceof Pager) { if (isset($baseLink) and !empty($baseLink)) { // Remove heading slash if present and ensure last slash $link = RewriteURL::ensureSourceLastDelimiter(ltrim($baseLink, "/")); } else { $link = RewriteURL::generateCleanBaseLink(Reg::get('nav')->module, Reg::get('nav')->page, ConfigManager::getConfig("SiteNavigation")->AuxConfig->firstLevelDefaultValue) . get_all_get_params(array_merge(array($pager->getUrlParam()), $excludedGetsArray)); } $urlParam = $pager->getUrlParam(); $currentPageNumber = $pager->getCurrentPageNumber(); $pagesCount = $pager->getTotalPagesCount(); if ($pagesCount > 1) { $pageNumStart = $currentPageNumber - floor($visualPagesCount / 2); if ($pageNumStart < 1) { $pageNumStart = 1; } $pageNumEnd = $pageNumStart + $visualPagesCount - 1; if ($pageNumEnd > $pagesCount) { $pageNumEnd = $pagesCount; $pageNumStart = $pageNumEnd - $visualPagesCount + 1; if ($pageNumStart < 1) { $pageNumStart = 1; } } if ($currentPageNumber > 1) { $prevPageLink = Reg::get(ConfigManager::getConfig("RewriteURL")->Objects->rewriteURL)->glink($link . $pager->getUrlParam() . ':' . ($currentPageNumber - 1)); $smarty->assign('pagerPreviousPageLink', $prevPageLink); } $pagerNumbersArray = array(); for ($pgNum = $pageNumStart; $pgNum <= $pageNumEnd; $pgNum++) { $isCurrent = false; if ($pgNum == $currentPageNumber) { $isCurrent = true; } $pageLink = Reg::get(ConfigManager::getConfig("RewriteURL")->Objects->rewriteURL)->glink($link . $pager->getUrlParam() . ':' . $pgNum); array_push($pagerNumbersArray, array("pageNum" => $pgNum, "pageLink" => $pageLink, "isCurrent" => $isCurrent)); } if ($currentPageNumber < $pagesCount) { $nextPageLink = Reg::get(ConfigManager::getConfig("RewriteURL")->Objects->rewriteURL)->glink($link . $pager->getUrlParam() . ':' . ($currentPageNumber + 1)); $smarty->assign('pagerNextPageLink', $nextPageLink); } $smarty->assign("pagerPageNumStart", $pageNumStart); $smarty->assign("pagerPageNumEnd", $pageNumEnd); $smarty->assign("pagerCurrentPageNumber", $currentPageNumber); $smarty->assign("pagerTotalPagesCount", $pagesCount); $smarty->assign("pagerNumbersArray", $pagerNumbersArray); } if (isset($tplSnippetFile)) { $pagerSnippetFileName = $tplSnippetFile; } else { $pagerSnippetFileName = ConfigManager::getConfig("Pager", "Pager")->AuxConfig->pagerSnippetFileName; } return $smarty->fetch(Reg::get('smarty')->getFilePathFromTemplate(Reg::get('smarty')->snippetsPath . $pagerSnippetFileName)); } }
function getCurrentUrl($exclude = array()) { $siteNavConfig = ConfigManager::getConfig("SiteNavigation")->AuxConfig; $currentUrl = RewriteURL::generateCleanBaseLink(Reg::get("nav")->module, Reg::get("nav")->page, $siteNavConfig->firstLevelDefaultValue); $currentUrl = RewriteURL::ensureOutputLastDelimiter($currentUrl); $currentUrl .= get_all_get_params($exclude); return Reg::get('rewriteURL')->glink($currentUrl); }
/** * Create a sort heading with appropriate sort link * * @param string $key The key used for sorting * @param string $heading The heading to use the link on * @access public */ function create_sort_heading($key, $heading) { global $Language; $current = false; $direction = false; if (!isset($_GET['sort'])) { $current = 'name'; } elseif ($_GET['sort'] == $key || $_GET['sort'] == $key . '|d') { $current = $key; } if ($key == $current) { if (isset($_GET['sort'])) { $direction = $_GET['sort'] == $key ? '+' : '-'; } else { $direction = '+'; } } return link_object(href_link(basename($_SERVER['SCRIPT_FILENAME']), get_all_get_params(array('page', 'sort')) . '&sort=' . $key . ($direction == '+' ? '|d' : '')), $heading . ($key == $current ? $direction : ''), 'title="' . (isset($_GET['sort']) && $_GET['sort'] == $key ? sprintf($Language->get('listing_sort_ascendingly'), $heading) : sprintf($Language->get('listing_sort_descendingly'), $heading)) . '" class="productListing-heading"'); }