'); } // Siteservicebereich entfernen, wenn Siteservice abgeschaltet oder leer ist if (!theme_get_servicetext('siteservice')) { theme_extract_optional_part($template, 'siteservice', ''); } // Debugbereich entfernen, wenn Debugmodus abgeschaltet oder leer ist if (!theme_get_servicetext('debugservice')) { theme_extract_optional_part($template, 'debugservice', ''); } // das Kopfmenue durch die tatsaechlichen Daten ersetzen theme_extract_optional_part($template, 'headmenue', '{NAVBAR}'); return theme_replace_parts($template, $part); } /** * ersetzen von eigenen Theme-Elementen, kann veraendert und ergaenzt werden * diese Teile werden vor der Ausgabe des headers im Headbereich ersetzt */ function theme_replace_header($newheader) { return $newheader; // alles ersetzen und Rückgabe... // return theme_replace_parts($newheader, $part); } function theme_get_layout_class() { global $themesetting; /* Die verschiedenen Layouts der Spalten definieren */ if (isset($themesetting['noleft_modules']) && in_array(MX_MODULE, $themesetting['noleft_modules'])) { // provisorische Moeglichkeit, die linken Bloecke bei bestimmten Modulen zu entfernen // einspaltiges Layout return 'hide-both'; } else if (!$GLOBALS['index']) { // zweispaltiges Layout return 'hide-rightbar'; } else { // dreispaltiges Layout > Standard return 'hide-none'; } } /** * ersetzen in jedem einzelnen Block */ function theme_replace_blocks($template, $block) { global $themesetting; // $themesetting['blocknav']['style'] = 'sidemenu'; // $themesetting['blocknav']['current'] = 'current'; switch ($block['position']) { case 'l': case 'r': if (strpos($block['blockfile'], 'block-Modules') === 0) { if (preg_match('#]+>(.+)#sU', $template, $table)) { if (preg_match_all('#]*)>\s*]*>[^<]*]*/([a-z])arrow\.gif[^>]*>[^<]*(]*>.+)[^<]*#', $table[1], $rows)) { $new = array(); foreach ($rows[2] as $key => $link) { $class = ($rows[1][$key] == 'o') ? ' class="' . $themesetting['blocknav']['current'] . '"' : ''; $new[$key] = '' . $link . ''; } if ($new) { $part[] = array($table[0], '
    ' . implode("\n", $new) . '
'); } } } } break; case 'c': case 'd': break; } /* Teil fuer alle Bloecke */ if (empty($block['title']) || $block['title'] == 'NOTITLE') { $part[] = array('__BLOCK_ID__' , '__BLOCK_ID__ block-hide-caption'); } $part[] = array('__BLOCK_ID__' , 'block-' . $block['position'] . '-' . $block['order']); /* alle Bilder aus dem Onlineblock holen */ $part['preg'][] = array('#]+)images/maaxon/([^>]+)\.gif([^>]+)\s*/*>#i', ''); /* die komischen nuke-listen verschoenern */ theme_change_middot($part); if (isset($part)) { return theme_replace_parts($template, $part); } return $template; } /** * ersetzen von eigenen Theme-Elementen, kann veraendert und ergaenzt werden * diese Teile werden am Ende des scriptes, in der Funktion themefooter() ersetzt */ function theme_replace_end($template) { global $themesetting; /* provisorische Moeglichkeit, die linken Bloecke bei bestimmten Modulen zu entfernen */ if (isset($themesetting['noleft_modules']) && in_array(MX_MODULE, $themesetting['noleft_modules'])) { theme_extract_part($template, 'blocks_left_container'); } /* die haesslichen Rahmen um Checkboxen und Radio-Feldern entfernen, ueber style-sheet Klasse */ $template = theme_fix_formtags($template); /* leere Tabellen Tags entfernen, wenn kein Inhalt von Modul angezeigt wird (blank_home) */ $part['preg'][] = array('#]*>\s*\s*\s*\s*\s*\s*\s*\s*#si', ''); if (MX_MODULE == 'admin') { /* in Graficadmin, mehr Icons nebeneinander ;) */ $part[] = array('
', '
'); /* Floatfehler korrigieren */ $part['preg'][] = array('#(
' . _ADMINLOGOUT . '
)\s*
#sU', '$1
'); } $template = theme_replace_parts($template, $part); return $template; } /** * Die Navigationsbuttons in der Artikelliste des Newsmoduls */ function getThemeIndexButtons($story) { global $theme_template; static $img, $isnewsadmin; if (!isset($isnewsadmin)) { $isnewsadmin = mxGetAdminPref('radminarticle'); } if (empty($img)) { // die images werden in einen statischen Variable gehalten um die Bildgroessen nicht bei jedem Artikel zu ermitteln // xx als alttext wird weiter unten dynamisch ersetzt $img[1] = mxCreateImage(MX_THEME_DIR . "/images/buttons/informant.gif", "xx", 0); $img[2] = mxCreateImage(MX_THEME_DIR . "/images/buttons/print.gif", _BMXPRINTER, 0); $img[3] = mxCreateImage(MX_THEME_DIR . "/images/buttons/friend.gif", _BMXFRIEND, 0); $img[4] = mxCreateImage(MX_THEME_DIR . "/images/buttons/counter.gif", "xx", 0); $img[6] = mxCreateImage(MX_THEME_DIR . "/images/buttons/bytesmore.gif", "xx", 0); if ($GLOBALS['articlecomm']) $img[5] = mxCreateImage(MX_THEME_DIR . "/images/buttons/comments.gif", "xx", 0); // mxdebugfuncvars($story['allmorelink']); // zum ansehen der morelink-Parameter einkommentieren // mxdebugfuncvars($story); // zum ansehen der story-Parameter der ersten story einkommentieren } // mxdebugfuncvars($story); // zum ansehen der story-Parameter aller stories einkommentieren $bmore = ($story['allmorelink']['bodycount']) ? _READMORE . " (" . $story['allmorelink']['bodycount'] . ' ' . _BYTESMORE . ")" : _READMORE; $adminlink = ($isnewsadmin) ? " href='admin.php?op=EditStory&sid=" . $story['sid'] . "' " : ""; $link[] = $story['allmorelink']['storylink'] . str_replace("xx", $bmore, $img[6]) . ""; if ($story['informant'] != $GLOBALS['anonymous'] && (MX_IS_USER || MX_IS_ADMIN)) { $link[] = $story['allmorelink']['informantlink'] . str_replace("xx", _USERINFO . ": " . $story['informant'], $img[1]) . ""; } $link[] = $story['allmorelink']['printerlink'] . $img[2] . ""; if (mxModuleAllowed('Recommend_Us')) { $link[] = $story['allmorelink']['friendlink'] . $img[3] . ""; } if (empty($story['acomm']) && $GLOBALS['articlecomm']) { // Achtung!!! acomm: 0 = Ja , 1 = Nein $link[] = $story['allmorelink']['commentslink'] . str_replace("xx", _COMMENTS . " (" . $story['comments'] . ")", $img[5]) . ""; } $link[] = "" . str_replace("xx", $story['counter'] . ' ' . _READS, $img[4]) . ""; return $link; } /* die Navigationsbuttons im header, Quelle in settings.php */ function theme_get_navbars() { global $themesetting; $data = theme_head_data(); return $data['navbar']; } function theme_head_data() { global $themesetting; static $out; if (isset($out)) { return $out; } foreach ($themesetting['headnav'] as $title => $menue) { if (empty($current) && in_array(1, $menue['case'])) { $current = ' id="navcurrent"'; $out['current'] = $menue; } else { $current = ''; } $slogan = (empty($menue['slogan'])) ? '' : ' title="' . $menue['slogan'] . '"'; $navbar[] = '' . $title . ''; } $out['navbar'] = implode("\n", $navbar); return $out; } function theme_get_slogan() { global $themesetting; $data = theme_head_data(); if (isset($data['current']['slogan'])) { return $data['current']['slogan']; } else { /* wenn nix gefunden, dann Standard zurueck.. */ return $themesetting['defaultslogan']; } } function theme_get_headimage() { global $themesetting; $data = theme_head_data(); if (isset($data['current']['logo'])) { return MX_THEME_DIR . '/images/logos/' . $data['current']['logo']; } else { /* wenn nix gefunden, dann Standard zurueck.. */ return MX_THEME_DIR . '/images/logos/' . $themesetting['defaultheaderimage']; } } /* einen beliebigen Text bunt einfaerben */ function theme_colorize_title($title) { $check = explode(' ', str_replace(' ', ' ', $title)); if (isset($check[4])) { $check[2] = '' . $check[2] . ''; $max_i = count($check); for ($i = 4; $i < $max_i; $i++) { $check[$i] = '' . $check[$i] . ''; } } else if (isset($check[2])) { $check[2] = '' . $check[2] . ''; } else if (isset($check[1])) { $check[1] = '' . $check[1] . ''; } return implode(' ', $check); } /* einen beliebigen Text bunt einfaerben */ function theme_colorize_all($title, $trim = false) { $check = explode(' ', str_replace(' ', ' ', $title)); $max_i = count($check); $y = 0; $class = array(' class="color-change-1"', ' class="color-change-2"', ' class="color-change-3"', ); $max_y = count($class); for ($i = 0; $i < $max_i; $i++) { $check[$i] = '' . $check[$i] . ''; $y++; if ($y == $max_y) { $y = 0; } } if ($trim) { return implode('', $check); } else { return implode(' ', $check); } } /** * in $newheader ist der gesamte angepasste header enthalten */ function theme_header($newheader, &$siteservice, &$debugservice) { global $theme_template, $themesetting; /* das Theme verwendet eigene Servicebereiche, deswegen hier die beiden Variablen killen */ $siteservice = null; $debugservice = null; /* den body-Tag hinter head-Ende setzen >> nicht veraendern !! */ $newheader .= "\n\n\n" . $theme_template['body_tag'] . "\n\n"; /* bei Bedarf den XHTML-Dokumenttyp ueberpruefen und Fehlermeldung ausgeben */ if (MX_IS_ADMIN && !theme_check_xhtmldoctype()) { $newheader .= '

' . _FALSEDOCTYPE . '

'; } // ersetzen von eigenen Theme-Elementen, kann veraendert und ergaenzt werden // diese Teile werden vor der Ausgabe des headers im Headbereich ersetzt $newheader = theme_replace_header($newheader); return $newheader; } /** * parsen der Seiten-Bloecke */ function themesidebox($title, $content, $block = array(), $noecho = 0) { global $theme_template; if (empty($block)) { $block['position'] = "l"; } $out = ($block['position'] == "r") ? $theme_template['block_right'] : $theme_template['block_left']; $out = str_replace('{BLOCK_CONTENT}' , $content , $out); $out = str_replace('{BLOCK_TITLE}' , $title , $out); if ($noecho) { return $out; } else { echo $out; } } /** * parsen der Center-Bloecke */ function thememiddlebox($title, $content, $block = array(), $noecho = 0) { global $theme_template; if (empty($block)) { $block['position'] = "c"; } $out = ($block['position'] == "d") ? $theme_template['block_center_down'] : $theme_template['block_center_top']; $out = str_replace('{BLOCK_CONTENT}' , $content , $out); $out = str_replace('{BLOCK_TITLE}' , theme_colorize_title($title) , $out); if ($noecho) { return $out; } else { echo $out; } } /** * News Modul Artikelliste (index.php) * $x bedeutet: nicht verwendet, nur zur nuke-Modulkompatibilitaet */ function themeindex($x, $x, $x, $x, $x, $x, $x, $x, $x, $x, $x, $x, $story = array()) { global $theme_template; pmxHeader::add(''); // nur eine Spalte zulassen :-) $GLOBALS['storyhome_cols'] = 1; $cattitle = (empty($story['cattitle'])) ? '' : ' (' . $story['allmorelink']['categorie'] . ')'; $authorinfo = (empty($story['informant']) || $story['informant'] == $GLOBALS['anonymous']) ? theme_adminname($story) : " " . $story['allmorelink']['informantlink'] . $story['informant'] . ""; $story['topicimage'] = mxCreateImage($GLOBALS['tipath'] . $story['topicimage'], $story['topictext'], 0, 'align="left" class="post-topicimage"'); $story['title'] = theme_colorize_title(strip_tags($story['title'])) . $cattitle; $story['content'] = $story['hometext']; if (!$story['acomm'] && $GLOBALS['articlecomm']) { // Achtung!!! acomm: 0 = Ja , 1 = Nein $story['comments'] = '' . _COMMENTS . ' (' . $story['comments'] . ')'; } else { $story['comments'] = ''; } if (empty($story['allmorelink']['bodycount'])) { $story['readmore'] = ''; } else { $title = ($story['allmorelink']['bodycount']) ? ' title="' . $story['allmorelink']['bodycount'] . ' ' . _BYTESMORE . '"' : ''; $story['readmore'] = '' . _HREADMORE . ''; } // $story['datetime'] = '' . formatTimestamp($story['time'], _SHORTDATESTRING) . ''; $story['datetime'] = '' . formatTimestamp($story['time'], _DATESTRING2) . ''; // die oben definierten Variablen in dem passenden templateteil ersetzen $artvars = theme_define_content(); echo theme_replace_vars($theme_template[$artvars['themeindex']], $story); return; } /** * News Modul Artikelansicht (article.php) * $x bedeutet: nicht verwendet, nur zur nuke-Modulkompatibilitaet */ function themearticle($x, $x, $x, $x, $x, $x, $x, $x, $x, $story = array()) { global $theme_template; pmxHeader::add(''); $authorinfo = (empty($story['informant']) || $story['informant'] == $GLOBALS['anonymous']) ? theme_adminname($story) : " " . $story['allmorelink']['informantlink'] . $story['informant'] . ""; $story['infoline'] = ($GLOBALS['storyhome_cols'] == 1) ? _NEWSSUBMITED . " " . $authorinfo . " " . $story['allmorelink']['datetime'] : $story['datetime']; $story['topicimage'] = mxCreateImage($GLOBALS['tipath'] . $story['topicimage'], $story['topictext'], 0, 'align="left" class="post-topicimage"'); $story['title'] = theme_colorize_title(strip_tags($story['title'])); $story['content'] = $story['hometext'] . "
\n" . $story['bodytext']; $story['notes'] = (empty($story['notes'])) ? '' : '
' . $story['notes']; // die oben definierten Variablen in dem passenden templateteil ersetzen echo theme_replace_vars($theme_template['themearticle'], $story); return; } ?>