Ich bin seit knapp einer Woche mit Contenido beschäftigt und als erstes einen mächtigen Lob für diese Entwicklung, bin richtig begeistert!
Im Rahmen der Gehversuche habe ich ein paar Module geschrieben (verändert) aber das untenstehende Modul ist das erste wo ich die SQL-Syntas verändert habe, das sage ich da ich nicht weiß wo der Fehler ist.
Das Modul basiert auf dem von Martin Horwath, gepostet von emergence und sollte zu Erstellungsdaten das Änderungsdatum samt Autor angeben. Hat auch prima getan solange ich die Einstellung über Quelltext vorgenommen habe, nun hatte ich ne Idee, im Inputbereich zwei Checkboxen einzubauen über welche die Ausgabe gesteuert wird.
Nun stelle ich das volgende Verhalten fest: Wenn ich das Template frisch zuweise und konfiguriere, sind beide Checkboxen leer (ok), wähle ich eine oder beide aus, kann ich nie mehr beide auschalten, es bleibt immer mindestens eine ausgewählt, und zwar die zuvor eingeschaltet war. Wenn ich eine CB auswähle, kann die andere abgewählt werden .
Das Prob besteht nur bei diesem Modul und auch bleibt vorhanden wenn ich meine Änderungen zurücknehme (also D, lastmodified und modiefiedby aus der query entfernen). Kann jemand sagen ob ich durch das falsche Syntax die DB aus dem tritt gebracht habe oder warum der Fehler da sein könnte? Vielen Dank im Voraus
Ja, das System ist:
Contenido v 4.4.4.
WAMP mit w2k, Apache 1.3.31, PHP 4.3.6, MySQL 4.0.20a (die 4.0.18 stand permanennt auf selbstmord)
Das system ist lokal, error.log ist vorhanden und leer. Was muss ich noch angeben?
Code: Alles auswählen
Name Authorinfo
Beschreibung
Gibt den Verfassernamen und Datum an so wie das Korrekturdatum und
den Namen des entsprechenden Authors.
Eingabe:
/***********************************************
* Angabe des Artikelautors, Erstellungsdatum, Modifikationsdatum und
* des Modifikationsautors.
* Basiert auf dem Modul von Martin Horwath, ver 1.0 (01.10.2003)
*
* Variablen: 1: ist 1 falls Autoren mit Realnamen anzusprechen sind.
* 2: ist 1 falls Datum mit der Zeit azuzeigen ist.
*
*/
$AuthRNState = (("CMS_VALUE[1]" == "1") ? " checked" : "");
$TimeShState = (("CMS_VALUE[2]" == "1") ? " checked" : "");
$TextCSS = ' style="font-family: Verdana,Arial,Helvetica; font-size: 11px;"';
echo '<table cellspacing="0" cellpadding="0" border="0">
<tr><td> </td>
<td><input type="checkbox" value="1"
name="CMS_VAR[1]"'.$AuthRNState.'></td>
<td'.$TextCSS.'>Autoren mit Realnamen ansprechen.</td>
<td> </td>
</tr>
<tr><td></td>
<td><input type="checkbox" value="1"
name="CMS_VAR[2]"'.$TimeShState.'></td>
<td'.$TextCSS.'>Zeitangabe in die Datumangabe aufnehmen.</td>
<td> </td>
</tr>
</table>';
Ausgabe
<?php
/***********************************************
* Angabe des Artikelautors, Erstellungsdatum, Mpdifikationsdatum und
* des Modifikationsautors.
* Basiert auf dem Modul von Martin Horwath, ver 1.0 (01.10.2003)
*
*/
//=========== Anpassung, Vorbelegung =======================
//Autoren mit dem Realnamen (vs. Loginname) angeben.
$ShowRealName = ("CMS_VALUE[1]" == "1");
//Zeit in der Datumangabe mit angeben.
$ShowTime = ("CMS_VALUE[2]" == "1");
//=========== Datensammlung ================================
$query = "SELECT A.author AS author,
A.created AS created,
A.modifiedby AS modifiedby,
B.lastmodified AS lastmodified,
C.realname AS realname,
D.realname AS modrealname
FROM
".$cfg["tab"]["art_lang"]." AS A,
".$cfg["tab"]["content"]." AS B,
".$cfg["tab"]["phplib_auth_user_md5"]." AS C,
".$cfg["tab"]["phplib_auth_user_md5"]." AS D
WHERE
A.idart = '$idart' AND
B.idartlang = A.idartlang AND
C.username = A.author AND
D.username = A.modifiedby
ORDER BY
B.lastmodified DESC";
$db->query($query);
$db->next_record();
$Author = $db->f("author"); // loginname
$Realname = $db->f("realname"); // realname
$LastModified = strtotime($db->f("lastmodified"));
$Created = strtotime($db->f("created"));
$ModifiedBy = $db->f("modifiedby"); // loginname
$ModRealname = $db->f("modrealname");// realname
if ($ShowRealName) {
$AuthorName = $Realname;
$ModName = $ModRealname;
} else {
$AuthorName = $Author;
$ModName = $ModifiedBy;
}
if ($ShowTime) {
$CreatedTime = date("d.m.Y H:i",$Created);
$ModifiedTime = date("d.m.Y H:i",$LastModified);
} else {
$CreatedTime = date("d.m.Y",$Created);
$ModifiedTime = date("d.m.Y",$LastModified);
}
//=========== Ausgabe ======================================
echo '<div class="authorinfoline">
Verfasst von <span class="authorinfoname">'.$AuthorName.'</span>
am <span class="authorinfotime">'.$CreatedTime.'</span>.
</div>';
if ($Created != $LastModified) {
echo '<div class="authorinfoline">';
if ($Author == $ModifiedBy){
echo 'Zuletzt bearbeitet am <span class="authorinfotime">'.$ModifiedTime.'</span>.';
} else {
echo 'Bearbeitet von <span class="authorinfoname">'.$ModName.'</span>
am <span class="authorinfotime">'.$ModifiedTime.'</span>.';
}
echo '</div>';
}
?>