umade.ru

Календарь в MT и начало недели с понедельника

Как и многие блог-движки, 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) сайта более быстрой, а также прилично уменьшит нагрузку на сервер.

Всего оставлено 7 комментариев

  1. Echos 16 июня 2004

    Большое спасибо :)

  2. Никита 17 июня 2004

    Всегда пожалуйста! :p

  3. Kernel 18 июня 2004

    у меня стоит MT 3.0D. сделал вышеописанное, не получилось. не подскажете, в чём загвоздка?
    если не трудно, на мыло

  4. Kernel 18 июня 2004

    прошу прощения, всё в порядке. дни в таблице не поменял :)

  5. kost 17 августа 2004

    В версии 3.0D это примерно в районе 1941 строки. :)

  6. Inna 6 июля 2005

    Это сделала, получилось. Спасибо огромное!! А как сделать ещё так, чтобы месяц тоже был на руском языке?

  7. Никита 6 июля 2005

    Инна, почитайте эту запись.

Поиск по сайту

Из последнего

Архив статей и записей