Page 1 of 13

Calendar block for phpBB Calendar 0.0.8

Posted: 24. April 2008 11:59
by frold
CALENDAR BLOCK FOR phpBB CALENDAR 0.0.7 (MAYBE EARLIER VERSIONS TOO)
Credit:
DaMysterious from http://damysterious.xs4all.nl/portal_premod/

Minor changes by frold

Demo: http://www.studmed.dk - See the block "Kalender"

CREATE
styles/prosilver/template/portal/block/calendar.html

REPLACE ALL WITH

Code: Select all

<div class="panel">
    <div class="inner">
        <span class="corners-top"><span></span></span>
            <h3><a href="{U_CALENDAR}" title="{L_CALENDAR}">{L_MINI_CAL_CALENDAR}</a></h3>
            
<table cellspacing="0" width="100%">
  <tr>
    <td class="row1" style="text-align: left"><!-- IF CALENDAR_PREV_MINI -->{CALENDAR_PREV_MINI}</a><!-- ENDIF --></td>
    <td class="row1" style="text-align: center"><span class="genmed">{CALENDAR_HEADER_MINI}</span></td>
    <td class="row1" style="text-align: right"><!-- IF CALENDAR_NEXT_MINI -->{CALENDAR_NEXT_MINI}</a><!-- ENDIF --></td>
  </tr>
</table>

<table class="table_minical" cellspacing="0" cellpadding="0">
  <!--<tr>
    <th style="text-align:left;" colspan="7">{L_MINI_CAL_CALENDAR}</td>
</tr>-->
  <tr class="row1">
    <td style="width: 5%; text-align: center" class="bg4">{SUNDAY_MINI}</td>
    <td style="width: 5%; text-align: center" class="bg4">{MONDAY_MINI}</td>
    <td style="width: 5%; text-align: center" class="bg4">{TUESDAY_MINI}</td>
    <td style="width: 5%; text-align: center" class="bg4">{WEDNESDAY_MINI}</td>
    <td style="width: 5%; text-align: center" class="bg4">{THURSDAY_MINI}</td>
    <td style="width: 5%; text-align: center" class="bg4">{FRIDAY_MINI}</td>
    <td style="width: 5%; text-align: center" class="bg4">{SATURDAY_MINI}</td>
  </tr>
  <!-- BEGIN mini_calendar_days -->
  <!-- IF mini_calendar_days.START_WEEK -->
  <tr>
    <!-- ENDIF -->
    <!-- IF mini_calendar_days.DUMMY_DAY -->
    <td valign="top" class="bg3_calMon">&nbsp;</td>
    <!-- ELSE -->
      <td valign="top" class="{mini_calendar_days.DAY_CLASS}">
      <table cellpadding="0" cellspacing="1" border="0" width="100%">
        <tr>
          <td class="{mini_calendar_days.HEADER_CLASS}">
              <!-- IF mini_calendar_days.ADD_LINK -->
            <a href="{mini_calendar_days.ADD_LINK}">{mini_calendar_days.NUMBER}</a>
            <!-- ELSE -->
                      {mini_calendar_days.NUMBER}
            <!-- ENDIF -->
            <br />
          </td>
        </tr>
      </table></td>
    <!-- ENDIF -->
    <!-- IF mini_calendar_days.END_WEEK -->
  </tr>
  <!-- ENDIF -->
  <!-- END mini_calendar_days -->
</table>
<br clear="all" />

<table class="table_minical" cellspacing="0" cellpadding="0" width="100%">
  <tr class="row1">
        <td style="width: 100%; text-align: center" class="bg4">Events</td>
  </tr>
</table>

<table class="table_minical" cellspacing="0" cellpadding="0">
  <tr>
    <td class="row1">
<!-- BEGIN mini_calendar_days -->
      <!-- BEGIN events -->
      <!-- IF mini_calendar_days.events.S_FIRST_ROW -->
      <!-- IF mini_calendar_days.BIRTHDAYS --><hr><!-- ENDIF -->
      <!-- ELSE --><hr><!-- ENDIF -->
      <a href="{mini_calendar_days.events.DAY_VIEW_URL}"><!-- IF mini_calendar_days.events.COLOR --><span style="color:#{mini_calendar_days.events.COLOR}"><!-- ENDIF -->
      [{mini_calendar_days.events.NUMBER}]<!-- IF mini_calendar_days.events.COLOR --></span><!-- ENDIF --></a>
      <a href="{mini_calendar_days.events.EVENT_URL}" title="{mini_calendar_days.events.EVENT_SUBJECT}">
      <!-- IF mini_calendar_days.events.COLOR --><span style="color:#{mini_calendar_days.events.COLOR}"><!-- ENDIF -->
      <!-- IF mini_calendar_days.events.DISPLAY_BOLD --><strong><!-- ENDIF -->
      <!-- IF mini_calendar_days.events.IMAGE --><img src="{mini_calendar_days.events.IMAGE}" title="{mini_calendar_days.events.ETYPE_DISPLAY_NAME}" height="20" width="20" /><!-- ENDIF -->
      <!-- IF mini_calendar_days.events.ETYPE_DISPLAY_NAME -->{mini_calendar_days.events.ETYPE_DISPLAY_NAME}:<!-- ENDIF -->
      {mini_calendar_days.events.EVENT_SUBJECT}
      <!-- IF mini_calendar_days.events.DISPLAY_BOLD --></strong><!-- ENDIF -->
      <!-- IF mini_calendar_days.events.SHOW_TIME --><br /><!-- IF mini_calendar_days.events.ALL_DAY -->{L_ALL_DAY}<!-- ELSE -->
      {L_FROM_TIME}: {mini_calendar_days.events.START_TIME} <br />{L_TO_TIME}: {mini_calendar_days.events.END_TIME}<!-- ENDIF -->
      <!-- ENDIF -->
      <!-- IF mini_calendar_days.events.COLOR --></span><!-- ENDIF --></a><br />
      <!-- END events -->
<!-- END mini_calendar_days -->
    </td>
  </tr>
</table>

        <span class="corners-bottom"><span></span></span>
    </div>
</div>
<br style="clear:both" />
 
OPEN
language/en/common.php

FIND

Code: Select all

?>
BEFORE ADD

Code: Select all

//Missing lang variables
$lang['MONTH'] = 'Month';
$lang['WEEK'] = 'Week';
$lang['DAY'] = 'Day';

    // Event Calendar
    $lang = array_merge($lang, array(
       'CALENDAR'      => 'Calendar',
       // minical short day names   
       'mini_datetime'   => array(
            'Su'      => 'Su',
            'Mo'      => 'Mo',
            'Tu'      => 'Tu',
            'We'      => 'We',
            'Th'      => 'Th',
            'Fr'      => 'Fr',
            'Sa'      => 'Sa',
       ),
    ));
 
OPEN
portal.php

FIND

Code: Select all

include($phpbb_root_path . 'portal/includes/functions.'.$phpEx); 
AFTER ADD

Code: Select all

include($phpbb_root_path . 'includes/functions_calendar.' . $phpEx); 
FIND

Code: Select all

if ($portal_config['portal_change_style'])
{
    include($phpbb_root_path . 'portal/block/change_style.'.$phpEx);
}

 
AFTER ADD

Code: Select all

include($phpbb_root_path . 'portal/block/calendar.'.$phpEx);
 
OPEN
styles/prosilver/template/portal/portal_body.html


FIND

Code: Select all

        <!-- IF S_DISPLAY_MINICAL -->
            <!-- INCLUDE portal/block/mini_calendar.html -->
        <!-- ENDIF -->
 
AFTER ADD

Code: Select all

        <!-- INCLUDE portal/block/calendar.html -->
 
CREATE
portal/block/calendar.php

REPLACE ALL WITH

Code: Select all

<?php
/*
*
* @name mini_calendar.php
* @package phpBB3 Portal XL 4.0
* @version $Id: mini_calendar.php,v 1.4 2008/04/07 09:44:35 damysterious Exp $
*
* @copyright (c) 2007 Portal XL 4.0 Group
* @license http://opensource.org/licenses/gpl-license.php GNU Public License 
*
*/
if (!defined('IN_PHPBB'))
{
    exit;
}

/**
*/

// Generate calendar view or next events if required ...
calendar_display_mini_month();

// Assign specific vars
$template->assign_vars(array(
        'U_CALENDAR'    => append_sid("{$phpbb_root_path}calendar.$phpEx"),
    ));

// Set the filename of the template you want to use for this file.
$template->set_filenames(array(
    'body' => 'portal/block/calendar.html',
    ));


?>

OPEN
includes/functions_calendar.php

FIND

Code: Select all

$mode_sel_code = "";
 
AFTER ADD

Code: Select all

    /**
    * Begin additional Portal XL 4.0 functions
    */
    function calendar_display_center_month()
    {
       global $auth, $db, $user, $config, $template, $date, $available_etype_colors, $available_etype_images, $available_etype_display_names, $month_sel_code, $day_sel_code, $year_sel_code, $mode_sel_code;
       global $phpEx, $phpbb_root_path;

       init_calendar_data();
       init_view_selection_code("month");

       //create next and prev links
       set_date_prev_next( "month" );
       $center_prev_link = append_sid($calling_page, "calM=".$date['prev_month']."&calY=".$date['prev_year']);
       $center_next_link = append_sid($calling_page, "calM=".$date['next_month']."&calY=".$date['next_year']);

       //find the first day of the week
       $first_day_of_week = get_calendar_config_value("first_day_of_week", 0);
       get_weekday_names( $first_day_of_week, $sunday, $monday, $tuesday, $wednesday, $thursday, $friday, $saturday );

       //get the first day of the month
       $date['num'] = "01";
       $date['fday'] = get_fday( $date['num'], $date['month_no'], $date['year'], $first_day_of_week );

       $number_days = gmdate("t", gmmktime( 0,0,0,$date['month_no'], $date['day'], $date['year']));

       //center_calendar_header_txt = $user->lang['MONTH_OF'] . sprintf($user->lang['LOCAL_DATE_FORMAT'], $user->lang['datetime'][$date['month']], $date['day'], $date['year'] );
       $center_calendar_header_txt = $user->lang['datetime'][$date['month']] . ' - ' . $date['year'];
       $subject_limit = get_calendar_config_value("display_truncated_name", 0);

       // Is the user able to view ANY events?
       $user_can_view_events = false;
       if ( $auth->acl_get('u_calendar_view_events') )
       {
          $user_can_view_events = true;

          /* find the group options here so we do not have to look them up again for each day */
          $group_options = get_sql_group_options($user->data['user_id']);
       }

       $counter = 0;
       for ($j = 1; $j < $number_days+1; $j++, $counter++)
       {
          // if it is the first week
          if ($j == 1)
          {
             // find how many place holders we need before day 1
             if ($date['fday'] < 7)
             {
                $date['fday'] = $date['fday']+1;
                for ($i = 1; $i < $date['fday']; $i++, $counter++)
                {
                   // create dummy days (place holders)
                   if( $i == 1 )
                   {
                      $center_calendar_days['START_WEEK'] = true;
                   }
                   else
                   {
                      $center_calendar_days['START_WEEK'] = false;
                   }
                   $center_calendar_days['END_WEEK'] = false;
                   $center_calendar_days['HEADER_CLASS'] = 'bg3';
                   $center_calendar_days['DAY_CLASS'] = 'bg2';
                   $center_calendar_days['NUMBER'] = 0;
                   $center_calendar_days['DUMMY_DAY'] = true;
                   $center_calendar_days['ADD_LINK'] = '';
                   $center_calendar_days['BIRTHDAYS'] = '';
                   $template->assign_block_vars('center_calendar_days', $center_calendar_days);
                }
             }
          }
          // start creating the data for the real days
          $center_calendar_days['START_WEEK'] = false;
          $center_calendar_days['END_WEEK'] = false;
          $center_calendar_days['DUMMY_DAY'] = false;
          $center_calendar_days['HEADER_CLASS'] = '';
          $center_calendar_days['DAY_CLASS'] = '';
          $center_calendar_days['NUMBER'] = 0;
          $center_calendar_days['ADD_LINK'] = '';
          $center_calendar_days['BIRTHDAYS'] = '';

          if($counter % 7 == 0)
          {
             $center_calendar_days['START_WEEK'] = true;
          }
          if($counter % 7 == 6 )
          {
             $center_calendar_days['END_WEEK'] = true;
          }
          $center_calendar_days['NUMBER'] = $j;
          if( $auth->acl_get('u_calendar_create_events') )
          {
             $center_calendar_days['ADD_LINK'] = append_sid("{$phpbb_root_path}calendarpost.$phpEx", "mode=post&calD=".$j."&calM=".$date['month_no']."&calY=".$date['year']);
          }
          $center_calendar_days['DAY_VIEW_URL'] = append_sid("{$phpbb_root_path}calendar.$phpEx", "view=day&calD=".$j."&calM=".$date['month_no']."&calY=".$date['year']);
          $center_calendar_days['WEEK_VIEW_URL'] = append_sid("{$phpbb_root_path}calendar.$phpEx", "view=week&calD=".$j."&calM=".$date['month_no']."&calY=".$date['year']);

          //highlight selected day
          if( $j == $date['day'] )
          {
             $center_calendar_days['DAY_CLASS'] = 'bg4';
          }

          //highlight current day
          $test_start_hi_time = mktime( 0,0,0,$date['month_no'], $j, $date['year']) + date('Z');
          $test_end_hi_time = $test_start_hi_time + 86399;
          $test_hi_time = time() + $user->timezone + $user->dst;

          if( ($test_start_hi_time <= $test_hi_time) &&
              ($test_end_hi_time >= $test_hi_time))
          {
             $center_calendar_days['HEADER_CLASS'] = 'highlight';
             $center_calendar_days['DAY_CLASS'] = 'highlight';
          }


          if ( $user_can_view_events && $auth->acl_get('u_viewprofile') )
          {
             // find birthdays
             $center_calendar_days['BIRTHDAYS'] = generate_birthday_list( $j, $date['month_no'], $date['year'] );
          }

          $template->assign_block_vars('center_calendar_days', $center_calendar_days);

          if ( $user_can_view_events )
          {
             //find any events on this day
             $start_temp_date = gmmktime(0,0,0,$date['month_no'], $j, $date['year'])  - $user->timezone - $user->dst;
             $end_temp_date = $start_temp_date + 86399;

             $sql = 'SELECT * FROM ' . CALENDAR_EVENTS_TABLE . '
                   WHERE ( (event_access_level = 2) OR
                      (event_access_level = 0 AND poster_id = '.$db->sql_escape($user->data['user_id']).' ) OR
                      (event_access_level = 1 AND ('.$db->sql_escape($group_options).') ) ) AND
                   ((( event_start_time >= '.$db->sql_escape($start_temp_date).' AND event_start_time <= '.$db->sql_escape($end_temp_date).' ) OR
                    ( event_end_time > '.$db->sql_escape($start_temp_date).' AND event_end_time <= '.$db->sql_escape($end_temp_date).' ) OR
                    ( event_start_time < '.$db->sql_escape($start_temp_date).' AND event_end_time > '.$db->sql_escape($end_temp_date)." )) OR
                    ((event_all_day = 1) AND (event_day LIKE '" . $db->sql_escape(sprintf('%2d-%2d-%4d', $j, $date['month_no'], $date['year'])) . "'))) ORDER BY event_start_time ASC";


             $result = $db->sql_query($sql);
             while ($row = $db->sql_fetchrow($result))
             {
                $event_output['COLOR'] = $available_etype_colors[$row['etype_id']];
                $event_output['IMAGE'] = $available_etype_images[$row['etype_id']];
                $event_output['EVENT_URL'] = append_sid("{$phpbb_root_path}calendar.$phpEx", "view=event&calEid=".$row['event_id']);

                // if the event was created by this user
                // display it in bold
                if( $user->data['user_id'] == $row['poster_id'] )
                {
                   $event_output['DISPLAY_BOLD'] = true;
                }
                else
                {
                   $event_output['DISPLAY_BOLD'] = false;
                }

                $event_output['ETYPE_DISPLAY_NAME'] = $available_etype_display_names[$row['etype_id']];

                $event_output['EVENT_SUBJECT'] = censor_text($row['event_subject']);
                if( $subject_limit > 0 )
                {
                   if(utf8_strlen($event_output['EVENT_SUBJECT']) > $subject_limit)
                   {
                      $event_output['EVENT_SUBJECT'] = truncate_string($event_output['EVENT_SUBJECT'], $subject_limit) . '...';
                   }
                }
                $template->assign_block_vars('center_calendar_days.events', $event_output);
             }
             $db->sql_freeresult($result);
          }

       }
       $counter--;
       $dummy_end_day_count = 6 - ($counter % 7);
       for ($i = 1; $i <= $dummy_end_day_count; $i++)
       {
          // create dummy days (place holders)
          $center_calendar_days['START_WEEK'] = false;
          if( $i == $dummy_end_day_count )
          {
             $center_calendar_days['END_WEEK'] = true;
          }
          else
          {
             $center_calendar_days['END_WEEK'] = false;
          }
          $center_calendar_days['HEADER_CLASS'] = '';
          $center_calendar_days['DAY_CLASS'] = '';
          $center_calendar_days['NUMBER'] = 0;
          $center_calendar_days['DUMMY_DAY'] = true;
          $center_calendar_days['ADD_LINK'] = '';
          $center_calendar_days['BIRTHDAYS'] = '';
          $template->assign_block_vars('center_calendar_days', $center_calendar_days);
       }





       // A typical usage for sending your variables to your template.
       $template->assign_vars(array(
          'CALENDAR_HEADER_CENTER'      => $center_calendar_header_txt,
          'DAY_IMG'                  => $user->img('button_calendar_day', 'DAY'),
          'WEEK_IMG'                  => $user->img('button_calendar_week', 'WEEK'),
          'CALENDAR_PREV_CENTER'         => '<a href=\''.$center_prev_link.'\'><<</a>',
          'CALENDAR_NEXT_CENTER'         => '<a href=\''.$center_next_link.'\'>>></a>',
          'CALENDAR_VIEW_OPTIONS'       => $mode_sel_code.' '.$month_sel_code.' '.$day_sel_code.' '.$year_sel_code,
          'SUNDAY'                  => $sunday,
          'MONDAY'                  => $monday,
          'TUESDAY'                  => $tuesday,
          'WEDNESDAY'                  => $wednesday,
          'THURSDAY'                  => $thursday,
          'FRIDAY'                  => $friday,
          'SATURDAY'                  => $saturday,
          'S_POST_ACTION'               => append_sid("{$phpbb_root_path}calendar.$phpEx" ),
       ));

    }

    function calendar_display_mini_month()
    {
       global $auth, $db, $user, $config, $template, $date, $available_etype_colors, $available_etype_images, $available_etype_display_names, $month_sel_code, $day_sel_code, $year_sel_code, $mode_sel_code;
       global $phpEx, $phpbb_root_path;

       init_calendar_data();
       init_view_selection_code("month");

       // data of akt. month
       $time = getdate(time());
                
       //create next and prev links
       set_date_prev_next( "month" );
       $calling_page = (!empty($_SERVER['PHP_SELF'])) ? $_SERVER['PHP_SELF'] : $_ENV['PHP_SELF'];
       $mini_prev_link = append_sid($calling_page, "calM=".$date['prev_month']."&calY=".$date['prev_year']);
       $mini_next_link = append_sid($calling_page, "calM=".$date['next_month']."&calY=".$date['next_year']);

       //find the first day of the week
       $first_day_of_week = get_calendar_config_value("first_day_of_week", 0);
       get_weekday_names_mini( $first_day_of_week, $sunday, $monday, $tuesday, $wednesday, $thursday, $friday, $saturday );

       //get the first day of the month
       $date['num'] = "01";
       $date['fday'] = get_fday( $date['num'], $date['month_no'], $date['year'], $first_day_of_week );

       $number_days = gmdate("t", gmmktime( 0,0,0,$date['month_no'], $date['day'], $date['year']));

       //$mini_calendar_header_txt = $user->lang['MONTH_OF'] . sprintf($user->lang['LOCAL_DATE_FORMAT'], $user->lang['datetime'][$date['month']], $date['day'], $date['year'] );
       $mini_calendar_header_txt = $user->lang['datetime'][$date['month']] . ' - ' . $date['year'];
       $subject_limit = get_calendar_config_value("display_truncated_name", 0);

       // Is the user able to view ANY events?
       $user_can_view_events = false;
       if ( $auth->acl_get('u_calendar_view_events') )
       {
          $user_can_view_events = true;

          /* find the group options here so we do not have to look them up again for each day */
          $group_options = get_sql_group_options($user->data['user_id']);
       }

       $counter = 0;
       for ($j = 1; $j < $number_days+1; $j++, $counter++)
       {
          // if it is the first week
          if ($j == 1)
          {
             // find how many place holders we need before day 1
             if ($date['fday'] < 7)
             {
                $date['fday'] = $date['fday']+1;
                for ($i = 1; $i < $date['fday']; $i++, $counter++)
                {
                   // create dummy days (place holders)
                   if( $i == 1 )
                   {
                      $mini_calendar_days['START_WEEK'] = true;
                   }
                   else
                   {
                      $mini_calendar_days['START_WEEK'] = false;
                   }
                   $mini_calendar_days['END_WEEK'] = false;
                   $mini_calendar_days['HEADER_CLASS'] = 'bg3';
                   $mini_calendar_days['DAY_CLASS'] = 'bg2';
                   $mini_calendar_days['NUMBER'] = 0;
                   $mini_calendar_days['DUMMY_DAY'] = true;
                   $mini_calendar_days['ADD_LINK'] = '';
                   $mini_calendar_days['BIRTHDAYS'] = '';
                   $template->assign_block_vars('mini_calendar_days', $mini_calendar_days);
                }
             }
          }
          // start creating the data for the real days
          $mini_calendar_days['START_WEEK'] = false;
          $mini_calendar_days['END_WEEK'] = false;
          $mini_calendar_days['DUMMY_DAY'] = false;
          $mini_calendar_days['HEADER_CLASS'] = 'bg3';
          $mini_calendar_days['DAY_CLASS'] = 'bg2';
          $mini_calendar_days['NUMBER'] = 0;
          $mini_calendar_days['ADD_LINK'] = '';
          $mini_calendar_days['BIRTHDAYS'] = '';
         $mini_calendar_days['WRITE_BOLD'] = 100;
        
          if($counter % 7 == 0)
          {
             $mini_calendar_days['START_WEEK'] = true;
          }

          if($counter % 7 == 6 )
          {
             $mini_calendar_days['END_WEEK'] = true;
          }
          $mini_calendar_days['NUMBER'] = $j;
          if( $auth->acl_get('u_calendar_create_events') )
          {
             $mini_calendar_days['ADD_LINK'] = append_sid("{$phpbb_root_path}calendarpost.$phpEx", "mode=post&calD=".$j."&calM=".$date['month_no']."&calY=".$date['year']);
          }
          $mini_calendar_days['DAY_VIEW_URL'] = append_sid("{$phpbb_root_path}calendar.$phpEx", "view=day&calD=".$j."&calM=".$date['month_no']."&calY=".$date['year']);
          $mini_calendar_days['WEEK_VIEW_URL'] = append_sid("{$phpbb_root_path}calendar.$phpEx", "view=week&calD=".$j."&calM=".$date['month_no']."&calY=".$date['year']);

          //highlight selected day
          if( $j == $date['day'] && $date["month_no"] == $time["mon"])
          {
             $mini_calendar_days['DAY_CLASS'] = 'bg4';
          }

          //highlight current day
          $test_start_hi_time = mktime( 0,0,0,$date['month_no'], $j, $date['year']) + date('Z');
          $test_end_hi_time = $test_start_hi_time + 86399;
          $test_hi_time = time() + $user->timezone + $user->dst;

          if( ($test_start_hi_time <= $test_hi_time) &&
              ($test_end_hi_time >= $test_hi_time))
          {
             $mini_calendar_days['HEADER_CLASS'] = 'bg3';
             $mini_calendar_days['DAY_CLASS'] = 'bg4';
          }

          /*
          if ( $user_can_view_events && $auth->acl_get('u_viewprofile') )
          {
             // find birthdays
             $mini_calendar_days['BIRTHDAYS'] = generate_birthday_list( $j, $date['month_no'], $date['year'] );
          }
         */
        
          $arrayOfDays[] = $mini_calendar_days;

       }
         
            if ( $user_can_view_events )
          {
          
             if($time["mon"] == $date["month_no"]) $day = $date['day']; else $day = 1;
             // startDate = first Day of viewed month
             $start_temp_date = gmmktime( 0,0,0,$date['month_no'], $day, $date['year']);

          $end_temp_date = $start_temp_date + 2678400;
          // find all day events that are still taking place
          $sort_timestamp_cutoff = $start_temp_date - 86400+1;



          // don't list events that are more than 1 year in the future
          $sql = 'SELECT * FROM ' . CALENDAR_EVENTS_TABLE . '
                WHERE ( (event_access_level = 2) OR
                   (event_access_level = 0 AND poster_id = '.$db->sql_escape($user->data['user_id']).' ) OR
                   (event_access_level = 1 AND ('.$db->sql_escape($group_options).') ) ) AND
                ((( event_start_time >= '.$db->sql_escape($start_temp_date).' AND event_start_time <= '.$db->sql_escape($end_temp_date).' ) OR
                 ( event_end_time > '.$db->sql_escape($start_temp_date).' AND event_end_time <= '.$db->sql_escape($end_temp_date).' ) OR
                 ( event_start_time < '.$db->sql_escape($start_temp_date).' AND event_end_time > '.$db->sql_escape($end_temp_date)." )) OR (sort_timestamp > ".$db->sql_escape($sort_timestamp_cutoff)." AND event_all_day = 1) ) ORDER BY sort_timestamp ASC";
          // find next 5 events
          $result = $db->sql_query_limit($sql, 5, 0);


    //         $result = $monthEventResult;
          
          
             while ($row = $db->sql_fetchrow($result))
             {
                $dayOfEvent =  getdate($row["sort_timestamp"]);
                
                $event_output['COLOR'] = $available_etype_colors[$row['etype_id']];
                $event_output['IMAGE'] = $available_etype_images[$row['etype_id']];
                $event_output['EVENT_URL'] = append_sid("{$phpbb_root_path}calendar.$phpEx", "view=event&calEid=".$row['event_id']);
                $event_output['NUMBER'] = $dayOfEvent["mday"].".".$dayOfEvent["mon"].".";
                $event_output['DAY_VIEW_URL'] = append_sid("{$phpbb_root_path}calendar.$phpEx", "view=day&calD=".$dayOfEvent["mday"]."&calM=".$dayOfEvent["mon"]."&calY=".$dayOfEvent["year"]);
                $event_output['WEEK_VIEW_URL'] = append_sid("{$phpbb_root_path}calendar.$phpEx", "view=week&calD=".$dayOfEvent["mday"]."&calM=".$dayOfEvent["mon"]."&calY=".$dayOfEvent["year"]);

                if($date["month_no"] == $dayOfEvent["mon"]) {
                   $arrayOfDays[$dayOfEvent["mday"]-1]["WRITE_BOLD"] = "bold";
                }
                // if the event was created by this user
                // display it in bold
                if( $user->data['user_id'] == $row['poster_id'] )
                {
                   $event_output['DISPLAY_BOLD'] = true;
                }
                else
                {
                   $event_output['DISPLAY_BOLD'] = false;
                }

                $event_output['ETYPE_DISPLAY_NAME'] = $available_etype_display_names[$row['etype_id']];

                $event_output['EVENT_SUBJECT'] = censor_text($row['event_subject']);
                if( $subject_limit > 0 )
                {
                   if(utf8_strlen($event_output['EVENT_SUBJECT']) > $subject_limit)
                   {
                      $event_output['EVENT_SUBJECT'] = truncate_string($event_output['EVENT_SUBJECT'], $subject_limit) . '...';
                   }
                }

                $template->assign_block_vars('events', $event_output);
             }
             $db->sql_freeresult($result);
          }

         for($a=0;$a<count($arrayOfDays);$a++) {
            if(!empty($arrayOfDays[$a]["NUMBER"])) {
               $template->assign_block_vars('mini_calendar_days', $arrayOfDays[$a]);
            }
         }
         
       $counter--;
       $dummy_end_day_count = 6 - ($counter % 7);
       for ($i = 1; $i <= $dummy_end_day_count; $i++)
       {
          // create dummy days (place holders)
          $mini_calendar_days['START_WEEK'] = false;
          if( $i == $dummy_end_day_count )
          {
             $mini_calendar_days['END_WEEK'] = true;
          }
          else
          {
             $mini_calendar_days['END_WEEK'] = false;
          }
          $mini_calendar_days['HEADER_CLASS'] = '';
          $mini_calendar_days['DAY_CLASS'] = '';
          $mini_calendar_days['NUMBER'] = 0;
          $mini_calendar_days['DUMMY_DAY'] = true;
          $mini_calendar_days['ADD_LINK'] = '';
          $mini_calendar_days['BIRTHDAYS'] = '';
          $template->assign_block_vars('mini_calendar_days', $mini_calendar_days);
       }





       // A typical usage for sending your variables to your template.
       $template->assign_vars(array(
          'CALENDAR_HEADER_MINI'         => $mini_calendar_header_txt,
          'DAY_IMG'                  => $user->img('button_calendar_day', 'DAY'),
          'WEEK_IMG'                  => $user->img('button_calendar_week', 'WEEK'),
          'CALENDAR_PREV_MINI'         => '<a href=\''.$mini_prev_link.'\'><img src="' . $phpbb_root_path . 'styles/' . $user->theme['theme_path'] . '/theme/images/portal/mini_cal_icon_left_arrow.png' . '" title="' . $user->lang['View_previous_month'] . '" height="16" width="16" alt="<<" /></a>',
          'CALENDAR_NEXT_MINI'         =>  '<a href=\''.$mini_next_link.'\'><img src="' . $phpbb_root_path . 'styles/' . $user->theme['theme_path'] . '/theme/images/portal/mini_cal_icon_right_arrow.png' . '" title="' . $user->lang['View_next_month'] . '" height="16" width="16" alt=">>" /></a>',     
          'CALENDAR_VIEW_OPTIONS'       => $mode_sel_code.' '.$month_sel_code.' '.$day_sel_code.' '.$year_sel_code,
          'SUNDAY_MINI'               => $sunday,
          'MONDAY_MINI'               => $monday,
          'TUESDAY_MINI'               => $tuesday,
          'WEDNESDAY_MINI'            => $wednesday,
          'THURSDAY_MINI'               => $thursday,
          'FRIDAY_MINI'               => $friday,
          'SATURDAY_MINI'               => $saturday,
          'S_POST_ACTION_MINI'         => append_sid("{$phpbb_root_path}calendar.$phpEx" ),
       ));

    }

    function get_weekday_names_mini( $first_day_of_week, &$sunday, &$monday, &$tuesday, &$wednesday, &$thursday, &$friday, &$saturday )
    {
       global $user;
       switch( $first_day_of_week )
       {
          case 0:
             $sunday = $user->lang['mini_datetime']['Su'];
             $monday = $user->lang['mini_datetime']['Mo'];
             $tuesday = $user->lang['mini_datetime']['Tu'];
             $wednesday = $user->lang['mini_datetime']['We'];
             $thursday = $user->lang['mini_datetime']['Th'];
             $friday = $user->lang['mini_datetime']['Fr'];
             $saturday = $user->lang['mini_datetime']['Sa'];
             break;
          case 1:
             $saturday = $user->lang['mini_datetime']['Su'];
             $sunday = $user->lang['mini_datetime']['Mo'];
             $monday = $user->lang['mini_datetime']['Tu'];
             $tuesday = $user->lang['mini_datetime']['We'];
             $wednesday = $user->lang['mini_datetime']['Th'];
             $thursday = $user->lang['mini_datetime']['Fr'];
             $friday = $user->lang['mini_datetime']['Sa'];
             break;
          case 2:
             $friday = $user->lang['mini_datetime']['Su'];
             $saturday = $user->lang['mini_datetime']['Mo'];
             $sunday = $user->lang['mini_datetime']['Tu'];
             $monday = $user->lang['mini_datetime']['We'];
             $tuesday = $user->lang['mini_datetime']['Th'];
             $wednesday = $user->lang['mini_datetime']['Fr'];
             $thursday = $user->lang['mini_datetime']['Sa'];
             break;
          case 3:
             $thursday = $user->lang['mini_datetime']['Su'];
             $friday = $user->lang['mini_datetime']['Mo'];
             $saturday = $user->lang['mini_datetime']['Tu'];
             $sunday = $user->lang['mini_datetime']['We'];
             $monday = $user->lang['mini_datetime']['Th'];
             $tuesday = $user->lang['mini_datetime']['Fr'];
             $wednesday = $user->lang['mini_datetime']['Sa'];
             break;
          case 4:
             $wednesday = $user->lang['mini_datetime']['Su'];
             $thursday = $user->lang['mini_datetime']['Mo'];
             $friday = $user->lang['mini_datetime']['Tu'];
             $saturday = $user->lang['mini_datetime']['We'];
             $sunday = $user->lang['mini_datetime']['Th'];
             $monday = $user->lang['mini_datetime']['Fr'];
             $tuesday = $user->lang['mini_datetime']['Sa'];
             break;
          case 5:
             $tuesday = $user->lang['mini_datetime']['Su'];
             $wednesday = $user->lang['mini_datetime']['Mo'];
             $thursday = $user->lang['mini_datetime']['Tu'];
             $friday = $user->lang['mini_datetime']['We'];
             $saturday = $user->lang['mini_datetime']['Th'];
             $sunday = $user->lang['mini_datetime']['Fr'];
             $monday = $user->lang['mini_datetime']['Sa'];
             break;
          case 6:
             $monday = $user->lang['mini_datetime']['Su'];
             $tuesday = $user->lang['mini_datetime']['Mo'];
             $wednesday = $user->lang['mini_datetime']['Tu'];
             $thursday = $user->lang['mini_datetime']['We'];
             $friday = $user->lang['mini_datetime']['Th'];
             $saturday = $user->lang['mini_datetime']['Fr'];
             $sunday = $user->lang['mini_datetime']['Sa'];
             break;
       }
    }
    /**
    * End additional Portal XL 4.0 functions
    */
I recommand you do the changes you find in this treat too....
viewtopic.php?f=21&t=459&start=30#p6323

Re: Calendar block for phpBB Calendar 0.0.7

Posted: 4. May 2008 17:23
by CocoVFR
Hello.
I've just try this, and that's doesn't work. The Mini calendar still the same.
What's wrong ? No error message, no bug...Nothing append. I've check all install's step, and everything seem right.
Any help ?

Re: Calendar block for phpBB Calendar 0.0.7

Posted: 4. May 2008 19:55
by frold
CocoVFR wrote:Hello.
I've just try this, and that's doesn't work. The Mini calendar still the same.
What's wrong ? No error message, no bug...Nothing append. I've check all install's step, and everything seem right.
Any help ?
With this "mod" you create a new calendar - the calendar.html

After you did all the above you offcause need to refresh templates and themes

Re: Calendar block for phpBB Calendar 0.0.7

Posted: 8. May 2008 01:42
by CocoVFR
Right.
I've done this, and, it appear yet.
But, i've an other issue:

Code: Select all

[phpBB Debug] PHP Notice: in file /includes/functions.php on line 3533: Cannot modify header information - headers already sent by (output started /portal/block/calendar.php:36)
[phpBB Debug] PHP Notice: in file /includes/functions.php on line 3535: Cannot modify header information - headers already sent by (output started at /portal/block/calendar.php:36)
[phpBB Debug] PHP Notice: in file /includes/functions.php on line 3536: Cannot modify header information - headers already sent by (output started at /portal/block/calendar.php:36)
[phpBB Debug] PHP Notice: in file /includes/functions.php on line 3537: Cannot modify header information - headers already sent by (output started at /portal/block/calendar.php:36)
When the calendar is shown, this error come.
What's wrong from me ?

Re: Calendar block for phpBB Calendar 0.0.7

Posted: 8. May 2008 02:04
by thomas.d
Check your calendar.php wether there is a blank line above of "<?php"

Re: Calendar block for phpBB Calendar 0.0.7

Posted: 8. May 2008 11:01
by CocoVFR
YES....
You near to be right !!!
That error is because some blanck line are after "?>", at the end of file !!!
It work great now !!!
Thank's.

Re: Calendar block for phpBB Calendar 0.0.7

Posted: 8. May 2008 12:49
by thomas.d
Hi frold,

thanks for sharing this "snippet" (as it's almost a MOD ... ;) )

Maybe you could edit your post a bit since there are some typos:
frold wrote: CREATE
style/prosilver/template/portal/block/calendar.html
should be

CREATE
styles/prosilver/template/portal/block/calendar.html

and
frold wrote: OPEN
styles/prosilver/portal/portal_body.html
should be

OPEN
styles/prosilver/template/portal/portal_body.html

Re: Calendar block for phpBB Calendar 0.0.7

Posted: 8. May 2008 13:21
by fred_du_41
First of all thank you for this add-on :D

But after the install i have a little problem, at the top of my portal there is this error :?

Code: Select all

[phpBB Debug] PHP Notice: in file /includes/functions_calendar.php on line 1922: Undefined index: WEEK
[phpBB Debug] PHP Notice: in file /includes/functions.php on line 3656: Cannot modify header information - headers already sent by (output started at /includes/functions.php:2989)
[phpBB Debug] PHP Notice: in file /includes/functions.php on line 3658: Cannot modify header information - headers already sent by (output started at /includes/functions.php:2989)
[phpBB Debug] PHP Notice: in file /includes/functions.php on line 3659: Cannot modify header information - headers already sent by (output started at /includes/functions.php:2989)
[phpBB Debug] PHP Notice: in file /includes/functions.php on line 3660: Cannot modify header information - headers already sent by (output started at /includes/functions.php:2989)
This error results from this line of code in portal.php

Code: Select all

include($phpbb_root_path . 'portal/block/calendar.'.$phpEx);
Have you a solution ? thank's a lot

My portal : http://www.photos-entre-amis.fr/portal.php

Re: Calendar block for phpBB Calendar 0.0.7

Posted: 8. May 2008 14:25
by thomas.d
*** Sorry, wrong thread! ***

Re: Calendar block for phpBB Calendar 0.0.7

Posted: 8. May 2008 14:33
by CocoVFR
An other question.
How can i make enable/disable the calendar (not mini_cal) in the ACP ?

Re: Calendar block for phpBB Calendar 0.0.7

Posted: 8. May 2008 18:04
by frold
CocoVFR wrote:An other question.
How can i make enable/disable the calendar (not mini_cal) in the ACP ?
You are not able to do so - this is a dirty hack :D

Re: Calendar block for phpBB Calendar 0.0.7

Posted: 8. May 2008 19:49
by fred_du_41
Good evening to all ;)

Can anybody help me?

I verified the modifications and I do not still find when is the problem :(

I am French and my English is not very good and I do not know if I well makes me understand.

Thank you in advance ;)

Re: Calendar block for phpBB Calendar 0.0.7

Posted: 8. May 2008 20:53
by frold
thomas.d wrote:Hi frold,

thanks for sharing this "snippet" (as it's almost a MOD ... ;) )

Maybe you could edit your post a bit since there are some typos:
Thank you they are fixed now!!!

Good job!

Re: Calendar block for phpBB Calendar 0.0.7

Posted: 8. May 2008 20:56
by frold
fred_du_41 wrote:Good evening to all ;)

Can anybody help me?

I verified the modifications and I do not still find when is the problem :(

I am French and my English is not very good and I do not know if I well makes me understand.

Thank you in advance ;)
Did you install the phpBB Calendar mod from: http://www.phpbb.com/community/viewtopi ... 0&t=666195

Re: Calendar block for phpBB Calendar 0.0.7

Posted: 8. May 2008 21:05
by fred_du_41
Thank you for your answer :D
frold wrote: Did you install the phpBB Calendar mod from: http://www.phpbb.com/community/viewtopi ... 0&t=666195
Yes naturally, I always install mods from phpBB.com only

I do not understand why that does not work for me :?