', $empty_str, $output);
}
else {
$output = preg_replace('~(]*>)([^<]*)()~', '$1$2$3', $output);
}
return $output;
}
function art_menu_xml_parcer($content, $show_sub_menus, $menu_class) {
$parent_id = $menu_class . '-id';
$doc = art_xml_document_creator($content, $parent_id);
if ($doc === FALSE) {
return $content; // An error occurred while reading XML content
}
$parent = $doc->documentElement;
$elements = $parent->childNodes;
$ul_elements = $doc->getElementsByTagName("ul");
$ul_element = NULL;
foreach($ul_elements as $ul_element) {
// First ul element with css-class b2-hmenu or b2-vmenu
if (($ul_element->getAttribute('class') == "b2-vmenu") || ($ul_element->getAttribute('class') == "b2-hmenu"))
break;
continue;
}
if ($ul_element == NULL) return $content;
$ul_children = art_menu_style_parcer($doc, $ul_element->childNodes, $show_sub_menus);
$parent->appendChild($ul_element);
while ($ul_element->previousSibling)
$parent->removeChild($ul_element->previousSibling);
return html_entity_decode($doc->saveHTML(), ENT_NOQUOTES, "UTF-8");
}
function art_xml_document_creator($content, $parent_id) {
$old_error_handler = set_error_handler('art_handle_xml_error');
$dom = new DOMDocument();
/* Support Block Edit Link module */
$doc_content = <<< XML
]>
$content
XML;
$dom->loadXml($doc_content);
restore_error_handler();
return $dom;
}
function art_handle_xml_error($errno, $errstr, $errfile, $errline) {
if ($errno==E_WARNING && (substr_count($errstr,"DOMDocument::loadXML()")>0))
return false; // An error occurred while reading XML content
else
return true; // Successful
}
function art_menu_style_parcer($doc, $elements, $show_sub_menus) {
$parentNodes_to_delete = array();
$childNodes_to_delete = array();
foreach ($elements as $element) {
if (is_a($element, "DOMElement") && ($element->tagName == "li")) {
$children = $element->childNodes;
$parent_class = $element->getAttribute("class");
$is_parent_class_active = strpos($parent_class, "active") !== FALSE;
foreach ($children as $child) {
if (is_a($child, "DOMElement") && ($child->tagName == "a")) {
$caption = $child->nodeValue;
if (empty($caption) || $caption=='test') {
$childNodes_to_delete[] = $child;
$parentNodes_to_delete[] = $element;
break;
}
$child->nodeValue = "";
if ($is_parent_class_active) {
$child->setAttribute("class", $child->getAttribute("class").' active');
}
$spanL = $doc->createElement("span");
$spanL->setAttribute("class", "l");
//$spanL->nodeValue = " ";
$child->appendChild($spanL);
$spanR = $doc->createElement("span");
$spanR->setAttribute("class", "r");
//$spanR->nodeValue = " ";
$child->appendChild($spanR);
$spanT = $doc->createElement("span");
$spanT->setAttribute("class", "t");
$spanT->nodeValue = check_plain($caption);
$child->appendChild($spanT);
}
else if (!$show_sub_menus) {
$childNodes_to_delete[] = $child;
}
}
}
}
art_remove_elements($childNodes_to_delete);
art_remove_elements($parentNodes_to_delete);
return $elements;
}
function art_remove_elements($elements_to_delete) {
if (!isset($elements_to_delete)) return;
foreach($elements_to_delete as $element) {
if ($element != null) {
$element->parentNode->removeChild($element);
}
}
}
function art_node_worker($node) {
$links_output = art_links_woker($node->links);
$terms_output = art_terms_worker($node->taxonomy);
$output = $links_output;
if (!empty($links_output) && !empty($terms_output)) {
$output .= ' | ';
}
$output .= $terms_output;
return $output;
}
/*
* Split out taxonomy terms by vocabulary.
*
* @param $terms
* An object providing all relevant information for displaying terms:
*
* @ingroup themeable
*/
function art_terms_worker($terms) {
$result = '';
$terms = get_terms_D7($content);
if (!empty($terms)) {
ob_start();?>
' . render($terms) . '';
}
return $result;
}
/**
* Return a themed set of links.
*
* @param $links
* A keyed array of links to be themed.
* @param $attributes
* A keyed array of attributes
* @return
* A string containing an unordered list of links.
*/
function art_links_woker($links, $attributes = array('class' => 'links')) {
$output = '';
if (!empty($links)) {
$output = '';
$num_links = count($links);
$index = 0;
foreach ($links as $key => $link) {
$class = $key;
if (strpos ($class, "read_more") !== FALSE) {
continue;
}
// Automatically add a class to each link and also to each LI
if (isset($link['attributes']) && isset($link['attributes']['class'])) {
$link['attributes']['class'] .= ' ' . $key;
}
else {
$link['attributes']['class'] = $key;
}
// Add first and last classes to the list of links to help out themers.
$extra_class = '';
if ($index == 1) {
$extra_class .= 'first ';
}
if ($index == $num_links) {
$extra_class .= 'last ';
}
$link_output = get_html_link_output($link);
if (!empty($class)) {
if (strpos ($key, "comment") !== FALSE) {
if ($index > 0 && !empty($link_output) && !empty($output)) {
$output .= ' | ';
}
ob_start();?>
0 && !empty($link_output) && !empty($output)) {
$output .= ' | ';
}
ob_start();?>
$link['language'], 'attributes'=>$link['attributes'], 'query'=>$link['query'], 'fragment'=>$link['fragment'], 'absolute'=>FALSE, 'html'=>$html));
}
}
else if ($link['title']) {
if (!$html) {
$link['title'] = check_plain($link['title']);
}
$output = $link['title'];
}
return $output;
}
function art_content_replace($content) {
$first_time_str = '
EOT;
}
else
{
$output = $content;
}
return $output;
}
function art_placeholders_output($var1, $var2, $var3) {
$output = '';
if (!empty($var1) && !empty($var2) && !empty($var3)) {
$output .= <<< EOT
EOT;
}
else if (!empty($var1) && !empty($var2)) {
$output .= <<< EOT
EOT;
}
else if (!empty($var2) && !empty($var3)) {
$output .= <<< EOT
EOT;
}
else if (!empty($var1) && !empty($var3)) {
$output .= <<< EOT
EOT;
}
else {
if (!empty($var1)) {
$output .= <<< EOT
$var1
EOT;
}
if (!empty($var2)) {
$output .= <<< EOT
$var2
EOT;
}
if (!empty($var3)) {
$output .= <<< EOT
$var3
EOT;
}
}
return $output;
}
function art_get_sidebar($sidebar, $vnavigation, $class) {
$result = 'b2-layout-cell ';
if (empty($sidebar) && empty($vnavigation)) {
$result .= 'b2-content';
}
else {
$result .= $class;
}
$output = ''.render($vnavigation) . render($sidebar).'
';
return $output;
}
function art_get_content_cell_style($left, $vnav_left, $right, $vnav_right, $content) {
return 'b2-layout-cell b2-content';
}
function art_submitted_worker($date, $author) {
$output = '';
if ($date != '') {
ob_start();?>
' . $title . '';
else
$output = $title;
return $output;
}
function art_vmenu_output($subject, $content) {
if (empty($content))
return;
$output = art_menu_worker($content, true, 'b2-vmenu');
$bvm = "\r\n";
echo $bvm;
if ('' != $bvmt && '' != $evmt && !empty($subject)) {
echo $bvmt;
echo $subject;
echo $evmt;
}
echo $bvmc;
echo $output;
echo $evmc;
echo $evm;
}