Обновить
0

Drupal *

Система управления сайтом

Сначала показывать
Порог рейтинга
Уровень сложности

Использование XML-RPC в Drupal. Quickstart

Время на прочтение3 мин
Количество просмотров3.7K
В этой статье я расскажу как можно использовать эту замечательную технологию в не менее замечательной системе Друпал. В качестве примера попытаемся сделать систему, позволяющую отправлять сообщения на сайты под управлением Drupal из вашего jabber-клиента.
Читать дальше →

Оптимизация Drupal

Время на прочтение17 мин
Количество просмотров30K
Вступление
Drupal – довольная распространённая CMS и это отложило на неё свой отпечаток – базовая поставка Drupal является не готовым решением для определённого вида сайта, а фундаментом для его создания. Существуют “сборки” на базе Drupal специализированные под определённые виды сайтов, например: новостные сайты. Но подобные сборки в данный момент мало распространены и плохо поддерживаются. В связи с этим при создании Интернет сайта на основе стандартной поставки Drupal используется большое количество готовых дополнительные модулей и тем оформления для Drupal, либо разрабатываются новые модули и темы специально для создаваемого Интернет сайта. Последним этапом работ по созданию сайта является его оптимизация, которую условно можно разбить на 4 шага:
  • встроенная оптимизация Drupal;
  • оптимизация Drupal с помощью модулей;
  • оптимизация конфигурации и обслуживания Drupal;
  • оптимизация сервера.

Читать дальше →

Drupal — победитель Webware 100 Awards

Время на прочтение1 мин
Количество просмотров749
image
Drupal уже третий год подряд получает награду Webware 100. В этом году Drupal участвовал в категории Social & Publishing, вместе с известными сервисами: MySpace, Facebook, Twitter, и Wordpress.com. Drupal — один из 10 лидеров в этой категории.

Цитата из CNET:
Награда Webware 100 присуждается лучшим Web 2.0 сайтам, сервисам и продуктам, известным в Интернете на сегодняшний день. После просмотра более 6 000 кандидатов, были отобраны 300 финалистов. Пользователи совершили финальный выбор, отдав более 600 000 голосов за 100 самых лучших продуктов — по 10 в 10-ти категориях.

Ура, товарищи!

SMTP relay или что делать если ваш сервер попал в email-блеклист

Время на прочтение2 мин
Количество просмотров63K


Если вдруг невинные письма с вашего сайта начали повально попадать в spam-боксы почтовиков, это может означать, что IP вашего сервера попал в email-блеклист. Вероятность этого возрастает, если у вас не свой собственный сервер. Примерный сценарий попадения в блеклист таков:
  • Юрий Иванович, директор небольшой студии танцев, имеет сайт «по соседству» с вами (читай, на том же сервере). В один прекрасный момент, Юрий Иванович узнает о чудесных перспективах email-маркетинга и рассылает пачку из двадцати тысяч писем с однотипной рекламой своей студии.
  • Или же, Вася Попов, не пользующийся антивирусом, но любящий старые версии Total Comander, апдейтит свою домашнюю страничку по FTP. В один прекрасный момент, спящий ранее троян, похищает пароли к Васиному FTP (которые лежат незащищенные в папке Total Comander). На следующий день, Васина домашня страничка уже отсылает десятитысячное предложение о покупке виагры.
  • Или же, Петя Твердохлебов, который имеет рядом сайт на Друпале версии 5.0 и думает что обновления это «от лукавого», в очередной солнечный день ловит XSS уязвимость и начинает, сам не зная того, отсылать рекламу потенциальным покупателям penis-enlargment pills.


Что делать и как быть?

Несколько полезных и интересных модулей для Друпала

Время на прочтение3 мин
Количество просмотров10K
logoИзучая Drupal, я нередко натыкаюсь на новые задачи, которые необходимо реализовать, и проблемы, которые нужно устранить.
Конечно, сайты Drupal.ru и Drupal.org — неоценимые помощники во всех вопросах и помогут разобраться практически в любой поставленной задаче, однако сегодня хотелось бы рассказать вам о некоторых модулях и их возможностях, чтобы вам не пришлось лихорадочно искать ответы на ваши вопросы, когда подобный функционал вам вдруг понадобится. Возможно, вы не узнаете для себя ничего нового из этого топика, но я все же попробую.

Читать дальше →

импорт товаров с картинками в Ubercart

Время на прочтение3 мин
Количество просмотров4.6K
Ubercart — это программный модуль с открытым исходным кодом, полностью интегрирующий Интернет-магазин с CMS Drupal. Ubercart считается одним из лучших в мире решений для электронной коммерции.

Как правило много вопросов вызывает массовый импорт товаров с картинками.
В моем случае был excel файл со списком товаров и их атрибутами (наименование, описание, цены, авторы, ссылки на картинки и т.п.).
Excel файл в чистом виде довольно таки трудно скормить для импорта, поэтому я сохранил его в виде *.csv файла.
Я щас опишу что дальше с ним делать:)
Читать дальше →

Выводим ноды на Google Maps

Время на прочтение2 мин
Количество просмотров9.9K
Предположим, что у нас есть достаточно простая задача — показывать на карте местоположение объектов (нод, пользователей). Например, офисов, или, скажем, магазинов подарков. Т.е. мы должны получить страницу, где выводится карта с расположением всех объектов заданного типа, и показать карту на странице каждого отдельного объекта. Речь пойдет о 6-ой версии Друпала, но в 5-ке всё аналогично (если честно, скрин в конце снят именно с Drupal 5). Чтобы выполнить эту задачу я буду использовать следующие модули: GMAP, Location, Views (на сайте у меня используются еще и CCK & Contemplate, но они в этой задаче настолько вспомогательны, что говорить о них не стоит).
мало текста, зато много скриншотов

Безопасный код: Работа с пользовательским вводом

Время на прочтение5 мин
Количество просмотров5.7K

(ч2. Подделка межсайтовых запросов; ч2. Работа с базой данных)

Наверняка, XSS атаки остаются самыми популярными наравне с SQL инъекциями. Их принцип прост до безобразия, а последствия разнятся от невинного коверканья вывода страниц до получения злоумышленником полного контроля над сайтом.

Некоторые сценарии XSS атак



Устойчивая атака


  • Вова создает частицу контента на сайте Пети.
  • Когда Маша просматривает этот контент, Вовин XSS ворует Машины куки.
  • Теперь Вова может пробраться на сайт, используя Машину сессию.
  • Чем более людей увидит этот контент, тем более успешной можно считать атаку. Максимум достигается путем создания противоречивых холиварных тем на сайте и т.д.
Читать дальше →

Drupal как MVC Framework

Время на прочтение3 мин
Количество просмотров6.3K
«Архитектура программного обеспечения» — эти слова обычно пугают большинство веб-разработчиков фрилансеров. 3-Tier, MVC, Singleton, Factory… «Стойте! прекратите! зачем всё усложнять?» — сказали бы вам в ответ, — «Вот есть же, например, Drupal — темку сверстали, модули докрутили-настроили и в принципе сайт готов.» Действительно, CMS Drupal предоставляет отличную платформу для быстрой разработки, требуя при этом минимальное количество вложенных усилий.

Многие наверняка слышали о таком понятии, как «идеология Drupal» — это как раз то, благодаря чему данная CMS стала такой удобной и эффективной платформой. Но возможно немногие догадываются, что в основе упомянутой идеологии лежит широко известный паттерн MVC, или Model-View-Controller.

Читать дальше →

Вводный курс по Drupal

Время на прочтение1 мин
Количество просмотров12K
Многие начинающие работать с Drupal, говорят что система очень сложная, что в Joomla все проще. Так вот, специально для начинающих осваивать эту CMS хабрый пользователь Infanty составил не большую инструкцию на 75 страниц с большим количеством скриншотов.Краткое содержание:
  1. Установка пакета программ — Денвер
  2. Установка CMS Drupal
  3. Перевод языка CMS Drupal и её модулей на язык отличный от английского языка
  4. Установка модуля редактора текстов
  5. Создание сайта визитки
  6. Создание портала на Drupal
Так же кратко рассматриваются вопросы переноса с локального компьютера на сервер, обновление модулей и самого движка Drupal, оптимизация работы сайта и оптимизация под поисковые системы. В общем — весь джентельменский набор в одном файле. Инструкция в самом деле очень подробная, но находится в стадии формирования, поэтому ваши отзывы и критика будут очень полезны. Автор материала планирует написание и перевод еще нескольких интересных статей по Drupal, за что я лично ему весьма благодарен.Скачать Вводный курс по Drupal

Создание сайта из готовых компонентов на примере сайта заказа еды в офис

Время на прочтение14 мин
Количество просмотров8.7K
В окрестностях нашего офиса нет приличного общепита, поэтому обеды нам привозят на заказ из одного кафэ. Заказ осуществляется за день (на понедельник заказ делается с пятницы), по телефону, с перечислением всех блюд и их количества (в случае если заказ не изменился относительно вчерашнего достаточно просто сказать это). Как компания, занимающаяся разработкой ПО, преимущественно веб, мы до недавнего времени жили по принципу «Сапожник без сапог», и весь учет заказов велся ответсвенным за заказ еды человеком на листочке, в случае изменения заказа нужно было писать письмо этому ответственному человеку, а он уже пересчитывал общий заказ.

Выкроив немного свободного времени в перерыве между проектами реализовал (именно реализовал, а не написал — почему именно так, расскажу немного ниже) систему для заказа еды. За основу, как нетрудно догадаться исходя из тематики блога, была взята CMS Drupal, которая является моим основным инструментом уже около полутора лет.

Цели данного топика:
  • Показать новичкам на довольно простом примере, как создается сайт невысокой сложности на CMS Drupal
  • Кратко расказать про несколько основных модулей — как правило они применяются в 90% проектов на друпале
  • Показать как можно собрать сайт на друпале из готовых компонентов, не написав при этом ни одной строчки кода (на самом деле будет пара строк кода, но немного не в том виде, как он обычно пишется =))


Итак, что должно быть реализовано в проекте:
  • Меню — список блюд, разделенных на категории, с возможностью описания блюд
  • Индивидуальные заказы — пользователь может сделать и заказ, просмотреть его содержимое и изменить
  • Сводный заказ — список всех заказаных пользователями блюд с указанием их количества
  • Возможность делиться впечатлениями о блюдах — тут просто возможность комментирования и рейтингования

Поехали

Drupal Views Attach

Время на прочтение1 мин
Количество просмотров2.1K
В процессе разработки проекта на Drupal встала задача вывести все ноды, ссылающиеся на данную при помощи node reference. Нашёлся замечательный модуль Views Attach, позволяющий прицепить к определённому типу View и передать ему id текущей ноды параметром. Модуль подошёл идеально.

Не так давно понадобилось почти то же, но чуть сложнее: прицепить к определённому типу View, выводящий ноды заданного типа содержащие определённый термин таксономии. Пробежавшись по существующим модулям нужного не нашлось, но вспомнился Views Attach. А так как параметры View хорошо-бы было сделать полностью настраиваемыми — решил интегрировать данный модуль с Token, что сегодня и осуществил.

В итоге при помощи данного решения можно, например:
1. Отобразить при просмотре ноды 10 нод с сходными терминами таксономии.
2. Отобразить 10 нод заданного полем cck типа.
3. Отобразить отмеченные флагом ноды, ссылающиеся на данную.
4. …

Забрать патч можно в трэкере проекта.

Электронный документооборот. Реализация.

Время на прочтение2 мин
Количество просмотров16K

О чем это он?


Это продолжение вчерашней статьи о электронном документообороте. Я покажу, как мы реализовали, простую систему подачи заявок. Использована CMS Drupal, и несколько дополнительных модулей. На рисунке можно посмотреть, как выглядит система подачи заявок.

screenshot.19.jpeg - upload images with Picamatic
(Кликабельно)
Приступим...

Ближайшие события

Скорость индексации сайта поисковиками

Время на прочтение1 мин
Количество просмотров5.7K
Написал топик на drupal.ru, пошел в гугл искать решение проблемы и сразу же наткнулся на, только что написанный мной, топик.

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

Все дружно любим Google.

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

Танцы с бубном, часть 2 — tabbed menu в Drupal

Время на прочтение3 мин
Количество просмотров1.5K
Собственно, продолжение вот этого хабратопика, что называется, «по просьбам трудящихся». И прежде чем я начну, я приношу кучу искренних благодарностей хабраюзерам, не ленившимся слать багрепорты и тем самым помогавшим «вылизать» как следует результат. Пусть нет предела совершенству, и пару шероховатостей мне ещё предстоит пофиксить — но в любом случае, лучше, чем было изначально. А теперь я расскажу вам, как я натянула всю эту кухню на систему меню в Drupal.
Читать дальше →

Безопасный код в Друпале: Работа с базой данных

Время на прочтение5 мин
Количество просмотров5.4K


(ч1. Подделка межсайтовых запросов; ч3. Работа с пользовательским вводом)

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

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

Во-вторых же, прослойка БД позволяет защититься от SQL инъекций.
Читать дальше →

Установка IntenseDebate в Drupal

Время на прочтение2 мин
Количество просмотров1.1K
Те, кто меня читают, уже, конечно, знают про то, что недавно я установил на свой блог популярную систему комментариев IntenseDebate. И подумалось мне тут, что задача установки дебатов на друпал относительно нетривиальна и уж всяко сложнее своих аналогов под остальные CMS (просто для многих есть уже готовые модули). А значит, такой опыт грех в землю зарывать, тем паче, что сам долго искал в сети какие-либо мануалы и ничего вразумительного так и не нашел.
Читать дальше →

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

Время на прочтение5 мин
Количество просмотров1.4K


(ч2. Работа с базой данных; ч3. Работа с пользовательским вводом)

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

Итак, подделка межсайтовых запросов (анг. Сross Site Request Forgery, или, сокращенно, CSRF): что это такое и с чем его едят.

CSRF — это вид атак на посетителей веб-сайтов, использующий недостатки протокола HTTP. Если жертва заходит на сайт, созданный злоумышленником, от её лица тайно отправляется запрос на другой сервер (например, на сервер платёжной системы), осуществляющий некую вредоносную операцию (например, перевод денег на счёт злоумышленника). Для осуществления данной атаки, жертва должна быть авторизована на том сервере, на который отправляется запрос, и этот запрос не должен требовать какого-либо подтверждения со стороны пользователя.

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

Одно из применений СSRF — эксплуатация пассивных XSS, обнаруженных на другом сервере. Так же возможны отправка спама от лица жертвы и изменение каких-либо настроек учётных записей на других сайтах(например, секретного вопроса для восстановления пароля).
Читать дальше →

Правильный учебник

Время на прочтение4 мин
Количество просмотров3.9K
Как правильно должен быть написан учебник? Ответ стандартный:
— сначала предмет изучаемой науки;
— затем принципы и методология;
— потом основные разделы;
— потом подразделы каждого раздела;
— и в конце практические детали.

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

В своей статье я намерен доказать, что хороший учебник пишется строго задом на перед. А хорошие учебники в области IT тем более. Не зря ведь существует «Hello, World!»
Доказательство

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

Время на прочтение1 мин
Количество просмотров3K

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

Когда я только начинал подготовку этого урока, у меня был соблазн поставить под каждым куском кода ссылку для скачивания готового примера, но в послествии, я отказался от этого. Будет намного полезнее, если вы сами будете вставлять код в свои модули, тестируя и набираясь опыта в реальных условиях.

И прежде чем начать, я расскажу вам как все-таки заставить любой из этих кусков кода работать. Предположим, вы уже имеете установленный тестовый сайт на Друпал 6. Вам прийдется проделать следующие действия:
  1. Создать новую директорию в sites/all/modules, например my_module
  2. Создать файл my_module.info в директории my_module, содержащий это:
  3. Создать файл my_module.module. Полностью скопировать отсюда первый пример и вставить в my_module.module.
  4. Включить модуль «My module» на странице модулей (admin/build/modules).
  5. Перейти на страницу my_module/form для запуска кода.
  6. Далее вам предстоит провести для каждого примера, полную замену содержимого my_module.module на код последующего примера. Не забывайте после этого переходить на страницу my_module/form для того, чтобы увидеть результаты своей работы.

А дальше огромная куча кода »

Вклад авторов