PHP Willkommens Script auf Sprachen abfrage (2 Sprachen vorha..) Modifizieren Joomla 2.5

XXO1989

Lieutenant
Registriert
Mai 2008
Beiträge
671
Hi Computerbaseler,
dieses anliegen ist als Ergänzung der Übersichtlichkeit, zum Thread (Gast (if) abfrage in Script integrieren) gedacht.


Ich möchte das dieses Script die Joomla 2.5 Seiten-Sprache abfragt und je nachdem die Willkommens überschrift, in Deutsch, oder Englisch ausgibt.


Dieses Script fragt die Sprache ab:
PHP:
$lang = JFactory::getLanguage();
echo 'Die aktuelle Sprache lautet: ' . $lang->getName();
Link zur Beschreibung

Ich habe von PHP leider keine Ahnung und kann deswegen die Arbeitsweise des Scriptes nicht erklären.


Folgende Sprachen sind vorhanden:
Die aktuelle Sprache lautet: German (DE-CH-AT)
Die aktuelle Sprache lautet: English (United Kingdom)


Dieses Scrip wurde mir lieber weise von (Karol_) zur Verfügung gestellt.

PHP:
<?php $user = &JFactory::getUser();
if (!$user->guest) {
echo '<p align="center">Lieber ' . $user->username . ', herzlich willkommen zur&uuml;ck auf unserer Clanseite.</p>';
} else {
echo '<p align="center">Lieber Gast, herzlich willkommen auf unserer Clanseite.</p>';
}?>

Könnte mir jemand dieses Script Modifizieren?

MfG
XXO1989
 
Zuletzt bearbeitet:
Frag ab welche Sprache der Benutzer in seinen Einstellungen gewählt hat.

Erst das Userobject holn, dann per getParams nach der Sprache fragen
PHP:
$user =& JFactory::getUser();
	$language = $user->getParam('language', 'defaultwert');

$language sollte jetzt einen der beiden werte für englisch oder deutsch haben

Die beiden möglichkeiten (bzw 3, wenn man den default wert mit einbezieht) packst du wiederum in eine übergeordnete Schleife, also, bei language engl => englische begrüßung, de => deutsche begrüßung
 
#DerDummePunkt
Das Problem ist, dass die Standardsprache Deutsch ist und unsere Internationalen Mitglieder die Sprache im Profile meistens nicht ändern. Wir haben aber einen Sprach Switcher auf der Startseite, der euphorisch genutzt wird. Es muss also die Seiten Sprache abgefragt werden.

Würden Sie mir das Script modifizieren, ich bin was PHP angeht ein absoluter Noob?


MfG
XXO1989
 
Zuletzt bearbeitet:
gibt der Sprachswitcher in irgend einer Form einen Parameter zurück? Ich hab mit Joomla noch nicht gearbeitet, weiß nicht wie's da läuft. Bei einigen Systemen ist es ja so, dass solche Sprachwechsler dir dann z.B. ein "&lang=en" an die URL kleistern
 
OK, jetzt müsste man nur noch wissen, wie die URL-Änderung vor dem URL-Rewrite aussieht...

Mal angenommen, es ist ein GET-Paramter in der Form "lang=en", dann könnte man im PHP-Script eben diesen Parameter für die Abfrage nutzen.
Sinngemäß:
PHP:
<?php
if($_GET['lang']=="de")
{
//tue, was bei deutscher Sprache passieren soll
}
else
{
//tue, was alle anderen sehen sollen
}
?>

Falls es auch URLs ohne den Sprach-PArameter gibt, die dann automatisch auf Deutsch leiten sollen, müsste die erste Abfrage z.B. auf
PHP:
if(!isset($_GET['lang']) || $_GET['lang']=="de" || $_GET['lang'] == ''){...}
 
Alle seiten haben den Parameter, dieser verrutscht nur in die Mitte:

http://rated-r-network.de/de/forum-regeln.html


P.S.
Der Parameter wird automatisch beim Seitenaufruf angehängt.
-------------------------------------------------------------------------------------
Was mache ich Falsch, dass Script funktioniert so nicht?

PHP:
<?php
if($_GET['lang']=="de")
{

$user = &JFactory::getUser();
if (!$user->guest) {
echo '<p align="center">Lieber ' . $user->username . ', herzlich willkommen zur&uuml;ck auf unserer Clanseite.</p>';
} else {
echo '<p align="center">Lieber Gast, herzlich willkommen auf unserer Clanseite.</p>';


}
else
{

$user = &JFactory::getUser();
if (!$user->guest) {
echo '<p align="center">Dear ' . $user->username . ', welcome back to our clan page.</p>';
} else {
echo '<p align="center">Dear Gast, welcome to our clan page.</p>';


}
?>

MfG
XXO1989
 
Zuletzt bearbeitet:
Kein Wunder, dass es nicht funktioniert: "Gast" heißt im Englischen ja auch "guest". :D

Hast du den Code in der angegebenen Seite schon drin? Ausgegeben wird anscheinen nichts was mich vermuten lässt, dass der Code, dort wo du ihn angegeben hast, gar nicht durchlaufen wird, oder es wird aufgrund eines Fehlers abgebrochen.

Wenn du "funktioniert so nicht" im Sinne von "es wird der falsche Text ausgegeben" meinst, mach doch mal ein var_dump($GET), dann weißt du was du übergeben bekommst.
 
#Darlis
Oh ganz übersehen, aber das wäre ja nur die Ausgabe.

Wenn ich das Script einbinde gibt es einen Server Error und die Seite ist nicht mehr erreichbar.

Ich habe die Version ohne Sprach abfrage eingebunden: www.rated-r-network.de
 
Dann liegt es vermutlich daran, dass es keinen Eintrag 'lang' in $_GET gibt. Wie gesagt: var_dump($_GET);
 
Ich bin ein totaler Anfänger was PHP angeht, wie meinen Sie das?

<?php
if var_dump ($_GET['lang']=="de")
?>
 
Ich meine so etwas:
PHP:
<?php
  var_dump($_GET);
?>
Das gibt den gesamten Inhalt von $_GET aus.
 
Okay hier die Ausgaben:

PHP:
array(5) { ["language"]=> string(5) "de-DE" ["lang"]=> string(2) "de" ["option"]=> string(11) "com_content" ["view"]=> string(8) "featured" ["Itemid"]=> string(3) "504" }

PHP:
array(5) { ["language"]=> string(5) "en-GB" ["lang"]=> string(2) "en" ["option"]=> string(11) "com_content" ["view"]=> string(8) "featured" ["Itemid"]=> string(3) "504" }
 
Ok, lang scheint doch zu existieren. Du kannst aber mal auf nummer sicher gehen und den Code von Daaron übernehmen
PHP:
if(!isset($_GET['lang']) || $_GET['lang']=="de" || $_GET['lang'] == ''){...}
 
Ich verstehe es einfach nicht, bei mir kommt kein Funktionierender Code zustande.
 
Beim dem Code, den du schon in der Webseite hast, hast du dort auch "$user = &JFactory::getUser();" und "$user->guest" stehen? Also funktioniert dieser Code wenigstens?
 
Ja ist beides vorhanden und Funktioniert.

Mein aktuell eingebundener und funktionierender Code:

PHP:
<?php $user = &JFactory::getUser();
if (!$user->guest) {
echo '<p align="center">Lieber ' . $user->username . ', herzlich willkommen zur&uuml;ck auf unserer Clanseite.</p>';
} else {
echo '<p align="center">Lieber Gast, herzlich willkommen auf unserer Clanseite.</p>';
}?>
 
Dann sollte das hier eigentlich funktionieren:
PHP:
<?php
	$user = &JFactory::getUser();
	if(!isset($_GET['lang']) || $_GET['lang'] == 'de' || $_GET['lang'] == '')
	{
		if (!$user->guest) {
			echo '<p align="center">Lieber ' . $user->username . ', herzlich willkommen zur&uuml;ck auf unserer Clanseite.</p>';
		} else {
			echo '<p align="center">Lieber Gast, herzlich willkommen auf unserer Clanseite.</p>';
		}
	}
	else
	{
		if (!$user->guest) {
			echo '<p align="center">Dear ' . $user->username . ', welcome back to our clan page.</p>';
		} else {
			echo '<p align="center">Dear guest, welcome to our clan page.</p>';
		}
	}
?>
 
#Darlis
Vielen Dank es hat funktioniert :D

Ich hab mir jetzt nenn PHP - Buch für Dummies gekauft, ich hoffe ich belästige euch jetzt weniger :D
 
Nä, du wirst uns sicher noch n paar mal belästigen, aber mach ruhig. Das tolle an Foren ist ja: Oftmals lernt nicht nur der Fragesteller was dazu. Schon allein weil man sich Gedanken über eine Antwort macht lernt man eventuell was neues. Von anderen Usern mit ähnlichen Problemen mal ganz abgesehen...
 
Zurück
Oben