Уже давно хочу разобраться с этим - если добавить поле даты в профили, то при редактировании данных профиля в это поле ставится текущая дата, и обнулить ее нельзя. Как исправить это недоразумение?
Решение было найдено здесь (внимание: хак ядра!).
Патч 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_.zip | 877 байт |
profile.module.patch_.zip | 831 байт |
Комментарии
Нашел решение: http://drupal.org/node/223845
еще не проверял у себя
Отлично, фикс работает, единственная недоработка - если дату сохранить пустой, в профиле отображается дата 00.00.0
чтобы нулевая дата не отображалась в профиле, в profile.module нужно добавить условие:
...
$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);
=>
...
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;
упс, а может лучше переопределить функцию?
Обновил пост, прикрепил патчи.
а без хака ядра никак нельзя?
Думаю, можно. Мне хватает патча.
Напишите пожалуйста как "включить" этот патч на закрытие индексации урлов в профиле.
В profile.module замените строку
return '<a href="'. check_url($value) .'">'. check_plain($value) .'</a>';
на
return '<noindex><a rel="nofollow" href="'. check_url($value) .'">'. check_plain($value) .'</a></noindex>';
Пасиб
Модуль birthdays решает проблему без хака ядра.