forum.coppermine-gallery.net
Support => Deutsch (German) => Language Specific Support => cpg1.4.x Deutsch (German) => Topic started by: Gine on October 25, 2008, 11:45:32 am
-
Hallo,
möchte zwei identische Themes für smf und coppermine erstellen und komme beim coppermine Theme nicht weiter. Ganz oben wird jeweils die Navigation angezeigt und ich möchte gern den jeweiligen Link farblich anders gestalten, wenn der Link aktiv ist.
Beispiel: Ich klicke auf den Link Alben-Liste und der Link erscheint in einer anderen Schriftfarbe und zusätzlich soll noch eine andere Hintergrundgrafik angezeigt werden.
Gut zu erkennen hier an einem smf Beispiel: http://www.jpr62.com/theme/index.php?board=1.0
Hier kann man hin und her navigieren und es wird immer eine andere Hintergrundgrafik angezeigt. Bei coppermine bekomme ich das nur als hover Link gestaltet, nicht aber für die aktiven Links.
Gibt es wo einen Workaround zum Thema?
-
Ich kann dir nicht sagen, ob es dazu schon eine Lösung gibt.
Mein Lösungsansatz wäre: mit php überprüfen, welche get-Parameter übergeben wurden und dann das Menü entsprechend zusammenbauen.
Keine Ahnung ob es einen besseren/einfacheren Weg gibt.
-
Nun gut… ich hebe mir das Problem bis zuletzt auf, da mir ansonsten die Lust vergeht bei der ganzen Sucherei. Falls das jemand für mich machen kann, würde ich im Gegenzug mein Template in Wunschfarbe eintauschen.
-
Ich habe was für das classic-Theme gebastelt.
Stell sicher, dass die Funktion theme_main_menu in deiner theme.php vorhanden ist.
Dann fügst du nach den globals
global $AUTHORIZED, $CONFIG, $album, $actual_cat, $cat, $REFERER;
global $lang_main_menu, $template_sys_menu, $template_sub_menu;
folgendenden Code ein:
// start mark active link
global $PHP_SELF;
$chosen = '" style="background: #344654;color: #efefef;';
// meta albums
switch($_GET['album'])
{
case 'favpics':
if (!strstr($lang_main_menu['fav_title'], $chosen))
$lang_main_menu['fav_title'] .= $chosen;
break;
default:
if (!strstr($lang_main_menu[$_GET['album'].'_title'], $chosen))
$lang_main_menu[$_GET['album'].'_title'] .= $chosen;
}
// other files
switch($PHP_SELF)
{
case 'index.php':
if (!strstr($lang_main_menu['alb_list_title'], $chosen))
$lang_main_menu['alb_list_title'] .= $chosen;
break;
case 'upload.php':
if (!strstr($lang_main_menu['upload_pic_title'], $chosen))
$lang_main_menu['upload_pic_title'] .= $chosen;
break;
default:
if (!strstr($lang_main_menu[basename($PHP_SELF, ".php").'_title'], $chosen))
$lang_main_menu[basename($PHP_SELF, ".php").'_title'] .= $chosen;
}
// end mark active link
Das sollte schonmal für die meisten Standardlinks funktionieren. Setz dich am besten mit dem Code etwas auseinander. Sollte nicht wirklich schwierig nachzuvollziehen und ggf. anzupassen sein.
-
Klasse, genau danach habe ich gesucht, danke :-)
-
$chosen = '" style="background: #344654;color: #efefef;';
Lässt sich statt dem "style="background: #344654;color: #efefef;" auch eine Klasse hinzufügen?
In etwa so:
$chosen = '"class="current';
Leider wird dann zweimal die Klasse "class="current" in einem Link gelistet.
<a href="index.php?cat=0" title="Gehe zur Alben-Liste"class="current"class="current">Alben-Liste</a>
Warnung: dropping value "current" for repeated attribute "class" ::)
-
Warnung: dropping value "current" for repeated attribute "class" ::)
Link?
-
Lässt sich statt dem "style="background: #344654;color: #efefef;" auch eine Klasse hinzufügen?
In etwa so:
$chosen = '"class="current';
<a href="index.php?cat=0" title="Gehe zur Alben-Liste"class="current"class="current">Alben-Liste</a>
Warnung: dropping value "current" for repeated attribute "class" ::)
Bei "style="background: #344654;color: #efefef;" wird der style auch doppelt gelistet. ::)
Vermutlich weil zwei Abfragen einen Link ergeben.
// HTML template for template sys_menu buttons
$template_sys_menu_button = <<<EOT
<!-- BEGIN {BLOCK_ID} -->
<a href="{HREF_TGT}" title="{HREF_TITLE}">{HREF_LNK}</a>
Kann man evtl. als Notlösung den alt Text beim hover "title="Gehe zur Alben-Liste" entfernen, ohne den kompletten Link zu verlieren?
Theme habe ich momentan nur lokal am Laufen. Werde aber mal ein identisches mit "$chosen = '"class="current';" erstellen und installieren.
-
Theme habe ich momentan nur lokal am Laufen.
Dann lade es hoch und gib Link zum öffentlichen Theme oder zippe Dein benutzerdefiniertes Theme und hänge es an als Anlage Deines Postings. Alles andere ist nur Lesen im Kaffeesatz...
-
Leider wird dann zweimal die Klasse "class="current" in einem Link gelistet.
Hiermit sollte es gehen:
// start mark active link
global $PHP_SELF;
$chosen = '" class="current';
// meta albums
switch($_GET['album'])
{
case 'favpics':
if (!strstr($lang_main_menu['fav_title'], $chosen))
$lang_main_menu['fav_title'] .= $chosen;
break;
default:
if (!strstr($lang_main_menu[$_GET['album'].'_title'], $chosen))
$lang_main_menu[$_GET['album'].'_title'] .= $chosen;
}
// other files
switch($PHP_SELF)
{
case 'index.php':
if (!strstr($lang_main_menu['alb_list_title'], $chosen))
$lang_main_menu['alb_list_title'] .= $chosen;
break;
case 'upload.php':
if (!strstr($lang_main_menu['upload_pic_title'], $chosen))
$lang_main_menu['upload_pic_title'] .= $chosen;
break;
default:
if (!strstr($lang_main_menu[basename($PHP_SELF, ".php").'_title'], $chosen))
$lang_main_menu[basename($PHP_SELF, ".php").'_title'] .= $chosen;
}
// end mark active link
(Ich habe meinen ursprünglichen Code auch entsprechend angepasst)