DravE: Блог

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

Избыточное хранение данных в node_revisions

9 февраля 2011 в 16:54

Заметил такую особенность, что независимо от ограничения символов в Настройки публикации (Длина усеченных материалов) в таблице node_revisions все равно заполняется столбец teaser, причем если не ограничивать, то он содержит тоже, что и body в той же таблице.

То есть, получается две копии одних данных. А с числом нод будет расти размеры таблицы, причем без необходимости.

Собственно вопрос:
Как "отключить" запись в teaser, а при чтении читать с body ?

Вопрос по $links (comment.tpl.php)

14 октября 2010 в 15:50

Недавно пришла в голову идея изменить ссылку "Ответить" в комментариях (при клике на нее в поле ввода комментариев добавлялось обращение типа "< strong >Имя_Автора< / strong >, " с помощью js). Для изменения использовал hook_link(), что бы не писать модуль для пары строчек кода решил править "Ответить" прям comment.module изменив

$links['comment_reply'] = array(
        'title' => t('reply'),
        'href' => "comment/reply/$comment->nid/$comment->cid"
      );

на

$links['comment_reply'] = array(
        'title' => t('reply'),
        'href' => "#edit-comment",
        'attributes' => array('onclick' => "answer('{$user->name}','{$comment->cid}')")
      );

Все вроде работает то есть js вызывается и работает правильно, проблема только в том что drupal преобразует #edit-comment в http://domen.com/%2523edit-comment и получается что сразу после выполнения js, происходит переход на http://domen.com/%2523edit-comment.

Собственно вопрос
Каким образом предотвратить какие либо действия при клике по ссылке кроме события onclick или чтобы вместо http://domen.com/%2523edit-comment было просто #edit-comment?

PS. Конечно можно при загрузке страницы брать все ссылки и править href javascrip-ом, но хотелось бы как то "по умнее"))

Заранее благодарен!

Views или чтение с БД ?

16 июня 2010 в 19:51

Я начал работать с друпал относительно недавно, и после прочтения с 10 статей пришел к выводу, что модуль views слишком ресурсоемкий.
А так как сайт который я делаю в данный момент предполагает большое количество пользователей к тому же он уже содержит немало модулей, то от Views я решил отказаться, как мне казалось без него можно обойтись и читать данные напрямую с БД.
Но недавно стала задача реализовать ввод/вывод даты (выхода фильма), а также последующую выборку по этой дате и вывода материала с определенной датой или вывод материалов в диапазоне некоторых дат (но вообщем суть понятна). Для этого я использовал модуль data (cck) но в последствии не обнаружил введенных дат в БД.
(Насколько я понял они там хранятся в какой то специальной форме, чтоб в последствии изменения шаблона даты это не влияло на данные в БД.) Вообщем от модуля data тоже пришлось отказаться. После чего для реализации дат в голову пришла только 1 идея, это создать тестовое поле(cck) и в него вводить даты в формате "20100616"(16.06.2010) теперь впринципи диапазон и даже конкретную дату отловить не проблема. Но вот только как быть с их выводом в теле ноды тут есть 2 варианта, либо создавать еще одно поле для "человеческих"(16 Июн 2010) дат или писать функцию которая преобразует дату к "человеческой" и вызывается при каждом отображении тела ноды. Все бы нечего, но полей с датами в одном материале нужно 4 и если для каждой определить по 2 поля (машинное и человеческой), то это 8 лишних полей.

Подскажите как быть:
Продолжить в том же духе? (8 полей - неудобно зато экономно)