Welcome, Guest. Please login or register.
Friday, July 25, 2008 (09:14)
Home Help Search Login Register
News: Feel free to ask and post all questions regarding mwCMS

+  mwCMS
|-+  Deutscher Support
| |-+  Bugs, Probleme und Fragen
| | |-+  Hervorheben des passenden Menüpunktes bei interner Verlinkung eines Artikels
« previous next »
Pages: [1] Print
Author Topic: Hervorheben des passenden Menüpunktes bei interner Verlinkung eines Artikels  (Read 725 times)
rene_jo
mwCMS player
**
Posts: 25


View Profile
« on: Monday, January 28, 2008 (11:32) »

Hallo mwCMS-Team!

Mit Interesse beobachte ich die Weiterentwicklung Eures CMS. Mit den inzwischen zur Verfügung stehenden Features kann ich meinen Webauftritt gänzlich aufbauen. Um nun endgültig online gehen zu können, würde ich gerne noch eine kleine "Unschönheit" beseitigen, weiß aber leider noch nicht wie.

Problembeschreibung:
Wenn ich ein Dokument, das keinen eigenen Menüpunkt in der Navigation hat, über einen internen Hyperlink aufrufe, wird immer die "Startseite", jedoch nicht die passende Rubrik des Dokumentes hervorgehoben.

Habt Ihr eine Idee?

Gruß René
« Last Edit: Tuesday, January 29, 2008 (15:37) by rene_jo » Logged
ClausVB
Administrator
mwCMS player
*****
Posts: 25


View Profile
« Reply #1 on: Monday, January 28, 2008 (14:18) »

Dieses ist auf Seiten des MediaWikis relativ einfach zu realisieren: Jeder Artikel, der unter "Vereine" angelegt wird und unter "Vereine" hervorgehoben (Highlight) werden soll, muss beispielsweise mit "(Vereine) Name des Artikels" beginnen. Der interne Link könnte so aussehen:

Code:
[[(Vereine) Tambour-Sport-Club Villip|Tambour-Sport-Club Villip]]

Auf PHP-Seite muss das ebenfalls berücksichtigt werden. Wie heißt die PHP-Datei, die Deine Navigation generiert?

Gruß
Claus
« Last Edit: Monday, January 28, 2008 (17:56) by ClausVB » Logged
rene_jo
mwCMS player
**
Posts: 25


View Profile
« Reply #2 on: Tuesday, January 29, 2008 (15:39) »

Hallo Claus,

die Idee ist gut. Ich musste mir nur noch einen regulären Ausdruck mit "preg_match()" ausdenken, der "(Vereine)" und Co herausfiltert:

Code:
$subpages = array();
 for($i = 0; $i < count($pages); $i++)
 {
  // Highlight left navigation if preg_match(GET-parameter) is TRUE, else FALSE
  $is_current = (
   isset($_GET['mediawiki'])
   and preg_match('/\(' . $pages[$i]->navigation . '\)/', $_GET['mediawiki'])
  );

  // Highlight left navigation: default setting
  if (!isset($_GET['mediawiki']))
  {
   $is_current = ($pages[$i]->dynamicPath == $topnav_content);
  }

  array_push(
   $subpages,
   array(
    'main_navigation' => $pages[$i]->navigation,
    'main_path' => $pages[$i]->dynamicPath,
    'is_current' => $is_current,
   )
  );

  // set $current_leftnav for TITLE-Tag or breadcrumb
  if ($is_current === TRUE)
  {
   $current_leftnav  = $pages[$i]->navigation;
  }

  // Plugin (e.g. "news.php") is saved if plugin (see "meta.xml") is not null
  if ($pages[$i]->dynamicPath == $topnav_content and 'NULL' != $pages[$i]->plugin)
  {
   $plugin_file = $pages[$i]->plugin;
  }
 }


Gruß René
Logged
ClausVB
Administrator
mwCMS player
*****
Posts: 25


View Profile
« Reply #3 on: Tuesday, January 29, 2008 (15:43) »

Hut ab! Gut ausgedacht und dokumentiert.

Gruß
Claus
Logged
rene_jo
mwCMS player
**
Posts: 25


View Profile
« Reply #4 on: Tuesday, January 29, 2008 (16:14) »

Ergänzend noch folgende Information:
Die Klammern im Dateinamen sind obligatorisch!
Meine soeben durchgeführten Tests haben ergeben, dass der Menüpunkt nicht hervorgehoben wird, wenn man die Klammern weglässt. Wenn der Dateiname so aufgebaut ist...

[[Vereine Tambour-Sport-Club Villip]]

...wird überhaupt kein Menüpunkt hervorgehoben.


Gruß René
Logged
ClausVB
Administrator
mwCMS player
*****
Posts: 25


View Profile
« Reply #5 on: Tuesday, January 29, 2008 (17:26) »

Jep, dass ergibt sich schon aus dem regulären Ausdruck

preg_match('/\(' $pages[$i]->navigation '\)/'$_GET['mediawiki'])

Habe ich also kapiert! Wink

Die .htaccess müsste dann ungefähr so aufgebaut sein:

Code:
# RewriteEngine fuer das mwCMS
RewriteEngine On
RewriteRule ^MediaWiki_(.+).htm$ index.php?mediawiki=$1
RewriteRule ^([a-zA-Z0-9_]+).htm$ index.php?topnav=$1
RewriteRule ^([a-zA-Z0-9_]+)-([a-zA-Z0-9_]+).htm$ index.php?topnav=$1&leftnav=$2

Gute Arbeit!

Gruß
Claus
Logged
Pages: [1] Print 
« previous next »
Jump to:  


Login with username, password and session length

Powered by MySQL Powered by PHP Powered by SMF 1.1.4 | SMF © 2006-2007, Simple Machines LLC Valid XHTML 1.0! Valid CSS!