[Erledigt] Frage zu Funktionen in Bright Side Of Life Theme

Begonnen von blockbuster, 12 Januar 2009, 08:09:16

⏪ vorheriges - nächstes ⏩

0 Mitglieder und 1 Gast betrachten dieses Thema.

blockbuster

Hallo,

schon einige Monate bevor das Theme Bright Side Of Life hier zur Verfügung gestellt wurde, hatte ich mir das Theme selber zusammengestrickt was natürlich ein Haufen Arbeit war und letzlich leider doch nicht so wirklich gut wurde. Allerdings habe ich es seit dem produktiv im Einsatz und möchte nun aber doch gerne auf die "offizielle" Version umsteigen... ;-)

Deswegen habe ich mir jetzt das Offizielle Theme bei Euch runter geladen und will / muss natürlich auch einige Anpassungen machen.
Ich würde z.B. gerne die folgenden drei Funktionen einsetzen:


  • {CURRENTPATH}
  • {SHOWDATE}
  • {SHOWTIME}

Wenn ich diese aber nun einbaue, erscheint auf meiner Seite an dieser Stelle folgendes:

Sie sind hier: -:_066650cb5d056dac4608549194c2d2a8_:-CURRENTPATH}

und:

Heute ist -:_066650cb5d056dac4608549194c2d2a8_:-SHOWDATE} | -:_066650cb5d056dac4608549194c2d2a8_:-SHOWTIME}

Kann es sein, dass diese Funktionen bei diesem Template überhaupt nicht mehr vom Theme unterstützt werden, oder was hat das Zahelnwirrwar zu bedeuten? Auf meiner alten Seite hat es einwandfrei funktioniert wie man aktuell auch noch sehen kann. Allerdings waren die Themebestandteile einfach von einem anderen Theme übernommen wo es das eh gab...

Wenn es nicht unterstütz werden sollte, kann dann bitte jemand so nett sein und mir sagen welche Bestandteile dafür in die theme.php oder eine andere Datei an welcher Stelle eingefügt werden müssen?

blockbuster

Hallo zusammen,

OK - weil es mir keine Ruhe gelassen hat, habe ich mich mal selber auf die Suche gemacht und bin dabei in der functions.php gelandet...
Dort gibt es folgenden Abschnitt:

Zitat
function theme_define_placeholders()
{
    global $themesetting;
    $title = theme_colorize_all($themesetting['headtitle']['title'], true);
    $part[] = array("{PAGE_TITLE}", $title);
    $part[] = array("{PAGE_SLOGAN}", $themesetting['headtitle']['slogan']);
    $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;
}

In einem anderen Template habe ich hingegen dies hier gefunden:

Zitat
function theme_replace_start($template) {
   // bestimmte Texte, vor allem Image-Pfade, die ersetzt werden sollen, definieren (suche/ersetze)
   $part[] = array("\"images/",   "\"".MX_BASE_URL.MX_THEME_DIR."/images/"); // normale images im theme
   $part[] = array("\"style/",    "\"".MX_BASE_URL.MX_THEME_DIR."/style/" );
   $part[] = array("\"js/",       "\"".MX_BASE_URL.MX_THEME_DIR."/js/"    );
   $part[] = array("url(images/", "url(".MX_BASE_URL.MX_THEME_DIR."/images/");
   #$part[] = array(",'images/",   ",'".MX_BASE_URL.MX_THEME_DIR."/images/"); // preload
   /// weitere Beispiele dazu
   #$part[] = array("\"http://themes.pragmamx.org/", "\"".MX_BASE_URL);
   
   $part[] = array("{FOOTMESSAGE}", footmsg(1,0)            );
   $part[] = array("{VIEWBENCH}",   mxViewBench()           );
   $part[] = array("{CURRENTPATH}", mx_theme_currentpath()  );
   $part[] = array("{SEARCHFORM}",  mx_theme_searchform()   );
   $part[] = array("{LOGINFORM}",   mx_theme_loginform()    );
   $part[] = array("{SHOWDATE}",         mx_show_date()          );
   $part[] = array("{SHOWTIME}",         mx_show_time()          );

   $part[] = array("{SHOWTOTALUSER}",    mx_total_user_online()  );

   return theme_replace_parts($template, $part);
   }

Wenn ich die fettgeschriebenen Zeilen nun in die functions.php kopiere und hochlade erhalte ich allerdings sofort eine Fehlermeldung die sich auf die Zeile bezieht in die ich es einkopiert habe...  :puzzled:

Hmm - so wie es aussieht reicht es wohl nicht einfach die gewünschten Elemente hineinzukopieren, oder? Oder mache ich da was grundsätzliches falsch? Ich kenne mich mit PHP ansonsten leider überhaupt nicht aus und versuche da einfach nur die Elemente so "logisch wie möglich" einzufügen...

MfG

GerhardSt

Hallo blockbuster,

wie du schon richtig erkannt hast, liegt dein Fehler an der functions.php :thumbup:
Du benötigst noch zusätzlich zu den einzelnen Platzhaltern, die du jetzt ja schon eingebaut hast, noch die Funktionen dazu.
Dazu musst du noch die Abschnitte mit z.B.: für {CURRENTPATH}
function mx_theme_currentpath($spacer = ' > ')
{
    global $prefix;
    $maxwordlen = 18;

    $link[] = '<a href="./" title="' . _HOME . '">' . _HOME . '</a>';
    // Module
    if (isset($_REQUEST['name']) && mxModuleAllowed(MX_MODULE)) {
        $result = sql_query("select custom_title from ${prefix}_modules WHERE title='" . mxAddSlashesForSQL(MX_MODULE) . "'");
        list($custom_title) = sql_fetch_row($result);
        $custom_title = str_replace("_", " ", ((empty($custom_title)) ? MX_MODULE : $custom_title));
        $short_title = mxCutString($custom_title, $maxwordlen, "..", "");
        $link[] = "<a href=\"modules.php?name=" . urlencode(MX_MODULE) . "\" title=\"" . $custom_title . "\">" . $short_title . "</a>";
    }
    // Administration
    else if (defined('mxAdminFileLoaded')) {
        $link[] = "<a href=\"admin.php\" title=\"" . _ADMINMENU . "\">" . _ADMINMENU . "</a>";
    }
    return implode($spacer, $link);
}
usw. an die functions.php unten dran hängen ;)

blockbuster

Hallo Gerhard,

vielen Dank! Jetzt funktioniert es wie gewünscht!  :) :thumbup:

Gruß,

GerhardSt

Bitte sehr!

Es war ja eigentlich nur mehr eine Frage der Zeit, bis du selber drauf gekommen wärst.
Die Datei war ja schon richtig ;)