/** * 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; }
/** * 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; }
/** * 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; }