Author Topic: Procalendar 1.3.8 - nächste 3 Monate anzeigen  (Read 913 times)

Offline gks

  • Posts: 44
  • Gender: Male
Procalendar 1.3.8 - nächste 3 Monate anzeigen
« on: August 25, 2016, 04:22:14 PM »
Hallo,

ich würde gern im Frontend nicht nur die actionlist des aktuellen Monats, sondern die nächsten 3 Monate (oder evtl. auch alle Termine) angezeigt bekommen. Wäre das machbar? Falls ja: Wie?

Danke für das Interesse und mögl. Hilfen  :-D
GKS
WB Version 2.8.3+SP7 (r1646)
PHP5.4.45
SQL Server: 5.5.49-log ( NON STRICT )

Offline hgs

  • Betatester
  • **
  • Posts: 1059
    • EFG MG
Re: Procalendar 1.3.8 - nächste 3 Monate anzeigen
« Reply #1 on: August 25, 2016, 06:59:38 PM »
Hab das auf meiner Seite mit diesem Aufruf gemacht

Code: [Select]
[[eventlist?section_id=55&days=93&startnow=1]]
Dafür sollte das Droplet "eventlist" vorhanden sein
Hier der Code vom Droplet
Code: [Select]
//
// Shows an event list from procalendar >= 1.3
// usage: [[eventlist?section_id=<xx>&max=<xx>&kat=<xx>,<xx>&days=<xx>&year=<xx>&month=<xx>&startnow=1]]
// parameters:
//   section_id : Section id from procalendar module
//     on default all events of the current month are shown but you can custumize by using options:
//   max (integer) : limits event list to max items (if no other limit is reached already)
//   kat (integer) : only show defined kategories, kat ids can be found in prcalendar backend options
//   more than one kategorie can be used by seperating ids with commas (no spaces)
//   days (integer) : limits event list to items for <days> (if no other limit is reached already)
//   year (integer) : year of start date
//   month (integer): month of start date
//   dateformat (string): format of date representation as described in http://www.php.net/manual/en/function.date.php#refsect1-function.date-parameters
//   startnow (0/1) : 0 or not set = show calendar month, 1 = start at current day

global $database;
require_once(WB_PATH."/modules/procalendar/functions.php");
$mod_list = '';
$startnow = isset($startnow) ?  intval($startnow) : 0;
$max = isset($max) ? intval($max) : 10000;
$fixdays = isset($days);
$days = isset($days) ? intval($days) : 31;
$year = isset($year) ? intval ($year) : date('Y');
$month = isset($month) ? intval($month) : date('n');
$section_id = isset($section_id) ? intval($section_id) : 0 ;

// Set dateformat to suit your needs, add timeformat if needed
$dateformat = isset($dateformat) ? $dateformat : 'd.m. H:i'; // Standard php date formats 'd-m-Y'

// Fetch base page link
$page_id = 0;
$page_link ='';

if ($section_id<>0) {
$sql = "SELECT link FROM ".TABLE_PREFIX."sections AS s, ".TABLE_PREFIX."pages AS p WHERE s.section_id = '".$section_id."' AND s.page_id = p.page_id";
$page_link = WB_URL.PAGES_DIRECTORY.$database->get_one($sql).PAGE_EXTENSION;
}

// Set start- and end date for query
$datestart = $startnow ? date('Y-n-j') : "$year-$month-1";
$dateend = $startnow ? date('Y-n-j', strtotime("+".($days-1)." day")) : $fixdays ? date('Y-n-j', strtotime($datestart." + ".($days-1)." day")) : "$year-$month-".($days < cal_days_in_month(CAL_GREGORIAN, $month,$year) ? $days : cal_days_in_month(CAL_GREGORIAN, $month,$year));

if (isset($archive)) {
$dateend = date('Y-n-j');
$datestart = date('Y-n-j', strtotime("-".($days-1)." day"));
}

$mod_list .= "<div class='info_body' style='text-align:left'>";

// Fetch the items
if (!isset($actions) || empty($actions))
$actions  = fillActionArray($datestart, $dateend, $section_id);

if (is_array($actions)){
foreach($actions as $row){
if ($max > 0) {
if (!isset($kat) || (isset($kat) && in_array($row["acttype"], explode(',',$kat)))) {
$max--;
$ds = $row['date_start']." ".substr($row['time_start'],0,5);
$de = $row['date_end']." ".substr($row['time_end'],0,5);
// Build url like : pages/kalendar.php?year=1900&month=01&day=03&id=2&detail=1
$page_url = $page_link.'?year='.(substr($ds,0,4)).'&month='.(substr($ds,5,2)).'&day='.(substr($ds,8,2)).'&id='.$row['id'].'&amp;detail=1';
$datetime_start = mktime(substr($ds,11,2),substr($ds,14,2),0,substr($ds,5,2),substr($ds,8,2),substr($ds,0,4));
$datetime_end = mktime(substr($de,11,2),substr($de,14,2),0,substr($de,5,2),substr($de,8,2),substr($de,0,4));
if ($datetime_start<> $datetime_end) {
$mod_list .= '<tr style="background-color: '.$row["act_format"].'"><td><span class="c_date">'.date($dateformat,$datetime_start).'</span> &nbsp;</td> ';
} else {
$mod_list .= '<tr style="background-color: '.$row["act_format"].'"><td><span class="c_date">'.date($dateformat,$datetime_start).'</span> &nbsp;</td> ';
}
$mod_list .= '<td><a href="'.$page_url.'"><span class="c_name"><b>'.$row["name"].'</b></span></a></td>';
$mod_list .= '<td><div class="c_desc">'.$row["custom1"].'</div></td>';
$mod_list .= "</tr>";
}
}
}
}
return $mod_list .= "</div>";

Hoffe das hilft dir weiter
LG Harald

"Fange nie an, aufzuhören - höre nie auf, anzufangen." Marcus Tullius Cicero (106-43 v.Chr.)

Offline gks

  • Posts: 44
  • Gender: Male
Re: Procalendar 1.3.8 - nächste 3 Monate anzeigen
« Reply #2 on: August 26, 2016, 02:19:21 PM »
Hallo Harald,

vielen Dank für die schnelle Antwort! Erst einmal gut zu hören, dass es - bei dir - möglich ist. Leider habe ich es nicht hinbekommen, dass mir irgendwas angezeigt wird.

Was ich unternommen habe:
1. Droplet-Code eventlist hier aus dem thread kopiert und im Backend als neues Droplet „eventlist“ (ohne „“) angelegt und anschließend das droplet aktiviert.
2. Verschiedene Abschnitte (erst wysiwyg (als droplet eingefügt), dann code) hinter meinen Original-Terminkalender eingefügt, die deine Code-Zeile
Code: [Select]
[[eventlist?section_id=55&days=93&startnow=1]] enthalten.
3. Anschließend noch der Versuch, diese Codezeile direkt im Template von ProCalendar (Version: 1.3.8 ) einzutragen. Leider alles erfolglos.

Wahrscheinlich habe ich da was nicht richtig verstanden, daher benötige ich noch einen tipp, bzgl. der Code-Zeile.

Danke für das Interesse und mögl. Hilfen  :-D
GKS
WB Version 2.8.3+SP7 (r1646)
PHP5.4.45
SQL Server: 5.5.49-log ( NON STRICT )

Offline gks

  • Posts: 44
  • Gender: Male
Re: Procalendar 1.3.8 - nächste 3 Monate anzeigen
« Reply #3 on: August 26, 2016, 05:09:36 PM »
Problem soweit gelöst: Ein Blick in meine WB-Datenbank zeigte, dass die section_id in der Tabelle (wb)_mod_procalendar_ac tions bei mir 345 ist, d.h. der Code muss geändert werden zu:
Code: [Select]
[[eventlist?section_id=345&days=93&startnow=1]]
Und natürlich trägt man das als Droplet in einen WYSIWYG-Abschnitt ein.

Jetzt muss ich mich nur noch mit der Formatierung der Ausgabe der Termine befassen, die derzeitige zerschießt mir erst einmal mein - zugegeben unmodern mit Tabellen programmiertes - template.

Vielen Dank nochmal an Harald!
GKS


WB Version 2.8.3+SP7 (r1646)
PHP5.4.45
SQL Server: 5.5.49-log ( NON STRICT )

Offline gks

  • Posts: 44
  • Gender: Male
Re: Procalendar 1.3.8 - nächste 3 Monate anzeigen
« Reply #4 on: August 26, 2016, 05:12:52 PM »
Problem soweit gelöst: Ein Blick in meine WB-Datenbank zeigte, dass die section_id in der Tabelle (wb)_mod_procalendar_ac tions bei mir 345 ist, d.h. der Code muss geändert werden zu:
Code: [Select]
[[eventlist?section_id=345&days=93&startnow=1]]
Und natürlich trägt man das Droplet in einen WYSIWYG-Abschnitt ein.

Jetzt muss ich mich nur noch mit der Formatierung der Ausgabe der Termine befassen, die derzeitige zerschießt mir erst einmal mein - zugegeben unmodern mit Tabellen programmiertes - template.

Vielen Dank nochmal an Harald!
GKS
WB Version 2.8.3+SP7 (r1646)
PHP5.4.45
SQL Server: 5.5.49-log ( NON STRICT )

Offline hgs

  • Betatester
  • **
  • Posts: 1059
    • EFG MG
Re: Procalendar 1.3.8 - nächste 3 Monate anzeigen
« Reply #5 on: August 26, 2016, 08:46:12 PM »
Schön das es trotz meiner schlechten Erklärung geklappt hat. (Y)

Schon mal das Default-Template vom SP7 versucht? die Farben sind schnell angepasst
oder:
Schöne tabellenfreie Templates gibt es bei Chio
http://www.WebsiteBaker.at/wb/responsive-templates.html
LG Harald

"Fange nie an, aufzuhören - höre nie auf, anzufangen." Marcus Tullius Cicero (106-43 v.Chr.)

Offline gks

  • Posts: 44
  • Gender: Male
Re: Procalendar 1.3.8 - nächste 3 Monate anzeigen
« Reply #6 on: August 26, 2016, 09:20:49 PM »
Hallo Harald,

es war ja, bis auf die ID, alles komplett richtig und daher bin ich dir wirklich sehr dankbar. Besser, als selbst ein Script schreiben zu müssen (wenn ich das überhaupt jemals geschafft hätte ...). Und besonders schön: es lässt sich super einfach auch auf z.B. ein Jahr umstellen.  (Y)

Mit dem Template ist das so eine Sache: für meine Webseite habe ich mir gerade ein modernes ausgesucht (Aeromsting). Die Webseite, um die es hier im Zusammenhang mit dem Kalender geht, ist was dienstliches mit einigen Vorgaben, die sich in kurzer Zeit mit einem anderen Template umsetzen lassen. (Werde ich aber früher oder später wohl müssen, Stichwort Barrierefreiheit) Danke auch hier für den Hinweis.

Gruß und ein schönes Wochenende  8-) wünscht ,
GKS

WB Version 2.8.3+SP7 (r1646)
PHP5.4.45
SQL Server: 5.5.49-log ( NON STRICT )

 

postern-length