PHP-scripts/Nach dem Ablauf von in einem Modul dargestellten Veranstaltungen wird das Modul deaktiviert

Aus Joomla! Dokumentation
Wechseln zu: Navigation, Suche

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).

Meine Werkzeuge
Namensräume
Varianten
Aktionen
Navigation
Sonstiges
Team Navigation
Werkzeuge