Seite 1 von 1

Programmierung von Style

Verfasst: 23.09.2003 20:22
von higidi
Hallo Leute,

hab ein kleines Problem. Möchte für mein Forum ein eingenes Layout (Style) entwickeln. Habe mich jetzt ein klein wenig in
PHPbb
eingearbeitet. Unter dem Ordner Template, gibt es dann in weiteren Ordner die ganzen Templates. Momentan bin ich dabei, die Dateien von einem Template zu verändern, um ein andere Strukturieren hin zu bekommen! Meine Frage ist jetzt. Ich habe unter dem Hauptverzeichnis den Ordner "language" gefunden, wo einzelne Sätze der Sprache angepasst sind. Das alles ist ein Array. Diese einzelen Arrays werden immer wieder in den Templates angesprochen bzw. ausgegeben.

Code: Alles auswählen

{TOTAL_POSTS}
Dies nur als Beispiel. Diese einträge findet man dann auch in der Datei
./language/german/lang_main.php
wieder mit der Bezeichnung. Nur manchmal werden die mit einem
L_*
davor aufgerufen.
Wollte fragen, was genau der Unterschied dabei ist und ob es da vielleicht eine Regel zu gibt, die ich alleine aus dem Code heraus nicht erkennen kann (vielleicht weil ich dann doch zu wenig Ahnung davon habe). Gibt es überhaupt eine Doku dazu, wie das Forum programmiert ist oder wie man ein eingenes Layout erstellt?

Kann mir da von euch vielleicht einer weiter helfen???

Re: Programmierung von Style

Verfasst: 24.09.2003 16:09
von Schumi
Zunächst mal ein Grundkurs, wie du Variablen ins Template integrieren kannst.

Code: Alles auswählen

$template->assign_vars(array(
		'TOTAL_POSTS' => $total_posts, 
		
		'L_IRGENDWAS' => $lang['wie_auch_immer'])
	);
{TOTAL_POSTS} ist also die in der zugehörigen php-Datei zugeordnete Variable.
Das der language-Array immer mit {L_xxxx} angesprochen wird, ist nur eine Sache der Übersichtlichkeit.

Verfasst: 24.09.2003 16:26
von higidi
Und wo finde ich die Dateien, wo man dieser Variablen definiert? Alle Einträge mit einem

Code: Alles auswählen

L_xxx_xxx
finde ich also in einer der Languade Dateien und wo finde ich alle anderen Variablen. Wo werden diese definiert?

Verfasst: 24.09.2003 17:51
von Schumi
Alle Variablme werden mit

Code: Alles auswählen

$template->assign_vars
gesetzt und zwar in der entsprechenden .php-Datei. Für die Mitgliederliste also z.B. memberlist.php.
und wo finde ich alle anderen Variablen
Alle Variablen musst du erst selbst erstellen, also z.B.

Code: Alles auswählen

$user_posts = $userdata['user_posts'];
Alle Einträge mit einem L_xxx_xxx
finde ich also in einer der Languade Dateien
Das L_ ist nicht festgelegt, du kannst die Templatevariablen auch anders nennen.

Verfasst: 24.09.2003 17:55
von higidi
Gibet hier irgendwann auch mal nee Doku zu???

Verfasst: 24.09.2003 18:06
von higidi
Jetzt habe ich das alles soweit kapiert. Hier meine letzte Frage:

Code: Alles auswählen

$template->assign_vars(array(
	'L_SELECT_SORT_METHOD' => $lang['Select_sort_method'],
	'L_EMAIL' => $lang['Email'],
	'L_WEBSITE' => $lang['Website'],
	'L_FROM' => $lang['Location'],
	'L_ORDER' => $lang['Order'],
	'L_SORT' => $lang['Sort'],
	'L_SUBMIT' => $lang['Sort'],
	'L_AIM' => $lang['AIM'],
	'L_YIM' => $lang['YIM'],
	'L_MSNM' => $lang['MSNM'],
	'L_ICQ' => $lang['ICQ'], 
	'L_JOINED' => $lang['Joined'], 
	'L_POSTS' => $lang['Posts'], 
	'L_PM' => $lang['Private_Message'], 

	'S_MODE_SELECT' => $select_sort_mode,
	'S_ORDER_SELECT' => $select_sort_order,
	'S_MODE_ACTION' => append_sid("memberlist.$phpEx"))
);
Das hier ist z.B. der Code für das definieren von Variablen aus der memberlist.php. Links steht der Name mit der man das bestimmte Array ansprechen kann, aber woher weiß ich was rechts vom pfeil stehen muss, gibet da eine liste mit funktionen.
Vielleicht sollte ich dir auch mal mein Problem beschreiben. Ich wollte die Onlinetext (da wo angezeigt wird, wieviel einträge insgesamt, wieviel user online, wer ist online, usw.) abändern. Hab die entsprechenden Dateíen gefunden. Anscheind werden da aber nicht nur die Zahlen ausgegeben, sondern der komplette Text mit Zahlen ausgegeben. Jetzt wollte ich den Text verändern. Hier mal ein kleiner Auschnitt von dieser Online Geschichte:

Code: Alles auswählen

<table width="100%" cellpadding="3" cellspacing="1" border="0" class="forumline">
  <tr> 
	<td class="catHead" colspan="2" height="28"><span class="cattitle"><a href="{U_VIEWONLINE}" class="cattitle">{L_WHO_IS_ONLINE}</a></span></td>
  </tr>
  <tr> 
	<td class="row1" align="center" valign="middle" rowspan="2"><img src="templates/subSilver/images/whosonline.gif" alt="{L_WHO_IS_ONLINE}" /></td>
	<td class="row1" align="left" width="100%"><span class="gensmall">{TOTAL_POSTS}<br />{TOTAL_USERS}<br />{NEWEST_USER}</span>
	</td>
  </tr>
  <tr> 
	<td class="row1" align="left"><span class="gensmall">{TOTAL_USERS_ONLINE} &nbsp; [ {L_WHOSONLINE_ADMIN} ] &nbsp; [ {L_WHOSONLINE_MOD} ]<br />{RECORD_USERS}<br />{LOGGED_IN_USER_LIST}</span></td>
  </tr>
</table>
Hier stehen nur diese
{L_WHO_IS_ONLINE}
Teil drin und halt die ohne (
{TOTAL_POSTS}
). Meine Frage, ist jetzt noch einmal ganz genau, wo kann ich den Inhalt ändern (von beiden Typen)!

Danke schon einmal im vorraus!

Verfasst: 24.09.2003 18:13
von Schumi
higidi hat geschrieben:aber woher weiß ich was rechts vom pfeil stehen muss, gibet da eine liste mit funktionen.
Das ist in jeder Datei unterschiedlich. Falls du nicht genau weißt, was du genau ändern möchtest, gibt es aber eigentlich keinen Grund, dort etwas zu ändern.
Meine Frage, ist jetzt noch einmal ganz genau, wo kann ich den Inhalt ändern (von beiden Typen)!
Falls du nur den Text ändern willst, suchst du einfach in der /language/lang_german/lang_main.php nach dem Text und änderst ihn dort. Suche in der .php-Datei (in diesem Fall index.php) nach

Code: Alles auswählen

L_WHO_IS_ONLINE
und du findest rechts vom => die language-Variable.

Verfasst: 24.09.2003 18:18
von higidi
Aha,

vielen Dank, das hat mir sehr weiter geholfen!

Verfasst: 24.09.2003 22:42
von higidi
Jo, hat auch soweit funktioniert. Is zwar ein bisle dumm immer nach den einträgen durch die dateien zu suchen, aber et geht. nur jetzt hab ich mal neen problem. kann folgenden aufruf in den templates in keiner datei finden:

Code: Alles auswählen

{TOTAL_USERS_ONLINE}
Das muss auch irgend etwas zusammengestricktes sein, weil das sin eigentlich zwei dinge auf einmal!