PHP-scripts/Nach dem Ablauf von in einem Modul dargestellten Veranstaltungen wird das Modul deaktiviert
Aus Joomla! Dokumentation
Sicher gibt es mehrere Möglichkeiten das zu lösen. Eine davon skizziert, z.B. mit dem Jumi-Modul:
[Bearbeiten] Veranstaltungen sind bereits im Jumi-Modul
<?php
$heute=date("Y-m-d"); // Zum Vergleich mit dem Veranstaltungsende = $ende
$zahl=14; // Wegfallende Zeilen werden mit Zeilenumbrüchen ersetzt
echo "<br>";
$ende="2010-10-10"; // Mit diesem Datum entfällt der der Eintrag
if ($heute<=$ende){
echo "<h4>Veranstaltungstitel</h4>
09. und 10.10.2010 // Datum der Veranstaltung
<br>
Beschreibung Zeile 1
<br>
<span style='font-size: 8pt;'><a href='http://www.link.de/' target='_blank' title='Titel'>--- mehr ---</a></span>
// Natürlich können auch Links zu weiteren Informationen eingefügt werden
<br>
";
$zahl=$zahl-6;
} else {
// Mit der Datenbankabfrage wird das Modul deaktiviert. xx steht für die ID des Moduls
$db = JFactory::getDBO();
$db->setQuery("UPDATE #__modules SET published = 0 WHERE ID='xx'"); $db->query();
// Die Seite wird refreshed, damit der Modultitel wegfällt
header("Location:http://www.DeineSeite.de/");
}
// Vorgesehen sind mehrere Veranstaltungen. Damit werden wegfallenden Zeilen ersetzt.
for ($i=1; $i<=$zahl; $i++)
{
echo "<br>";
}
?>[Bearbeiten] Termine sind in einer Datenbank
Die Termine können auch aus der Datenbank abgefragt werden. Dazu muss dort zuvor eine Tabelle jos_termine mit den Feldern Datum, Ereignis und Zeit eingerichtet werden.
<?php
// @version 1.0 2010-11-16 kms $
defined('_JEXEC') or die('Restricted access');
$heute=date("Y-m-d");
$termine = array();
$abbruch = 0;
$wtage = array("Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag");
/* Die Datenbankabfrage */
$db = JFactory::getDBO();
/* Die zwei nächsten Termine werden abgefragt */
$db->setQuery("SELECT * FROM #__termine WHERE datum >= '$heute' ORDER BY datum LIMIT 0,2");
/* Ergebnisse der Abfrage werden in das Array Termine geschrieben */
$termine = $db->loadObjectList();
if( ! $termine ) {
$abbruch = 1;
}
/* Das Array Termine wird ausgelesen und dargestellt */
foreach ($termine as $termin) {
echo $wtage[date("w", mktime(0, 0, 0, substr($termin->Datum,5,2), substr($termin->Datum,8,5), substr($termin->Datum,2,2)))].",<br> ".$d = substr($termin->Datum,8,5).".".substr($termin->Datum,5,2).".".substr($termin->Datum,2,2);
echo ", ab ".substr($termin->Zeit,0,2)." Uhr<br>";
echo "<h4>".$termin->Ereignis."</h4><br>";
}
/* Das Modul wird deaktiviert, wenn keine Termine vorhanden sind */
if($abbruch==1 ) {
//$db = JFactory::getDBO();
$db->setQuery("UPDATE #__modules SET published = 0 WHERE ID='66'"); $db->query();
header("Location:http://www.Deine Domain/");
return;
}
?>[Bearbeiten] Modul einschalten
Dazu muss natürlich bei jedem Start von Joomla! das Modul erste einmal eingeschaltet werden. Das geschieht mit dem System-Plugin "modein". Den Code dazu finden Sie aauf der Seite http://joomlacode.org/svn/nafuwiki/trunk/plg_modein/modein.php. (Die Logindaten sind, wie überall auf joomlacode, User: "anonymous" - ohne Passwort).