andere Kategoriedarstellung [erledigt]>weiter gehts

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Benutzeravatar
andreasOymann
Ehemaliges Teammitglied
Beiträge: 2392
Registriert: 10.06.2003 16:29
Wohnort: Hamminkeln
Kontaktdaten:

Beitrag von andreasOymann »

probier mal folgendes:

Code: Alles auswählen


$template->set_filenames(array(
    'body' => 'viewforum_body.tpl')
);

if ( $forum_id == 1 )
{    $template->set_filenames(array(
      'body' => 'viewforum_body2.tpl')
   );
}
if ( $forum_id == 2 )
{    $template->set_filenames(array(
      'body' => 'viewforum_body3.tpl')
   );
}

Damit sollte es immer klappen.

A.
Kein Support per PN / Mail / ICQ / MSN ! Dafür gibt´s dieses Forum...
Benutzeravatar
nickvergessen
Ehrenadmin
Beiträge: 11559
Registriert: 09.10.2006 21:56
Wohnort: Stuttgart, Germany
Kontaktdaten:

Beitrag von nickvergessen »

so ich habs jetzt doch noch hinbekommen.
Wenn ein Thema in einem anderen Style dargestellt werden soll:
FINDE:

Code: Alles auswählen

$template->set_filenames(array(
	'body' => 'viewtopic_body1.tpl')
);
Ersetzte mit:

Code: Alles auswählen

if ( $topic_id == 1 ) {
$template->set_filenames(array(
	'body' => 'viewtopic_body1.tpl')
);
}
// bei bedarf sonst komplett weg lassen bis einschließlich dem nächsten//:
elseif ( $topic_id == 5 ) {
$template->set_filenames(array(
	'body' => 'viewtopic_body2.tpl')
);
}
//
else {
$template->set_filenames(array(
	'body' => 'viewtopic_body.tpl')
);
}
wenn eine Kategorie anders dargestellt werden soll:
Finde in viewforum.php:

Code: Alles auswählen

$template->set_filenames(array(
		'body' => 'viewforum_body1.tpl')
	);
Ersetzte mit:

Code: Alles auswählen

if ( $forum_id == 1 )
{ 	$template->set_filenames(array(
		'body' => 'viewforum_body1.tpl')
	);
}
// bei bedarf sonst komplett weg lassen bis einschließlich dem nächsten//:
elseif ( $forum_id == 2 )
{ 	$template->set_filenames(array(
		'body' => 'viewforum_body2.tpl')
	);
}
//

else {
	$template->set_filenames(array(
		'body' => 'viewforum_body.tpl')
	);
}
Die Angabe: 'body' => 'viewforum_body.tpl'
verweist auf die jeweilige Style-Datei. die muss vorhanden sein.
Die Angabe: if ( $forum_id == 2 )ist die Foren oder Topic ID (einfach aufrufen und in der Linkleiste nachgucken.
(Ich werd das vllt noch als bessere Anleitung schreiben.)
kein Support per PN
Benutzeravatar
mgutt
Mitglied
Beiträge: 2999
Registriert: 31.08.2004 16:44
Wohnort: Hennef
Kontaktdaten:

Beitrag von mgutt »

So ist richtig.

Man sollte bei der Struktur if, else if und else ohne Switches klar kommen. Wenn es aber mehrere "else if" werden, dann sollte man Switches bevorzugen. Alleine wegen der Übersichtlichkeit.

Weiterhin sollte man nicht if und dann wieder if machen, wenn die zu prüfenden Variable gleich ist bzw. ENTWEDER ODER klar ist. Sonst prüft das Script immer alle Schleifen neu, was ja Unsinn wäre.

Dann: Immer das wahrscheinlichste an den Anfang. Also wenn forum_id == 1 in 90% der Fälle vor kommt, dann sollte das an den Anfang, weil dann der Rest der Schleife nicht mehr überprüft wird.

Und mein letzter Tipp: Es macht mehr Sinn wenn man Schleifen so macht:

Code: Alles auswählen

$var = wert;
if ( GET == 1 )
{
  $var = wert1;
}
else if ( GET == 2 )
{
  $var = wert2;
}
So braucht man die letzte else Bedingung nicht und spart Rechenzeit.

Gruß
meine Foren: http://www.maxrev.de/communities.htm
Ich kaufe Dein Forum! Angebote bitte an marc at gutt punkt it
Benutzeravatar
nickvergessen
Ehrenadmin
Beiträge: 11559
Registriert: 09.10.2006 21:56
Wohnort: Stuttgart, Germany
Kontaktdaten:

Beitrag von nickvergessen »

mgutt hat geschrieben:Es macht mehr Sinn wenn man Schleifen so macht:

Code: Alles auswählen

$var = wert;
if ( GET == 1 )
{
  $var = wert1;
}
else if ( GET == 2 )
{
  $var = wert2;
}
und wie mach ich das in diesem speziellen Fall?
kein Support per PN
Benutzeravatar
mad-manne
Ehemaliges Teammitglied
Beiträge: 5403
Registriert: 18.03.2005 10:00
Wohnort: Marl im Ruhrgebiet

Beitrag von mad-manne »

nickvergessen hat geschrieben:und wie mach ich das in diesem speziellen Fall?
Hatte ich das nicht schon längst beschrieben ??

Gruss,
Manne.
Try not. Do or do not. There is no try. (YODA)
Supportanfragen via E-Mail oder PN werden ignoriert
Benutzeravatar
nickvergessen
Ehrenadmin
Beiträge: 11559
Registriert: 09.10.2006 21:56
Wohnort: Stuttgart, Germany
Kontaktdaten:

Beitrag von nickvergessen »

mad-manne hat geschrieben:Hatte ich das nicht schon längst beschrieben ??
Ops, ja eigentlich schon,
aber jetzt musst du mir noch verraten, wie ich die case den einzelnen forum_id 's zuordne,
Oder ist das mit dem switch so,
das der case 1 für das Forum mit der ID 1 gilt, case 2 für Foren ID 2 usw. ?
wenn ja, was wird dann generell zugeordnet?

EDIT: ok ich denke mal dafür ist der default Eintrag da.
Damit hat sich das dann erledigt.
Zuletzt geändert von nickvergessen am 23.11.2006 15:57, insgesamt 1-mal geändert.
kein Support per PN
Benutzeravatar
mad-manne
Ehemaliges Teammitglied
Beiträge: 5403
Registriert: 18.03.2005 10:00
Wohnort: Marl im Ruhrgebiet

Beitrag von mad-manne »

Hier kannst du nicht nur nachschauen, wie die switch-Anweisung funktioniert ...

Gruss,
Manne.
Try not. Do or do not. There is no try. (YODA)
Supportanfragen via E-Mail oder PN werden ignoriert
Benutzeravatar
nickvergessen
Ehrenadmin
Beiträge: 11559
Registriert: 09.10.2006 21:56
Wohnort: Stuttgart, Germany
Kontaktdaten:

Beitrag von nickvergessen »

so da hätten wir jetzt nur das Problem,
dass wenn ich folgendes benutze

Code: Alles auswählen

switch ($topic_id)
{
   case 1:
      $template->set_filenames(array('body' => 'viewtopic_body_gb.tpl'));
      break;

   case 7:
      $template->set_filenames(array('body' => 'viewtopic_body_quotes.tpl'));
      break;

   default:
      $template->set_filenames(array('body' => 'viewtopic_body.tpl'));
}
macht er das nur für den case 1

um die Wirkung bei case 7 zuerreichen, muss ich alle bis dahin auftrettenden case (2, 3, 4, 5 und 6) auch definieren.
dadurch entsteht ein ziemlich langer Quellcode :(

Weißt du da auch Abhilfe?

EDIT: ok man sollte schon topic_id abfragen wenn man am Topic anbinden will :roll: :cry:
kein Support per PN
Benutzeravatar
mad-manne
Ehemaliges Teammitglied
Beiträge: 5403
Registriert: 18.03.2005 10:00
Wohnort: Marl im Ruhrgebiet

Beitrag von mad-manne »

nickvergessen hat geschrieben:EDIT: ok man sollte schon topic_id abfragen wenn man am Topic anbinden will :roll: :cry:
Hmmm ....
soll das heissen, du hast jetzt rausgefunden, wie es geht ?

Wie du auf die Idee kommst, man müsse "alle Fälle dazwischen" behandeln, kann ich mir nicht erklären :o
Den verlinkten Artikel zur switch-Anweisung hast du doch gelesen :roll:

Gruss,
Manne.
Try not. Do or do not. There is no try. (YODA)
Supportanfragen via E-Mail oder PN werden ignoriert
Benutzeravatar
mgutt
Mitglied
Beiträge: 2999
Registriert: 31.08.2004 16:44
Wohnort: Hennef
Kontaktdaten:

Beitrag von mgutt »

Ja, aber bei php.net steht das immer ab 0 und aufwärts. Die hätten ruhig mal ein Beispiel mit 7 oder 'wurst' oder so machen können ;)
meine Foren: http://www.maxrev.de/communities.htm
Ich kaufe Dein Forum! Angebote bitte an marc at gutt punkt it
Antworten

Zurück zu „Coding & Technik“