Перейти к контенту
  • 0

Календарь


MuxaHuKyC

Вопрос

Как известно, в форуме есть календарь. Достаточно продвинутый. И можно сделать так что бы в него могли добавлять события и другие пользователи.

Но он показывает, на главной страничке конференции, только именинников. А как бы сделать так, что бы там показывались и другие события.

 

Подскажите, пожалуйста.

 

PS: 1.2

PSS: Извините, что в форуме модификаций написал то же самое.

Ссылка на комментарий
Поделиться на других сайтах

Рекомендуемые сообщения

  • 0
Погоди, дни рождения - это понятно, они и так покажутся, автоматом. Входишь в календарь - Добавить событие (слева внизу) и пиши что хочешь :D
Ссылка на комментарий
Поделиться на других сайтах

  • 0

MuxaHuKyC

Зайди в админке в System Settings -> Calendar/Birthday и отметь там Show forthcoming events? - будут тебе все события. Там вообще все настройки календаря.

Ссылка на комментарий
Поделиться на других сайтах

  • 0

theIggs О. То, что надо. Думаю ещё события сверху (перед списком форумов) зафигачить - вообще здорово будет...

Пошёл менять...

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Эх. Что-то я не смог такое сделать.

 

Как бы сделать что бы именинники показывались внизу под списком форумов, а события над списком форумов?

Подскажите, пожалуйста, если не трудно...

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Так, что ли?

 

Типа такого:

1. Открыть sources/Boards.php
Найти и ВЫРЕЗАТЬ следующий кусок:

 //-----------------------------------------------
 // Are we viewing the calendar?
 //-----------------------------------------------
 
 if ($ibforums->vars['show_calendar'])
 {
 
	 if ($ibforums->vars['calendar_limit'] < 2)
	 {
   $ibforums->vars['calendar_limit'] = 2;
	 }
	 
	 $our_unix         = time() + $std->get_time_offset();
	 $max_date         = $our_unix + ($ibforums->vars['calendar_limit'] * 86400);
	 
	 $DB->query("SELECT eventid, title, read_perms, priv_event, userid, unix_stamp
              FROM ibf_calendar_events WHERE unix_stamp > $our_unix and unix_stamp < $max_date ORDER BY unix_stamp ASC");
	 
	 $show_events = array();
	 
	 while ($event = $DB->fetch_row())
	 {
   if ($event['priv_event'] == 1 and $ibforums->member['id'] != $event['userid'])
   {
  	 continue;
   }
   
   //-----------------------------------------
   // Do we have permission to see the event?
   //-----------------------------------------
   
   if ( $event['read_perms'] != '*' )
   {
  	 if ( ! preg_match( "/(^|,)".$ibforums->member['mgroup']."(,|$)/", $event['read_perms'] ) )
  	 {
     continue;
  	 }
   }
   
   $c_time = date( 'j-F-y', $event['unix_stamp']);
   
   $show_events[] = "<a href='{$ibforums->base_url}act=calendar&code=showevent&eventid={$event['eventid']}' title='$c_time'>".$event['title']."</a>";
	 }
	 
	 $ibforums->lang['calender_f_title'] = sprintf( $ibforums->lang['calender_f_title'], $ibforums->vars['calendar_limit'] );
	 
	 if ( count($show_events) > 0 )
	 {
   $event_string = implode( $this->sep_char.' ', $show_events );
   $stats_html .= $this->html->calendar_events( $event_string  );
	 }
	 else
	 {
   if ( ! $ibforums->vars['autohide_calendar'] )
   {
  	 $event_string = $ibforums->lang['no_calendar_events'];
  	 $stats_html .= $this->html->calendar_events( $event_string  );
   }
	 }
 }

Теперь найти:

       $this->sep_char = trim( $this->html->active_list_sep() );

И ниже добавить:

 //-----------------------------------------------
 // Are we viewing the calendar?
 //-----------------------------------------------
 
 if ($ibforums->vars['show_calendar'])
 {
 
	 if ($ibforums->vars['calendar_limit'] < 2)
	 {
   $ibforums->vars['calendar_limit'] = 2;
	 }
	 
	 $our_unix         = time() + $std->get_time_offset();
	 $max_date         = $our_unix + ($ibforums->vars['calendar_limit'] * 86400);
	 
	 $DB->query("SELECT eventid, title, read_perms, priv_event, userid, unix_stamp
              FROM ibf_calendar_events WHERE unix_stamp > $our_unix and unix_stamp < $max_date ORDER BY unix_stamp ASC");
	 
	 $show_events = array();
	 
	 while ($event = $DB->fetch_row())
	 {
   if ($event['priv_event'] == 1 and $ibforums->member['id'] != $event['userid'])
   {
  	 continue;
   }
   
   //-----------------------------------------
   // Do we have permission to see the event?
   //-----------------------------------------
   
   if ( $event['read_perms'] != '*' )
   {
  	 if ( ! preg_match( "/(^|,)".$ibforums->member['mgroup']."(,|$)/", $event['read_perms'] ) )
  	 {
     continue;
  	 }
   }
   
   $c_time = date( 'j-F-y', $event['unix_stamp']);
   
   $show_events[] = "<a href='{$ibforums->base_url}act=calendar&code=showevent&eventid={$event['eventid']}' title='$c_time'>".$event['title']."</a>";
	 }
	 
	 $ibforums->lang['calender_f_title'] = sprintf( $ibforums->lang['calender_f_title'], $ibforums->vars['calendar_limit'] );
	 
	 if ( count($show_events) > 0 )
	 {
   $event_string = implode( $this->sep_char.' ', $show_events );
   $this->output .= $this->html->calendar_events( $event_string  );
	 }
	 else
	 {
   if ( ! $ibforums->vars['autohide_calendar'] )
   {
  	 $event_string = $ibforums->lang['no_calendar_events'];
  	 $this->output .= $this->html->calendar_events( $event_string  );
   }
	 }
 }


2. Открыть Skin/s*/skin_boards.php
Найти:

function calendar_events($events = "") {
global $ibforums;
return <<<EOF
       <tr>
          <td class='pformstrip' colspan='2'>{$ibforums->lang['calender_f_title']}</td>
  	 </tr>
  	 <tr>
         <td class='row2' width='5%' valign='middle'><{F_ACTIVE}></td>
         <td class='row4' width='95%'>$events</td>
       </tr>
EOF;
}

Заменить на:

function calendar_events($events = "") {
global $ibforums;
return <<<EOF
<div class="tableborder">
<table cellpadding='4' cellspacing='1' border='0' width='100%'>
       <tr>
          <td class='pformstrip' colspan='2'>{$ibforums->lang['calender_f_title']}</td>
  	 </tr>
  	 <tr>
         <td class='row2' width='5%' valign='middle'><{F_ACTIVE}></td>
         <td class='row4' width='95%'>$events</td>
       </tr>
</table>
</div><br>
EOF;
}

Ссылка на комментарий
Поделиться на других сайтах

  • 0

Во. Сам сделал:

 

Добавить в Skin/s*/skin_boards.php

 

function calendar_header() {
global $ibforums;
return <<<EOF
   <br />
<div class="tableborder">
 <div class="maintitle">События</div>
 <table cellpadding='4' cellspacing='1' border='0' width='100%'>
EOF;
}

function calendar_events_yes($events = "") {
global $ibforums;
return <<<EOF
       <tr>
          <td class='pformstrip' colspan='2'>{$ibforums->lang['calender_f_title']}</td>
   	</tr>
   	<tr>
         <td class='row2' width='5%' valign='middle'><img src=/forums/style_images/1/bf_new.gif></td>
         <td class='row4' width='95%'>$events</td>
       </tr>
EOF;
}

function calendar_events_no($events = "") {
global $ibforums;
return <<<EOF
       <tr>
          <td class='pformstrip' colspan='2'>{$ibforums->lang['calender_f_title']}</td>
   	</tr>
   	<tr>
         <td class='row2' width='5%' valign='middle'><img src=/forums/style_images/1/bf_nonew.gif></td>
         <td class='row4' width='95%'>$events</td>
       </tr>
EOF;
}

function calendar_footer() {
global $ibforums;
return <<<EOF
        </table>
 </div>
<br>
EOF;
}

 

Добавить в /sources/Boards.php

перед

$this->process_all_cats();

 

//-- calendar events begin
 if ($ibforums->vars['show_calendar'])
 {
 	if ($ibforums->vars['calendar_limit'] < 2)
 	{
   $ibforums->vars['calendar_limit'] = 2;
 	}
 	$our_unix         = time() + $std->get_time_offset();
 	$max_date         = $our_unix + ($ibforums->vars['calendar_limit'] * 86400);
 	$DB->query("SELECT eventid, title, read_perms, priv_event, userid, unix_stamp
              FROM ibf_calendar_events WHERE unix_stamp > $our_unix and unix_stamp < $max_date ORDER BY unix_stamp ASC");
 	$show_events = array();
 	while ($event = $DB->fetch_row())
 	{
   if ($event['priv_event'] == 1 and $ibforums->member['id'] != $event['userid'])
   {
   	continue;
   }
   if ( $event['read_perms'] != '*' )
   {
   	if ( ! preg_match( "/(^|,)".$ibforums->member['mgroup']."(,|$)/", $event['read_perms'] ) )
   	{
     continue;
   	}
   }
$c_time = date( 'd.m.Y', $event['unix_stamp']);
$show_events[] = "<a href='{$ibforums->base_url}act=calendar&code=showevent&eventid={$event['eventid']}' title='$c_time'>".$c_time.' - '.$event['title']."</a>";
 	}
 	$ibforums->lang['calender_f_title'] = sprintf( $ibforums->lang['calender_f_title'], $ibforums->vars['calendar_limit'] );
 	if ( count($show_events) > 0 )
 	{
   $event_string = implode( '<br>', $show_events );
   $stats_html .= $this->html->calendar_events_yes( $event_string  );
 	}
 	else
 	{
   if ( ! $ibforums->vars['autohide_calendar'] )
   {
   	$event_string = $ibforums->lang['no_calendar_events'];
   	$stats_html .= $this->html->calendar_events_no( $event_string  );
   }
 	}
 	if ($stats_html != "")
   {
   $this->output .= $this->html->calendar_header();
   $this->output .= $stats_html;
   $this->output .= $this->html->calendar_footer();
 	}
 }
//-- calendar events end

Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить на вопрос...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Зарузка...
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.