Seite 1 von 2

Termindatenbank in Contenido

Verfasst: Do 30. Jan 2003, 19:06
von muetom
Hallo,

gibt es schon einen Termindatenbank für Contenido.

Es wäre toll wenn dort Termine nach Jahren auf verschiedenen Seiten angezeigt werden könnten, und es eine übersicht über anstehened und abgelaufeen Termine gäbe.

Spitze wäre eine übersicht über einige aktuelle Termine auf der Satrseite.


Im moment ist das in 0.93 mit einem Artikel pro Termin Kategorien Für die Jahre und jeweils einer Kategorie Pro Monat sowie dem Nav Modul gelöst.

www.kjg-ensdorf.de


Ich hab sowas in der Art mal im alten Forum gesehen.

Verfasst: So 2. Feb 2003, 20:36
von muetom
Erinnert sich keiner mehr an das Ding das mal jemand für ne ältere version gebaut hat?

Das war, glaube ich, für ne seite von den Grünen.


Wäre toll wen sich jemand dran erinnert.


Gruß

Thomas

Verfasst: Mo 3. Feb 2003, 16:51
von JUG
Ich ebenfalls, hatte das auch schon mal angesprochen, wurde aber mit "das kost Geld" beerdigt.

Verfasst: Mi 5. Feb 2003, 15:04
von road.trippin
hab so ne kleine termin geschichte letztens geschrieben, die termine werden zeitlich angeordnet und werden nicht mehr angezigt, sobald sie vorbei sind. ist leider noch nicht über input konfigurierbar und sehr spezifisch auf meine anforderungen, man kann nen url als weiterführenden link angeben und mehrtägige termine sind auch möglich.

Code: Alles auswählen

SQL-CODE für DB:

#
# Tabellenstruktur für Tabelle `con_events`
#

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;


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`, `datum2`) VALUES ('".$titel."', '".$date1."', '".$desc."', '".$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("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></td>
    </tr>
    <tr> 
      <td> </td>
      <td><input type="submit" name="send" value="eintragen"></td>
    </tr>
  </table>
</form>
';}

vielleicht bringt euch das ja was :)

Verfasst: Mi 5. Feb 2003, 15:48
von muetom
Hallo,

erstmal danke für deine Version, ich werde sie mal testen, und eventuell umbauen.

Ich hab auch die seite wo ich das ding ursprünglich gesehen hab gefunden:

http://www.m-v.gruene.de/

kennt jemand den Entwickler?

Gruß

Thomas

Verfasst: Mi 5. Feb 2003, 16:59
von Sausi
muetom hat geschrieben:Hallo,
Ich hab auch die seite wo ich das ding ursprünglich gesehen hab gefunden:
http://www.m-v.gruene.de/
kennt jemand den Entwickler?
Gruß
Thomas
Ja, ich kenne den "Entwickler" :) Bin ich nämlich selbst. Allerdings war da nicht viel zu entwickeln. Es handelt sich nur um ein eingebundenes PHP-Skript. Hierdurch wird eine externe Datenbank abgefragt, die im übrigen über ein notdürftig in Contenido eingebundenes Formular (neues Fenster) gepflegt wird.
Wenn ich das oben beschriebene Modul richtig verstanden habe, dann scheint mir diese (nicht meine) Variante wesentlich praktikabler zu sein.
Ich habe das nur noch nicht umgestellt, weil auch Seiten, die nicht mit Contenido gepflegt werden, auf diese Datenbank zugreifen.

Gruß sausi

Verfasst: Mi 5. Feb 2003, 18:14
von muetom
Und welches Script benutzt du dafür?

Du hattest das doch mal im alen Forum komplett gepostst.


Gruß


Thomas

Verfasst: Do 6. Feb 2003, 16:35
von muetom
Hallo,

ich hab die Termingeschichte mal versucht einubinden seh aber außer ner leeren Seite gar nix.


Gruß

Thomas

Verfasst: Do 6. Feb 2003, 17:01
von Sausi
Hi,

habe mir jetzt mal das Modul unter Win 2000 und Foxserv 2.1 installiert. Allerdings funktioniert es nicht richtig. Ich habe die Datentabelle angelegt, , ich kann das Modul aufrufen und Termine eintragen, die auch in der Datenbank selbst eingefügt werden. Allerdings erscheinen dann keine Termine in der Übersicht. Zudem werden in die Datenbank kryptische Datumsformatierungen eingetragen. Und selbst dann, wenn ich diese von Hand ändere, tut sich auf der Übersicht nichts. Woran kann es liegen?

Gruß Joerg

Verfasst: Fr 7. Feb 2003, 13:20
von muetom
Wie hast du das mit dem einbinden gemacht?


Einfach in ein Modul kopiert??? und dann?

Verfasst: Fr 7. Feb 2003, 13:22
von road.trippin
also die datumsformatierungen werden im format jjjjmmddhhnnss als string abgespeichert, da ich noch nicht kapiert habe, wie man mit dem timestamp arbeitet und ich ne zügige lösung brauchte. das skript zeigt auch nur termine an, die nicht schon vorbei sind. bei mir läufts problemlos *grübel* (hab's aber auch nur auf meiner webkiste getestet)

Verfasst: Fr 7. Feb 2003, 15:32
von Sausi
muetom hat geschrieben:Wie hast du das mit dem einbinden gemacht?


Einfach in ein Modul kopiert??? und dann?
Nein, es gibt doch hier ein Modul, mit dem man externe Skripte einbindet. Dieses habe ich dort einfach eingetragen.
Mein Skript ist im übrigen ganz einfach. Du verbindest einfach zur MySQL-Datenbank, rufst einfach nach bestimmten Kriterien die Daten ab, zeigst sie an und fertig. Die Pflege läuft aber nicht über Contenido sondern über ein x-beliebiges Formular-Tool.

Gruß Joerg

Verfasst: Fr 7. Feb 2003, 18:16
von muetom
nein ich mein das von road.trippin. Das kann ich bei mir gar nicht einbinden.

Hab das teil einfach als neues modul angelegt, den SQL-Dump eingespielt, das teil in ein Tamplate eingefügt, und dann bekam ich im Frontend ne leere Seite.




Was mach ich da denn falsch?

Verfasst: Fr 7. Feb 2003, 21:19
von Sausi
muetom hat geschrieben:nein ich mein das von road.trippin. Das kann ich bei mir gar nicht einbinden.
(...)
Was mach ich da denn falsch?
Na, offensichtlich nichts, denn ich habe genau das gleiche Problem.
Es wird zwar alles ganz ordentlich in die Datenbank eingefügt, letztlich aber nichts angezeigt. Zumindest müßtest Du aber im Backend das Formular angezeigt bekommen.


Gruß Sausi

Verfasst: Sa 8. Feb 2003, 19:24
von road.trippin
*grübelgrübel* hab das modul jetzt nochmal auf einem anderen contenido system installiert und es funktioniert immer noch problemlos. habt ihr denn auch daten eingegeben, die in der zukunft liegenß weil nur die werden auch angezeigt. ansonsten laufen tu es unter http://lautwerden.de/front_single/front ... =6&idcat=6
so sollte es jedenfalls aussehen...