Блог пользователя - neochief

Безопасный код: Работа с базой данных

20 февраля 2009 в 19:34

Друпал предоставляет свои средства для доступа к базе данных.

Во-первых, это позволяет не зависеть от конкретного типа СУБД. На сегодняшний момент полностью функционирует прослойка для MySQL и PostgreeSQL. В седьмом Друпале этот список будет расширен Ораклом и SQLite.

Во-вторых, прослойка позволяет защититься от SQL инъекций.

5 лет drupal.ru

19 февраля 2009 в 18:13

Друзья, мы с вами прошлепали знаменательную дату. Оказывается 16 февраля была круглая дата — 5 лет Drupal.ru.

С чем всех и поздравляю!

PS> Узнал перелопачивая старые ноды.

Безопасный код: Подделка межсайтовых запросов

17 февраля 2009 в 0:59


Поводом к написанию этой статьи послужило нахождение мною уязвимости в одном довольно известном модуле. Так как по правилам обнаружения уязвимостей, я пока не вправе распространяться о деталях, то расскажу об уязвимости в общих чертах, а также о методах борьбы с ней. http://drupal.org/node/413938

Борьба с фильтром переноса строк

14 февраля 2009 в 23:17

При составлении контента очень удобно использовать стандартный фильтр переноса строк и параграфоф. Однако, если требуется использовать экзотические HTML тэги, фильтр переноса может поломать валидный HTML код некорректной вставкой параграфов.

Проблему можно решить в лоб, использовав формат ввода без переноса строк. Но есть еще один обход проблемы. Друпаловский фильтр переноса обходит стороной теги <pre>. Если вставить сложный кусок текста внутрь этого тега, его HTML разметка останется прежней.

Казалось бы — вот оно, решение. Но тэг <pre> был задуман для того, чтобы его внутренности выглядели точно так, как были введены. Т.е. переводы строки остаются переводами строки, а не пробелами. Все это можно отключить используя CSS:

pre.noformat{
white-space:normal;
}

После этого, куски проблемного текста вводятся так:

<pre class="noformat">
<p>текст-текст</p>
<blockquote>
  <p>Текст-текст-текст</p>
  <div class="some class">Еще текст <div>и еще немного</div></div>
</blockquote>
</pre>

Не забывайте, что внутри такого блока параграфы надо будет расставлять вручную.

Для тех, кто не знает откуда статья Wink

10 шагов к постижению форм в Друпале

28 января 2009 в 13:14


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

Перевод справочника Forms API

20 января 2009 в 0:31

Сегодня закончил полный перевод справочника Forms API для обоих друпалов. Во время перевода, руководствовался не только исходным текстом, а и реальными знаниями, поэтому данный перевод даже ближе к истине, чем оригинал (в оригинале есть кое-какие концептуальные ошибки в описании). Данный справочник необходим для тех, кто работает с формами друпала. В нем описаны все элементы форм и их возможные парамеры. Описан AHAH.

Переводы на drupal.org

2 января 2009 в 22:41

Мы сделали еще один шаг навстречу светлому будущему. Итак, официально уведомляю всех, что переводы для последних версий друпала теперь доступны для скачивания на drupal.org.

Автоинкремент, бекапы и денвер

29 декабря 2008 в 18:13

Сегодня отловил одну очень неприятную штуку. В таблице users должен всегда находится пользователь с uid=0. Однако под стандартным денвером, при восстановлении бекапов, этот нулевой юзер не создается. Полагаю это все из-за того, что не включен режим NO_AUTO_VALUE_ON_ZERO (отправил запрос на форум денвера).

Решения:
1. Использовать друпаловские средства для бекапов. Это модуль Backup and Migrate.
2. Добавить в файле my.cnf в секции [mysqld] строку

sql-mode = NO_AUTO_VALUE_ON_ZERO

После чего денверский mysql будет делать все правильно.

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

Сею багу отловил после часовой мороки по поводу того, почему watchdog не показывает всех данных в логах.

Be aware.

AJAX комменты

19 декабря 2008 в 1:25

Новогодний подарок всем друпаллерам!

Мои AJAX комменты таки выпущены в свободное плавание и теперь доступны для скачивания на drupal.org.

Все, кто хочет сказать спасибо, можете смело бросать комменты в этом топике, а крайне соcтоятельные, могут бросить и пару-тройку ден.знаков на кошелек Z739117869357.

Всем спасибо, надеюсь модуль заработает сходу Smile

drupal.ru и древовидные комментарии

16 декабря 2008 в 2:08

Я уже долго являюсь членом сообщества, но до сих пор не понимаю, почему у нас комменты плоские. Ведь не удобно же. Предлагаю провести опрос и исправить данную ситуацию, если большиство поддержит.

Для большей понятности:

Обратите внимание, что сами комменты на скринах одни и теже.

drupaldojo.ru

4 декабря 2008 в 20:28

Отдам в хорошие руки домен drupaldojo.ru

Домен был зарегистрирован чуть меньше года назад с мыслью сделать там русскоязычную версию drupaldojo.com — каталога видео уроков по друпалу.

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

Руководство по обновлению сайта на Drupal6

16 ноября 2008 в 23:26


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

Если еще пару месяцев назад не было никакого смысла переходить на шестую версию Дру, то сейчас самое время об этом подумать, так как шестерка со времени изначального релиза избавилась от дюжины критических ошибок, а количество портированных модулей стремится к 80%. Помимо новых модулей, для друпаллера найдется и множество других вкусностей в шестерке, а именно:

  • Упрощение и удобство темизации
  • Множество улучшений API
  • Улучшение многоязычности
  • Общее увеличение производительности

В статье будет описан процесс обновления сайта на шестой Друпал.

Почитать полностью

Sypex Dumper + Cron

8 октября 2008 в 19:01

Модифицировал дампер для использования его как бекап-решение по крону. Качаем в атаче.

Для использования логинимся как всегда, выбираем базу и опции, нажимаем кнопку и получаем ссылку по которой будет выполняться данное действие.
Эту ссылку можно засунуть в дневной крон и будет вам счастье, главное удаляйте старые бекапы.

В скрипте изменил лишь способ приема параметров ($_POST на $_REQUEST), авторизации (по base64 логина/пароля), добавил генерацию линки.

Создание собственных Token-шаблонов

1 сентября 2008 в 18:38

Первое знакомство с модулем Token, любой друпаллер начинает с включения таких модулей как PathAuto или Auto Node Titles. Этот модуль служит для подстановки различных значений в шаблоны строк других модулей.

Модуль предоставляет великое множество возможных шаблонов, но все же, довольно часто, при построении сайта не хватает специфических шаблонов. Например, у вас есть соц. сеть. Вы хотите, чтобы у топиков в личном блоге УРЛы были вида http://site.com/vasya-pupkin/post-title, а у тех же топиков, принадлежащих группе — http://site.com/group-title/post-title. Так как для одного типа контента можно прописать только один шаблон Токена, то вы можете создать либо [user-raw][title], либо [group-title][title], но не все вместе. Большинство пользователей Друпала на этом шаге зайдет в тупик и подумает, что проблему решить невозможно.

Однако, это не так. Тем более теперь, когда решение находится внутри этой статьи.

Ссылки на скачку там же.

Русская локализая на drupal.org

29 августа 2008 в 16:27

Устанавливал давече Drupal 6. Решил установить русский язык таким образом как там написано, а именно скачать с:
http://drupal.org/project/translations

С удивлением обнаружил, что для русской локализации там только версия перевода для 4.7

Сейчас мне кто-то скажет что у нас "свой путь" (в виде русского инсталлера), но, уважаемые, стоит все-таки залить перевод с сервера локализации на drupal.org. Почему? Потому что путь новичка начинается с drupal.org

Человеческие заголовки при создании ноды

26 августа 2008 в 14:24

Наверняка многие из вас встречались с такими заголовками:

или такими:

Вся проблема в том, что в Друпале, заголовок этой формы устанавливается так:

<?phpdrupal_set_title(t('Submit @Name', array('@Name' => $types[$type]->name)));?>

И все бы было хорошо, если бы "великий и могучий", "солов'їна і співуча", а также белорусский и, возможно, ряд других языков не имели бы падежей.

...

Дальнейшее объяснение »

Для тех, кому лень заходить и читать, даю ссылку на модуль прямо здесь (Drupal 5.x):

Скачать bonus_titles

Коллективная раздача слонов

20 августа 2008 в 17:59

Многие из вас, друзья, уже знакомы с IT-жемчужиной рунета, сайтом Хабрахабр. Это коллективный блог, соц.сеть IT тематики. Друпал также представлен на нем в виде отдельного блога (сообщества). Как вы знаете, знаменитый Швабрашвабр как раз и строился под вдохновением от большого Хабра. Кроме того, Хабр является одним из основных поставщиков адептов нашого великого и могучего сообщества Smile

Итак, к сути. Проводится беспрецедентная акция по поднятию кармы всем желающим (30 человек уже получили свои плюсы). Для участия нужно 1) иметь аккаунт на хабре 2)важно: состоять в блоге Drupal 3) отписаться в комментах к этому топику (Для тех у кого по ссылке 404, читайте первые два условия)

P.S. Подробнее о Хабре, о том, зачем вообще нужна карма читаем там же.

P.P.S. Если кому не хватает кармы чтобы присоединиться к блогу Друпала, можете кидать ссылки на профили прямо здесь.

UPD. Патроны на сегодня окончены, завтра будет продолжение.

Модификация форм в Drupal

15 августа 2008 в 8:46

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

Краткое содержание:

  1. Аспекты изменение формы через систему темизации
  2. Изменение формы в модулях
  3. Применение Forms API
  4. Примеры для обоих веток Друпала

Модификация форм в Drupal (осторожно, много кода).

Хабрассылка для хабраплюсов Smile