Example #1
0
    }
}
// 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"]);
Example #2
0
 /**
  * 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);
         }
     }
 }
Example #3
0
function parseLightboxCaption($caption = '')
{
    if (empty($caption)) {
        return '';
    }
    $caption = html_parser($caption);
    return html_specialchars($caption);
}
Example #4
0
function combinedParser($string, $charset = 'utf-8', $allowed_tags = '')
{
    $string = html_parser($string);
    $string = clean_replacement_tags($string, $allowed_tags);
    $string = str_replace('&nbsp;', ' ', $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;
}