Seite 1 von 1

Probleme mit Tab-Register

Verfasst: 17.03.2009 23:53
von BaerchenHH
Nun habe ich auch mal (wieder) ein Problem... und hoffe auf eure Hilfe.

Folgendes Snippet-Problem (isoliert auf den folgendenTeil) habe ich seit dem Update von V3.0.2 auf 3.0.4:

------ Prosilver: Tabregister einfügen ---
--- Öffne ---
\styles\prosilver\template\overall_header.html

--- Suche ---

Code: Alles auswählen

<div class="navbar">
--- Davor einfügen ---

Code: Alles auswählen

<!-- // BEGIN: Tab-Register -->
        <div id="tabs"> 
           <ul>
              <li<!-- IF basename($_SERVER['SCRIPT_NAME']) == 'index.php' or basename($_SERVER['SCRIPT_NAME']) == 'viewforum.php' or basename($_SERVER['SCRIPT_NAME']) == 'viewtopic.php' or basename($_SERVER['SCRIPT_NAME']) == 'posting.php' or basename($_SERVER['SCRIPT_NAME']) == 'mcp.php' --> class="activetab"<!-- ENDIF -->><a href="{U_INDEX}"><span>{L_FORUM}</span></a></li> 
              <!-- IF not S_IS_BOT and S_USER_LOGGED_IN --><li<!-- IF basename($_SERVER['SCRIPT_NAME']) == 'ucp.php' --> class="activetab"<!-- ENDIF -->><a href="{U_PROFILE}" title="{L_PROFILE}" accesskey="u"><span>{L_PROFILE}</span></a></li><!-- ENDIF -->
              <!-- IF not S_USER_LOGGED_IN --><li<!-- IF basename($_SERVER['SCRIPT_NAME']) == 'acronyme.php' --> class="activetab"<!-- ENDIF -->><a href="{U_ACRONYME}" title="{L_ACRONYME}"><span>{L_ACRONYME}</span></a></li><!-- ENDIF --> 
              <!-- IF not S_IS_BOT and S_USER_LOGGED_IN --><li<!-- IF basename($_SERVER['SCRIPT_NAME']) == 'memberlist.php' --> class="activetab"<!-- ENDIF -->><a href="{U_MEMBERLIST}" title="{L_MEMBERLIST_EXPLAIN}"><span>{L_MEMBERLIST}</span></a></li><!-- ENDIF --> 
              <li<!-- IF basename($_SERVER['SCRIPT_NAME']) == 'calendar.php' --> class="activetab"<!-- ENDIF -->><a href="{U_CALENDAR}"><span>{L_CALENDAR}</span></a></li> 
           </ul> 
           <ul class="rightside">
              <!-- IF not S_IS_BOT and S_USER_LOGGED_IN --><li<!-- IF basename($_SERVER['SCRIPT_NAME']) == 'downloads.php' --> class="activetab"<!-- ENDIF -->><a href="{$phpbb_root_path}downloads.php" title="{L_DL_SITE_TITLE}"><span>{L_DL_SITE_TITLE}</span></a></li><!-- ENDIF --> 
              <!-- IF not S_IS_BOT and S_USER_LOGGED_IN --><li<!-- IF basename($_SERVER['SCRIPT_NAME']) == 'help.php' --> class="activetab"<!-- ENDIF -->><a href="{$phpbb_root_path}help.php" title="{L_HELP_SITE_TITLE}"><span>{L_HELP_SITE_TITLE}</span></a></li><!-- ENDIF -->
              <li<!-- IF basename($_SERVER['SCRIPT_NAME']) == 'impressum.php' --> class="activetab"<!-- ENDIF -->><a href="{U_IMPRESSUM}" title="{L_IMPRESSUM}" accesskey="l"><span>{L_IMPRESSUM}</span></a></li> 
              &nbsp;&nbsp;
           </ul> 
        </div> 
<!-- // END: Tab-Register -->
(Zeile 123-139)

Was in V3.0.2 funktionierte, klappt in V3.0.4 nicht mehr... es erscheint die Fehlermeldung:
Parse error: syntax error, unexpected '(' in /home/vhosts/5000131927/alexhh.de/htdocs/test/forum/includes/template.php(614) : eval()'d code on line 126
nach aktualisierung (<F5>) erscheind dann diese:
Parse error: syntax error, unexpected '(' in /home/vhosts/5000131927/alexhh.de/htdocs/test/forum/cache/tpl_prosilver_overall_header.html.php on line 126
PS: Lösche ich die beschriebene Zeile, springt der Fehler weiter zur nächsten Zeile, bis die Tabs vollständig entfernt wurden!

Re: Probleme mit Tab-Register

Verfasst: 18.03.2009 00:08
von gsxfan
BaerchenHH hat geschrieben:
nach aktualisierung (<F5>) erscheind dann diese:
Parse error: syntax error, unexpected '(' in /home/vhosts/5000131927/alexhh.de/htdocs/test/forum/cache/tpl_prosilver_overall_header.html.php on line 126
[/quote]

htdocs/test/forum/cache/tpl_prosilver_overall_header.html.php ??? Cache nicht geleert?

Re: Probleme mit Tab-Register

Verfasst: 18.03.2009 00:18
von BaerchenHH
höhö... wollte gerade editieren:

"Rekompilieren veralteter Style-Komponenten" ist aktiviert... trotzdem habe ich die Cache öfters geleert, welches aber relativ egal ist, da bei jeder Änderung der Datei "overall_header.html" der Browser sich nach <F5> sichtbar ändert!

Re: Probleme mit Tab-Register

Verfasst: 18.03.2009 01:00
von gsxfan
Ja ok. ;)
Syntaktisch sieht das richtig aus. Was steht denn in der template.php?

Re: Probleme mit Tab-Register

Verfasst: 18.03.2009 09:22
von BaerchenHH
Sehe ich auch so - in 3.0.2 funktioniert es ja problemlos...

/includes/templates.php (Zeile 589-619) - ist original:

Code: Alles auswählen

	/**
	* Include a separate template
	* @access private
	*/
	function _tpl_include($filename, $include = true)
	{
		$handle = $filename;
		$this->filename[$handle] = $filename;
		$this->files[$handle] = $this->root . '/' . $filename;
		if ($this->inherit_root)
		{
			$this->files_inherit[$handle] = $this->inherit_root . '/' . $filename;
		}

		$filename = $this->_tpl_load($handle);

		if ($include)
		{
			global $user;

			if ($filename)
			{
				include($filename);
				return;
			}
-->		eval(' ?>' . $this->compiled_code[$handle] . '<?php ');
		}
	}
}

?>
"-->" habe ich an Zeile 614 mal zur kennzeichnung hinzugefügt

Re: Probleme mit Tab-Register

Verfasst: 18.03.2009 09:44
von aurora876
probier mal sowas, evtl. geht es damit:

Code: Alles auswählen

<li<!-- IF $_SERVER['SCRIPT_NAME'] == './blablabla.php' --> class="activetab"<!-- ENDIF -->><a href="./blablabla.php"><span>blablabla</span></a></li>
ich hatte mit dem anderen auch probleme... das hier dagegen funktioniert bei mir.

Re: Probleme mit Tab-Register

Verfasst: 18.03.2009 10:14
von BaerchenHH
Das funktioniert halbwegs...

Die Tabs sind vorhanden und lassen sich auch anklicken - Vielen Dank dafür schonmal

Allerdings werden die jeweiligen Tabs jetzt nicht mehr auf "activetab" angezeigt - gibt es dafür noch ne Llösung?
Zu sehen hier >> Test-Board zu diesem Problem

Das Problem liegt also in "basename()" - Es wird ja auch eine öffnende Klammer -"("- angemeckert.
Noch Ideen dazu?

--- Nachtrag am 18.03.09 um 13:12 Uhr ---

Asche auf meine Haupt... habe die Forensuche wohl mit dem falschen Wort benutzt....
Mit dem Suchwort "basename()" kam ich langsam auf des Teufels Lösung, nachdem ich auf diesen Beitrag stieß.

basename() funktioniert seit V3.0.3 nicht mehr... und in meinem Fall (o.g. Link) muß es lauten:

Code: Alles auswählen

IF $_SERVER['SCRIPT_NAME'] == '/test/forum-fehler/ucp.php'
Dann wird der Tab auch wieder auf aktiv gesetzt!

Komisch, daß ich davon nichts mitbekommen habe, wo ich mir doch eigentlich alle Threads anschaue, die interressant (da mich betreffen) werden "könnten"

Wenn ihr keine elegantere Lösung für den Zusatz wisst, betrachte ich dieses Problem als [gelöst].
Nochmals Danke an euch.

Re: Probleme mit Tab-Register

Verfasst: 18.03.2009 19:07
von aurora876
BaerchenHH hat geschrieben: basename() funktioniert seit V3.0.3 nicht mehr... und in meinem Fall (o.g. Link) muß es lauten:

Code: Alles auswählen

IF $_SERVER['SCRIPT_NAME'] == '/test/forum-fehler/ucp.php'
Dann wird der Tab auch wieder auf aktiv gesetzt!

so hab ich es aber auch oben aufgeschrieben... ohne basename.

Re: Probleme mit Tab-Register

Verfasst: 19.03.2009 02:27
von BaerchenHH
Nicht ganz...
Ich schrieb ja auch
Das funktioniert halbwegs...
Dank deiner Lösung, kam ich im Umkehrschluß mal nach "basename()" die FS zu bemühen und stieß dabei auf den o.g. Post.

Du hattest den Tip als rel. Pfad angegeben - womit es aber bei mir nicht funktioniert, da das Testforum für dieses Problem in einem Unterordner in 2. Ebene (/test/forum-fehler/) liegt/lag*.

Es muß aber -zumindest bei mir- der gesamte Pfad, ausgehend vom Domainroot, angegeben werden. - Das ist wohl auch wichtig für die Funktion.

* Ich lasse das Forum noch ein paar Tage an dem Platz, bevor ich es lösche.