} } // related articles based on keywords, inspired by Magnar Stav Johanssen if (strpos($content["all"], '{RELATED:') !== false) { $related_keywords = $no_content_for_this_page === false && !empty($content["articles"][$aktion[1]]["article_keyword"]) ? $content["articles"][$aktion[1]]["article_keyword"] : ''; $content["all"] = preg_replace_callback('/\\{RELATED:(\\d+)\\}/', 'get_related_articles_callback', $content["all"]); $content["all"] = preg_replace_callback('/\\{RELATED:(\\d+):(.*?)\\}/', 'get_related_articles_callback', $content["all"]); } // all new article list sorted by date if (strpos($content["all"], '{NEW:') !== false) { $content["all"] = preg_replace_callback('/\\{NEW:(\\d+):{0,1}(\\d+){0,1}\\}/', 'get_new_articles_callback', $content["all"]); } // some more general parsing $content["all"] = str_replace('{SITE}', PHPWCMS_URL, $content["all"]); $content["all"] = str_replace('{RSSIMG}', $template_default["rss"]["image"], $content["all"]); $content["all"] = html_parser($content["all"]); $content["all"] = preg_replace_callback('/\\[img=(\\d+)(.*?){0,1}\\](.*?)\\[\\/img\\]/i', 'parse_images', $content["all"]); $content["all"] = preg_replace_callback('/\\[img=(\\d+)(.*?){0,1}\\]/i', 'parse_images', $content["all"]); $content["all"] = preg_replace_callback('/\\[download=([0-9, ]+?)( template=.*?){0,1}\\/\\]/i', 'parse_downloads', $content["all"]); $content["all"] = preg_replace_callback('/\\[download=([0-9, ]+?)( template=.*?){0,1}\\](.*?)\\[\\/download\\]/is', 'parse_downloads', $content["all"]); // create link to articles for found keywords $content["all"] = preg_replace_callback('/\\{KEYWORD:(.*?)\\}/', 'get_keyword_link', $content["all"]); //} // include external HTML page but only part between <body></body> $content["all"] = preg_replace_callback('/\\{URL:(.*?)\\}/i', 'include_url', $content["all"]); // special browse the content links: UP, NEXT, PREVIOUS // echo get_index_link_up('UP')." | ".get_index_link_prev('PREV',1).' | '.get_index_link_next('NEXT',1); if (strpos($content["all"], '{BROWSE:') !== false) { $content["all"] = preg_replace_callback('/\\{BROWSE:UP:(.*?)\\}/', 'get_index_link_up', $content["all"]); $content["all"] = preg_replace_callback('/\\{BROWSE:NEXT:(.*?):(0|1)\\}/', 'get_index_link_next', $content["all"]); $content["all"] = preg_replace_callback('/\\{BROWSE:PREV:(.*?):(0|1)\\}/', 'get_index_link_prev', $content["all"]);
/** * search string for calendar tag and parse */ function parse(&$string) { if (isset($_GET['pcal_reset']) || isset($_POST['pcal_reset'])) { unset($_SESSION['pcal']); headerRedirect(abs_url(array(), array('pcal_reset', 'pcal_start', 'pcal_end', 'pcal_place', 'pcal_limit'), '', 'rawurlencode')); } if (preg_match_all('/\\{CALENDAR:(.*?)\\}/s', $string, $matches)) { if (isset($matches[1])) { foreach ($matches[1] as $key => $value) { $this->parse_match($value); $result = $this->render(); // replace calendar by result $string = str_replace($matches[0][$key], $result, $string); } $string = html_parser($string); } } }
function parseLightboxCaption($caption = '') { if (empty($caption)) { return ''; } $caption = html_parser($caption); return html_specialchars($caption); }
function combinedParser($string, $charset = 'utf-8', $allowed_tags = '') { $string = html_parser($string); $string = clean_replacement_tags($string, $allowed_tags); $string = str_replace(' ', ' ', $string); $string = decode_entities($string); $string = cleanUpSpecialHtmlEntities($string); if (!empty($string) && PHPWCMS_CHARSET != $charset) { $string = makeCharsetConversion($string, PHPWCMS_CHARSET, $charset); } else { $string = html_specialchars($string); } // Strip away unwanted UTF-8 chars to avoid XML fatal parsing error // http://www.phpwact.org/php/i18n/charsets#common_problem_areas_with_utf-8 if ($charset == 'utf-8') { $string = preg_replace('/[^\\x{0009}\\x{000a}\\x{000d}\\x{0020}-\\x{D7FF}\\x{E000}-\\x{FFFD}]+/u', ' ', $string); } return $string; }