Calendar block for phpBB Calendar 0.0.8

Forum rules
This forum is not for support requests.

Only post Modifications for Board3 Portal 1.0.x in this forum.
Locked

Topic author
frold
Portal Enthusiast
Posts: 108
Joined: 24. March 2008 07:52

Calendar block for phpBB Calendar 0.0.8

Post 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
Last edited by frold on 3. December 2008 11:48, edited 12 times in total.
http://www.studmed.dk - Portal for doctors and medical students in Denmark
User avatar

CocoVFR
Active Member
Posts: 19
Joined: 3. May 2008 02:50

Re: Calendar block for phpBB Calendar 0.0.7

Post 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 ?

Topic author
frold
Portal Enthusiast
Posts: 108
Joined: 24. March 2008 07:52

Re: Calendar block for phpBB Calendar 0.0.7

Post 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
http://www.studmed.dk - Portal for doctors and medical students in Denmark
User avatar

CocoVFR
Active Member
Posts: 19
Joined: 3. May 2008 02:50

Re: Calendar block for phpBB Calendar 0.0.7

Post 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 ?
User avatar

thomas.d
Former Team Member
Posts: 625
Joined: 19. January 2008 23:56
phpBB.de User: thomas.d
phpBB.com User: thomas.d
Contact:

Re: Calendar block for phpBB Calendar 0.0.7

Post by thomas.d »

Check your calendar.php wether there is a blank line above of "<?php"
Viele Grüße

Thomas

Deutsche Sprachdateien für
[Alpha] phpBB Calendar 0.0.8 (alightner) | [RC] phpBB Arcade 1.0.RC8 |
ACP Add User MOD 1.0.0 |
User avatar

CocoVFR
Active Member
Posts: 19
Joined: 3. May 2008 02:50

Re: Calendar block for phpBB Calendar 0.0.7

Post 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.
User avatar

thomas.d
Former Team Member
Posts: 625
Joined: 19. January 2008 23:56
phpBB.de User: thomas.d
phpBB.com User: thomas.d
Contact:

Re: Calendar block for phpBB Calendar 0.0.7

Post 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
Viele Grüße

Thomas

Deutsche Sprachdateien für
[Alpha] phpBB Calendar 0.0.8 (alightner) | [RC] phpBB Arcade 1.0.RC8 |
ACP Add User MOD 1.0.0 |

fred_du_41
Translator
Posts: 11
Joined: 8. May 2008 13:11
Location: France : Loir et Cher
Contact:

Re: Calendar block for phpBB Calendar 0.0.7

Post 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
La Passion du Reflex Numérique : ?Photos-entre-Amis ?Annuaire ? Mon Flickr ?
User avatar

thomas.d
Former Team Member
Posts: 625
Joined: 19. January 2008 23:56
phpBB.de User: thomas.d
phpBB.com User: thomas.d
Contact:

Re: Calendar block for phpBB Calendar 0.0.7

Post by thomas.d »

*** Sorry, wrong thread! ***
Viele Grüße

Thomas

Deutsche Sprachdateien für
[Alpha] phpBB Calendar 0.0.8 (alightner) | [RC] phpBB Arcade 1.0.RC8 |
ACP Add User MOD 1.0.0 |
User avatar

CocoVFR
Active Member
Posts: 19
Joined: 3. May 2008 02:50

Re: Calendar block for phpBB Calendar 0.0.7

Post by CocoVFR »

An other question.
How can i make enable/disable the calendar (not mini_cal) in the ACP ?

Topic author
frold
Portal Enthusiast
Posts: 108
Joined: 24. March 2008 07:52

Re: Calendar block for phpBB Calendar 0.0.7

Post 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
http://www.studmed.dk - Portal for doctors and medical students in Denmark

fred_du_41
Translator
Posts: 11
Joined: 8. May 2008 13:11
Location: France : Loir et Cher
Contact:

Re: Calendar block for phpBB Calendar 0.0.7

Post 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 ;)
La Passion du Reflex Numérique : ?Photos-entre-Amis ?Annuaire ? Mon Flickr ?

Topic author
frold
Portal Enthusiast
Posts: 108
Joined: 24. March 2008 07:52

Re: Calendar block for phpBB Calendar 0.0.7

Post 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!
http://www.studmed.dk - Portal for doctors and medical students in Denmark

Topic author
frold
Portal Enthusiast
Posts: 108
Joined: 24. March 2008 07:52

Re: Calendar block for phpBB Calendar 0.0.7

Post 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
http://www.studmed.dk - Portal for doctors and medical students in Denmark

fred_du_41
Translator
Posts: 11
Joined: 8. May 2008 13:11
Location: France : Loir et Cher
Contact:

Re: Calendar block for phpBB Calendar 0.0.7

Post 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 :?
La Passion du Reflex Numérique : ?Photos-entre-Amis ?Annuaire ? Mon Flickr ?
Locked

Return to “board3 Portal v1.0.x - Modifications”