Alter Hut aber ich finde keine Lösung: Headerimage wechseln Bright Side of Life

Begonnen von Jeremy, 09 Januar 2013, 15:26:06

⏪ vorheriges - nächstes ⏩

0 Mitglieder und 1 Gast betrachten dieses Thema.

Jeremy

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


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".

moeller

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
        ));
Elektronischer Gruss aus dk
Willi

Jeremy

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: