Mercurial > SimpleWebPresenter
view filters.inc @ 97:ba11b1c1b881
Add baseUrl to activeNav filter.
| author | Tom Fredrik "BFG" Klaussen <bfg@blenning.no> |
|---|---|
| date | Thu, 18 Oct 2012 22:39:21 +0200 |
| parents | c7de7a4641d7 |
| children | ef487503dded |
line wrap: on
line source
<?php /** * @file * Filters which may be used from xml */ /** * A configuration function for generating an active status in a list * item corresponding to the currently active 'name' * * @param $input the string to be processed * @param $options Options for this file */ function activeNav($input, $options) { $name = $options->getName(); if (!$name) $name = $options->getInputDefault('name'); $lang = $options->getLang(); $pattern = "/<li id=\"${name}\"\s?([^>]*)>/is"; $replacement = "<li id=\"${name}\" class=\"active\" $1>"; $output = preg_replace($pattern, $replacement, $input); $pattern = '/<li id="([^"]+)"\s?([^>]*)>(.*?)<\/li>/is'; $replacement = "<li id=\"\$1\" \$2><a href=\"%URL-$1%\">\$3</a></li>"; $opt = repMapString($options->getUrlParams()); $baseUrl = $options->getBaseUrl(); $output = preg_replace_callback($pattern, create_function( '$matches', 'return "<li id=\"$matches[1]\" $matches[2]><a href=\"' . $baseUrl . '" . genUrl(' . $opt . ', array("name" => $matches[1]), array("lang", "name") ) . "\">$matches[3]</a></li>";' ), $output); return $output; } /** * A configuration function for generating a language bar. * * @param $input the string to be processed * @param $options Options for this file * @param $languages array of alternative languages */ function addLangBar($input, $options, $languages) { $name = $options->getName(); $lang = $options->getLang(); $langbar='<ul id="language-select">'; foreach($languages as $l) { $active = ($l == $lang) ? 0 : 1; $langbar.= " <li class=\"${l}\">"; if ($active) $langbar .= '<a href="'.genUrl($options->getUrlParams(), array( 'lang' => $l), array('lang', 'name') ) . '">'; $flagUrl = $options->getFlagUrl(); $langbar .= " <img src=\"${flagUrl}?lang=${l}&active=${active}\" width=\"20\" height=\"16\" alt=\"Norsk versjon - inaktiv\" title=\"Norsk\"/>"; if ($active) $langbar .= "</a>"; $langbar .= " </li> "; } $langbar.='</ul>'; $pattern = '/<ul id="language-select"\/>/'; $replacement = $langbar; $output = preg_replace($pattern, $replacement, $input); return $output; } ?>
