Как оставить поле даты в профиле пустым? [решено]

Главные вкладки

Аватар пользователя T-34 T-34 15 августа 2008 в 8:31

Уже давно хочу разобраться с этим - если добавить поле даты в профили, то при редактировании данных профиля в это поле ставится текущая дата, и обнулить ее нельзя. Как исправить это недоразумение?

Решение было найдено здесь (внимание: хак ядра!).
Патч form.inc добавляет пустые значения в выпадающий список выбора даты и делает их значениями по умолчанию. Я также пропатчил profile.module, чтобы в профиле не выводилась пустая дата (00.00.0).
Мой патч profile.module также заворачивает url в профиле пользователя в noindex и добавляет nofollow:

<?php
-        return '<a href="'check_url($value) .'">'check_plain($value) .'</a>';
+        return 
'<noindex><a rel="nofollow" href="'check_url($value) .'">'check_plain($value) .'</a></noindex>';
?>
ВложениеРазмер
Иконка пакета form.inc_.patch_.zip877 байт
Иконка пакета profile.module.patch_.zip831 байт

Комментарии

Аватар пользователя T-34 T-34 7 января 2009 в 14:07

Отлично, фикс работает, единственная недоработка - если дату сохранить пустой, в профиле отображается дата 00.00.0

Аватар пользователя T-34 T-34 9 марта 2009 в 2:10

чтобы нулевая дата не отображалась в профиле, в profile.module нужно добавить условие:

function profile_view_field($user, $field) {

...

         $replace = array(
          'd' => sprintf('%02d', $value['day']),
          'j' => $value['day'],
          'm' => sprintf('%02d', $value['month']),
          'M' => map_month($value['month']),
          'Y' => $value['year'],
          'H:i' => NULL,
          'g:ia' => NULL,
        );
        return strtr($format, $replace);

=>

function profile_view_field($user, $field) {

...

        if($value['day']) {
         $replace = array(
          'd' => sprintf('%02d', $value['day']),
          'j' => $value['day'],
          'm' => sprintf('%02d', $value['month']),
          'M' => map_month($value['month']),
          'Y' => $value['year'],
          'H:i' => NULL,
          'g:ia' => NULL,
        );
        return strtr($format, $replace);} else return 0;