Hallo zusammen,
habe das Forum und etliche Beiträge gelesen aber ich komme nicht auf die Lösung meines Problems :puzzled: - vielleicht kann eine/r von euch helfen. Verwende das Theme "Bright Side of Life" und möchte gerne das Headerimage wechseln lassen, wenn ein Navigations-Button aus der Leiste oben geklickt wird. Das klappt auch bei "Home" oder "Gallery" - aber nicht bei meinen eigenen Links "punkt12" oder "Tageslosung" - bei "Gemeinde" (=Content) geht's aber da kommt noch das zweite Problem hinzu: Die Buttons mit dem eigenen Link wechseln nicht Farbe und stimmen nicht, d.h. wenn ich punkt12 oder tageslosung klicke färbt sich Gemeinde blau... also zwei Probleme sozu sagen.
www.siegen-geisweid.feg.de (http://www.siegen-geisweid.feg.de)
Im folgenden mal meine Codes:
settings.php
/**
* Das Standard Headerbild
*/
$themesetting['defaultheaderimage'] = 'homephoto.jpg';
$themesetting['punkt12headerimage'] = 'punkt12photo.jpg';
$themesetting['contentheaderimage'] = 'contentphoto.jpg';
$themesetting['newsheaderimage'] = 'newsphoto.jpg';
$themesetting['galerieheaderimage'] = 'galeriephoto.jpg';
/* folgendes nur, wenn Module geladen */
if (defined('MX_MODULE')) {
/**
* die Navigationsbuttons im header, wird in der
* Funktion theme_define_placeholders() ausgewertet
*/
$themesetting['headnav'][_HOME] = array(/* Startseite */
'link' => './',
'logo' => $themesetting['defaultheaderimage'],
'case' => array(
defined('MX_HOME_FILE'),
));
$themesetting['headnav'][_CONTENT] = array(/* Gemeinde */
'link' => 'modules.php?name=Content',
'logo' => $themesetting['contentheaderimage'],
'case' => array(
MX_MODULE == 'Content',
));
$themesetting['headnav'][_PUNKT12] = array(/* punkt12 */
'link' => 'modules.php?name=Content&pa=showpage&pid=44',
'logo' => $themesetting['punkt12headerimage'],
'case' => array(
MX_MODULE == 'Content&pa=showpage&pid=44',
));
$themesetting['headnav'][_GALLERY] = array(/* Gallery */
'link' => 'modules.php?name=Gallery',
'logo' => $themesetting['galerieheaderimage'],
'case' => array(
MX_MODULE == 'Gallery',
));
$themesetting['headnav'][_TAGESLOSUNG] = array(/* Tageslosung */
'link' => 'modules.php?name=Content&pa=showpage&pid=38',
'logo' => $themesetting['defaultheaderimage'],
'case' => array(
MX_MODULE == 'Content&pa=showpage&pid=38',
));
if (MX_IS_ADMIN) {
$themesetting['headnav'][_ADMINMENUEBL] = array(/* Administration */
'link' => 'admin.php',
'logo' => $themesetting['defaultheaderimage'],
'case' => array(
MX_MODULE == 'admin',
));
}
functions.php
/**
* Definition der jeweiligen Platzhalter und deren Ersetzungen
*/
function theme_define_placeholders()
{
global $themesetting;
$title = theme_colorize_all($themesetting['title'], true);
$part[] = array("{PAGE_TITLE}", $title);
$part[] = array("{NAVBAR}", theme_get_navbars());
$part[] = array("{LAYOUT_CLASS}", theme_get_layout_class());
$part[] = array("{HEAD_IMAGE}", theme_get_headimage());
$part[] = array("{FOOTMESSAGE}", theme_show_footmsg());
$part[] = array("{DEBUGSERVICE}", theme_get_servicetext('debugservice'));
$part[] = array("{SITESERVICE}", theme_get_servicetext('siteservice'));
$part[] = array("{CURRENTYEAR}", date('Y'));
return $part;
}
/* 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[] = '<li' . $current . '><a href="' . $menue['link'] . '"' . $slogan . '><span>' . $title . '</span></a></li>';
}
$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'];
}
}
In den language-Dateien sind meine neuen Buttons definiert, die headerimages sind richtig benannt und liegen im Themes Ordner unter "images/logos".
Hallo Jeremy
für die Contententlinks benutz mal folgenden Koder und passe den nach deinen Bedürfnissen an:
$themesetting['headnav']['Content1'] = array(
'link' => 'modules.php?name=Content&pid=1',
'case' => array(
MX_MODULE == 'Content' && $_REQUEST['pid'] == 1, // Content Id 1
));
Hallo moeller,
super :thumbup:
Das hat beide Probleme gelöst - vielen Dank!
Erst gab es noch Probleme mit der Übersichtsseite "Content",
habe aber dann das ganze angepasst mit pid=0
$themesetting['headnav'][_CONTENT] = array(/* Gemeinde */
'link' => 'modules.php?name=Content&pid=0',
'logo' => $themesetting['contentheaderimage'],
'case' => array(
MX_MODULE == 'Content' && $_REQUEST['pid'] == 0, // Content Id 0
));
Schon funktioniert es... :BD: