[Gelöst:]Suche Platzhalter für den aktuellen Style ...

In diesem Forum kann man Fragen zur Programmierung stellen, die bei der Entwicklung von Mods für phpBB 3.0.x oder dem Modifizieren des eigenen Forums auftauchen.
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
jimmartens
Mitglied
Beiträge: 369
Registriert: 28.11.2008 20:04
Wohnort: Hamburg
Kontaktdaten:

[Gelöst:]Suche Platzhalter für den aktuellen Style ...

Beitrag von jimmartens »

Ich suche, einen Platzhalter, den man in der language-Datei eingeben kann, um auf eine andere Seite zu kommen, aber im gleichen Style. Ich habe folgenden Link: "http://./Forenregeln.php?style=", nur dass nach dem Gleichheitszeichen, dann eben im Browser die Nummer des Styles ausgegeben wird. Bei mir: 1=Prosilver, 2=Subsilver2, 3=FiSubBlack2. Aber wie kann ich es nun machen, dass er, wenn ich in Prosilver auf die Nutzungsbedingungen gehe, also: "http://jimmartens.ji.funpic.de/phpBB3/u ... er&style=1", dass er dann den oben genannten Link so anzeigt: "http://./Forenregeln.php?style=1"? Bin am Abgrund zum Verzweifeln, denn das ist das einzige, was mir noch fehlt, um die Implementierung meiner Forenregeln komplett zu machen.
Zuletzt geändert von jimmartens am 11.01.2009 19:53, insgesamt 1-mal geändert.
Um es für die Supporter einfacher zu machen: Hier meine Forums-Adresse: Mein Eisenbahn-Forum
Benutzeravatar
nickvergessen
Ehrenadmin
Beiträge: 11559
Registriert: 09.10.2006 21:56
Wohnort: Stuttgart, Germany
Kontaktdaten:

Re: Suche Platzhalter für den aktuellen Style für language-Datei

Beitrag von nickvergessen »

Folgendes sollte funktionieren:

Code: Alles auswählen

	'STYLE_LINK'	=> 'hier ist der Link: http://domain.tdl?style=' . $user->data['user_style'] . ' fertig',
kein Support per PN
jimmartens
Mitglied
Beiträge: 369
Registriert: 28.11.2008 20:04
Wohnort: Hamburg
Kontaktdaten:

Re: Suche Platzhalter für den aktuellen Style für language-Datei

Beitrag von jimmartens »

Wäre ja schön, aber funktioniert nicht in dem Kontext, wie ich es möchte. Hier der Quelltext meiner php-Datei, die die Variable definiert und der language-Datei "ucp.php", die den Link zu meinen Forenregeln beinhaltet:
http://jimmartens.ji.funpic.de/test/regeln.txt

http://jimmartens.ji.funpic.de/test/ucp.txt

Nach meiner Meinung ist es richtig. Und hier der Link zu den Nutzungsbedingungen, mit eingebautem Link, allerdings ohne, dass er einen Style anzeigt:
http://jimmartens.ji.funpic.de/phpBB3/ucp.php?style=2&mode=register
Um es für die Supporter einfacher zu machen: Hier meine Forums-Adresse: Mein Eisenbahn-Forum
piero
Mitglied
Beiträge: 476
Registriert: 10.11.2008 17:15
Wohnort: Schweiz

Re: Suche Platzhalter für den aktuellen Style für language-Datei

Beitrag von piero »

versuchs mal mit dem:

Code: Alles auswählen

<?php
//lange variante
$url = "http://Forenregeln.php?";

if(isset($_GET['style'] AND ((int) $_GET['style']) != null) { // evtl. statt null die höchste style-id einsetzen
$url .= "style=" . (int) $_GET['style'];
}
// lange varainte

//kurzvariante
$url = "http://Forenregeln.php?" . (isset($_GET['style'] AND ((int) $_GET['style']) != null) ? "style=" . (int) $_GET['style'] : '';

// (ungetestet)
?>
zuerst wird überprüft, ob $_GET['style'] existiert, dann wird überprüft ob $_GET['style'] eine zahl ist. trifft beides zu wird "style=n" an die url angehängt...
jimmartens
Mitglied
Beiträge: 369
Registriert: 28.11.2008 20:04
Wohnort: Hamburg
Kontaktdaten:

Re: Suche Platzhalter für den aktuellen Style für language-Datei

Beitrag von jimmartens »

Danke für den Tipp, ich denke der ist richtig, aber bei Aufruf wird dann die Fehlermeldung angezeigt:

Code: Alles auswählen

Parse error: syntax error, unexpected T_LOGICAL_AND, expecting ',' or ')' in /usr/export/www/vhosts/funnetwork/hosting/jimmartens/phpBB3/regeln.php on line 21
Linie 21 in der Datei:

Code: Alles auswählen

if(isset($_GET['style'] AND ((int) $_GET['style']) != null)
 
Was ist dort verkehrt? Soweit ich es entziffern kann, erwartet der Browser ein "," oder ein ")", findet aber ein "AND". Allerdings versteh ich nicht, was man dort sonst hätte schreiben können.

EDIT: Problem gefunden. Nach "$_GET['style']" fehlte eine schließende Klammer. Ansonsten aber alles richtig.

Neues Problem: Habe zum Test noch "echo $url;" nach der Funktion eingefügt. Gehe ich nun auf diesen Skript, gibt er mir den Link richtig aus. "Include" ich diese Datei nun in die Languagedatei "ucp.php" unter "./phpBB3/language/de_x_sie/" und gebe an betroffener Stelle dann "$url" innerhalb der doppelten Anführungsstriche ein, wird die Variable trotz der doppelten Anführungsstriche nicht aufgelöst. Und im Browser wird dann, wenn ich über den Link fahre, folgendes angezeigt: "http://jimmartens.ji.funpic.de/phpBB3/$url" klicke ich darauf, bekomme ich eine 404-Fehlermeldung. Was mache ich falsch?
Zuletzt geändert von jimmartens am 09.01.2009 18:10, insgesamt 1-mal geändert.
Um es für die Supporter einfacher zu machen: Hier meine Forums-Adresse: Mein Eisenbahn-Forum
piero
Mitglied
Beiträge: 476
Registriert: 10.11.2008 17:15
Wohnort: Schweiz

Re: Suche Platzhalter für den aktuellen Style für language-Datei

Beitrag von piero »

jimmartens hat geschrieben:Was ist dort verkehrt? Soweit ich es entziffern kann, erwartet der Browser ein "," oder ein ")", ...
:-? ... deinen browser möchte ich auch... :)
im normalfall würde jetzt der php-compiler auf dem webserver meckern^^ der browser bekommt dann nur die fehlermeldung, weiter nix...^^
jimmartens hat geschrieben: Neues Problem: Habe zum Test noch "echo $url;" nach der Funktion eingefügt. Gehe ich nun auf diesen Skript, gibt er mir den Link richtig aus. "Include" ich diese Datei nun in die Languagedatei "ucp.php" unter "./phpBB3/language/de_x_sie/" und gebe an betroffener Stelle dann "$url" innerhalb der doppelten Anführungsstriche ein, wird die Variable trotz der doppelten Anführungsstriche nicht aufgelöst
hast dus mal so versucht?

Code: Alles auswählen

'DEINE_VARIABLE' => 'http://jimmartens.ji.funpic.de/phpBB3/' . $url, 
jimmartens
Mitglied
Beiträge: 369
Registriert: 28.11.2008 20:04
Wohnort: Hamburg
Kontaktdaten:

Re: Suche Platzhalter für den aktuellen Style für language-Datei

Beitrag von jimmartens »

Der Link soll ja im fließenden Text sein. So nach dem Motto: " anderer im Board veröffentlichten Regeln". Nur dass halt "Regeln" dann ein Link auf meine Regeln ist. Ich könnte natürlich den Text in zwei Teile splitten und beide als einzelne Variablen raushauen. Doch das ist meiner Meinung nach nicht das Ziel.
piero hat geschrieben:
jimmartens hat geschrieben:Was ist dort verkehrt? Soweit ich es entziffern kann, erwartet der Browser ein "," oder ein ")", ...
:-? ... deinen browser möchte ich auch... :)
im normalfall würde jetzt der php-compiler auf dem webserver meckern^^ der browser bekommt dann nur die fehlermeldung, weiter nix...^^
Ich habe keinen besonderen Browser, nur Firefox 3.05.

EDIT:Habe es hinbekommen. So habe ich es gelöst(ucp.php[language-Datei]):

Zuerst habe ich den Text bis zum Link und den Text nach dem Link in eigene Variablen gefasst. Also $text1 und $text2, wohlgemerkt das sind noch nicht die Variablen, die ich an die php-Datei schicke. Nun kommt der Knackpunkt:

Code: Alles auswählen

$url = '<a href="http://jimmartens.ji.funpic.de/phpBB3/Forenregeln.php?';
$ende = '">Regeln';
$a = '</a>';

if(isset($_GET['style']) AND ((int) $_GET['style']) != null)
{ 
$url .= "style=" . (int) $_GET['style'] . $ende . $a;
}
 
Dadurch ist gewährleistet, dass die einzelnen Linkelemente noch nicht den Link erstellen, bevor der Style zugewiesen wurde. Übrigens, das includen einer Datei die die Funktion enthält funktioniert nicht, da das $_GET-Array ja mit der Addressleiste übergeben wird. Ich möchte ja, dass er dann die Addressleiste auch für die gewünschte Datei berechnet und nicht für die eingefügte. In dem Bereich, wo man die Sprachvariablen übergibt, habe ich dann links:

Code: Alles auswählen

'TERMS_OF_USE_CONTENT' 
stehen lassen. Allerdings auf der rechten Seite nur noch:

Code: Alles auswählen

$text1 . $url . $text2, 
eingefügt.

Somit muss ich in der php-Datei im root-Verzeichnis nichts mehr verändern, da es ja immer noch die gleiche Variable übergeben bekommt.
Um es für die Supporter einfacher zu machen: Hier meine Forums-Adresse: Mein Eisenbahn-Forum
Antworten

Zurück zu „[3.0.x] Mod Bastelstube“