Ejemplo n.º 1
0
/**
* Display month view
*
* @param    string  $topic  current topic
* @param    int     $year   year to display
* @param    int     $month  month to display
* @param    boolean $main   true: display view on its own page
* @return   string          list of articles for the given month
*
*/
function DIR_displayMonth($topic, $year, $month, $main = false)
{
    global $_CONF, $_TABLES, $LANG_MONTH, $LANG_DIR;
    $retval = '';
    if ($main) {
        $retval .= '<div><h1 style="display:inline">' . $LANG_MONTH[$month] . ' ' . $year . '</h1> ' . DIR_topicList($topic, $year, $month) . '</div>' . LB;
    } else {
        $retval .= '<h1>' . $LANG_MONTH[$month] . ' ' . $year . '</h1>' . LB;
    }
    $start = sprintf('%04d-%02d-01 00:00:00', $year, $month);
    $lastday = DIR_lastDayOfMonth($month, $year);
    $end = sprintf('%04d-%02d-%02d 23:59:59', $year, $month, $lastday);
    $sql = array();
    $sql['mysql'] = "SELECT sid,title,UNIX_TIMESTAMP(date) AS day,DATE_FORMAT(date, '%e') AS mday FROM {$_TABLES['stories']} WHERE (date >= '{$start}') AND (date <= '{$end}') AND (draft_flag = 0) AND (date <= NOW())";
    $sql['mssql'] = "SELECT sid,title,UNIX_TIMESTAMP(date) AS day,DATE_FORMAT(date, '%e') AS mday FROM {$_TABLES['stories']} WHERE (date >= '{$start}') AND (date <= '{$end}') AND (draft_flag = 0) AND (date <= NOW())";
    $sql['pgsql'] = "SELECT sid,title,UNIX_TIMESTAMP(date) AS day,EXTRACT(day from date) AS mday FROM {$_TABLES['stories']} WHERE (date >= '{$start}') AND (date <= '{$end}') AND (draft_flag = 0) AND (date <= NOW())";
    if ($topic != 'all') {
        $sql['mysql'] .= " AND (tid = '{$topic}')";
        $sql['mssql'] .= " AND (tid = '{$topic}')";
        $sql['pgsql'] .= " AND (tid = '{$topic}')";
    }
    $sql['mysql'] .= COM_getTopicSql('AND') . COM_getPermSql('AND') . COM_getLangSQL('sid', 'AND') . " ORDER BY date ASC";
    $sql['mssql'] .= COM_getTopicSql('AND') . COM_getPermSql('AND') . COM_getLangSQL('sid', 'AND') . " ORDER BY date ASC";
    $sql['pgsql'] .= COM_getTopicSql('AND') . COM_getPermSql('AND') . COM_getLangSQL('sid', 'AND') . " ORDER BY date ASC";
    $result = DB_query($sql);
    $numrows = DB_numRows($result);
    if ($numrows > 0) {
        $entries = array();
        $mday = 0;
        for ($i = 0; $i < $numrows; $i++) {
            $A = DB_fetchArray($result);
            if ($mday != $A['mday']) {
                if (count($entries) > 0) {
                    $retval .= COM_makeList($entries);
                    $entries = array();
                }
                $day = strftime($_CONF['shortdate'], $A['day']);
                $retval .= '<h2>' . $day . '</h2>' . LB;
                $mday = $A['mday'];
            }
            $url = COM_buildUrl($_CONF['site_url'] . '/article.php?story=' . $A['sid']);
            $entries[] = COM_createLink(stripslashes($A['title']), $url);
        }
        if (count($entries) > 0) {
            $retval .= COM_makeList($entries);
        }
    } else {
        $retval .= '<p>' . $LANG_DIR['no_articles'] . '</p>';
    }
    $retval .= LB;
    return $retval;
}
Ejemplo n.º 2
0
/**
 * Display month view
 *
 * @param    Template $template  reference of the template
 * @param    string   $dir_topic current topic
 * @param    int      $year      year to display
 * @param    int      $month     month to display
 * @return   string              list of articles for the given month
 */
function DIR_displayMonth($template, $dir_topic, $year, $month)
{
    global $_CONF, $_TABLES, $LANG_DIR;
    $retval = '';
    $start = sprintf('%04d-%02d-01 00:00:00', $year, $month);
    $lastDay = DIR_lastDayOfMonth($month, $year);
    $end = sprintf('%04d-%02d-%02d 23:59:59', $year, $month, $lastDay);
    $sql = array();
    $sql['mysql'] = "SELECT sid,title,UNIX_TIMESTAMP(date) AS day,DATE_FORMAT(date, '%e') AS mday\n        FROM {$_TABLES['stories']}, {$_TABLES['topic_assignments']} ta\n        WHERE (date >= '{$start}') AND (date <= '{$end}') AND (draft_flag = 0) AND (date <= NOW())\n        AND ta.type = 'article' AND ta.id = sid ";
    $sql['pgsql'] = "SELECT sid,title,UNIX_TIMESTAMP(date) AS day,EXTRACT(day from date) AS mday\n        FROM {$_TABLES['stories']}, {$_TABLES['topic_assignments']} ta\n        WHERE (date >= '{$start}') AND (date <= '{$end}') AND (draft_flag = 0) AND (date <= NOW())\n        AND ta.type = 'article' AND ta.id = sid ";
    if ($dir_topic !== 'all') {
        // Retrieve list of inherited topics
        $tid_list = TOPIC_getChildList($dir_topic);
        $sql['mysql'] .= " AND (ta.tid IN({$tid_list}) AND (ta.inherit = 1 OR (ta.inherit = 0 AND ta.tid = '{$dir_topic}')))";
        $sql['pgsql'] .= " AND (ta.tid IN({$tid_list}) AND (ta.inherit = 1 OR (ta.inherit = 0 AND ta.tid = '{$dir_topic}')))";
    } else {
        $sql['mysql'] .= COM_getTopicSQL('AND', 0, 'ta');
        $sql['pgsql'] .= COM_getTopicSQL('AND', 0, 'ta');
    }
    $sql['mysql'] .= COM_getPermSql('AND') . COM_getLangSQL('sid', 'AND') . " GROUP BY sid, title, date ORDER BY date ASC";
    $sql['pgsql'] .= COM_getPermSql('AND') . COM_getLangSQL('sid', 'AND') . " GROUP BY sid, title, date ORDER BY date ASC";
    $result = DB_query($sql);
    $numRows = DB_numRows($result);
    if ($numRows > 0) {
        $entries = array();
        $mday = 0;
        for ($i = 0; $i < $numRows; $i++) {
            $A = DB_fetchArray($result);
            if ($mday != $A['mday']) {
                if (count($entries) > 0) {
                    $retval .= COM_makeList($entries);
                    $entries = array();
                }
                $day = strftime($_CONF['shortdate'], $A['day']);
                if (TEMPLATE_EXISTS) {
                    $template->set_var('section_title', $day);
                    $retval .= $template->parse('title', 'section-title') . LB;
                } else {
                    $retval .= '<h3>' . $day . '</h3>' . LB;
                }
                $mday = $A['mday'];
            }
            $url = COM_buildURL($_CONF['site_url'] . '/article.php?story=' . $A['sid']);
            $entries[] = COM_createLink(stripslashes($A['title']), $url);
        }
        if (count($entries) > 0) {
            $retval .= COM_makeList($entries);
        }
    } else {
        if (TEMPLATE_EXISTS) {
            $retval .= $template->parse('message', 'no-articles') . LB;
        } else {
            $retval .= '<p>' . $LANG_DIR['no_articles'] . '</p>' . LB;
        }
    }
    $retval .= LB;
    return $retval;
}
Ejemplo n.º 3
0
/**
* Display month view
*
* @param    ref    &$template   reference of the template
* @param    string  $dir_topic  current topic
* @param    int     $year   year to display
* @param    int     $month  month to display
* @return   string          list of articles for the given month
*
*/
function DIR_displayMonth(&$template, $dir_topic, $year, $month)
{
    global $_CONF, $_USER, $_TABLES, $LANG_MONTH, $LANG_DIR;
    $retval = '';
    $dt = new Date('now', $_USER['tzid']);
    $start = sprintf('%04d-%02d-01 00:00:00', $year, $month);
    $lastday = DIR_lastDayOfMonth($month, $year);
    $end = sprintf('%04d-%02d-%02d 23:59:59', $year, $month, $lastday);
    $sql = "SELECT sid,title,UNIX_TIMESTAMP(date) AS day,DATE_FORMAT(date, '%e') AS mday FROM {$_TABLES['stories']} WHERE (date >= '{$start}') AND (date <= '{$end}') AND (draft_flag = 0) AND (date <= NOW())";
    if ($dir_topic != 'all') {
        $sql .= " AND (tid = '" . DB_escapeString($dir_topic) . "')";
    }
    $sql .= COM_getTopicSql('AND') . COM_getPermSql('AND') . COM_getLangSQL('sid', 'AND') . " ORDER BY date ASC";
    $result = DB_query($sql);
    $numrows = DB_numRows($result);
    if ($numrows > 0) {
        $entries = array();
        $mday = 0;
        for ($i = 0; $i < $numrows; $i++) {
            $A = DB_fetchArray($result);
            if ($mday != $A['mday']) {
                if (count($entries) > 0) {
                    $retval .= COM_makeList($entries);
                    $entries = array();
                }
                $dt->setTimestamp($A['day']);
                $day = $dt->format($_CONF['shortdate'], true);
                $template->set_var('section_title', $day);
                $retval .= $template->parse('title', 'section-title') . LB;
                $mday = $A['mday'];
            }
            $url = COM_buildUrl($_CONF['site_url'] . '/article.php?story=' . $A['sid']);
            $entries[] = COM_createLink($A['title'], $url);
        }
        if (count($entries) > 0) {
            $retval .= COM_makeList($entries);
        }
    } else {
        $retval .= $template->parse('message', 'no-articles') . LB;
    }
    $retval .= LB;
    return $retval;
}