WebsiteBaker 2.13.8 is now available!
R.I.P Dietmar (luisehahne) and thank you for all your valuable work for WBhttps://forum.websitebaker.org/index.php/topic,32355.0.html
LastModifiedPages
// Droplet by Manu, 18.06.2018// import and sanitize argument 'max' as $iMaxItems $iMaxItems = isset($max) ? intval($max) : 20;// import global objects $oApp = $GLOBALS['wb']; $oDb = $GLOBALS['database'];// define translations$aLang = [ 'DE' => [ 'TITLE' => '<h1 style="text-align:center">Die %1$d zuletzt geänderten Seiten</h1>', 'GROUP_CAPTION' => '<h2 class="lastchanges">%1$s</h2>'.PHP_EOL, 'PAGE_LINE' => '<p class="lastchanges">%1$s <a href="%2$s"><b>%3$s</b></a> %4$s - <i> %5$s</i></p>'.PHP_EOL, 'TODAY' => 'heute', 'YESTERDAY' => 'gestern', 'NUM_DAYS' => 'vor %1$d Tagen', 'MANY_DAYS' => 'vor längerer Zeit', 'MAIN_FOLDER' => 'im Hauptverzeichnis', 'IN' => 'in', 'ERROR' => 'Datenbankfehler: Daten stehen kurzzeitig nicht zur Verfügung.', 'BC_SEPERATOR' => ' > ', 'FORMAT_TODAY' => 'H:i', 'FORMAT_YESTERDAY' => 'H:i', 'FORMAT_DAYS' => 'd. M Y', ], 'NL' => [ 'TITLE' => '<h1 style="text-align:center">De %1$d laatst gewijzigde pagina\'s</h1>', 'GROUP_CAPTION' => '<h2 class="lastchanges">%1$s</h2>'.PHP_EOL, 'PAGE_LINE' => '<p class="lastchanges">%1$s ' . '<a href="%2$s"><b>%3$s</b></a> %4$s - <i> %5$s</i></p>'.PHP_EOL, 'TODAY' => 'vandaag', 'YESTERDAY' => 'gisteren', 'NUM_DAYS' => 'vóór %1$d dagen', 'MANY_DAYS' => 'voor langere tijd', 'MAIN_FOLDER' => 'in de hoofdmap', 'IN' => 'in', 'ERROR' => 'Databasefout: gegevens tijdelijk niet beschikbaar.', 'BC_SEPERATOR' => ' > ', 'FORMAT_TODAY' => 'H:i', 'FORMAT_YESTERDAY' => 'H:i', 'FORMAT_DAYS' => 'd. M Y', ], 'EN' => [ // default language 'TITLE' => '<h1 style="text-align:center">The %1$d last modified pages</h1>', 'GROUP_CAPTION' => '<h2 class="lastchanges">%1$s</h2>'.PHP_EOL, 'PAGE_LINE' => '<p class="lastchanges">%1$s ' . '<a href="%2$s"><b>%3$s</b></a> %4$s - <i> %5$s</i></p>'.PHP_EOL, 'TODAY' => 'today', 'YESTERDAY' => 'yesterday', 'NUM_DAYS' => 'before %1$d days', 'MANY_DAYS' => 'before longer time', 'MAIN_FOLDER' => 'in main folder', 'IN' => 'in', 'ERROR' => 'Database error: Data temporarily not available.', 'BC_SEPERATOR' => ' > ', 'FORMAT_TODAY' => 'h:ia', 'FORMAT_YESTERDAY' => 'h:ia', 'FORMAT_DAYS' => 'Y M d.', ], ];// set translation language $sLanguage = $oApp->page['language']; if (isset($aLang[$sLanguage])) { $aTrans = $aLang[$sLanguage]; } else { // fallback to default $aTrans = $aLang['EN']; }//----------------------//--- begin callback --- $cbGetBreadcrumb = function ($sPageTrail) use ($oDb) { $sBreadcrumb = '/'; $sql = 'SELECT `menu_title` ' . 'FROM `'.TABLE_PREFIX.'pages` ' . 'WHERE `page_id` IN('.$sPageTrail.') ' . 'ORDER BY `level`'; if (($oRs = $oDb->query($sql))) { while ($aItem = $oRs->fetchRow(MYSQLI_ASSOC)) { $sBreadcrumb .= $aItem['menu_title'].'/'; } } return rtrim($sBreadcrumb,'/'); };//--- end callback ---//--------------------// prepare start of $sOutput $sOutput = sprintf($aTrans['TITLE'], $iMaxItems).PHP_EOL;// search for the newest $iMaxItems pages $sql = 'SELECT `p`.`page_title`, ' . 'DATEDIFF(NOW(), FROM_UNIXTIME(`p`.`modified_when`)) `days`, ' . '`p`.`modified_when`, ' . '`p`.`link`, ' . '`p`.`page_trail`, ' . '`u`.`display_name` ' . 'FROM `'.TABLE_PREFIX.'pages` `p` ' . 'LEFT JOIN `'.TABLE_PREFIX.'users` `u` ON `p`.`modified_by`=`u`.`user_id` ' . 'WHERE `p`.`visibility`=\'public\' ' . 'ORDER BY `p`.`modified_when` DESC LIMIT '.$iMaxItems; if (($oRs = $oDb->query($sql))) { $iPreviousDays = -1; // start index for group change while ($aPage = $oRs->fetchRow(MYSQL_ASSOC)) {// calculate and format time/dates for group header and page lines switch ($aPage['days']) { case 0: $sLastModified = date($aTrans['FORMAT_TODAY'], $aPage['modified_when']+TIMEZONE); $sBeforeDays = $aTrans['TODAY']; break; case 1: $sLastModified = date($aTrans['FORMAT_YESTERDAY'], $aPage['modified_when']+TIMEZONE); $sBeforeDays = $aTrans['YESTERDAY']; break; case 2: case 3: $sLastModified = date($aTrans['FORMAT_DAYS'], $aPage['modified_when']+TIMEZONE); $sBeforeDays = vsprintf($aTrans['NUM_DAYS'], [$aPage['days']]); break; default: $sLastModified = date($aTrans['FORMAT_DAYS'], $aPage['modified_when']+TIMEZONE); $sBeforeDays = $aTrans['MANY_DAYS']; break; }// build group header if ($iPreviousDays !== $aPage['days']) { $sOutput .= vsprintf($aTrans['GROUP_CAPTION'], [$sBeforeDays]); $iPreviousDays = $aPage['days']; }// build folder breadcrumbs $sFolderCrumb = str_replace( '/', $aTrans['BC_SEPERATOR'], preg_replace( '/^\/(.*?)\/?[^\/]+$/', '$1', $cbGetBreadcrumb($aPage['page_trail']) ) ); $sFolderCrumb = '('.($sFolderCrumb ? $aTrans['IN'].' '.$sFolderCrumb : $aTrans['MAIN_FOLDER']).')'; $sPageLink = WB_URL.PAGES_DIRECTORY.$aPage['link'].'.php';// build line for pages with links $sOutput .= vsprintf($aTrans['PAGE_LINE'], [ $sLastModified, $sPageLink, $aPage['page_title'], $sFolderCrumb, $aPage['display_name'] ]); $sOutput; } } else { $sOutput .= $aTrans['ERROR'].'<br />'; } return $sOutput;
[[LastModifiedPages?max=xx]]
gestern14:41 Onlinekalender (im Hauptverzeichnis) - Hxxxxxx Sxxxx09:15 Gemeinde (im Hauptverzeichnis) - Spring Haraldvor 3 Tagen09. Feb 2020 Predigten (in Download) - Technik xxxxxvor längerer Zeit06. Feb 2020 Gemeindeleben (im Hauptverzeichnis) - Administratorvor längerer Zeit26. Jan 2020 mITTENDRIn (in Download) - Wxxxxx Cxxxxxvor längerer Zeit23. Jan 2020 Links (in Gemeinde) - Spring Haraldvor längerer Zeit19. Jan 2020 Männer pur (in Gemeinde > Gemeindegruppen) - Administrator
wb 2.12.2 r379PHP Version: 7.3.13mehrsprachige Website
[[LastModifiedPages?max=10]]