Seite 1 von 1

Variable AGREEMENT

Verfasst: 12.04.2005 16:47
von ypoons
Hallo,

ich möchte den Registrierungstext für mein Board ändern. Der müsste ja im Platzhalter {AGREEMENT} stehen. Nur in welche Datei finde ich diese Variable?

Zusatzfrage:
Der Footer (overall_footer.tpl) soll auf allen Seiten erscheinen, nur nicht auf der Seite mit dem Registrierungstext. Wie kann ich denn das ändern?

Dankbar für jede Unterstützung,

Bernd

Verfasst: 12.04.2005 16:51
von mad-manne
languages/lang_xxx/lang_main.php und dort den String in $lang['Reg_agreement'] ändern.

ACHTUNG:
Der ganze Text muss auf einer Zeile bleiben! Gewünschte Zeilenumbrüche müssen als <br /> eingefügt werden. Apostrophe müssen mittels Backslash "escaped" werden. Also nicht Der kann's schreiben sondern Der kann\'s

Gruss,
Manne.

Verfasst: 12.04.2005 16:59
von punkface
Zusatzfrage:
Der Footer (overall_footer.tpl) soll auf allen Seiten erscheinen, nur nicht auf der Seite mit dem Registrierungstext. Wie kann ich denn das ändern?
Versuch mal folgendes:

page_tail.php

suche

Code: Alles auswählen

//
// Show the overall footer.
//
$admin_link = ( $userdata['user_level'] == ADMIN ) ? '<a href="admin/index.' . $phpEx . '?sid=' . $userdata['session_id'] . '">' . $lang['Admin_panel'] . '</a><br /><br />' : '';

$template->set_filenames(array(
	'overall_footer' => ( empty($gen_simple_header) ) ? 'overall_footer.tpl' : 'simple_footer.tpl')
);

$template->assign_vars(array(
	'TRANSLATION_INFO' => ( isset($lang['TRANSLATION_INFO']) ) ? $lang['TRANSLATION_INFO'] : '',
	'ADMIN_LINK' => $admin_link)
);

$template->pparse('overall_footer');
davor das hier einfügen

Code: Alles auswählen

if( !defined('IN_REGISTER')  )
{ 
und nach dem eben gefunden Code das hier einfügen usercp_register.php

suche

Code: Alles auswählen

	global $userdata, $template, $lang, $phpbb_root_path, $phpEx;
danach einfügen

Code: Alles auswählen

  define('IN_REGISTER', true);

Verfasst: 12.04.2005 17:09
von ypoons
Hallo Manne,

die $lang['Reg_agreement'] habe ich geändert, der neue Text erscheint aber nicht online. In meiner agreement.tpl gibt es den Platzhalter {AGREEMENT}, daher bin ich davon ausgegangen, dass ich diese Variable ändern muss. In der lang_main.php ist sie aber nicht vorhanden.

@punkface:
Danke, ich probier das morgen aus.

Bernd

Verfasst: 13.04.2005 10:18
von mad-manne
ypoons hat geschrieben:die $lang['Reg_agreement'] habe ich geändert, der neue Text erscheint aber nicht online. In meiner agreement.tpl gibt es den Platzhalter {AGREEMENT}, daher bin ich davon ausgegangen, dass ich diese Variable ändern muss. In der lang_main.php ist sie aber nicht vorhanden.
Wie, was, häh .. was denn nun :o

Also erstmal ein kleiner Exkurs über die "Sprachunabhängigkeit" von phpBB, sowie die Funktionsweise der phpBB-Template-Engine:
  • Die Definitonen für (fast)alle Sprachausgaben der Software verteilen sich auf folgende Dateien im jeweiligen language/lang_xxx-Ordner:
    • lang_admin.php = Sprachausgabe im ACP
    • lang_bbcode.php = Hilfeseite zur Nutzung von BBCode
    • lang_faq.php = Die Faq-Seite
    • lang_main.php = Alles was überall im Board benötigt wird
  • Die Skripte nutzen die Texte der lang_admin.php und lang_main.php über das Array $lang, welches mit "sinnvollen" Titeln indiziert ist.
    Hier einige einfache Beispiele:
    • $lang['Yes'] = 'Ja';
    • $lang['No'] = 'Nein';
    • $lang['Enabled'] = 'Aktiviert';
    • $lang['Disabled'] = 'Deaktiviert';
    • $lang['Error'] = 'Fehler';
  • Jetzt kommt die Template-Engine ins Spiel ... Um also z.B. die Seite mit dem Registrierung-Text zu erstellen werden im Skript includes/usercp_register.php unter anderem folgende Template-Variablen zugewiesen

    Code: Alles auswählen

    	$template->assign_vars(array(
    		'REGISTRATION' => $lang['Registration'],
    		'AGREEMENT' => $lang['Reg_agreement'],
    		"AGREE_OVER_13" => $lang['Agree_over_13'],
    		"AGREE_UNDER_13" => $lang['Agree_under_13'],
    		'DO_NOT_AGREE' => $lang['Agree_not'],
    
    		"U_AGREE_OVER13" => append_sid("profile.$phpEx?mode=register&agreed=true"),
    		"U_AGREE_UNDER13" => append_sid("profile.$phpEx?mode=register&agreed=true&coppa=true"))
    	);
    
  • Diese Variablen(AGREEMENT, DO_NOT_AGREE) tauchen dann in der template-Datei templates/subSilver/agreement.tpl in dieser Form auf
    • {AGREEMENT}
    • {DO_NOT_AGREE}
  • Im letzten Schritt wird dann die Template-Datei von der Template-Engine "geparst", wobei dann die in den geschweiften Klammern vorkommenden Variablen durch die zuvor in den Skripten zugewiesenen Werte ersetzt werden!
Für deinen konkreten Fall bedeutet das:
Du musst die Variable {AGREEMENT} wieder genauso wie sie vorher war, in die templates/subSilver/agreement.tpl einsetzen, und dann die Zuweisung für den zu ändernden Text in der language/lang_xxx/lang_main.php in der folgenden Zeile editieren:

Code: Alles auswählen

$lang['Reg_agreement'] = 'Die Administratoren und Moderatoren dieses Forums ...';
Dabei bitte die weiter oben genannten Tipps beherzigen!

Viel Erfolg :wink:
Manne

Verfasst: 13.04.2005 11:44
von ypoons
Ja, OK. Vielen Dank, Manne. Ich glaube, ich hab's jetzt einigermaßen begriffen.

Allerdings sind die Eintragungen soweit richtig, der geänderte Wert der Variablen $lang['Reg_agreement'] wird trotzdem nicht online angezeigt.

Ich verwende allerdings das Template fisubtext statt subsilver. Könnte es daran liegen? Muss ich da auch noch Einstellungen überprüfen?

Bernd

Verfasst: 13.04.2005 11:47
von mad-manne
ypoons hat geschrieben:Ja, OK. Vielen Dank, Manne. Ich glaube, ich hab's jetzt einigermaßen begriffen.
Bist du sicher :roll:

Bitte beschreibe doch mal genau, was du wo gemacht hast.
Evtl. verlinkst du ja auch mal deine lang_main.php und die agreement.tpl aus dem fisubtext-template Ordner!

Gruss,
Manne.

Verfasst: 13.04.2005 15:58
von ypoons
:grin: Nein, bin nich sicher, ich geb's ja zu.

Also die Eintragungen in der lang_main.php

http://www.vr-media-online.de/vr-networ ... g_main.txt


und der agreement.tpl

http://www.vr-media-online.de/vr-networ ... eement.tpl

sind m. M. richtig, wir haben uns das zu zweit angesehen.

Verfasst: 14.04.2005 11:00
von mad-manne
Ist denn Deutsch(Sie) auch die Standardsprache vom Board?
Oder evtl. doch das "normale" Deutsch? Dann musst du die entsprechende lang_main.php auch dort anpassen.

Ausserdem würde ich empfehlen, mal die originale subSilver-agreement.tpl zu studieren ...

Und last but not least: Der Terminus für die $lang['Agree_over_13'] sollte nicht verneint sein. Ihr müsst gegnüber einer vanilla-Sprachdatei nur den Kram mit "über oder genau 12 Jahre alt" rausnehmen und dann in der agreement.tpl diesen Teil rausnehmen:

Code: Alles auswählen

<br /><a href="{U_AGREE_UNDER13}" class="genmed">{AGREE_UNDER_13}</a><br />
Gruss,
Manne.

Verfasst: 14.04.2005 11:12
von ypoons
Hi Manne,

danke, du hast mir den entscheidenden Tipp gegeben. Habe die Standardsprache geändert, jetzt wird der Text korrekt angezeit.

Super, vielen Dank!

Grüße, Bernd