identische Themes für smf und coppermine erstellen identische Themes für smf und coppermine erstellen
 

News:

CPG Release 1.6.26
Correct PHP8.2 issues with user and language managers.
Additional fixes for PHP 8.2
Correct PHP8 error with SMF 2.0 bridge.
Correct IPTC supplimental category parsing.
Download and info HERE

Main Menu

identische Themes für smf und coppermine erstellen

Started by Gine, October 25, 2008, 11:45:32 AM

Previous topic - Next topic

0 Members and 2 Guests are viewing this topic.

Gine

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?







Αndré

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.

Gine

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.

Αndré

#3
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.

Martin84


T.Gauck

Quote from: eenemeenemuu on December 02, 2008, 07:53:47 PM
$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"  ::) 






Αndré


T.Gauck

Quote from: T.Gauck on May 23, 2009, 07:17:32 PM
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.

Joachim Müller

Quote from: T.Gauck on May 24, 2009, 07:10:31 PM
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...

Αndré

Quote from: T.Gauck on May 23, 2009, 07:17:32 PM
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)