Несколько недель назад у меня появилась задача сделать архив новостей для Drupal 6.x. Базой я выбрал модуль Archive. Продукт неплохой, но не совсем, то что мне нужно было. В результате, я сделал свой модуль, более простой и с AJAX (по требованию заказчика). Но сейчас не об этом.
При работе с Archive, у меня появилась такая проблема: на интернет-хосте пропала функция cal_days_in_month(), хотя на localhost'e было все ок.
Что бы функция заработала, нужно ее написать, правильно? :)
1. Открываем archive/archive.module
2. Вставляем функцию:
// the entire month into the block.
$prev_month = $month==1?12:$month-1;
$prev_year = $month==1?$year-1:$year;
+ //some old php versions don't have cal_days_in_month(), this code accounts for that
+ if(!function_exists('cal_days_in_month')){
+ function cal_days_in_month($calendar,$month, $year)
+ {
+ // $calendar just gets ignored, assume gregorian
+ // calculate number of days in a month
+ return $month == 2 ? ($year % 4 ? 28 : ($year % 100 ? 29 : ($year % 400 ? 28 : 29))) : (($month - 1) % 7 % 2 ? 30 : 31);
+ }
+ }
$num_days_prev = cal_days_in_month(CAL_GREGORIAN, $month-1, $year);
$next_month = $month==12?1:$month+1;
$next_year = $month==12?$year+1:$year;
Плюсиками я обозначил код, который мы вставляем. enjoy ;)
Читать далее