2006-12-02 04:36:16 +00:00
< ? php
/*
+ ----------------------------------------------------------------------------+
| e107 website system
|
| <EFBFBD> Steve Dunstan 2001 - 2002
| http :// e107 . org
| jalist @ e107 . org
|
| Released under the terms and conditions of the
| GNU General Public License ( http :// gnu . org ) .
|
| $Source : / cvs_backup / e107_0 . 8 / e107_plugins / blogcalendar_menu / blogcalendar_menu . php , v $
2009-09-23 16:21:09 +00:00
| $Revision : 1.3 $
| $Date : 2009 - 09 - 23 16 : 21 : 09 $
| $Author : secretr $
2006-12-02 04:36:16 +00:00
+----------------------------------------------------------------------------+
| Based on code by : Thomas Bouve ( crahan @ gmx . net )
*/
if ( ! defined ( 'e107_INIT' )) { exit ; }
require_once ( e_PLUGIN . " blogcalendar_menu/calendar.php " );
require_once ( e_PLUGIN . " blogcalendar_menu/functions.php " );
// ------------------------------
// initialization + fetch options
// ------------------------------
$prefix = e_PLUGIN . " blogcalendar_menu " ;
$marray = array ( BLOGCAL_M1 , BLOGCAL_M2 , BLOGCAL_M3 , BLOGCAL_M4 ,
BLOGCAL_M5 , BLOGCAL_M6 , BLOGCAL_M7 , BLOGCAL_M8 ,
BLOGCAL_M9 , BLOGCAL_M10 , BLOGCAL_M11 , BLOGCAL_M12 );
$pref [ 'blogcal_ws' ] = " monday " ;
// ----------------------------------------------
// get the requested and current date information
// ----------------------------------------------
list ( $cur_year , $cur_month , $cur_day ) = explode ( " " , date ( " Y n j " ));
2009-09-23 16:21:09 +00:00
if ( e_PAGE == 'news.php' && strstr ( e_QUERY , " day " ))
{
//$tmp = explode(".", e_QUERY);
$tmp = e107 :: getUrl () -> parseRequest ( 'core:news' , 'main' , urldecode ( e_QUERY ));
2006-12-02 04:36:16 +00:00
$item = $tmp [ 1 ];
2007-12-03 20:38:13 +00:00
$req_year = intval ( substr ( $item , 0 , 4 ));
$req_month = intval ( substr ( $item , 4 , 2 ));
2006-12-02 04:36:16 +00:00
// decide on the behaviour here, do we highlight
// the day being viewed? or only 'today'?
//$req_day = substr($item, 6, 2);
// if the requested year and month are the current, then add
// the current day to the mix so the calendar highlights it
2009-09-23 16:21:09 +00:00
if (( $req_year == $cur_year ) && ( $req_month == $cur_month ))
{
2006-12-02 04:36:16 +00:00
$req_day = $cur_day ;
2009-09-23 16:21:09 +00:00
}
else
{
2006-12-02 04:36:16 +00:00
$req_day = " " ;
}
}
2009-09-23 16:21:09 +00:00
elseif ( e_PAGE == 'news.php' && strstr ( e_QUERY , " month " ))
{
//$tmp = explode(".", e_QUERY);
$tmp = e107 :: getUrl () -> parseRequest ( 'core:news' , 'main' , urldecode ( e_QUERY ));
2006-12-02 04:36:16 +00:00
$item = $tmp [ 1 ];
2007-12-03 20:38:13 +00:00
$req_year = intval ( substr ( $item , 0 , 4 ));
$req_month = intval ( substr ( $item , 4 , 2 ));
2006-12-02 04:36:16 +00:00
// if the requested year and month are the current, then add
// the current day to the mix so the calendar highlights it
2009-09-23 16:21:09 +00:00
if (( $req_year == $cur_year ) && ( $req_month == $cur_month ))
{
2006-12-02 04:36:16 +00:00
$req_day = $cur_day ;
2009-09-23 16:21:09 +00:00
}
else
{
2006-12-02 04:36:16 +00:00
$req_day = " " ;
}
2009-09-23 16:21:09 +00:00
}
else
{
2006-12-02 04:36:16 +00:00
$req_year = $cur_year ;
$req_month = $cur_month ;
$req_day = $cur_day ;
}
// -------------------------------
// create the month selection item
// -------------------------------
$month_selector = " <div class='forumheader' style='text-align: center; margin-bottom: 2px;'> " ;
$month_selector .= " <select name='activate' onchange='urljump(this.options[selectedIndex].value)' class='tbox'> " ;
// get all newsposts since the beginning of the year till now
// -------------------------------------------
// get links to all newsitems in current month
// -------------------------------------------
$month_start = mktime ( 0 , 0 , 0 , $req_month , 1 , $req_year );
$lastday = date ( " t " , $month_start );
$month_end = mktime ( 23 , 59 , 59 , $req_month , $lastday , $req_year );
$start = mktime ( 0 , 0 , 0 , 1 , 1 , $req_year );
$end = time ();
$sql -> db_Select ( " news " , " news_id, news_datestamp " , " news_class IN ( " . USERCLASS_LIST . " ) AND news_datestamp > " . intval ( $start ) . " AND news_datestamp < " . intval ( $end ));
while ( $news = $sql -> db_Fetch ())
{
$xmonth = date ( " n " , $news [ 'news_datestamp' ]);
if ( ! isset ( $month_links [ $xmonth ]) || ! $month_links [ $xmonth ])
{
2009-09-23 16:21:09 +00:00
$month_links [ $xmonth ] = e107 :: getUrl () -> create ( 'core:news' , 'main' , 'action=month&value=' . formatDate ( $req_year , $xmonth )); //e_BASE."news.php?month.".formatDate($req_year, $xmonth);
2006-12-02 04:36:16 +00:00
}
if ( $news [ 'news_datestamp' ] >= $month_start AND $news [ 'news_datestamp' ] <= $month_end )
{
$xday = date ( " j " , $news [ 'news_datestamp' ]);
if ( ! isset ( $day_links [ $xday ]) || ! $day_links [ $xday ])
{
2009-09-23 16:21:09 +00:00
$day_links [ $xday ] = e107 :: getUrl () -> create ( 'core:news' , 'main' , 'action=day&value=' . formatDate ( $req_year , $xmonth , $xday )); //e_BASE."news.php?day.".formatDate($req_year, $req_month, $xday);
2006-12-02 04:36:16 +00:00
}
}
}
// if we're listing the current year, add the current month to the list regardless of posts
2009-09-23 16:21:09 +00:00
if ( $req_year == $cur_year )
{
$month_links [ $cur_month ] = e107 :: getUrl () -> create ( 'core:news' , 'main' , 'action=month&value=' . formatDate ( $cur_year , $cur_month )); //e_BASE."news.php?month.".formatDate($cur_year, $cur_month);
2006-12-02 04:36:16 +00:00
}
// go over the link array and create the option fields
2009-09-23 16:21:09 +00:00
foreach ( $month_links as $index => $val )
{
2006-12-02 04:36:16 +00:00
$month_selector .= " <option value=' " . $val . " ' " ;
$month_selector .= ( $index == $req_month ) ? " selected='selected' " :
" " ;
$month_selector .= " > " . $marray [ $index - 1 ] . " </option> " ;
}
// close the select item
$month_selector .= " </select></div> " ;
// ------------------------
// create and show calendar
// ------------------------
$menu = " <div style='text-align: center;'><table border='0' cellspacing='7'> " ;
$menu .= " <tr><td> $month_selector " ;
$menu .= " <div style='text-align:center'> " . calendar ( $req_day , $req_month , $req_year , $day_links , $pref [ 'blogcal_ws' ]) . " </div> " ;
$menu .= " <div class='forumheader' style='text-align: center; margin-top:2px;'><span class='smalltext'><a href=' $prefix /archive.php'> " . BLOGCAL_L2 . " </a></span></div></td></tr> " ;
$menu .= " </table></div> " ;
$ns -> tablerender ( BLOGCAL_L1 . " " . $req_year , $menu , 'blog_calender' );
?>