Seite 1 von 1

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

Verfasst: 07.01.2009 16:39
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.

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

Verfasst: 07.01.2009 17:21
von nickvergessen
Folgendes sollte funktionieren:

Code: Alles auswählen

	'STYLE_LINK'	=> 'hier ist der Link: http://domain.tdl?style=' . $user->data['user_style'] . ' fertig',

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

Verfasst: 07.01.2009 17:50
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

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

Verfasst: 07.01.2009 23:37
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...

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

Verfasst: 08.01.2009 16:21
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?

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

Verfasst: 08.01.2009 22:45
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, 

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

Verfasst: 09.01.2009 15:13
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.