CMS - Der Dirigent » Entwicklung » DeDi-Entwicklung

Neue Umfrage | neues Thema | Geschlossen

Modul zur Sprachauswahl, ab Alpha2 dabei

« Älteres Thema | Neueres Thema » Thema abonnieren | Thema versenden | Thema drucken

stephan
Geschrieben am: 01. Apr 2003 - 22:33


Unregistered








Hallo zusammen,

dickes Lob an die Entwickler, weiter so! Ich würde gerne ein Modul zur Sprachauswahl beisteuern. Ich habe in der Tabelle dedi_lang die konfigurierten Sprachen gefunden. Jedoch taucht deutsch dreimal auf.

idlang name author created lastmodified
1 deutsch 1 0 0
2 deutsch 1 0 0
3 deutsch 1 0 0
4 englisch 1 1049221491 1049221491

Nimmt diese Tabelle die konfigurierten Sprachen auf?
Mfg
Stephan
Top
bjoern
Geschrieben am: 01. Apr 2003 - 23:02


Unregistered








Ja, du mußt aber darauf achten, das jeder Sprache auch noch ein client zugeordnet ist. Da es 3 Clients mit jeweils einer Sprache gibt (3 mal deutsch ), ist es nicht verwunderlich, dass die Sprache deutsch drei mal vorkommt. Die Verknüpfung von Sprachen zu den einzelnen Clients passiert über die Tabelle dedi_clients_lang
Top
stephan
Geschrieben am: 03. Apr 2003 - 20:55


Unregistered








Danke für die schnelle Antwort. Habe heute Abend folgenden ungeschliffenen Code erzeugt:

<?php

$sql = "SELECT A.idclientslang, B.name
FROM dedi_clients_lang AS A, dedi_lang AS B
WHERE A.idlang = B.idlang
AND A.idclient = $client";

$db->query($sql);
echo '<form name="languageform" method="post" action="index.php">
<input type="hidden" name="idcatside" value="">
<input type="hidden" name="idside" value="">
<input type="hidden" name="idcat" value="">';

echo '<select name="lang" onChange="languageform.submit()">';
while ($db->next_record()) {
if ($lang == $db->f('idclientslang') ) echo '<option selected value="' . $db->f('idclientslang') . '">' . $db->f('name');

else echo '<option value="' . $db->f('idclientslang') . '">' . $db->f('name');
}

echo "</select></form>";
?>

Das klappt erst einaml. Nun meine Fragen:
Ist die Verwendung von $lang und $client o.K.?
Warum ist es mir nicht gelungen die Tabellen in der Form $dedi_db[dedi_lang] anzusprechen?
Wie müsste die eigene URL korrekt bei action="" angegeben werden?

Ich hoffe dass ich nicht nerve. Ich würde mich aber gerne weiterhin mit Eurem Projekt beschäftigen und auch umfangreichere Sachen erstellen. Da ich bisher noch keine Erfahrungen mit PHP, habe würde ich erstmal klein anfangen.

Danke und Grüsse
Stephan

Top
Eppi
Geschrieben am: 04. Apr 2003 - 03:45


.....................noname


Gruppe: Admin
Beiträge: 8077
Mitgliedsnummer: 1
Mitglied seit: 23. Mar 2003


hier ein kleiner denkanstoss:

CODE
<DEDIPHP>
echo "<form name=\"langform\" method=\"post\" action=\"".$con_side[$idcatside]['link']."\">\n";
echo "<select name=\"changelang\" onChange=\"langform.submit()\">\n";
$sql = "SELECT A.idclientslang, B.name FROM ".$dedi_db['clients_lang']." AS A, ".$dedi_db['lang']." AS B WHERE A.idlang = B.idlang AND A.idclient = $client";
$db->query($sql);
while ($db->next_record()) {
if ($lang == $db->f('idclientslang')) echo '<option selected value="'.$db->f('idclientslang').'">'.$db->f('name')."</option>\n";
else echo '<option value="'.$db->f('idclientslang').'">'.$db->f('name')."</option>\n";
}
echo "</select></form>";
</DEDIPHP>


Wobei es im Backend einen Javascriptfehler gibt. Scheint an den Frames zu liegen und das er dann langform nicht findet. Wäre schön, wenn Du die DB-Abfrage noch so erweitern könntest, daß Du kontrollierst, ob diese Seite in der gewünschten Sprache überhaupt online ist. Wenn nicht, einfach nicht anzeigen.

Gruß, Paul

--------------------

"Heute ist nicht aller Tage... ich komm wieder, keine Frage!"
Top   
Sven777b
Geschrieben am: 04. Apr 2003 - 16:49


Unregistered








QUOTE
Warum ist es mir nicht gelungen die Tabellen in der Form $dedi_db[dedi_lang] anzusprechen?

lass das "dedi" weg und setze den Tablenamen in Anführungsstriche: $dedi_db['lang']

QUOTE
Ist die Verwendung von $lang und $client o.K.?

Ja - das ist die korrekte Bezeichnung

QUOTE
Wie müsste die eigene URL korrekt bei action="" angegeben werden?

deine Variante ist durchaus richtig. Auf die Art hast du im Frontend und im Backend die jeweils richtige Session mit drinnen.

soviel erstmal zu deinen Fragen - den Rest hat Eppi ja schon geschrieben
Top
stephan
Geschrieben am: 06. Apr 2003 - 15:34


Unregistered








Danke für die Hinweise und Beispiele. Leider habe ich erst heute wieder Zeit gefunden. Habe jetzt folgendes:

CODE

<DEDIPHP>

$sql = "SELECT b.idlang, c.name
FROM ((".$dedi_db['cat_side']." AS a
INNER JOIN ".$dedi_db['side_lang']." AS b ON a.idside = b.idside)
INNER JOIN ".$dedi_db['lang']." AS c ON b.idlang = c.idlang)
INNER JOIN ".$dedi_db['side']. " AS d ON a.idside = d.idside
WHERE (a.idcatside=" . $idcatside. " )
AND (d.idclient=" . $client . ")
AND (b.online=1)";

$db->query($sql);
if ($db->num_rows() > 1) {
echo "<form name=\"langform\" method=\"post\">\n";
echo "<input type=\"hidden\" name=\"idcatside\" value=\"" . $idcatside . "\">\n";
echo "<select name=\"changelang\" onChange=\"langform.submit()\">\n";
while ($db->next_record()) {
 if ($lang == $db->f('idlang')) echo '<option selected value="'.$db->f('idlang').'">'.$db->f('name')."</option>\n";
 else echo '<option value="'.$db->f('idlang').'">'.$db->f('name')."</option>\n";
}
echo "</select></form>";
}
</DEDIPHP>


Es wird nur dann ein Dropdownmenü erzeugt falls zusätzlich zur aktuellen Sprache das aktuelle Dokument auch noch in einer anderen Sprache "online" ist. Da die Rechte- bzw. Benutzerverwaltung noch in Arbeit ist, werde ich das erst später berücksichtigen.
Da ich noch keine Navigation habe, fällt mir das Testen etwas schwer.
Vielleicht könnte man entsprechend der ausgewählten Sprache in den generierten HTML-Seiten
<meta http-equiv="Content-Language" content="xyz"> setzen? Auch der verwendete Zeichensatz ändert sich u.U. mit der Sprache.

Mein Vorschlag: Die Tabelle dedi_lang um zwei Spalten erweitern und die entsprechenden Werte im Header hinterlegen. Falls Ihr mit irgendwelchen Patch-Systemen arbeitet würde ich das entsprechend aufbereiten.

Viele Grüsse
Stephan
Top
Eppi
Geschrieben am: 06. Apr 2003 - 17:26


.....................noname


Gruppe: Admin
Beiträge: 8077
Mitgliedsnummer: 1
Mitglied seit: 23. Mar 2003


du kannst wohl unsere gedanken lesen? also es war schon so geplant, ist aber leider etwas komplizierter, da nicht nur der browser umgestellt werden muß, sondern auch die db. wie das bei der db genau funktioniert habe ich noch nicht raus. außerdem kommen noch wesentlich mehr meta angaben, die man dann über die seitenkonfiguration einstellen kann :-)

Gruß, Paul

--------------------

"Heute ist nicht aller Tage... ich komm wieder, keine Frage!"
Top   
stephan
Geschrieben am: 07. Apr 2003 - 20:40


Unregistered








Ab Donnerstag bin ich für 10 Tage im Urlaub. Leider zwar ohne Internet, aber mit Laptop. Ich denke, dass ich in der Zeit einiges zum Thema Internationalisierung (Sprachkennzeichnung von Webseiten, Zeichensätze und entsprechende Speicherung in der DB) herrausfinden werde. Villeicht schaue ich zwischendurch von einem Internet-Cafe aus vorbei.

Viele Grüsse

Stephan
Top
Eppi
Geschrieben am: 07. Apr 2003 - 21:44


.....................noname


Gruppe: Admin
Beiträge: 8077
Mitgliedsnummer: 1
Mitglied seit: 23. Mar 2003


klingt sehr gut. den stand der dinge kannst du mir dann auch mailen, damit ich das mit dem einbau koordinieren kann. wollte nämlich diese woche nochmal an der spracherstellung rumschrauben.

gruß, paul

--------------------

"Heute ist nicht aller Tage... ich komm wieder, keine Frage!"
Top   

Thema wird von 0 Benutzer gelesen (0 Gäste und 0 Anonyme Benutzer)
0 Mitglieder:

8 Antworten seit 01. Apr 2003 - 22:33

Thema abonnieren | Thema versenden | Thema drucken


Neue Umfrage | neues Thema

Home | Das Projekt | Download | Entwicklung | Dokumentation | Forum | Impressum