Mehrsprachigkeit für Terminanzeige ?
Mehrsprachigkeit für Terminanzeige ?
Ich habe mich versucht mit meinem PHP-Halbwissen das Modul Terminanzeige mehrsprachig zu bekommen. Leider ohne Erfolg. Ich vermute, dass die Variable $lang bei Termineingabe in der Datenbank gespeichert werden muß (habe ich mit hiddenfield probiert und als Feld in SQL-Tabelle Con_events erweitert). Anschließend bei der Ausgabe geprüft werden muß ob $lang identisch ist mit Betrachter.
Bin leider nicht der PHP-Crack. Wenn jemand eine Lösung hast, wäre ich sehr dankbar.
Viele Grüsse
Billy
Bin leider nicht der PHP-Crack. Wenn jemand eine Lösung hast, wäre ich sehr dankbar.
Viele Grüsse
Billy
Lösung gefunden
Hier die Lösung:
#
# Tabellenstruktur für Tabelle `con_events`
#
CREATE TABLE con_events (
id int(11) NOT NULL auto_increment,
titel varchar(50) NOT NULL default '',
datum varchar(14) NOT NULL default '',
desc text NOT NULL,
ort varchar(50) default NULL,
online tinyint(1) NOT NULL default '1',
url varchar(50) default NULL,
language varchar(10) NOT NULL default '',
datum2 varchar(14) NOT NULL default '',
PRIMARY KEY (id)
) TYPE=MyISAM;
SQL-CODE für DB:
OUTPUT:
$meineseite=$auth->url();
//wenn "online" als aktion übergeben wird und wir noch im edit-modus sind
if (($online > -1) && $perm->have_perm("admin")) {
$sql = "UPDATE `con_events` SET online=".$online." WHERE id='".$eventid."'";
//echo $sql;
$db->query($sql);
}
if (($delete) && $perm->have_perm("admin")) {
$sql = " DELETE FROM `con_events` WHERE `id` = '".$eventid."' AND online='0'";
//echo $sql;
$db->query($sql);
}
//neuer eintrag
if ($send && $perm->have_perm("admin")) {
$datum1 = str_replace(".", "-", $datum1);
$datum1 = str_replace("/", "-", $datum1);
$datum2 = str_replace(".", "-", $datum2);
$datum2 = str_replace("/", "-", $datum2);
$uhrzeit = str_replace(".", ":", $uhrzeit);
$uhrzeit = str_replace("-", ":", $uhrzeit);
$arr = split('-',$datum1);
$date1 = sprintf("%04d",$arr[2]).sprintf("%02d",$arr[1]).sprintf("%02d",$arr[0]);
$arr = split(":",$uhrzeit);
$date1 .= sprintf("%02d",$arr[0]).sprintf("%02d",$arr[1])."00";
$arr = split(".",$datum2);
$date2 = sprintf("%04d",$arr[2]).sprintf("%02d",$arr[1]).sprintf("%02d",$arr[0])."000000";
$sql = "INSERT INTO `con_events` ( `titel`, `datum`, `desc`, `ort`, `online`, `url`, `language`, `datum2`) VALUES ('".$titel."', '".$date1."', '".$desc."', '".$ort."', '".$online."', '".$url."', '".$language."', '".$date2."') ";
$db->query($sql);
}
if($perm->have_perm("admin"))
$sql = "SELECT * FROM `con_events` WHERE datum > ".date("Ymd")."000000 AND `language` ='".$lang."' ORDER BY `datum`";
else
$sql = "SELECT * FROM `con_events` WHERE datum > ".date("Ymd")."000000 AND online = 1 AND `language` ='".$lang."' ORDER BY `datum`";
$db->query($sql);
//echo $sql;
$monat = array("Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember");
$aktmon = "000000";
// Auslesen des Ergebnisse pro Reihe und Generierung der Seite
while ($db->next_record()) {
echo '<a name="event'.$db->f("id").'"></a>';
if ($aktmon < substr($db->f("datum"),0,6)) {
$aktmon = substr($db->f("datum"),0,6);
echo '<p class="hl3">'.$monat[substr($aktmon,4,2)-1].' '.substr($aktmon,0,4).'</p>';
}
echo '<p><b>'.$db->f("titel").'</b></p>';
echo '<p><i>';
$mydatum = substr($db->f("datum"),6,2).".".substr($db->f("datum"),4,2).".".substr($db->f("datum"),0,4);
$mytime = substr($db->f("datum"),8,2).".".substr($db->f("datum"),10,2);
echo $mydatum." - ".$mytime." Uhr";
if ($db->f("datum2")>0) {
$mydatum = substr($db->f("datum2"),6,2).".".substr($db->f("datum2"),4,2).".".substr($db->f("datum2"),0,4);
$mytime = substr($db->f("datum2"),8,2).".".substr($db->f("datum2"),10,2);
echo " bis ".$mydatum." - ".$mytime." Uhr";
}
echo ", ".$db->f("ort");
echo ".</i> ";
echo $db->f("desc");
if ($db->f("url")!="") {
echo "<br><br>";
echo '<a href="'.$db->f("url").'" target="_blank">Weitere Informationen</a>';
}
if($perm->have_perm("admin")) {
if ($db->f("online") == 0) { $imgsrc = "online stellen"; }
if ($db->f("online") == 1) { $imgsrc = "offline stellen"; }
echo "<br><br><a href=$meineseite&online=".(($db->f("online")*-1)+1)."&eventid=".$db->f("id").">$imgsrc</a>";
if ($db->f("online") == 0) echo " | <a href=$meineseite&delete=1&eventid=".$db->f("id").">Löschen</a>";
}
echo "</p>";
echo "</a></p>\n";
}
if ($perm->have_perm("admin")) {
echo '
<p class="hl3">Neue Veranstaltung</p>
<form name="form1" method="post" action="'.$meineseite.'">
<table width="400" border="0" cellspacing="2" cellpadding="2">
<tr>
<td width="152">Titel</td>
<td width="234"><input name="titel" type="text" id="titel" size="30"></td>
</tr>
<tr>
<td>Start-Datum</td>
<td><input name="datum1" type="text" id="datum1" size="30"></td>
</tr>
<tr>
<td>End-Datum</td>
<td><input name="datum2" type="text" id="datum2" size="30"></td>
</tr>
<tr>
<td>Uhrzeit</td>
<td><input name="uhrzeit" type="text" id="uhrzeit" size="30"></td>
</tr>
<tr>
<td>Beschreibung</td>
<td><text';
echo 'area name="desc" cols="30" rows="5" id="desc"></text';
echo 'area></td>
</tr>
<tr>
<td>Ort</td>
<td><input name="ort" type="text" id="ort" size="30"></td>
</tr>
<tr>
<td>Url</td>
<td><input name="url" type="text" id="url" size="30"></td>
</tr>
<tr>
<td>Online</td>
<td><input name="online" type="checkbox" id="online" value="1" checked>
<input type ="hidden" name="language" value ="'.$lang.'">
</td>
</tr>
<tr>
<td> </td>
<td><input type="submit" name="send" value="eintragen"></td>
</tr>
</table>
</form>
';}
#
# Tabellenstruktur für Tabelle `con_events`
#
CREATE TABLE con_events (
id int(11) NOT NULL auto_increment,
titel varchar(50) NOT NULL default '',
datum varchar(14) NOT NULL default '',
desc text NOT NULL,
ort varchar(50) default NULL,
online tinyint(1) NOT NULL default '1',
url varchar(50) default NULL,
language varchar(10) NOT NULL default '',
datum2 varchar(14) NOT NULL default '',
PRIMARY KEY (id)
) TYPE=MyISAM;
SQL-CODE für DB:
OUTPUT:
$meineseite=$auth->url();
//wenn "online" als aktion übergeben wird und wir noch im edit-modus sind
if (($online > -1) && $perm->have_perm("admin")) {
$sql = "UPDATE `con_events` SET online=".$online." WHERE id='".$eventid."'";
//echo $sql;
$db->query($sql);
}
if (($delete) && $perm->have_perm("admin")) {
$sql = " DELETE FROM `con_events` WHERE `id` = '".$eventid."' AND online='0'";
//echo $sql;
$db->query($sql);
}
//neuer eintrag
if ($send && $perm->have_perm("admin")) {
$datum1 = str_replace(".", "-", $datum1);
$datum1 = str_replace("/", "-", $datum1);
$datum2 = str_replace(".", "-", $datum2);
$datum2 = str_replace("/", "-", $datum2);
$uhrzeit = str_replace(".", ":", $uhrzeit);
$uhrzeit = str_replace("-", ":", $uhrzeit);
$arr = split('-',$datum1);
$date1 = sprintf("%04d",$arr[2]).sprintf("%02d",$arr[1]).sprintf("%02d",$arr[0]);
$arr = split(":",$uhrzeit);
$date1 .= sprintf("%02d",$arr[0]).sprintf("%02d",$arr[1])."00";
$arr = split(".",$datum2);
$date2 = sprintf("%04d",$arr[2]).sprintf("%02d",$arr[1]).sprintf("%02d",$arr[0])."000000";
$sql = "INSERT INTO `con_events` ( `titel`, `datum`, `desc`, `ort`, `online`, `url`, `language`, `datum2`) VALUES ('".$titel."', '".$date1."', '".$desc."', '".$ort."', '".$online."', '".$url."', '".$language."', '".$date2."') ";
$db->query($sql);
}
if($perm->have_perm("admin"))
$sql = "SELECT * FROM `con_events` WHERE datum > ".date("Ymd")."000000 AND `language` ='".$lang."' ORDER BY `datum`";
else
$sql = "SELECT * FROM `con_events` WHERE datum > ".date("Ymd")."000000 AND online = 1 AND `language` ='".$lang."' ORDER BY `datum`";
$db->query($sql);
//echo $sql;
$monat = array("Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember");
$aktmon = "000000";
// Auslesen des Ergebnisse pro Reihe und Generierung der Seite
while ($db->next_record()) {
echo '<a name="event'.$db->f("id").'"></a>';
if ($aktmon < substr($db->f("datum"),0,6)) {
$aktmon = substr($db->f("datum"),0,6);
echo '<p class="hl3">'.$monat[substr($aktmon,4,2)-1].' '.substr($aktmon,0,4).'</p>';
}
echo '<p><b>'.$db->f("titel").'</b></p>';
echo '<p><i>';
$mydatum = substr($db->f("datum"),6,2).".".substr($db->f("datum"),4,2).".".substr($db->f("datum"),0,4);
$mytime = substr($db->f("datum"),8,2).".".substr($db->f("datum"),10,2);
echo $mydatum." - ".$mytime." Uhr";
if ($db->f("datum2")>0) {
$mydatum = substr($db->f("datum2"),6,2).".".substr($db->f("datum2"),4,2).".".substr($db->f("datum2"),0,4);
$mytime = substr($db->f("datum2"),8,2).".".substr($db->f("datum2"),10,2);
echo " bis ".$mydatum." - ".$mytime." Uhr";
}
echo ", ".$db->f("ort");
echo ".</i> ";
echo $db->f("desc");
if ($db->f("url")!="") {
echo "<br><br>";
echo '<a href="'.$db->f("url").'" target="_blank">Weitere Informationen</a>';
}
if($perm->have_perm("admin")) {
if ($db->f("online") == 0) { $imgsrc = "online stellen"; }
if ($db->f("online") == 1) { $imgsrc = "offline stellen"; }
echo "<br><br><a href=$meineseite&online=".(($db->f("online")*-1)+1)."&eventid=".$db->f("id").">$imgsrc</a>";
if ($db->f("online") == 0) echo " | <a href=$meineseite&delete=1&eventid=".$db->f("id").">Löschen</a>";
}
echo "</p>";
echo "</a></p>\n";
}
if ($perm->have_perm("admin")) {
echo '
<p class="hl3">Neue Veranstaltung</p>
<form name="form1" method="post" action="'.$meineseite.'">
<table width="400" border="0" cellspacing="2" cellpadding="2">
<tr>
<td width="152">Titel</td>
<td width="234"><input name="titel" type="text" id="titel" size="30"></td>
</tr>
<tr>
<td>Start-Datum</td>
<td><input name="datum1" type="text" id="datum1" size="30"></td>
</tr>
<tr>
<td>End-Datum</td>
<td><input name="datum2" type="text" id="datum2" size="30"></td>
</tr>
<tr>
<td>Uhrzeit</td>
<td><input name="uhrzeit" type="text" id="uhrzeit" size="30"></td>
</tr>
<tr>
<td>Beschreibung</td>
<td><text';
echo 'area name="desc" cols="30" rows="5" id="desc"></text';
echo 'area></td>
</tr>
<tr>
<td>Ort</td>
<td><input name="ort" type="text" id="ort" size="30"></td>
</tr>
<tr>
<td>Url</td>
<td><input name="url" type="text" id="url" size="30"></td>
</tr>
<tr>
<td>Online</td>
<td><input name="online" type="checkbox" id="online" value="1" checked>
<input type ="hidden" name="language" value ="'.$lang.'">
</td>
</tr>
<tr>
<td> </td>
<td><input type="submit" name="send" value="eintragen"></td>
</tr>
</table>
</form>
';}
ich schlag dich nichtJUG hat geschrieben:Auf die Gefahr hin gleich Schläge zu bekommen: Wo hast du denn das Originalmodul her? Ich könnte es gut gebrauchen (ohne Mehrsprachigkeit), habs aber nirgends gefunden.

http://p10089516.pureserver.de/forum/vi ... 0b2b9b4108
Ah - danke
Allerdings streikt meine Datenbank:

Allerdings streikt meine Datenbank:
Was mache ich falsch? Wollte doch nur den Dump einspielen:MySQL meldet: You have an error in your SQL syntax near 'desc text NOT NULL, ort varchar(50) default NULL, online tinyint(1) NOT ' at line 5
Code: Alles auswählen
DROP TABLE IF EXISTS con_events;
CREATE TABLE con_events (
id int(11) NOT NULL auto_increment,
titel varchar(50) NOT NULL default '',
datum varchar(14) NOT NULL default '',
desc text NOT NULL,
ort varchar(50) default NULL,
online tinyint(1) NOT NULL default '1',
url varchar(50) default NULL,
datum2 varchar(14) NOT NULL default '',
PRIMARY KEY (id)
) TYPE=MyISAM;
Moin moin
ist nicht zufällig desc aus
Irgendwie kann man das doch nutzen zur Spaltenbenamsung ... glaube írgendwie mit der Taste rechts neben dem "ß" und ner anderen Taste ... ist mir persönlich aber zu unübersichtlich ... bin ja kein Fingerartist ...
Gruß Harald

ist nicht zufällig desc aus
ein reserviertes Wort , und zwar für die Sortierfolge (order by spalte desc/asc)?desc text NOT NULL,
Irgendwie kann man das doch nutzen zur Spaltenbenamsung ... glaube írgendwie mit der Taste rechts neben dem "ß" und ner anderen Taste ... ist mir persönlich aber zu unübersichtlich ... bin ja kein Fingerartist ...
Gruß Harald

Gott schütze die Dummen, denn sie ernähren die Wissenden
Hab Svens Rat befolgt und folgendes "creiert":
Dann aus dem xxx wieder desc gemacht - funzt.
War ein bisschen wie Hürdenlauf, macht das ganze spannender...
Achso: Danke Sven
Code: Alles auswählen
CREATE TABLE con_events (
id int(11) NOT NULL auto_increment,
titel varchar(50) NOT NULL default '',
datum varchar(14) NOT NULL default '',
xxx text NOT NULL,
ort varchar(50) default NULL,
online tinyint(1) NOT NULL default '1',
url varchar(50) default NULL,
datum2 varchar(14) NOT NULL default '',
PRIMARY KEY (id)
) TYPE=MyISAM;
War ein bisschen wie Hürdenlauf, macht das ganze spannender...

Achso: Danke Sven

Und es geht weiter... wie auch schon alle anderen feststellen mussten, wird bei dem Originalmodul, also das ohne Sprachauswahl (hier zu finden: http://p10089516.pureserver.de/forum/vi ... in&start=0) nichts angezeigt. Hat dafür schon jemand eine Lösung gefunden? Der alte Thread ist leider ergebnislos abgestorben.
Termine und Probleme mit mySQL
Hallo Leute,
auch ich hatte Probleme mit meiner mySQL Datenbank... (die bei Strato liegt). Das Feld desc war eines. Viel zu viele Hochkommata ein anderes. Hier hab ich noch mal das modifizierte Modul ohne die für SQL Statements überflüssigen Hochkommata bei Feldnamen...
Das ganze funzt zumindes bei mir jetzt ohne Tadel...
cu
auch ich hatte Probleme mit meiner mySQL Datenbank... (die bei Strato liegt). Das Feld desc war eines. Viel zu viele Hochkommata ein anderes. Hier hab ich noch mal das modifizierte Modul ohne die für SQL Statements überflüssigen Hochkommata bei Feldnamen...
Das ganze funzt zumindes bei mir jetzt ohne Tadel...
cu
Code: Alles auswählen
$meineseite=$auth->url();
//wenn "online" als aktion übergeben wird und wir noch im edit-modus sind
if (($online > -1) && $perm->have_perm("admin")) {
$sql = "UPDATE con_events SET online=".$online." WHERE id='".$eventid."'";
//echo $sql;
$db->query($sql);
}
if (($delete) && $perm->have_perm("admin")) {
$sql = " DELETE FROM con_events WHERE id='".$eventid."' AND online='0'";
//echo $sql;
$db->query($sql);
}
//neuer eintrag
if ($send && $perm->have_perm("admin")) {
$datum1 = str_replace(".", "-", $datum1);
$datum1 = str_replace("/", "-", $datum1);
$datum2 = str_replace(".", "-", $datum2);
$datum2 = str_replace("/", "-", $datum2);
$uhrzeit = str_replace(".", ":", $uhrzeit);
$uhrzeit = str_replace("-", ":", $uhrzeit);
$arr = split('-',$datum1);
$date1 = sprintf("%04d",$arr[2]).sprintf("%02d",$arr[1]).sprintf("%02d",$arr[0]);
$arr = split(":",$uhrzeit);
$date1 .= sprintf("%02d",$arr[0]).sprintf("%02d",$arr[1])."00";
$arr = split(".",$datum2);
$date2 = sprintf("%04d",$arr[2]).sprintf("%02d",$arr[1]).sprintf("%02d",$arr[0])."000000";
$sql = "INSERT INTO con_events (titel,datum,mydesc,ort,online,url,datum2) VALUES ('".$titel."', '".$date1."', '".$mydesc."', '".$ort."', '".$online."', '".$url."', '".$date2."') ";
$db->query($sql);
}
if($perm->have_perm("admin"))
$sql = "SELECT * FROM con_events WHERE datum > ".date("Ymd")."000000 ORDER BY datum";
else
$sql = "SELECT * FROM con_events WHERE datum > ".date("Ymd")."000000 AND online=1 ORDER BY datum";
$db->query($sql);
//echo $sql;
$monat = array("Januar", "Februar", "März", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember");
$aktmon = "000000";
// Auslesen des Ergebnisse pro Reihe und Generierung der Seite
while ($db->next_record()) {
echo '<a name="event'.$db->f("id").'"></a>';
if ($aktmon < substr($db->f("datum"),0,6)) {
$aktmon = substr($db->f("datum"),0,6);
echo '<p class="hl3">'.$monat[substr($aktmon,4,2)-1].' '.substr($aktmon,0,4).'</p>';
}
echo '<p><b>'.$db->f("titel").'</b></p>';
echo '<p><i>';
$mydatum = substr($db->f("datum"),6,2).".".substr($db->f("datum"),4,2).".".substr($db->f("datum"),0,4);
$mytime = substr($db->f("datum"),8,2).".".substr($db->f("datum"),10,2);
echo $mydatum." - ".$mytime." Uhr";
if ($db->f("datum2")>0) {
$mydatum = substr($db->f("datum2"),6,2).".".substr($db->f("datum2"),4,2).".".substr($db->f("datum2"),0,4);
$mytime = substr($db->f("datum2"),8,2).".".substr($db->f("datum2"),10,2);
echo " bis ".$mydatum." - ".$mytime." Uhr";
}
echo ", ".$db->f("ort");
echo ".</i> ";
echo $db->f("mydesc");
if ($db->f("url")!="") {
echo "<br><br>";
echo '<a href="'.$db->f("url").'" target="_blank">Weitere Informationen</a>';
}
if($perm->have_perm("admin")) {
if ($db->f("online") == 0) { $imgsrc = "online stellen"; }
if ($db->f("online") == 1) { $imgsrc = "offline stellen"; }
echo "<br><br><a href=$meineseite&online=".(($db->f("online")*-1)+1)."&eventid=".$db->f("id").">$imgsrc</a>";
if ($db->f("online") == 0) echo " | <a href=$meineseite&delete=1&eventid=".$db->f("id").">Löschen</a>";
}
echo "</p>";
echo "</a></p>\n";
}
if ($perm->have_perm("admin")) {
echo '
<p class="hl3">Neue Veranstaltung</p>
<form name="form1" method="post" action="'.$meineseite.'">
<table width="400" border="0" cellspacing="2" cellpadding="2">
<tr>
<td width="152">Titel</td>
<td width="234"><input name="titel" type="text" id="titel" size="30"></td>
</tr>
<tr>
<td>Start-Datum</td>
<td><input name="datum1" type="text" id="datum1" size="30"></td>
</tr>
<tr>
<td>End-Datum</td>
<td><input name="datum2" type="text" id="datum2" size="30"></td>
</tr>
<tr>
<td>Uhrzeit</td>
<td><input name="uhrzeit" type="text" id="uhrzeit" size="30"></td>
</tr>
<tr>
<td>Beschreibung</td>
<td><text';
echo 'area name="mydesc" cols="30" rows="5" id="mydesc"></text';
echo 'area></td>
</tr>
<tr>
<td>Ort</td>
<td><input name="ort" type="text" id="ort" size="30"></td>
</tr>
<tr>
<td>Url</td>
<td><input name="url" type="text" id="url" size="30"></td>
</tr>
<tr>
<td>Online</td>
<td><input name="online" type="checkbox" id="online" value="1" checked></td>
</tr>
<tr>
<td> </td>
<td><input type="submit" name="send" value="eintragen"></td>
</tr>
</table>
</form>
';}
Hast Du schon probiert, ob Du die Datumsangabe richtig gemacht hast. Ich bekomme nur dann den richtigen Eintrag, wenn ich das Datum wie folgt eingebe...
26/02/2003 (oder auch 26.02.2003) das Datum als 4stellig...
Der Rest ist dem Modul soweit wurscht...
Solltest Du hierbei Probleme haben (auch bei mir hat er am Anfang gemuckt) - dann schalte doch mal die auskommentierten echo's der jeweiligen SQL Befehle ein; diese zeigen den SQL Befehl, der auf deine Datenbank losgelassen wird, an. Den dann von Hand oder per phpMyAdmin auf deinen Testeintrag absenden und gucken.... gucken ob was kommt...
cu
26/02/2003 (oder auch 26.02.2003) das Datum als 4stellig...
Der Rest ist dem Modul soweit wurscht...
Solltest Du hierbei Probleme haben (auch bei mir hat er am Anfang gemuckt) - dann schalte doch mal die auskommentierten echo's der jeweiligen SQL Befehle ein; diese zeigen den SQL Befehl, der auf deine Datenbank losgelassen wird, an. Den dann von Hand oder per phpMyAdmin auf deinen Testeintrag absenden und gucken.... gucken ob was kommt...
cu