{source}<?php
// Requires sourcerer plugin!
$user = JFactory::getUser();
$date = new JDate();
/*
* Datenbankverbindung aufbauen
*/
$db = JFactory::getDbo();
$query = $db->getQuery(true);
/*
* 1. Query für Datenbankabfrage, Minuend für Berechnung (alle Dienste gesamt)
*
* Events gesamt (auch keine Basisdienste) zusammengelegt mit Registrierungen, gefiltert nach catid(6 = Typ basisdienst) und state(1 = freigegeben für registrierte Nuter). Weiter gefiltert nach allen Diensten die nach dem heutigen Serverdatum stattfinden
* Das Ergebnis wird sortiert nach dem Startdatum.
*/
$query
->select(array(‘a.title’, ‘a.startdate’, ‘a.id’, ‘b.name’))
->from($db->quoteName(‘nfxbg_icagenda_events’, ‘a’))
->join(‘LEFT’, $db->quoteName(‘nfxbg_icagenda_registration’, ‘b’) . ‘ ON (‘ . $db->quoteName(‘a.id’) . ‘ = ‘ . $db->quoteName(‘b.eventid’) . ‘)’)
->where($db->quoteName(‘a.catid’).” = “.$db->quote(6))
->where($db->quoteName(‘a.state’).” = “.$db->quote(1))
->where($db->quoteName(‘a.startdate’).” >= “.$db->quote($date))
->order($db->quoteName(‘a.startdate’))
;
/*
* Datenbankverbindung für 2. Query
*/
$db_gebucht = JFactory::getDbo();
$query_gebucht = $db_gebucht->getQuery(true);
/*
* 2. Query für Datenbankabfrage, für gebuchte Basisdienste
*/
$query_gebucht
->select(array(‘a.title’, ‘a.startdate’, ‘a.id’, ‘b.name’))
->from($db->quoteName(‘nfxbg_icagenda_events’, ‘a’))
->join(‘RIGHT’, $db->quoteName(‘nfxbg_icagenda_registration’, ‘b’) . ‘ ON (‘ . $db->quoteName(‘a.id’) . ‘ = ‘ . $db->quoteName(‘b.eventid’) . ‘)’)
->where($db->quoteName(‘a.catid’).” = “.$db->quote(6))
->where($db->quoteName(‘a.state’).” = “.$db->quote(1))
->where($db->quoteName(‘a.startdate’).” >= “.$db->quote($date))
->order($db->quoteName(‘a.startdate’))
;
/*
* 1. Query absetzen
*/
$db->setQuery($query);
$results = $db->loadObjectList();
/*
* 2. Query absetzen
*/
$db_gebucht->setQuery($query_gebucht);
$results_gebucht = $db_gebucht->loadObjectList();
/*
* für Anzeige
*/
$tage = array(“Sonntag”,”Montag”,”Dienstag”,”Mittwoch”,”Donnerstag”,”Freitag”,”Samstag”);
?>
<p>
Bitte beachten: Es gibt keine Erinnerungsmail mehr.<br>
<b>Bitte trage das Datum in deinen persönlichen Kalender ein !</b>
</p>
<p>Hallo <?php echo $user->name; ?><br><p>bitte wähle einen freien Basisdienst aus.</p>
<table class=”table” width=”95%”>
<tbody>
<tr style=”font-weigth: bold;”>
<th>Tag</th>
<th>Datum</th>
<th>Basisdienst durchgeführt von</th>
<th>Link zum Basisdienst</th>
</tr>
</p><div id=”icagenda”><div class=”event”>
<?php
/*
* ANZEIGE BEGINN
*/
/*
* Kopf, in dem angezeigt wird: Begrüßung und wie viele Dienste buchbar sind.
*/
/* Tabelle der Basisdienste gesamt, farblich unterschieden nach Buchungsstatus */
/* * Array aus 1. Query (alle Dienste) */
foreach ($results as $r){
/* * Variable tag soll timestamp machen */
$tag = $tage[date(“w”, strtotime($r->startdate))];
echo ”;
/* * String von Name aus Array wird entnommen, kann auch 0 Zeichen enthalten. */
if($r->name == null) { $name = “”; } else { $name = trim($r->name); } //$name = trim($r->name);
echo ‘<tr><td>’ . $tag . ‘</td>’, ‘<td>’ . date(“d.m.Y”, strtotime($r->startdate)) . ‘</td>’, ‘<td><span style=”font-weight: bold;”>’;
if ($r->name == null) {
echo ”;
} else {
echo $r->name;
}
echo ‘</span></td>’;
/* * letzte Spalte der Tabelle START. Verzweigung: wenn String des Namen 0 Zeichen hat, sollte der Dienst frei sein. */
if($name == ”) {
echo ‘
<td class=”ic-content”>
<div style=”background: #33ff33;”>
<span class=”cat”>den Basisdienst</span>
<h4><a title=”Detail ansehen” href=”component/icagenda/’ . $r->id . ‘-2016-01-21-09-45-162.html”> am ‘ . date(“d.m.Y”, strtotime($r->startdate)) . ‘ buchen</a></h4>
</div>
</td>’;
}
else {
echo ‘
<td class=”ic-content”>
<div style=”background: #ff0303;”>
<span class=”cat”>dieser Basisdienst </span>
ist bereits gebucht
</div>
</td>’;
}
echo ‘</tr>’;
/* * foreach ENDE für alle Zeilen der Tabelle */
}
/* * letzte Spalte ENDE */
echo ‘</tr>
</tbody>
</table>
</div>
</div>’;
?>{/source}