Table of Contents

Date: Last update artikel & cp

FIXME Better translate

RT to view the date of the last inserted/modified article or content part of the whole site.

In the script you can define if the articles/CPs in hidden categories should be included.
Articles located within custom/protected categories won't be included.

The output can be customized according to the usual php-date rules. E.g. {DATE_UPDATE:d.m.Y H:i} delivers 01.02.2010 12:23
or in the script is changed to set the format as in “conf.template.default.inc.php”. The TAG for this: {DATE_UPDATE}.
(At the end of the script, uncomment the line).

Similar function, see: NEWX



rt_date_last_update V1.0 22.04.2011

Docu: –
Forum: http://forum.phpwcms.org/viewtopic.php?f=16&t=21358

Author: K.Heermann (flip-flop) http://planmatrix.de
CMS Version: >= 1.3
Version: V1.0

Update 25.04.2011: This eliminates the possibility to read other columns from the article field e.g. the ID of the article.

TAG: {DATE_UPDATE} oor e.g. {DATE_UPDATE:d.m.Y H:i}

Filename: rt_date_last_update.php

Folder: template/inc_script/frontend_render/

*Condition: → [[http://www.phpwcms-docu.de/conf_inc_php_en.phtml|/config/phpwcms/conf.inc.php]




Description:

Settings of the variable $show_hidden: [0|1|2]


The TAG {DATE_UPDATE} - commented lines at the end of the script:

In one of these lines the comment can be removed to activate {DATE_UPDATE}.
The output settings of the date in this case relate to the variables in the file
“config/phpwcms/conf.template.default.inc.php”.

The fourth line provides the output settings of the date directly in the script.


Script:

Filename: rt_date_last_update.php
Folder: template/inc_script/frontend_render/

rt_date_last_update

<?php
/**
 *********************************************************************************************
 * The most recent Article date of the entire page (Article and CP)
 * 2011/04/22 V1.0  Knut Heermann (flip-flop) http://planmatrix.de
 * Update 2011/04/22 V1.0: MySQL Engines that also support subqueries in SELECT statement
 *                         Special case article in "home"
 *
 * Settings: @show_hidden: [0|1|2]
 * Search for article date in
 *  - [0] not hidden categories
 *  - [1] only hidden categories
 *  - [2] all categories
 *
 * TAG:    E.g. {DATE_UPDATE:d.m.Y H:i} or optional {DATE_UPDATE}
 *
 * Output: Optional settings from "conf.template.default.inc.php". Have a look to
 *         $template_default["date"]["language"] and
 *         $template_default["date"]["long"/medium/short]
 *         - Enable/disable at the end of the script
 *         - or manual in script
 *
 *********************************************************************************************
 */
 
// -------------------------------------------------------------------------------------------
// obligate check for phpwcms constants
  if (!defined('PHPWCMS_ROOT')) {die("You Cannot Access This Script Directly, Have a Nice Day.");}
// -------------------------------------------------------------------------------------------
 
 
if( ! (strpos($content["all"],'{DATE_UPDATE')===false)) {
 
    // category: "hide" or "visible when active"
    // --------------------------------------------
    $show_hidden = 2;  // [0] = not hidden categories  [1] = only hidden categories   [2] = all categories
    // --------------------------------------------
 
    $result = array();
 
    $sql  =    "SELECT UNIX_TIMESTAMP(max(article_tstamp)) AS max_article_tstamp ";
    // Nur fuer MySQL Engines geeignet die auch im SELECT Unterabfragen unterstuetzen
    // Only suitable for MySQL Engines that also support subqueries in SELECT statement
/*
    $sql .= ",article_id, ";
    $sql .= "article_begin AS article_livedate, ";
    $sql .= "article_end AS article_killdate ";
*/
    $sql .=    "FROM ".DB_PREPEND."phpwcms_article ar LEFT JOIN ".DB_PREPEND."phpwcms_articlecat ac ON ";
    $sql .=    "ar.article_cid = ac.acat_id WHERE ";
 
    // Categorie settings -------------
    $sql .= "ac.acat_aktiv=1 AND ac.acat_public=1 AND ac.acat_trash=0 AND ";
 
    // category: "hide" or "visible when active"
    switch ($show_hidden) {
        case 0: $sql .= "ac.acat_hidden=0 AND ";        // "hide" or "visible when active"
                break;
        case 1: $sql .= "ac.acat_hidden>=1 AND ";        // "hide" or "visible when active"
                break;
        default: $sql .= "";                            // all categories
 
    }
    $sql .= "ac.acat_regonly=0 AND ";                    // "visible for users logged on only"
    // Article settings ---------------
    $sql .= "ar.article_public=1 AND ar.article_aktiv=1 AND ";
 
    // Article settings
    $sql .= "ar.article_deleted=0 AND ar.article_begin<NOW() ";
    $sql .= "AND IF(ac.acat_archive=1 AND ar.article_archive_status=1, 1, ar.article_end>NOW()) LIMIT 1 ";
 
    $result = _dbQuery($sql);
 
 
    // ------------------ Special case article in "home"
    // Category settings in: $content["struct"]['0']
 
    // catch the articles in "home" ID =0
    $sql  = "SELECT UNIX_TIMESTAMP(max(article_tstamp)) AS max_article_tstamp ";
    $sql .= "FROM ".DB_PREPEND."phpwcms_article WHERE ";
    $sql .= "article_cid=0 AND ";
    $sql .= "article_public=1 AND article_aktiv=1 AND ";
    $sql .= "article_deleted=0 AND article_begin<NOW() AND ";
    // Category settings from "home"
    if ($content["struct"]['0']['acat_permit']['acat_archive'] == 1)
         $sql .= "IF(article_archive_status=1, 1, article_end>NOW()) ";
    else
        $sql .= "article_end>NOW() ";
    $sql .= "LIMIT 1 ";
 
    $result0 = _dbQuery($sql);
 
    // Article in "Home" the youngest one?
    if (isset($result0['0']['max_article_tstamp']) AND ($result0['0']['max_article_tstamp'] > $result['0']['max_article_tstamp']) )
        $result['0']['max_article_tstamp'] = $result0['0']['max_article_tstamp'];
    // ------------------
 
    $my_date = (isset($result['0']['max_article_tstamp'])) ? $result['0']['max_article_tstamp']: time();
 
 
    // Enable / disable the output form
    // Optional settings from "conf.template.default.inc.php". Have a look to
    // $template_default["date"]["language"] and
    // $template_default["date"]["long"/medium/short]
    // ------------------------------------------------
//    $content["all"] = str_replace('{DATE_UPDATE}', international_date_format($template_default["date"]["language"], $template_default["date"]["long"],   $my_date),   $content["all"]);
//    $content["all"] = str_replace('{DATE_UPDATE}', international_date_format($template_default["date"]["language"], $template_default["date"]["medium"], $my_date),   $content["all"]);
//    $content["all"] = str_replace('{DATE_UPDATE}', international_date_format($template_default["date"]["language"], $template_default["date"]["short"],  $my_date),   $content["all"]);
//    $content["all"] = str_replace('{DATE_UPDATE}', international_date_format($template_default["date"]["language"], 'd.m.Y H:i',                         $my_date),   $content["all"]);
 
    $content["all"] = render_date($content["all"], $my_date, 'DATE_UPDATE');
 
}
 
?>