Предлагаю решение

Курим систему меню Drupal

30 ноября 2010 в 17:24

Рассмотрим кусок меню на обычном сайте.

Пока все стандартно. Теперь мы хотим, чтобы когда пользователь нажимает на меню Компания ему открывалась страница О компании.

Как обрезать теги в тизере? Решение есть!

29 ноября 2010 в 17:32

Всем привет!

Я думаю, что вам всем, а если не всем, то многим известна проблема: пользователи публикуют контент в том формате, в котором им (пользователям) хочется. Иной раз на выходе выглядит это презабавнейше: в рамках одной вьюхи или странички стили тизеров "пляшут" - нода жирным, нода италиком, нода с подчеркиванием, нода с "битым" куском видео (object) и т.д. Выглядит не очень, а все теги не запретишь. Что же делать?

Пишем функцию в template.php:

function ИМЯ ТЕМЫ_preprocess_node(&$vars, $hook) {
// Strip tags from teaser
if ($vars['teaser']) {
$coreteaser = $vars['node']->content['body']['#value'];
if ($coreteaser) {
$teaser = $vars['content'];
$start = strpos($teaser, $coreteaser);
$length = strlen($coreteaser);
$replacement = strip_tags($coreteaser);
$vars['content'] = substr_replace($teaser, $replacement, $start, $length);
}
}
}

Отлично. Поубивали все теги! Верните мне переносы строки и картинки, с3№;%!

Нет проблем, шеф!

Меняем:
$replacement = strip_tags($coreteaser);

на

$replacement = strip_tags($coreteaser, '
');

Нет, все равно фигня какая-то. Прикрепеленные темы и голосования побились!
И снова никаких проблем!

Дописываем:
if(($vars['sticky'])|| ($vars['node']->type == 'poll')) {
//do nothing, leave all tags
}
else {

и в самом конце, после $vars['content'] = substr_replace($teaser, $replacement, $start, $length);
}
}

еще одну }

В сборе получаем:
function ИМЯТЕМЫ_preprocess_node(&$vars, $hook) {

[РЕШЕНО] CCK поле денежной единицы

28 ноября 2010 в 21:49

Есть поле в CCK с денежной единицей, заношу ее через тип "целое число"
как можно сделать чтобы при выводе дописывалась после цифры буква "р."(рубли)

нашел CCK money, пробую
оказывается для работы этого модуля нужен не только CCK, но и
Currency_api, Format_number , Formatted_number
в настройках поля типа материала выбираем валюту(Available currencies), чтобы не видеть присоздении позиции огромного списка не нужных валют.
для удобства ставим "Значение по умолчанию"

но вопрос не решен. как сделать чтобы была дописка не RUB а р.
Но к сожалению после цены выводится "RUB", редактирование перевода не помогло.
застрял на том как вывести вместо RUB

Новое чтиво по Drupal

28 ноября 2010 в 11:54

книга для тех, кто еще не набил шишек на Drupal 7. В основном обзор тем людям, кто знакомится с новой версией.

http://www.wowebook.com/open-source/foundation-drupal-7.html

Перевод друпала (Новичкам и не только)

27 ноября 2010 в 18:33

В связи с последними событиями и шумихой вокруг локализации - http://www.drupal.ru/node/52937

Предлагаю направить часть своей умственной деятельности на благое дело - создание и редактирование переводов. Здесь приведён пример, как и где можно переводить или редактировать уже готовые переводы.

Данный пример написан с учётом того, если делать перевод будет человек не знающий английского языка Smile

Возможно кому-то поможет переводить отдельные строки или фразы, а возможно и делать полноценные переводы, или редактировать и утверждать уже сделанные переводы (на данный момент - десятки тысяч строк не утверждённого перевода).

Что нужно, чтобы сделать перевод?

Немного логики, изучение терминологии друпала, терпения, "дофига" терпения и очень "дофига" терпения Lol Так же не помешает использовать переводчик, например - http://translate.google.com/#

Ну и конечно - немного смелости Smile Не бойтесь, вас никто не укусит, во всяком случае много раз Smile

Что нужно, чтобы редактировать перевод?

То же, что и переводчику, и желательно умение грамотно составлять предложения, то есть, если вы в школе сочинения и изложения писали на пятёрки, то проблем у вас не будет Smile

Есть три варианта, как делать или редактировать перевод:

Первый - переводить в .PO файле. PO файл - это специальный формат файла для переводов. Для перевода вам надо с сервера локализации скачать файл, для перевода модуля - http://drupaler.ru/translate/languages/ru/export

Как прикрепить большой файл в материал (модуль upload)

26 ноября 2010 в 21:45

Есть проблема: в настройках хостинга максимальный размер загружаемых по http файлов - 10Mb, а нужно загрузить файл в 50Mb. Ну и вообще большие файлы удобнее загружать по FTP.

Решение "в лоб":

  1. Создаем пустой файл с нужным именем
  2. При помощи модуля upload "прицепляем" к материалу
  3. Через FTP заменяем нулевой файл на тот, который нам нужен
  4. Выполняем нехитрый SQL-скрипт - к примеру, через модуль devel:
$res = db_query('select * from {files}');
while ($file=db_fetch_object($res)) {
IF ($file->filesize == 0) db_query("update {files} set filesize=%d where fid=%d",filesize($file->filepath),$file->fid);
}

Вуаля! Все файлы имеют реальный размер.

P.S. Для filefield задача решается проще - при помощи модуля [module=filefield_sources]

Ajax_comments и форма комментариев выше комментариев

26 ноября 2010 в 2:26

Есть замечательный модуль Ajax_comments от neochief, который позволяет открывать форму комментария непосредственно под комментарием (посредством AJAX). И есть статья этого-же (кстати многоуважаемого лично мной) автора про перенос формы ввода комментария непосредственно под сам пост, перед списком остальных сообщений - Модуль «Форма комментариев поверх комментов» и даже есть модуль который все это реализует - Comment form above comments. Но есть один нюанс - не дружат эти модули между собой (по крайней мере у меня не получилось их подружить напрямую).
Просматривая исходные коды данных модулей в надежде их все таки подружить, я заметил что в принципе метод предложенный neochief, а именно подменой темы на некотором этапе рендеринга, на свою не единственный (опять же гибкость Drupal в этом плане меня поражает).

Поэтому хочу предложить свой метод, основанный на хуке hook_menu_alter, ведь в принципе ни кто нам не запрещает полностью переопределить вывод ноды подменив стандартный коллбэк «node/%node».

Статья достаточно объемная, с исходными кодами поэтому кому интересно можно посмотреть здесь
Ajax_comments и форма комментариев выше комментариев, там же находиться и архив с модулем.

Модуль, который позволяет обрезать фотографии и сохранять их на сервере

25 ноября 2010 в 1:11

Недавно пришлось написать модуль, который обрезает изображения и автоматически сохраняет их на сервере. Назвал его image_cropper. Решил поделиться, может кому пригодится в хозяйстве. Скрипт изменения размеров взят отсюда (качать не надо, он уже запакован в модуле).

Мой топ хостинга для drupal и не только. Личный опыт.

24 ноября 2010 в 23:25

безлимитный хостинг drupalКак и многие из вас я однажды задался вопросом — так есть ли идеальный и, желательно, безлимитный хостинг drupal?

Ну хочется же, чтобы все работало как часы: и uptime 100%, и тех поддержка на уровне, и работать удобно, и гибкость, и производительность, и все это за приемлемые деньги. Этакий выделенный хостинг... шаред хостинг )))

В общем помыкался я от одного провайдера к другому + сайты клиентов понаблюдал. Один из важных критериев выбора — должна быть с русскоязычная поддержка, т. к. думал прежде всего не про себя, а про клиентов с минимальными техническими навыками. Это немного осложняло задачу.

Прошло время и… мой ответ — идеального хостинга нет. Впрочем, есть весьма неплохие. Список ниже, с кратким акцентом на особенностях.

nic.ru или ру центр хостинг — вариант неплохой, но дороговато. Рекомендую выбирать тариф не ниже 301-го. Drupal-cайты на нем работают довольно шустро. Есть все необходимые акселераторы и возможность настраивать параметры php.ini под себя, включая php-memory. Можно устанавливать свои nginx, php, mysql и т.д. Хотя, даже используя возможности настроек «из коробки» все будет работать.