WebsiteBaker Logo
  • *
  • Templates
  • Help
  • Add-ons
  • Download
  • Home
*
Welcome, Guest. Please login or register.

Login with username, password and session length
 

News


WebsiteBaker 2.13.6 is now available!


Will it continue with WB? It goes on! | Geht es mit WB weiter? Es geht weiter!
https://forum.websitebaker.org/index.php/topic,32340.msg226702.html#msg226702


The forum email address board@websitebaker.org is working again
https://forum.websitebaker.org/index.php/topic,32358.0.html


R.I.P Dietmar (luisehahne) and thank you for all your valuable work for WB
https://forum.websitebaker.org/index.php/topic,32355.0.html


* Support WebsiteBaker


  • Home
  • Help
  • Search
  • Login
  • Register

  • WebsiteBaker Community Forum »
  • WebsiteBaker Support (2.13.x) »
  • General Help & Support »
  • Hilfe & Support (deutsch) »
  • ProCalendar, Eventlist, falsches Datenformat
  • Print
Pages: [1]   Go Down

Author Topic: ProCalendar, Eventlist, falsches Datenformat  (Read 8924 times)

Offline FrankHA

  • Posts: 18
  • Marmot
ProCalendar, Eventlist, falsches Datenformat
« on: February 02, 2023, 10:20:40 AM »
Hallo Zusammen,

ich habe jetzt auf die neueste WB-Version upgedatet und auch entsprechende Module erneuert.
So nutze ich das Droplet Eventlist von ProCalendar.
Bei mir wird aber anstelle der Jahreszahl die Uhrzeit angegeben.
Wie kann ich das ändern?

www.nordwestdeutscher-philatelistenverband.de
Zu sehen auf der rechten Seitenleiste.

Vielen Dank schon einmal für Eure Hilfe  :-)
Logged

Offline hgs

  • WebsiteBaker Org e.V.
  • **
  • Posts: 1883
    • EFG MG
Re: ProCalendar, Eventlist, falsches Datenformat
« Reply #1 on: February 02, 2023, 12:00:10 PM »
Also meine Seite sieht das so aus
Testseite /WebsiteBaker 2.13.3 | php 8.1.13 | ProCalendar 1.8.0
Das Droplet "eventlist" wird mit dem Modul mitgeliefert. Die alten vorandenen Droplet, die es da mal gab, laufen mit dieser Version nicht
Der Monat und das Jahr steht als Überschrift über der ListeDer Aufruf im Template lautet:
Code: [Select]
[[eventlist?section_id=xx&flags=5&days=14]]Damit bekomme ich die nächsten 14 Tage vom aktuellen Datum an angezeigt.
Logged
LG Harald

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

"Never begin to stop - never stop beginning." Marcus Tullius Cicero (106-43 BC)

Offline ruebenwurzel

  • Betatester
  • **
  • Posts: 8544
  • Gender: Male
  • Keep on Rockin
    • Familie Gallas Online
Re: ProCalendar, Eventlist, falsches Datenformat
« Reply #2 on: February 02, 2023, 12:53:48 PM »
Hallo,

ist das aktuell mitgelieferte Droplet aktiv, oder das einer vorangegangenen version? Falls ein älteres noch aktiv ist, hilft es vielleicht auch das droplet auf das neueste zu aktualisieren. Ich kenne den Procalender nicht. Wird das Droplet aus dem Modulverzeichnis des Calendars aufgerufen oder ist es ein in Dropletmodul importiertes Droplet?
Logged

Offline hgs

  • WebsiteBaker Org e.V.
  • **
  • Posts: 1883
    • EFG MG
Re: ProCalendar, Eventlist, falsches Datenformat
« Reply #3 on: February 02, 2023, 01:49:33 PM »
Im Droplet die zn 20 so ergänzen, dann wir das Jahr 4 Stellig ausgegeben.
Das .Y muss in dieser Codezeile hinzugefügt werden.
Großes Y = 4stellig.
kleines y = 2stellig.
Original
Code: [Select]
$dateformat    = ($dateformat ?? 'd.m H:i'); // Standard php date formats 'd-m-Y'geändert

Code: [Select]
$dateformat    = ($dateformat ?? 'd.m.Y H:i'); // Standard php date formats 'd-m-Y'Auf der Testseite zum nachschauen schon geändert
« Last Edit: February 02, 2023, 02:05:38 PM by hgs »
Logged
LG Harald

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

"Never begin to stop - never stop beginning." Marcus Tullius Cicero (106-43 BC)

Offline FrankHA

  • Posts: 18
  • Marmot
Re: ProCalendar, Eventlist, falsches Datenformat
« Reply #4 on: February 02, 2023, 02:07:19 PM »
Habe ich jetzt geändert, dann kommt folgende Fehlermeldung:

Thu, 02 Feb 2023 12:59:26 +0000 [E_USER_NOTICE] /modules/procalendar/functions.php:[1258] from /modules/procalendar/functions.php:[1258] trigger_error "[1258] Can't call ShowActionEntry section_id = 12 count(action) = 1 id = 133 day = 1 show = 0 dayview = 0""
Logged

Offline hgs

  • WebsiteBaker Org e.V.
  • **
  • Posts: 1883
    • EFG MG
Re: ProCalendar, Eventlist, falsches Datenformat
« Reply #5 on: February 02, 2023, 02:32:34 PM »
Ok, Grundlagenabfragen
WebsiteBaker-Version= ?
php-Version = ?
ProCalendar-Version = ?
Und mit welchem Aufruf wird das Droplet eingebunden
Bei mir sieht es ja so aus
Code: [Select]
[[eventlist?section_id=xx&flags=5&days=14]]
Logged
LG Harald

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

"Never begin to stop - never stop beginning." Marcus Tullius Cicero (106-43 BC)

Offline FrankHA

  • Posts: 18
  • Marmot
Re: ProCalendar, Eventlist, falsches Datenformat
« Reply #6 on: February 02, 2023, 02:54:39 PM »
WebsiteBaker-Version= 2.13.3 r166
php-Version= 8.1
ProCalendar-Version=v1.8.0

Code: [Select]
[[eventlist?section_id=12&max=5]]
Logged

Offline sternchen8875

  • Global Moderator
  • *****
  • Posts: 601
Re: ProCalendar, Eventlist, falsches Datenformat
« Reply #7 on: February 02, 2023, 02:59:29 PM »
Zeig mal bitte diese Zeile 20 des Droplets oder die Zeilen drum herum auch
Logged

Offline hgs

  • WebsiteBaker Org e.V.
  • **
  • Posts: 1883
    • EFG MG
Re: ProCalendar, Eventlist, falsches Datenformat
« Reply #8 on: February 02, 2023, 03:02:05 PM »
Zum vergleichen hier schon mal meins
Code: [Select]
$oReg = bin\WbAdaptor::getInstance();
$database = $oDb = $oReg->getDatabase();
$wb = $oReg->getApplication();
$oTrans = $oReg->getTranslate();
$oTrans->enableAddon('modules\\procalendar');
if (!defined('PHP_TAB')){define("PHP_TAB", "\t");}
if (!defined('PHP_TAB2')){define("PHP_TAB2", "\t\t");}
if (!defined('PHP_TAB3')){define("PHP_TAB3", "\t\t\t");}
if (!function_exists('fillActionArray')){require(WB_PATH."/modules/procalendar/functions.php");}
$page_id       = 0;
$page_link     = '';
$eventlist     = '';
$sOldMonth     = 0;
$sNewMonth     = 0;
$year          = ((isset($year)  && $year)   ? intval($year)  : date('Y'));
$month         = ((isset($month) && $month)  ? intval($month) : 1);
$days          = ((isset($days)  && $days)   ? intval($days)  : 0);
$flags         = ((isset($flags) && $flags)  ? $flags : 1);
// Set dateformat to suit your needs, add timeformat if needed
$dateformat    = ($dateformat ?? 'd.m.y H:i'); // Standard php date formats 'd-m-Y'
$startnow      = $flags & 1;   //  BIT #0  = 1
$bTimeEnd      = $flags & 2;   //  BIT #1  = 2
$bMonthHeading = $flags & 4;   //  BIT #2  = 4
$iDateWidth    = ($bTimeEnd ? 140 : 90);
if (isset($year) && $year) {
//    $month = ((isset($month) && empty($month)) ? '1' : $month);
    $t1      = (($year > date('Y')) ? strtotime($year.'-'.$month.'-01') : time());
//    $t1      = strtotime($year.'-'.$month.'-01');
    $t2      = strtotime($year.'-12-31');
    $diff    = (floor(abs($t2-$t1)));
    $divisor = 86400; # a day has 24*60*60 sec
    $days    = isset($days) && $days ? $days : (floor($diff / $divisor));
//    $time = time (); date('Y-n-j',$t2)
//    $part = $time - $time % $divisor;
    $aTimeDiff = [
        'year'=> $year,
        'month'=> $month,
        'act_year'=> date('Y'),
        'start_date'=> date('Y-m-d',$t1),
        'end_date'=> date('Y-m-d',$t2),
        'days'=> $days,
    ];
}
$fixdays    = isset($days);
//$startnow   = isset($startnow)        ? intval($startnow)   : 0;
$max        = isset($max) && $max     ? intval($max)        : 1000;
//$section_id = isset($section_id)      ? intval($section_id) : 0 ;
// Fetch base page link
if ($section_id != 0) {
    $sql  = 'SELECT `p`.`link` FROM `'.TABLE_PREFIX.'sections` `s` '
          . 'INNER JOIN `'.TABLE_PREFIX.'pages` `p` ON (`s`.`page_id` = `p`.`page_id`) '
          . 'WHERE `s`.`section_id` = '.$section_id.' ';
    if (($link = $oDb->get_one($sql))){
      $page_link = $wb->page_link($link);
    }
}
// Set start- and end date for query
$datestart = ($startnow ? date('Y-m-d') : $year.'-'.$month.'-1');
$sParm1    = date('Y-m-d', strtotime("+".($days-1)." day"));
$sParm2    = date('Y-n-j', strtotime($datestart." + ".($days-1)." day"));
$sRequest1 = ("$year-$month-".($days < cal_days_in_month(CAL_GREGORIAN, $month,$year)));
$sParam3   = cal_days_in_month(CAL_GREGORIAN, $month,$year);
$dateend   = ($startnow ? $sParm1 : ($fixdays ? $sParm2 : ($sRequest1 ? $days : $sParam3)));
/*  */
if (isset($archive)) {
    $dateend   = date('Y-n-j');
    $datestart = date('Y-n-j', strtotime(" ".($days-1)." day"));
}
$aDebug = [
        'year' => $year,
        'month' => $month,
        'days' => $days,
        'datestart' => $datestart,
        'dateend' => $dateend,
        'date_start' => date('Y-n-j', strtotime(" ".($days-1)." day")),
        'date_end' => date('Y-n-j'),
    ];
$eventlist .= '<div class="info_body" style="text-align:left;font-family:sans-serif,monospace;">';
// Fetch the items
if (!isset($actions) || (isset($actions) && empty($actions))){
    $actions  = fillActionArray($datestart, $dateend, $section_id);
}
if (is_array($actions) && sizeof($actions)){
    $eventlist .= '<ul class="event-list w3-ul" style="margin-left:0;padding-left:0;list-style-type: none !important;">'.PHP_EOL;
    $sOldMonth = strtotime($datestart);
    $sNewMonth = 0;
    if ($bMonthHeading && ($year) || ($bMonthHeading && (date('m',$sNewMonth) != date('m',$sOldMonth)))){
        $iMonth = date('n',$sOldMonth);
        $sTmpMonat = "monthnames_".$iMonth;
        $sMonthName = $oTrans->$sTmpMonat;
        $eventlist .= '<li class="event-header"><h4>'.$sMonthName.' '.date('Y',$sOldMonth).'</h4></li>'.PHP_EOL;
    }
    foreach($actions as $row){
        if ($max > 0) {
            if (!isset($kat) || (isset($kat) && in_array($row["acttype"], explode(',',$kat)))) {
                $max--;
                $ds = ($row['date_start'].' '.$row['time_start']);
                $de = ($row['date_end']  .' '.$row['time_end']);
                $sNewMonth = strtotime($ds);
                if ($bMonthHeading && (date('m',$sNewMonth) != date('m',$sOldMonth))){
                    $sOldMonth = strtotime($ds);
                    $iMonth = date('n',$sOldMonth);
                    $sTmpMonat = "monthnames_".$iMonth;
                    $sMonthName = $oTrans->$sTmpMonat;
                    $eventlist .= '<li class="event-header"><h4>'.$sMonthName.' '.date('Y',$sOldMonth).'</h4></li>'.PHP_EOL;
                }
                // 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));
                $time_end       = ($bTimeEnd ? ' - '.(substr($de,11,2).':'.substr($de,14,2)) : '');
                $eventlist .= '<li class="eventlist" style="padding:4px 0;">'.PHP_EOL;
                $eventlist .= PHP_TAB.'<div class="w3-display-container">'.PHP_EOL;
                if ($bTimeEnd && ($datetime_start != $datetime_end)) {
                    $eventlist .= PHP_TAB2.'<span style="width:'.$iDateWidth.'px;" class="c_date1 w3-display-topleft" >'.date($dateformat,$datetime_start).' -'.date('H:i',$datetime_end).'</span>'.PHP_EOL;
                } else {
                    $eventlist .= PHP_TAB2.'<span style="width:'.$iDateWidth.'px;" class="c_date2 w3-display-topleft" >'.date($dateformat,$datetime_start).$time_end.'</span>'.PHP_EOL;
                }
                $eventlist .= PHP_TAB.'<span style="margin:0px;display:inline-block;">'.PHP_EOL.PHP_TAB2.'<a href="'.$page_url.'">'.PHP_EOL.PHP_TAB3.'<span class="c_name"><b>'.$row["name"].'</b></span>'.PHP_EOL.PHP_TAB2.'</a>'.PHP_EOL.PHP_TAB.'</span>'.PHP_EOL;
                $eventlist .= PHP_TAB.'</div>'.PHP_EOL;
                if ($row["custom1"]) {
                    $eventlist .= PHP_TAB.'<div class="c_desc">'.$row["custom1"].'</div>'.PHP_EOL;
                }
                $eventlist .= '</li>'.PHP_EOL;
                }
            }
    } // end for
    $eventlist .= '</ul>';
}
return $eventlist .= "</div>";
Logged
LG Harald

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

"Never begin to stop - never stop beginning." Marcus Tullius Cicero (106-43 BC)

Offline hgs

  • WebsiteBaker Org e.V.
  • **
  • Posts: 1883
    • EFG MG
Re: ProCalendar, Eventlist, falsches Datenformat
« Reply #9 on: February 02, 2023, 03:12:12 PM »
Quote from: FrankHA on February 02, 2023, 02:54:39 PM
WebsiteBaker-Version= 2.13.3 r166
php-Version= 8.1
ProCalendar-Version=v1.8.0

Code: [Select]
[[eventlist?section_id=12&max=5]]

Ich habe jetzt mal deinen Aufruf mit meiner sid ins Template eingefügt.

Das läuft ohne Fehlermeldungen und ich sehe nur noch 5 Termine mit Jahreszahl
Logged
LG Harald

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

"Never begin to stop - never stop beginning." Marcus Tullius Cicero (106-43 BC)

Offline sternchen8875

  • Global Moderator
  • *****
  • Posts: 601
Re: ProCalendar, Eventlist, falsches Datenformat
« Reply #10 on: February 02, 2023, 03:37:44 PM »
Nur, weil es zum Thema passt...

Möglichkeit 1 zur Formatierung ist die Anpassung im Droplet, so wie von hgs beschrieben. Angepasst wird dabei der hier rot markierte Teil nachfolgender Zeile
Quote
$dateformat    = ($dateformat ?? 'd.m.y H:i');
Diese Datumsformatierung gilt dann für alle Ausgaben, die über den Dropletaufruf ausgegeben werden

Möglichkeit 2 ist individuell für jeden Aufruf anpassbar. Dabei verbleibt der Code im Droplet so, wie es das Original vorsieht. Angepasst wird aber der Dropletaufruf. Als Beispiel

Code: [Select]
[[eventlist?section_id=XX&flags=X&days=XX&dateformat='F j, Y, g:i a'&year=23&month=02]]
Hinweis: während bei einer Änderung im Droplet-Code die Hochkommas zwingend erforderlich sind, spielt es beim Dropletaufruf keine Rolle, dort funktioniert die Datumsformatierung auch ohne Hochkommas

Code: [Select]
[[eventlist?section_id=XX&flags=X&days=XX&dateformat=d.m.Y&year=23&month=02]]ergibt eine Datumsformatierung in dieser Art: March 10, 2001, 5:16 pm

Weitere Möglichkeiten auf dieser Seite -> https://www.php.net/manual/en/function.date.php#refsect1-function.date-parameters

andere Varianten findet man z.b. in den Datumseinstellungen der WB-Optionen


P..S.: Möglich ist auch eine Kombination aus beiden Varianten (Änderungen im Droplet-Code und Anpassung des Dropletaufrufes). Dabei stellt die Datumsformatierung im Dropletcode immer den Default-Wert dar, der verwendet wird, wenn vom Droplet-Aufruf keine anderen Werte übermittelt werden.
Eine Datumsformatierung im Droplet-Aufruf überschreibt immer den Default-Sert des Droplet-Codes


« Last Edit: February 02, 2023, 03:53:40 PM by sternchen8875 »
Logged

Offline sternchen8875

  • Global Moderator
  • *****
  • Posts: 601
Re: ProCalendar, Eventlist, falsches Datenformat
« Reply #11 on: February 02, 2023, 03:58:03 PM »
In den Beispielen des letzten Beitrages sind die Ausgabedarstellung des ersten Beispiels unter den zweiten Aufruf gerutscht und lassen sich auf Grund der Zeitsperre nicht mehr korrigieren, darum noch einmal korrekt

Der Droplet-Call mit dieser Datumsformatierung
Code: [Select]
[[eventlist?section_id=XX&flags=X&days=XX&dateformat='F j, Y, g:i a'&year=23&month=02]]ergibt diese Datumsausgabe -> March 10, 2001, 5:16 pm

das zweite Beispiel
Code: [Select]
[[eventlist?section_id=XX&flags=X&days=XX&dateformat=d.m.Y&year=23&month=02]]ergibt die in Deutschland eher gebräuchliche Datumsausgabe -> 02.02.2022
Logged

Offline FrankHA

  • Posts: 18
  • Marmot
Re: ProCalendar, Eventlist, falsches Datenformat
« Reply #12 on: February 02, 2023, 04:26:23 PM »
Quote from: sternchen8875 on February 02, 2023, 03:58:03 PM
In den Beispielen des letzten Beitrages sind die Ausgabedarstellung des ersten Beispiels unter den zweiten Aufruf gerutscht und lassen sich auf Grund der Zeitsperre nicht mehr korrigieren, darum noch einmal korrekt

Der Droplet-Call mit dieser Datumsformatierung
Code: [Select]
[[eventlist?section_id=XX&flags=X&days=XX&dateformat='F j, Y, g:i a'&year=23&month=02]]ergibt diese Datumsausgabe -> March 10, 2001, 5:16 pm

das zweite Beispiel
Code: [Select]
[[eventlist?section_id=XX&flags=X&days=XX&dateformat=d.m.Y&year=23&month=02]]ergibt die in Deutschland eher gebräuchliche Datumsausgabe -> 02.02.2022

Super, mit der direkten Droplet-Call Datumsformatierung funktioniert es,
vielen lieben Dank Dir und auch den anderen Kommentatoren
für die tolle und schnelle Hilfe.  (Y) :-) :-) :-)
Logged

  • Print
Pages: [1]   Go Up
  • WebsiteBaker Community Forum »
  • WebsiteBaker Support (2.13.x) »
  • General Help & Support »
  • Hilfe & Support (deutsch) »
  • ProCalendar, Eventlist, falsches Datenformat
 

  • SMF 2.0.19 | SMF © 2017, Simple Machines
  • XHTML
  • RSS
  • WAP2