git-svn-id: https://192.168.0.254/svn/Proyectos.FundacionLQDVI_WebCongresos/trunk@2 94ccb1af-fd9d-d947-8d90-7f70ea60afc8
1 line
16 KiB
PHP
1 line
16 KiB
PHP
<?php
|
|
|
|
//********************************************
|
|
//**** Seminar for joomla! - Modul ***
|
|
//**** Version 1.2.2 ***
|
|
//********************************************
|
|
//**** Copyright (c) Dirk Vollmar ***
|
|
//**** 2009 ***
|
|
//**** joomla@vollmar.ws ***
|
|
//**** All rights reserved ***
|
|
//********************************************
|
|
//** Released under GNU/GPL License *
|
|
//** http://www.gnu.org/licenses/gpl.html *
|
|
//********************************************
|
|
|
|
defined('_JEXEC') or die('Restricted access');
|
|
|
|
$app = JFactory::getApplication();
|
|
$database = &JFactory::getDBO();
|
|
$my = &JFactory::getuser();
|
|
$config = &JComponentHelper::getParams('com_seminar');
|
|
|
|
$offset = $app->getCfg('offset');
|
|
if($config->get('sem_p065',0)>0) {
|
|
$jahr = date("Y");
|
|
$sombeginn = mktime(2,0,0,3,31-date('w',mktime(2,0,0,3,31,$jahr)),$jahr);
|
|
$somende = mktime(2,0,0,10,31-date('w',mktime(2,0,0,10,31,$jahr)),$jahr);
|
|
$aktuell = time();
|
|
if($aktuell>$sombeginn AND $aktuell<$somende) {
|
|
$offset++;
|
|
}
|
|
}
|
|
$date = JFactory::getDate();
|
|
$date->setOffset($offset);
|
|
$neudatum = $date->toformat();
|
|
$html = "";
|
|
$anzahl = $params->get('sem_m066',5);
|
|
|
|
if(!function_exists('sem_m003')) {
|
|
function sem_m003($row,$params) {
|
|
$html = "";
|
|
if($params->get('sem_m067',0)>0 AND $row->showbegin>0) {
|
|
$html .= "<i>".JText::_('SEM_M053')."</i>: ";
|
|
$htxt = JHTML::_('date',$row->begin,$params->get('sem_m043','%d.%m.%Y, %H:%M'),0);
|
|
if($row->cancelled>0) {
|
|
$htxt = "<del>".$htxt."</del>";
|
|
}
|
|
$html .= $htxt."<br />";
|
|
}
|
|
if($params->get('sem_m068',0)>0 AND $row->showend>0) {
|
|
$html .= "<i>".JText::_('SEM_M054')."</i>: ";
|
|
$htxt = JHTML::_('date',$row->end,$params->get('sem_m043','%d.%m.%Y, %H:%M'),0);
|
|
if($row->cancelled>0) {
|
|
$htxt = "<del>".$htxt."</del>";
|
|
}
|
|
$html .= $htxt."<br />";
|
|
}
|
|
if($params->get('sem_m069',0)>0 AND $row->showbooked>0) {
|
|
$html .= "<i>".JText::_('SEM_M055')."</i>: ";
|
|
$htxt = JHTML::_('date',$row->booked,$params->get('sem_m043','%d.%m.%Y, %H:%M'),0);
|
|
if($row->cancelled>0) {
|
|
$htxt = "<del>".$htxt."</del>";
|
|
}
|
|
$html .= $htxt."<br />";
|
|
}
|
|
if($params->get('sem_m070',0) > 0) {
|
|
$html .= "<i>".JText::_('SEM_M057')."</i>: ".JHTML::_('date',$row->publishdate,$params->get('sem_m043','%d.%m.%Y, %H:%M'),0)."<br />";
|
|
}
|
|
if($params->get('sem_m079',0) > 0) {
|
|
$htxt = str_replace(array("\r\n", "\n", "\r"),', ',trim($row->place));
|
|
$html .= "<i>".JText::_('SEM_M080')."</i>: ".htmlspecialchars($htxt)."<br />";
|
|
}
|
|
if($params->get('sem_m071',0) > 0) {
|
|
$html .= "<i>".htmlspecialchars($row->shortdesc)."</i><br />";
|
|
}
|
|
return $html;
|
|
}
|
|
}
|
|
|
|
if(!function_exists('sem_m001')) {
|
|
function sem_m001($database,$my,$art,$params,$neudatum) {
|
|
$where = array();
|
|
$utype = strtolower($my);
|
|
switch( $utype ) {
|
|
case "registered":
|
|
$reglevel = 2;
|
|
break;
|
|
case "author":
|
|
$reglevel = 2;
|
|
break;
|
|
case "editor":
|
|
$reglevel = 2;
|
|
break;
|
|
case "publisher":
|
|
$reglevel = 2;
|
|
break;
|
|
case "manager":
|
|
$reglevel = 3;
|
|
break;
|
|
case "administrator":
|
|
$reglevel = 3;
|
|
break;
|
|
case "super administrator":
|
|
$reglevel = 3;
|
|
break;
|
|
default:
|
|
$reglevel = 1;
|
|
break;
|
|
}
|
|
$database->setQuery("SELECT id, access FROM #__categories WHERE section='com_seminar'");
|
|
$cats = $database->loadObjectList();
|
|
$allowedcat = array();
|
|
foreach($cats AS $cat) {
|
|
if($cat->access<$reglevel) {
|
|
$allowedcat[] = $cat->id;
|
|
}
|
|
}
|
|
if(count($allowedcat)>0) {
|
|
$allowedcat = implode(',',$allowedcat);
|
|
$where[] = "catid IN ($allowedcat)";
|
|
}
|
|
$where[] = "published = '1'";
|
|
$where[] = "pattern = ''";
|
|
if($params->get('sem_m050','') != "") {
|
|
$temp = explode(" ",$params->get('sem_m050',''));
|
|
$temq = array();
|
|
foreach($temp AS $el) {
|
|
$temq[] .= "catid='".$el."'";
|
|
}
|
|
$where[] = implode(" OR ",$temq);
|
|
}
|
|
if($params->get('sem_m082','') != "") {
|
|
$temp = explode(" ",$params->get('sem_m082',''));
|
|
$temq = array();
|
|
foreach($temp AS $el) {
|
|
$temq[] .= "publisher='".$el."'";
|
|
}
|
|
$where[] = implode(" OR ",$temq);
|
|
}
|
|
switch ($art) {
|
|
case "0":
|
|
$showend = "begin";
|
|
break;
|
|
case "1":
|
|
$showend = "booked";
|
|
break;
|
|
default:
|
|
$showend = "end";
|
|
break;
|
|
}
|
|
switch ($params->get('sem_m046',0)) {
|
|
case 0:
|
|
$where[] = "$showend > '$neudatum'";
|
|
break;
|
|
case 1:
|
|
$where[] = "$showend <= '$neudatum'";
|
|
break;
|
|
}
|
|
return $where;
|
|
}
|
|
}
|
|
if(!function_exists('sem_m002')) {
|
|
function sem_m002($id) {
|
|
$database = &JFactory::getDBO();
|
|
$database->setQuery( "SELECT * FROM #__sembookings WHERE semid='".$id."'" );
|
|
$temps = $database->loadObjectList();
|
|
$gebucht = 0;
|
|
$zertifiziert = 0;
|
|
$bezahlt = 0;
|
|
foreach($temps as $el) {
|
|
$gebucht = $gebucht + $el->nrbooked;
|
|
$zertifiziert = $zertifiziert + $el->certificated;
|
|
$bezahlt = $bezahlt + $el->paid;
|
|
}
|
|
$zurueck->booked = $gebucht;
|
|
$zurueck->certificated = $zertifiziert;
|
|
$zurueck->paid = $bezahlt;
|
|
$zurueck->number = count($temps);
|
|
return $zurueck;
|
|
}
|
|
}
|
|
|
|
$html = "";
|
|
$index = "";
|
|
if($params->get('sem_m074',0) > 0) {
|
|
$html .= "<marquee height=\"".$params->get('sem_m023', 150)."px\" align=\"left\" behavior=\"".$params->get('sem_m017', 'scroll')."\" direction=\"".$params->get('sem_m021', 'up')."\" scrollamount=\"".$params->get('sem_m015', 1)."\" scrolldelay=\"".$params->get('sem_m019', 50)."\" truespeed onmouseover=\"this.stop();\" onmouseout=\"this.start();\">";
|
|
}
|
|
|
|
switch($params->get('sem_m039',0)) {
|
|
case "0";
|
|
$werte = array();
|
|
if($params->get('sem_m035',0) > 0) {
|
|
$database->setQuery( "SELECT * FROM #__seminar WHERE published = '1' AND pattern = ''" );
|
|
$rows = $database->loadObjectList();
|
|
$rows[0]->header = JTEXT::_('SEM_M003');
|
|
$werte[] = $rows;
|
|
}
|
|
if($params->get('sem_m037',0) > 0) {
|
|
$database->setQuery( "SELECT * FROM #__seminar WHERE published = '1' AND pattern = '' AND end > '$neudatum'" );
|
|
$rows = $database->loadObjectList();
|
|
$rows[0]->header = JTEXT::_('SEM_M026');
|
|
$werte[] = $rows;
|
|
}
|
|
if($params->get('sem_m036',0) > 0) {
|
|
$database->setQuery( "SELECT * FROM #__seminar WHERE published = '1' AND pattern = '' AND end <= '$neudatum'" );
|
|
$rows = $database->loadObjectList();
|
|
$rows[0]->header = JTEXT::_('SEM_M025');
|
|
$werte[] = $rows;
|
|
}
|
|
foreach($werte AS $wert) {
|
|
$hits = 0;
|
|
$bookings = 0;
|
|
$certificated = 0;
|
|
$courses = 0;
|
|
$paid = 0;
|
|
$number = 0;
|
|
$free = 0;
|
|
$html .= "<b>".$wert[0]->header."</b><br />";
|
|
foreach($wert as $row) {
|
|
$gebucht = sem_m002($row->id);
|
|
$hits += $row->hits;
|
|
$bookings += $gebucht->booked;
|
|
$freetemp = $row->maxpupil - $gebucht->booked;
|
|
if($freetemp>0) {
|
|
$free += $freetemp;
|
|
}
|
|
$certificated += $gebucht->certificated;
|
|
$paid += $gebucht->paid;
|
|
$number += $gebucht->number;
|
|
$courses += 1;
|
|
}
|
|
$html .= JTEXT::_('SEM_M010').": ".$courses."<br />";
|
|
if($params->get('sem_m034',0) > 0) {
|
|
$html .= JTEXT::_('SEM_M004').": ".$hits."<br />";
|
|
}
|
|
if($params->get('sem_m028',0) > 0) {
|
|
$html .= JTEXT::_('SEM_M005').": ".$bookings."<br />";
|
|
}
|
|
if($params->get('sem_m033',0) > 0) {
|
|
$html .= JTEXT::_('SEM_M001').": ".$free."<br />";
|
|
}
|
|
if($params->get('sem_m029',0) > 0) {
|
|
$html .= JTEXT::_('SEM_M006').": ".$number."<br />";
|
|
}
|
|
if($params->get('sem_m030',0) > 0) {
|
|
$html .= JTEXT::_('SEM_M007').": ".$paid."<br />";
|
|
}
|
|
if($params->get('sem_m031',0) > 0) {
|
|
$html .= JTEXT::_('SEM_M008').": ".$certificated."<br />";
|
|
}
|
|
$html .= "<br />";
|
|
}
|
|
break;
|
|
case "1":
|
|
$where = sem_m001($database,$my->usertype,$config->get('sem_p064',2),$params,$neudatum);
|
|
$limit = "";
|
|
if($params->get('sem_m081',0)<1) {
|
|
$limit = "\nLIMIT ".$params->get('sem_m066',5);
|
|
}
|
|
$sortierung = array("begin","end","booked","publishdate","hits","bookedpupil","certificated","grade","maxpupil");
|
|
$richtung = array(" ASC"," DESC");
|
|
$database->setQuery( "SELECT * FROM #__seminar"
|
|
. (count( $where ) ? "\nWHERE " . implode( ' AND ', $where ) : "")
|
|
. "\nORDER BY " . $sortierung[$params->get('sem_m052',0)] . $richtung[$params->get('sem_m063',1)]
|
|
. $limit
|
|
);
|
|
$rows = $database->loadObjectList();
|
|
if($params->get('sem_m081',0)==1) {
|
|
$neu = array();
|
|
$rox = array();
|
|
$max = $params->get('sem_m066',5);
|
|
if(count($rows)<$max) {
|
|
$max=count($rows);
|
|
}
|
|
while(count($neu)<$max) {
|
|
srand(microtime()*1000000);
|
|
$zufall = rand(0,count($rows)-1);
|
|
if(!in_array($zufall,$neu)) {
|
|
$neu[] = $zufall;
|
|
}
|
|
}
|
|
sort($neu);
|
|
foreach($neu AS $el) {
|
|
$rox[] = $rows[$el];
|
|
}
|
|
$rows = $rox;
|
|
}
|
|
foreach($rows AS $row) {
|
|
$buchdate = "";
|
|
if($my->id>0) {
|
|
$database->setQuery("SELECT * FROM #__sembookings WHERE semid='$row->id' AND userid='$my->id'");
|
|
$temp = $database->loadObjectList();
|
|
if(count($temp)>0) {
|
|
$buchdate = $temp[0]->bookingdate;
|
|
}
|
|
}
|
|
$gebucht = sem_m002($row->id);
|
|
if($params->get('sem_m078',0)>0) {
|
|
$html .= "<a href='".JROUTE::_('index.php?option=com_seminar&task=3&cid='.$row->id,1,0)."'>";
|
|
}
|
|
$html .= "<strong>".$row->title;
|
|
if($row->cancelled>0) {
|
|
$html .= " - ".JText::_('SEM_M009');
|
|
} else if($buchdate!="") {
|
|
$html .= " - ".JText::_('SEM_M002');
|
|
}
|
|
$html .= "</strong>";
|
|
if($params->get('sem_m078',0)>0) {
|
|
$html .= "</a>";
|
|
}
|
|
$html .= "<br />";
|
|
$html .= sem_m003($row,$params);
|
|
if($params->get('sem_m034',0) > 0) {
|
|
$html .= "<i>".JText::_('SEM_M004')."</i>: ".$row->hits."<br />";
|
|
}
|
|
if($params->get('sem_m028',0) > 0) {
|
|
$html .= "<i>".JText::_('SEM_M005')."</i>: ".$gebucht->booked."<br />";
|
|
}
|
|
if($params->get('sem_m033',0) > 0) {
|
|
$free = $row->maxpupil - $gebucht->booked;
|
|
if($free<0) {
|
|
$free = 0;
|
|
}
|
|
$html .= "<i>".JText::_('SEM_M001')."</i>: ".$free."<br />";
|
|
}
|
|
if($params->get('sem_m029',0) > 0) {
|
|
$html .= "<i>".JText::_('SEM_M006')."</i>: ".$gebucht->number."<br />";
|
|
}
|
|
if($params->get('sem_m030',0) > 0) {
|
|
$html .= "<i>".JText::_('SEM_M007')."</i>: ".$gebucht->paid."<br />";
|
|
}
|
|
if($params->get('sem_m031',0) > 0) {
|
|
$html .= "<i>".JText::_('SEM_M008')."</i>: ".$gebucht->certificated."<br />";
|
|
}
|
|
$html .= "<br />";
|
|
}
|
|
break;
|
|
|
|
case "2":
|
|
// Kalender
|
|
JHTML::_('behavior.tooltip');
|
|
$monatidx = JRequest::getInt('sem_midx',0);
|
|
$jahridx = JRequest::getInt('sem_jidx',0);
|
|
$startdatum = mktime(0,0,0,date('m')+$monatidx, 1, date('Y')+$jahridx);
|
|
$monatkal = date('m',$startdatum);
|
|
$jahrkal = date('Y',$startdatum);
|
|
$monatstage = $monatkal==2 ? ($jahrkal % 4 ? 28 : ($jahrkal % 100 ? 29 : ($jahrkal % 400 ? 28:29))) : (($monatkal-1) % 7 % 2 ? 30 : 31);
|
|
$where = sem_m001($database,$my->usertype,$config->get('sem_p064',2),$params,$neudatum);
|
|
$where[] = "begin >= '".$jahrkal."-".$monatkal."-01 00:00:00'";
|
|
$where[] = "begin <= '".$jahrkal."-".$monatkal."-".$monatstage." 23:59:59'";
|
|
$database->setQuery( "SELECT * FROM #__seminar"
|
|
. (count( $where ) ? "\nWHERE " . implode( ' AND ', $where ) : "")
|
|
. "\nORDER BY begin"
|
|
);
|
|
$rows = $database->loadObjectList();
|
|
$database->setQuery("SELECT semid AS id FROM #__sembookings WHERE (userid='$my->id' AND userid>0)");
|
|
$gebucht = $database->loadObjectList();
|
|
|
|
$html = "<center><table style=\"".$params->get('sem_m084','')."\">";
|
|
|
|
$url_query = array_diff_key(JRequest::get('get'),array('sem_midx'=>0,'sem_jidx'=>0));
|
|
$url_query = http_build_query($url_query,"","&");
|
|
if($url_query!="") {
|
|
$url_query .= "&";
|
|
}
|
|
$vmonat = "sem_midx=".($monatidx-1)."&sem_jidx=".$jahridx;
|
|
$nmonat = "sem_midx=".($monatidx+1)."&sem_jidx=".$jahridx;
|
|
$vjahr = "sem_midx=".$monatidx."&sem_jidx=".($jahridx-1);
|
|
$njahr = "sem_midx=".$monatidx."&sem_jidx=".($jahridx+1);
|
|
|
|
$monat = gmmktime(0,0,0,$monatkal,1,$jahrkal);
|
|
$monatsname = date('F',$monat);
|
|
$html .= "<tr><td colspan=\"7\" style=\"".$params->get('sem_m089','')."\"><a href=\"".JROUTE::_('index.php?'.$url_query.$vjahr,1,0)."\" style=\"".$params->get('sem_m091','')."\">«</a> <a href=\"".JROUTE::_('index.php?'.$url_query.$vmonat,1,0)."\" style=\"".$params->get('sem_m091','')."\">‹</a> ".JTEXT::_($monatsname)." ".$jahrkal." <a href=\"".JROUTE::_('index.php?'.$url_query.$nmonat,1,0)."\" style=\"".$params->get('sem_m091','')."\">›</a> <a href=\"".JROUTE::_('index.php?'.$url_query.$njahr,1,0)."\" style=\"".$params->get('sem_m091','')."\">»</a></td></tr>";
|
|
|
|
$html .= "<tr>";
|
|
for($i = 0; $i < 7; $i++) {
|
|
$tag = ($i + $params->get('sem_m088',1) + 3) * 86400;
|
|
$html .= "<td style=\"".$params->get('sem_m090','')."\">".substr(gmstrftime('%A',$tag),0,2)."</td>";
|
|
}
|
|
$html .= "</tr>";
|
|
|
|
$html .= "<tr>";
|
|
$tag = strftime("%w",$monat);
|
|
$leertage = ($tag + 7 - $params->get('sem_m088',1)) % 7;
|
|
if($leertage>0) {
|
|
for($i=1;$i<=$leertage;$i++) {
|
|
$html .= "<td style=\"".$params->get('sem_m085','')."\"> </td>";
|
|
}
|
|
}
|
|
$spalten = $leertage;
|
|
$index = "&sem_midx=".$monatidx."&sem_jidx=".$jahridx;
|
|
for($i=1;$i<=$monatstage;$i++) {
|
|
if($spalten==7) {
|
|
$html .= "</tr><tr>";
|
|
$spalten = 0;
|
|
}
|
|
$temp = $where;
|
|
$events = "";
|
|
$heutestil = "";
|
|
if($jahrkal==date('Y') AND $monatkal==date('m') AND $i==date('d')) {
|
|
$heutestil = $params->get('sem_m087','');
|
|
}
|
|
$tag = $i;
|
|
if($tag<10) {
|
|
$tag = "0".$tag;
|
|
}
|
|
$beginn = $jahrkal."-".$monatkal."-".$tag." 00:00:00";
|
|
$ende = $jahrkal."-".$monatkal."-".$tag." 23:59:59";
|
|
$stil = "style=\"".$params->get('sem_m085','').$heutestil."\"";
|
|
foreach($rows AS $row) {
|
|
if($row->begin>=$beginn AND $row->begin<=$ende) {
|
|
$grafik = "2608";
|
|
foreach($gebucht AS $gebid) {
|
|
if($gebid->id==$row->id) {
|
|
$grafik = "2609";
|
|
break;
|
|
}
|
|
}
|
|
$events .= "<a class=\"editlinktip hasTip\" title=\"".htmlspecialchars($row->title)."::".sem_m003($row,$params)."\" style=\"text-decoration: none;\" href='".JROUTE::_('index.php?option=com_seminar&task=3&cid='.$row->id.$index,1,0)."'><img src=\"modules/mod_seminar/images/".$grafik.".png\" border=\"0\"></a>";
|
|
}
|
|
}
|
|
if($events!="") {
|
|
$stil = "style=\"".$params->get('sem_m086','').$heutestil."\"";
|
|
}
|
|
$html .= "<td ".$stil.">".$i."<br />".$events."</td>";
|
|
$spalten ++;
|
|
}
|
|
if($spalten<7) {
|
|
$leertage = (7 - $spalten);
|
|
for($i=1;$i<=$leertage;$i++) {
|
|
$html .= "<td style=\"".$params->get('sem_m085','')."\"> </td>";
|
|
}
|
|
}
|
|
$html .= "</tr></table></center>";
|
|
break;
|
|
}
|
|
if($params->get('sem_m074',0)>0) {
|
|
$html .= "</marquee>";
|
|
}
|
|
if($params->get('sem_m075',0)>0 AND $params->get('sem_m039',0)>0) {
|
|
$html .= "<hr style='height:1px;color:#808080;background-color:#808080;border:0px;'><a href='".JROUTE::_('index.php?option=com_seminar'.$index,1,0)."'><b>".JText::_('SEM_M076')."</b></a>";
|
|
}
|
|
|
|
echo $html;
|
|
|
|
?>
|