Программирование

Разработка модулей, сниппеты и др. вопросы программирования под Drupal, а также создание собственных шаблонов. Присылайте свои разработки. Вопросы по установке и настройке готовых модулей задавайте в Установка и настройка.
Все по темам: примеры кода, патчи и утилиты, темы оформления.

icon:

doxygen генерация ссылок

Аватар пользователя Гость

Объясните, пожалуйста.
В генерируемых доксигеном хелпах в листингах php-кода названия обычных функций - это всегда ссылки на описания этих функций.

Но для всех методов классов (например, $class->func(); ) - "class" - ссылка на класс, а "func" остается простым текстом (не ссылкой на свое описание). Кроме случаев, когда этот метод применяется в методе своего же класса. Например:
class c {
z() {}
x() {
$these->z();
}
}
Как включить генерацию ссылок для методов классов?

0 Спасибо

Gzip сжатие на Drupal сайте

Аватар пользователя Nick

Несмотря на то, что в changelog для 4.5 было написано, что drupal поддерживает gzip сжатие, рычага, который включает эту поддержку я не нашел.
Не понятно есть ли поддержка вообще.

В аттаче патч, который исправляет эту ситуацию.

Использование:
1. Положите gzip.patch в корень вашего сайта.
2. patch < gzip.patch
3. Не забудьте добавить
php_flag zlib.output_compression On
в .htaccess

Ваш web-cервер должен поддерживать gzip-сжатие (впрочем, если нет, то этот патч ничего не должен испортить).

0 Спасибо

последние статьи из связанных разделов

Аватар пользователя kiev1

Вот целый день думал и не решался написать что-б не засорять форум так как мог быть уже есть такой модуль но так как ничего в голову не пришло то решился ссоздать такую тему на
вопрос с которым сталкнется любой сайто строитель - вопрос по существу: есть страничка-нода, вверху у нее друпалом стандартно перечислены таксономии-разделы к которым она принадлежит. Но это не всегда красиво, и не совсем правильно, их надо даже убрать.

Потому что если посмотреть на любой серьезный сайт то там это сделано не так.

0 Спасибо

Корректный поиск в Drupal 4.5.2

Аватар пользователя edhel

Посмотрел я в табличку search_index и увидел там много нехороших слов - то nbsp, то слитно пара слов, то еще какая-нибудь фигня. Короче решил подлатать search.module и заменил там код:

// Strip heaps of stuff out of it.
$wordlist = preg_replace("'<[\/\!]*?[^<>]*?>'si", '', $wordlist);

// Remove punctuation/special characters (same rule as do_search()).
$wordlist = preg_replace("'(»|«|!|%|,|:|;|\(|\)|\&|\"|\'|\.|-|\/|\?|\\\)'", '', $wordlist);

// Strip out (now mangled) http and tags.
$wordlist = preg_replace("'http\w+'", '', $wordlist);
$wordlist = preg_replace("'www\w+'", '', $wordlist);

// Remove all newlines of any type.
$wordlist = preg_replace("'([\r\n]|[\r]|[\n])'", ' ', $wordlist);

// Lower case the whole thing.
$wordlist = strtolower($wordlist);

на такой:

$wordlist = strtolower($wordlist);

0 Спасибо

Iced Drupal

Аватар пользователя axel

Время от времени поднимаются темы о скорости Drupal в частности и PHP-скриптов вообще. Да, динамическая генерация страниц ресурсы само собой отъедает. Так ли уж нужна она всегда? Предостаточно типов контента заносится одиножды в базу и далее только считывается. Удобно хранить это в HTML и не морочиться с предварительной генерацией контента скриптами. С другой стороны отказываться от удобств CMS по динамическому созданию и структуризации контента тоже не хочется. Можно ли это совместить?

0 Спасибо

Фильтр "Кавычкер": правильные кавычки и проч.

Аватар пользователя edhel

Здесь промелькивал php-код для правильной расстановки кавычек, тире и проч. Топик этот здесь: http://drupal.ru/node/624

Я завернул этот код в фильтр. Пользуйтесь наздоровье. %]

0 Спасибо

Патч: "полосатые" комментарии под phptemplate

Аватар пользователя axel

Чередование цвета комментариев - одна из любимых фишек дизигнеров. Фиг знает зачем надо, объясняют повышением юзабельности и всё такое. В друпале список форумов имеет чередующиеся стили, что даёт возможность присваивать разные цвета, а вот комментам всем присвоен общий стиль. Чтобы не лезть с правками в стандартные модули можно реализовать альтернативную функцию вывода в теме. Я делал под phptemplate, но способ адаптируем и к другим движкам тем. Для phptemplate следует заменить файл comment.tpl.php в вашей теме - см. аттач.

0 Спасибо

user_agent.patch: Показ User Agent`а в логах

Аватар пользователя Nick

Это патч для statistics.module и watchdog.module, который позволяет просматривать браузрер (User Agent) пользователя, который заходил на сайт.

Прошу тестирвать!

Usage:
1.
mysql -u user_name -p database_name < user_agent.mysql
2.
patch -p0 < user_agent.patch

0 Спасибо

Taxonomy containers (patch)

Аватар пользователя axel

Patch improves usability of taxonomy by offering term-containers. Term container is like container in forum module - you may see it in list, but not allow to select it. Patch solves problem in forum module where user may wrongly select forum categories for posting. Though term containers may be useful not only for forum module.

Patch applicable to Drupal 4.5 and will adapted to 4.6 later. Unfortunately in 4.6 forum structure based on own list instead of standard taxonomy and patch will useless for forum.module.

Patch use OPTGROUP tag for making menu elements unselectable (such way, as menu at admin page of locale.module does). You may find additional information about OPTGROUP tag usage and browser compatibility for example here: http://www.webreference.com/js/tips/010716.html

Gzipped patch here: [file:3] You need also modify term_node table:

ALTER TABLE `term_data` ADD `container` TINYINT(1) AFTER `description`;

Example of selection field after patch applied:

0 Спасибо

Контейнеры в таксономии - патч

Аватар пользователя axel

Патч позволяет представлять отдельные термины таксономии как "контейнеры", т.е. термины к которым нельзя привязать документ, но в списке выбора они присутствуют (по аналогии с форумами-контейнерами). Это улучшает юзабельность тех же форумов - форумы-контейнеры видеть можно, а вот выбрать их для постинга - нельзя.

[file:03]
После применения патча надо добавить поле в таблицу term_data:

0 Спасибо

подскажите функцию

Аватар пользователя kiev1

подскажите пожалуйста стандартную функцию делающую вот так
if(strstr($_GET[q], "taxonomy")){
...
}
это для темы - например мы запрашиваем по url страничку которая сделана каким-то модулем например таксономией и хотим для нее переписать вывод так что-бы приклеенные ноды были справа а неприклеенные слева - то есть дизайн поменять. подозреваю что в друпал есть что-то стандартное.

И еще что такое фильтры (модули форматирования)?

0 Спасибо

Архивация во вторую базу

Аватар пользователя PG

А есть в Drupal хотя бы теоретически понятие архивации, когда с целью снижения нагрузки на базу старые записи выкидываются в другую базу? Это дает возможность снизить нагрузку и уменьшить размер основной рабочей базы, откуда берется свежая информация и куда складываются свежие обсуждения.

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

Я перечисляю только форумы, но сама идея к drupal относится не в меньшей степени.

0 Спасибо

new script phpbb2drupal (translation of the #576)

Аватар пользователя axel

Script for convertation phpbb 2.0.11 to drupal 4.5.2. Based on the original script by Fedor. Script placed here: http://www.mova.org/~lowry/phpbb2drupal.html

Also see attached script in original Russian node.

0 Спасибо

Новый скрипт phpbb2drupal

Аватар пользователя mikhailian@drupal.org

Сабж, недавно перенёс phpbb 2.0.11 в drupal 4.5.2. Пришлось немного изменить скрипт Fedor'а. Моя версия лежит на http://www.mova.org/~lowry/phpbb2drupal.html

--
Alexander Mikhailian

0 Спасибо

Эмуляция ModeRewrite для Drupal

Аватар пользователя Гость

//
// Для эмуляции нужно вставить это сообщение в начало файла "index.php"
// и выставить его обработчиком ошибок (DocumentError 404)
//
//-------------------------------------------------------
if ( empty($_GET["q"]) && !ereg("$?",$_SERVER["REQUEST_URI"]) == false){
$_GET["q"] = $_SERVER["REQUEST_URI"];
$_GET["q"] = ereg("$/",$_GET["q"])
? substr($_SERVER["REQUEST_URI"]["q"], 1)
: $_SERVER["REQUEST_URI"];
}
//-------------------------------------------------------

0 Спасибо

Чего не хватает движку форума

Аватар пользователя PG

...только не надо про "нехватку двух камней", на один положить, другим прихлопнуть. :)

С пользовательской точки зрения:

- Отслеживание задвоений. Нужен механизм, который бы исключал возможность повторной отправки того же сообщения. Или отлавливая сообщения-дубликаты, или дизабля кнопку отправки формы после первого же срабатывания.

- Редактирование отправленных сообщений автором в течение определенного срока (опечатки отлавливать и т.п.)

0 Спасибо

Будущее Flexinode - Content Construction Kit

Аватар пользователя axel

Джонатан Чаффер (Jonathan Chaffer aka JonBob) — автор модуля flexinode позволяющего создавать новые типы документов для Drupal не прибегая для этого к программированию. В разделе Content Construction Kit на своём сайте JonBob описывает недостатки существующей реализации flexinode (в основном они сводятся к плохой масштабируемости) и предлагает новую схему, свободную от этих недостатков. Очень возможно, что новый flexinode (или как его назвал автор

0 Спасибо

интеграция Drupal и Vbulletin

Аватар пользователя Гость

Я понимаю, что Drupal создан, как отдельная система и интеграция с чем-либо не требуется, но сейчас остро встал вопрос о выборе движка для сайта, на данный момент функцианирует vBulletin (форум) информацию из которого надо систематизировать, для этого очень подходит Друпал, но требуется интеграция с форумом, информации по которой я к сожалению не нашел, сам я мало понимаю в php и по этому прошу у вас помощи. За ранее спасибо удачъ и позитива.

0 Спасибо

шаблон модуля

Аватар пользователя Mops

Кто знает, есть ли "шаблон модуля", т.е. простейший модуль с комментариями, чтобы смотря как он устроен внутри сделать свой?

0 Спасибо

Визуальное описание работы движка (Engine Diagram) Drupal

Аватар пользователя alexsun

Есть ли такая штука в природе? На друпал.орг не нашёл.
Если нет, то не могли б вы рассказать основные концепции работы движка. Уж очень хорошо проработана модульность у этого движка.
Заранее спасибо.

0 Спасибо