overall_header - Anzeige versch. Inhalte je php Datei

Alles zu Styles, Templates, Icons und Smilies für phpBB 3.0.x, sowie allgemeine Designfragen zur Integration von phpBB in bestehende Websites.
phpBB Styles Demo
Forumsregeln
Bei Style spezifischen Fragen ist der Stylename und die Downloadquelle des Styles erforderlich, besser noch die URL vom betroffenen Forum.
Benutzeravatar
Balint
Mitglied
Beiträge: 1815
Registriert: 25.01.2003 21:43
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von Balint »

Weil ich eine Klammer vergessen habe wegzunehmen:

Code: Alles auswählen

<!-- IF $_SERVER['QUERY_STRING'] == 'i=166' -->
ich finde die dazugehörige Doku für phpBB3 nicht mehr... :-(
Meine MODs für phpBB 2.x und phpBB 3.x!
Benutzeravatar
issjut
Mitglied
Beiträge: 503
Registriert: 15.10.2007 22:05
Wohnort: Berlin
Kontaktdaten:

Beitrag von issjut »

hätte ich ja selbst auch sehen können -.-

Ohne klammer geht es natürlich!

In einigen Bereichen kommen da ja ganz schön lange "conditional comments" zusammen ;-)

Hier mal ein Beispiel für meinen Forenbereich:
(und das ist noch nicht das "längste")^^

Code: Alles auswählen

<!-- 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']) == 'search.php' or $_SERVER['QUERY_STRING'] == 'i=main&mode=bookmarks' or $_SERVER['QUERY_STRING'] == 'i=main&mode=subscribed' or $_SERVER['QUERY_STRING'] == 'i=main&mode=drafts' -->
Es gibt leider noch ein paar Links mit denen ich Schwierigkeiten habe. In der Regel die, wo die "Endung" variabel ist.

Hier mal ein paar Beispiele:

1. z.B. beim betrachten von PN's

Code: Alles auswählen

ucp.php?i=pm&mode=view&f=0&p=4457
Endung ergibt sich aus dem Ordner und der PN ID

2. z.B. bei m Erstellen der Gallery-Alben

Code: Alles auswählen

ucp.php?i=gallery&mode=manage_albums&action=edit&album_id=6
Hier wechselt am Ende jeweils die Album ID

Außerdem bei allen Links die z.B. eine USER_ID am Ende haben

Code: Alles auswählen

memberlist.php?mode=profile_views&u=53

Code: Alles auswählen

memberlist.php?mode=viewprofile&u=53
Variablen wie {USER_ID} funktionieren ja leider nicht in den "conditional comments"


Vielleicht hast Du ja dafür auch noch eine Idee.
DerPate
Mitglied
Beiträge: 157
Registriert: 12.06.2003 22:49

Beitrag von DerPate »

Ich würde bei Links mit variabler Endung einfach den Wert TRUE in der php-Datei setzen und dann mit den "normalen" Template-Switches arbeiten, so wie du es ursprunglich geplant hattest. Geht bestimmt auch anders, aber da fehlts mir leider am know-how :wink:
DerPate
Mitglied
Beiträge: 157
Registriert: 12.06.2003 22:49

Beitrag von DerPate »

Nabend,

ich hatte nicht vor, das Thema abzuwürgen, alles lasst euch von mir nicht aufhalten .... ich lese wie eh und je gern mit und lerne ... 8)
issjut hat geschrieben:Variablen wie {USER_ID} funktionieren ja leider nicht in den "conditional comments"
... aber, Variablen kannt du auch in "conditional comments" verwenden, die Frage ist, macht es Sinn. In der Regel willst du ja kaum, dass zb der Home-Link nur bei einer bestimmten USER_ID rot eingefärbt wird (um bei deinem Bsp. zu bleiben). Meist soll es ja für alle USER_IDs gelten, die sich auch einer bestimmten Seiten in einem bestimmten Seitenbereich befinden.

Bsp. das es funktioniert ist zB die index_body.html ... oder recht einfach und verständlicher (und für meine Zwecke total schwachsinnig, wie ich gerade feststellen muss :D ) ist zb das:

Die Variable kommt zB aus

Code: Alles auswählen

	$template->assign_block_vars('itemsloop', array(
		...
		'ITEM_SLOT'					=> $item['slot'],
		...
				));
... und im Template kann ich dann Späßle wie das hier machen ...

Code: Alles auswählen

	<!-- BEGIN itemsloop -->
	<!-- IF itemsloop.ITEM_SLOT == 0 or itemsloop.ITEM_SLOT == 1 or itemsloop.ITEM_SLOT == 14 -->
Nunja, mehr dazu gibts noch bei http://wiki.phpbb.com/Template_Syntax#C ... structures

Zurück zum Thema.
Ich würde es folgendermaßen machen, bzw mache bei mir so:

Generell ... die Abfrage nach 'QUERY_STRING' oder 'SCRIPT_NAME' ist nett, wenn man eine Seiten bzw URLs ohne weitere Optionen hat, aber sobald Unterseiten vorhanden sind oder die 'Template-Schalter an mehreren Stellen gesetz werden sollen, artet es ganz schnell in vielen bzw sehr langen Codezeilen aus. Von daher ist er m.M. nach einfacher und vorallem übersichtlicher die betroffenen Datein einzeln anzupassen, denn i.d.R ist pro Schalter nur eine Zeile hinzuzufügen.

(Die Änderungen sind ja einmalig, also nicht verwechseln mit den 10 anzupassenden Headern, die du JE Änderung wieder ändern müsstest!!!)

Bsp. deine Bereiche und Unterseiten

Trennung nach Bereichen (zB Header-Menü):
  • "HOME-Schachter" in den allg. Templat-Block der php-Dateien
  • viewtopic.php?f=22&p=15#p15
  • viewforum.php?f=9

Code: Alles auswählen

'S_NAV_HOME'		=> true,
Trennung nach Unterbereich (zB Navi-Menü)
  • "SETTING_SUB-Schachter" in die $id-Abfrage der php-Dateien
  • ucp.php?i=pm&mode=view&f=0&p=4457
  • ucp.php?i=zebra&mode=friends

Code: Alles auswählen

'S_NAV_SETTING_SUB'	=> true,
Trennung nach Unterbereich (zB eine Template-Variable für mehrere Inhalte )
  • "SETTING_SUBMODE-Schachter" in die $mode-Abfrage der php-Dateien
  • ucp.php?i=zebra&mode=ignored
  • ucp.php?i=zebra&mode=friends

Code: Alles auswählen

'S_NAV_SETTING_SUBIGNORED'		=> true,
'S_NAV_SETTING_SUBFRIENDS'		=> true,
Der Template Part ... hauptsächlich für die bessere Übersicht kürzen wir das ganze und verschieben wir unsere Änderung in unsere css-Datei ... aus

Code: Alles auswählen

<strong><!-- IF NAV_HOME --><span style="color:#FF0000"><!-- ENDIF -->HOME</strong><!-- IF NAV_HOME --></span><!-- ENDIF --></strong>
machen wir

Code: Alles auswählen

<strong>HOME <!-- IF S_NAV_HOME -->class="makeitred"<!-- ENDIF --></strong>
Den Rest machen wir über die css-Datei ... 1x "makeitred" definieren et voila ... ein recht flexibel, unabhängig voneinadner steuerbarer CSS-Schalter der sich eigentlich überall einbinden lässt;)

*edit: Rest gelöscht weils nicht funtioniert wie ich dachte ...*

Soooo ... geschafft, nach +5 Jahren Fornmitglieschachft musste nun wenigsten mal ein einziger, hoffentlich, hilfreich Beitrag her :D
Zuletzt geändert von DerPate am 21.10.2008 23:40, insgesamt 1-mal geändert.
Benutzeravatar
issjut
Mitglied
Beiträge: 503
Registriert: 15.10.2007 22:05
Wohnort: Berlin
Kontaktdaten:

Beitrag von issjut »

Vielen Dank DerPate,

ich empfinde Deinen Beitrag als überaus Hilfreich!

Könntest Du mri vielleicht noch ein Anwendungsbeispiel für die sumodes geben?

Nemen wir mal die ucp.php

Ich möchte nun also das der Bereich MAIL unter anderem dann rot leuchtet, wenn diese Seite aufgerufen wird!

/ucp.php?i=pm&mode=compose

Was genau hast du hierfür in der ucp.php geändert?

Edit:
Wäre das überhaupt die ucp.php? Ich könnte doch auch einfach in der includes/ucp/ucp_compose.php unter
$template->assign_vars(array(
'S_NAV_MAIL' => true,
eintragen?

Edit2:
Hab es mal versucht, das klappt auch! Aber vielleicht gibt es hier doch Nachteile gegenüber Deiner Variante. Den Vorteil den ich sehe, das ich im Template wirklich nur mit EINER .... Arbeiten brauch.... z.B. für den MAIL-Abschnitt:
<!-- IF S_NAV_MAIL -->
und den Wert True eben dann in alle php dateien einfüge die den Bereich Mail betreffen.
DerPate
Mitglied
Beiträge: 157
Registriert: 12.06.2003 22:49

Beitrag von DerPate »

issjut hat geschrieben: Edit2:
Hab es mal versucht, das klappt auch! Aber vielleicht gibt es hier doch Nachteile gegenüber Deiner Variante. Den Vorteil den ich sehe, das ich im Template wirklich nur mit EINER .... Arbeiten brauch.... z.B. für den MAIL-Abschnitt:
<!-- IF S_NAV_MAIL -->
und den Wert True eben dann in alle php dateien einfüge die den Bereich Mail betreffen.
Genau so war es eigentlich gedacht :)
Die ucp-Links in den Beispielen benzuten war natürlich bissl blöd, da es eine ucp.php ja so nicht gibt.

Mit den Untermenüs ist vll zu umständlich beschrieben. Dort wo php-seitig der Seiteninhalt geändert wird lässt sich ja "nebenbein" noch ein Schalter fürs template über geben (muss ja nicht unbeding nur true od false sein) ...

Code: Alles auswählen

		switch ($mode)
		{
			case 'events':
Deinen Schalter setzt du innhalb den case-Blöcke die du "gruppieren" willst, gibts den Schalten einen eigenen Name für und jutissts :D

Andere Idee wären variable id, class oder sonstige Tags wie tmpl: class="{MYCSS}" , php: 'MYCSS' => 'inbereichxyz' an entsprechender Stelle ... aber das ist ein anderes Tema.

Für heut reichts ... gut nacht.
Benutzeravatar
issjut
Mitglied
Beiträge: 503
Registriert: 15.10.2007 22:05
Wohnort: Berlin
Kontaktdaten:

Beitrag von issjut »

pühhh.. fertig! Alles angepasst und bearbeitet! Hat doch länger gedauert als ich dachte, aber ist ja ne einmalige Arbeit gewesen^^

Danke nochmal an Euch für die Hilfe!

Eine kleine Frage hätte ich da aber doch noch:

Hat jemand ne idee wie mal eine art default-anzeige einrichten könnte?
Also einen "Inhalt" der immer dann angezeigt wird, wenn kein anderes Kriterium zutrifft.
DerPate
Mitglied
Beiträge: 157
Registriert: 12.06.2003 22:49

Beitrag von DerPate »

Für die Default-Anzeige den Schalter einfach im "Default-Block" setzen ... ;)

Code: Alles auswählen

         dafault:
                  SCHALTER HIER!
         break:
Edit: falls es den default-Block nicht gibt einfach selbst erstellen oder den Schalter da setzen, wo die allgemeinen Template-Variablen gesetzt werden.

Mfg
Benutzeravatar
issjut
Mitglied
Beiträge: 503
Registriert: 15.10.2007 22:05
Wohnort: Berlin
Kontaktdaten:

Beitrag von issjut »

ich glaube das bewirkt nicht ganz das was ich gerne möchte.
Mal nen Beispiel:

Ich befinde mich im Ordner posteingang und lösche eine Nachricht. Bevor die Nachricht tatsächlich gelöscht wird, muss ich das ganze ja noch mit Klick auf "JA" bestätigen. Zu diesem Zeitpunkt fehlt nun also auf der linken Seite meine Navigation, weil ich mich ja sozusagen im Nirgendwo befinde.

An dieser Stelle hätte ich also gerne ne Default-Navi.

Selbe Sache bei vielen anderen Meldungen (Wartezeiten): Ihr Profil wurde aktualisiert, sie wurden Erfolgreich eingeloggt, Der Beitrag wurde erfolgreich gelöscht, usw...

würde ja dann bedeuten, dass ich für jede php.Datei nochmal einen defaultwert festlegen müsste :(
DerPate
Mitglied
Beiträge: 157
Registriert: 12.06.2003 22:49

Beitrag von DerPate »

Da muss ich vorerst passen ... hab das gleiche "Problem" bei mir ... wenn sich am Wochenende Zeit findet, schau ich gern mal.
Antworten

Zurück zu „[3.0.x] Styles, Templates und Grafiken“