Как и многие блог-движки, Movable Type позволяет создавать календарь на сайте. Вот только нет возможности настроить календарь так, чтобы день недели начинался с понедельника, а не как во многих странах — с воскресенья. Но это становиться поправимым путём незатейливой модификации одного файла.
В директории /lib/MT/Template/
находится файл Context.pm
, с которым надо чуть-чуть поработать. Примерно на 1517 строке будут происходить все изменения:
my($start, $end) = start_end_month($prefix);
my($y, $m) = unpack 'A4A2', $prefix;
my $days_in_month = days_in($m, $y);
-- my $pad_start = wday_from_ts($y, $m, 1);
-- my $pad_end = 6 - wday_from_ts($y, $m, $days_in_month);
++ my ($sdow);
++ $sdow = 0 unless ($sdow = $args->{sdow});
++ my $pad_start = (wday_from_ts($y, $m, 1) + 7 - $sdow) % 7;
++ my $pad_end = 6 - (wday_from_ts($y, $m, $days_in_month) + 7 - $sdow) % 7;
require MT::Entry;
my $iter = MT::Entry->load_iter({ blog_id => $blog_id,
created_on => [ $start, $end ],
Всё, что в вышеприведённом коде начинается с --
нужно удалить, а всё то, что начинается c ++
нужно добавить.
Теперь непосредственно в шаблоне, где находится календарь нужно добавить sdow="1"
в <mtcalendar>
. Получится <mtcalendar sdow="1">
. Затем вручную поменять дни в таблице. Удачи.
Совет: если планируется размещать календарь более чем на одной странице, то будет рационально сделать новый шаблон, куда поместить код самого календаря, и уже через <mtinclude module="название шаблона">
вставлять его на каждую страницу. Это сделает сборку (rebuild) сайта более быстрой, а также прилично уменьшит нагрузку на сервер.
Большое спасибо 🙂
Всегда пожалуйста! :p
у меня стоит MT 3.0D. сделал вышеописанное, не получилось. не подскажете, в чём загвоздка?
если не трудно, на мыло
прошу прощения, всё в порядке. дни в таблице не поменял 🙂
В версии 3.0D это примерно в районе 1941 строки. 🙂
Это сделала, получилось. Спасибо огромное!! А как сделать ещё так, чтобы месяц тоже был на руском языке?
Инна, почитайте эту запись.