SAT Опубликовано 7 Января 2006 Жалоба Поделиться Опубликовано 7 Января 2006 Делаем начало недели не с воскресенья, а с понедельника sources/calendar.php находим var $query_bday_cache = array(); вставляем после var $day_short = array();найти $this->first_day_array = getdate($this->our_datestamp); заменить на $this->first_day_array = $this->date_getgmdate($this->our_datestamp); найти $this->day_words = array( $ibforums->lang['D_1'], $ibforums->lang['D_2'], $ibforums->lang['D_3'], $ibforums->lang['D_4'], $ibforums->lang['D_5'], $ibforums->lang['D_6'],$ibforums->lang['D_0'] ); добавить после $this->day_short = array( $ibforums->lang['DSH_1'], $ibforums->lang['DSH_2'], $ibforums->lang['DSH_3'], $ibforums->lang['DSH_4'], $ibforums->lang['DSH_5'], $ibforums->lang['DSH_6'],$ibforums->lang['DSH_0'] ); найти function get_mini_calendar($month, $year) { global $ibforums, $DB, $std; foreach ($this->day_words as $day) { $cal_output .= $this->html->mini_cal_day_bit( substr($day,0,1) ); } заменить на function get_mini_calendar($month, $year) { global $ibforums, $DB, $std; foreach ($this->day_short as $day) { $cal_output .= $this->html->mini_cal_day_bit( $day ); } найти $first_day_array = getdate($our_datestamp); заменить на $first_day_array = $this->date_getgmdate($our_datestamp); найти } ?> вставить перед function date_getgmdate( $gmt_stamp ) { global $ibforums; $tmp = gmdate( 'j,n,Y,G,i,s,w,z,l,F', $gmt_stamp ); list( $day, $month, $year, $hour, $min, $seconds, $wday, $yday, $weekday, $fmon ) = explode( ',', $tmp ); $weekday = $ibforums->lang['D_'.$wday]; return array( 0 => $gmt_stamp, "seconds" => $seconds, // Numeric representation of seconds 0 to 59 "minutes" => $min, // Numeric representation of minutes 0 to 59 "hours" => $hour, // Numeric representation of hours 0 to 23 "mday" => $day, // Numeric representation of the day of the month 1 to 31 "wday" => $wday, // Numeric representation of the day of the week 0 (for Monday) through 6 (for Sunday) "mon" => $month, // Numeric representation of a month 1 through 12 "year" => $year, // A full numeric representation of a year, 4 digits Examples: 1999 or 2003 "yday" => $yday, // Numeric representation of the day of the year 0 through 365 "weekday" => $weekday, // A full textual representation of the day of the week Monday through Sunday "month" => $fmon, // A full textual representation of a month, such as January or Mar ); } lang/en/lang_global.php пример приведен для англиского языканайти <?php $lang = array ( добавить после DSH_0 => "Sun", DSH_1 => "Mon", DSH_2 => "Tue", DSH_3 => "Wed", DSH_4 => "Thu", DSH_5 => "Fri", DSH_6 => "Sat", Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
replicant Опубликовано 13 Января 2006 Жалоба Поделиться Опубликовано 13 Января 2006 index.php?act=calendar&code=find&what=thisweek - а если сделать вот такой запрос, то даты снова смещаются. Т.е. если сегодня скажем Пятница 13-ое, а в этой части календаря будет Суббота 13-ое. в секции//-----------------------------------------// Figure out the next / previous links//----------------------------------------- вместо $this->output .= $this->html->cal_week_content( $startweek['mday'], $this->month_words[$startweek['mon'] - 1 ], $startweek['year'], $prev_week, $next_week);добавить $this->output .= $this->html->cal_week_content( $startweek['mday'] + 1, $this->month_words[$startweek['mon'] - 1 ], $startweek['year'], $prev_week, $next_week); чтобы линк на предыдущую и следующую недели начинался с верной датыа вот дальше как быть ... видимо вместо надписи понедельник при отображении текущей недели должно стоять воскресенье, вобщем надо смещать дни на 1 позднее, чем в оригинале. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
SAT Опубликовано 14 Января 2006 Автор Жалоба Поделиться Опубликовано 14 Января 2006 извиняюсь забыл про это, вот дополнение к верхнему посту: в функции function show_week() находим $startweek = getdate( $in_week ); заменяем на $startweek = $this->date_getgmdate( $in_week ); находим еще раз находим эту же строчку чуток ниже $startweek = getdate( $in_week ); заменяем на $startweek = $this->date_getgmdate( $in_week ); находим $this->output .= $this->html->cal_week_content( $startweek['mday'] , $this->month_words[$startweek['mon'] - 1 ], $startweek['year'], $prev_week, $next_week); заменяем на $start_day = $startweek['mday'] + 1; $this->output .= $this->html->cal_week_content( $start_day , $this->month_words[$startweek['mon'] - 1 ], $startweek['year'], $prev_week, $next_week); находим $cal_output .= $this->html->cal_week_dayentry( $this->day_words[ $today['wday'] ], $today['mday'] , $this->month_words[$today['mon'] - 1], $today['mon'], $today['year'], $this_day_events ); заменяем на $day_words = $today['wday'] == 0 ? 6 : $today['wday'] - 1; $cal_output .= $this->html->cal_week_dayentry( $this->day_words[ $day_words ], $today['mday'] , $this->month_words[$today['mon'] - 1], $today['mon'], $today['year'], $this_day_events ); исправляем багу IPB(в версиях до 2.0.3 она присуствует, в 2.0.4 не глядел)в шаблонах Calendar -> cal_week_content находим <select name="y"><!--IBF.YEAR_BOX--></select> заменяем на <select name="year"><!--IBF.YEAR_BOX--></select> Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Profy Опубликовано 15 Января 2006 Жалоба Поделиться Опубликовано 15 Января 2006 Может быть не потому, что установил руссификацию..Но у меня теперь не получается внести events ео есть событияв сам календарь...Не возникает самого текстового поля. И соответственно выдаёт ошибку -"Нужно ввести текст"...Не подскажете , в чём может быть причина ? Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Dasboot Опубликовано 24 Января 2006 Жалоба Поделиться Опубликовано 24 Января 2006 а эта фича прокатит в 2.1.3 ? =) Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
SAT Опубликовано 1 Марта 2006 Автор Жалоба Поделиться Опубликовано 1 Марта 2006 Dasboot для изменения в 2.1.х на сколько я помню требуется добавить 2 или 3 строчки в ipsclass.php и заменить 1 строчку в calendar.php на сколько я помню больше не нужно ничего менять там. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Dim0nm Опубликовано 6 Марта 2006 Жалоба Поделиться Опубликовано 6 Марта 2006 SAT А если не секрет какие строчки надо вписать? У меня версия 2.1.4 Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Kosiak Опубликовано 10 Марта 2006 Жалоба Поделиться Опубликовано 10 Марта 2006 Блин, и здесь тупик для 2.1... Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
J_U_S Опубликовано 19 Апреля 2006 Жалоба Поделиться Опубликовано 19 Апреля 2006 Вроде все сделал как написано, версия форума 2.0.3. Все стало отображаться правильно, кроме шапки календаря, там названия дней недели остались на прежних местах, где я ложанулся?Вот так оно выглядит.З.Ы. И еще такой вопрос... Можно ли в версии 2.0.3. выводить будущие календарные события на отдельную страницу? Юзал поиск, нашел только для версии 1.3. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
replicant Опубликовано 15 Сентября 2007 Жалоба Поделиться Опубликовано 15 Сентября 2007 Совет для 2.0.4! Чтобы даты в текущей неделе начинались также с понедельника и числа дней не смещались по аналогии с моим постом выше необходимо сделать так, т.е. изменить часть того что сделал SAT в своем предыдущем посте. $cal_output .= $this->html->cal_week_dayentry( $this->day_words[ $today['wday'] ], $today['mday'] , $this->month_words[$today['mon'] - 1], $today['mon'], $today['year'], $this_day_events ); заменяем на $cal_output .= $this->html->cal_week_dayentry( $this->day_words[ $today['wday'] ], $today['mday'] + 1 , $this->month_words[$today['mon'] - 1], $today['mon'], $today['year'], $this_day_events ); Внешне таким образом все будет выглядеть нормально, но ДР смещаются на 1 день назад. Чтобы это исправить, необходимо добавить немного единиц в одной из секций Birthday (их там две, менять надо ту, где упоминается $today['mday']. Измененный код будет выглядеть так: //----------------------------------------- // Birthdays //----------------------------------------- if ( isset($birthdays[ $today['mday'] + 1 ]) and count( $birthdays[ $today['mday'] + 1 ] ) > 0 ) { $no_bdays = count($birthdays[ $today['mday'] + 1]); $ru_day = $today['mday'] + 1; if ( $ibforums->vars['bday_show_cal_max'] and $no_bdays <= $ibforums->vars['bday_show_cal_max'] ) { foreach( $birthdays[ $today['mday'] + 1 ] as $idx => $user ) { $this_day_events .= $this->html->cal_week_events_wrap( "code=birthdays&y=".$today['year']."&m=".$today['mon']."&d=".$ru_day, $user['name'].$ibforums->lang['bd_birthday'] ); } } else { $this_day_events .= $this->html->cal_week_events_wrap( "code=birthdays&y=".$today['year']."&m=".$today['mon']."&d=".$ru_day, sprintf( $ibforums->lang['entry_birthdays'], count($birthdays[ $today['mday'] + 1 ]) ) ); Также необходимо учесть что данные советы применимы только в случае, когда уже установлен фикс от SAT! Это просто небольшая доработка showweek с учетом birthday. Выглядит все это в итоге следующим образом http://blog.rednet.su/bd.gif Решение не самое лучшее, т.к. могут быть проблемы с датами на стыке месяцев. Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Рекомендуемые сообщения
Присоединиться к обсуждению
Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.