Сделала на базе sphinxsearch небольшой поисковый модуль. Предложения и тестирование весьма желательны. Первоначально модуль делала под свои нужды, так что все лишнее, на мой взгляд, отсутствует . Если понадобятся какие-то доработки, буду рада помочь. На d.org будет выложен позднее. Портирование на 7 будет, после отлова мелких багов, при наличии таковых.
Основные отличия от базового:
возможность автоматической генерации файла конфигурации;
mysql вместо xmlpipe2;
минимальные настройки файла конфигурации через админку (работает при автоматической генерации);
UPD. Добавлено управление индексацией и демоном через админку. Функции внедрены по просьбе IT-patrol;
может еще что-то…
Настройка:
Копируем модуль в “sites/all/modules”.
Включаем в админке.
Настройка модуля на странице “admin/settings/advanced_sphinx”. Если вы хотите автоматически сгенерировать конфиг, то поставьте галочку “Generate a configuration file”. Далее необходимо указать полный путь к папке, в которой храниться sphinx.conf или папку в которой могут быть созданы конфиг и другие папки. Права на запись обязательны. Также на этой странице можете выбрать типы материалов по которым будет осуществлен поиск, если не выбрано, то ищет по всем. Обратите внимание, что при каждом сохранении настроек модуля конфиг будет обновлен, если включена его генерация.
запускаем индексатор /usr/bin/indexer –config /home/user/sphinx/config/sphinx.conf –all . Потом демон сфинкса /usr/sbin/searchd –config /home/user/sphinx/config/sphinx.conf . Все пути подставляйте свои.
проверяем работоспособность на странице “admin/settings/advanced_sphinx/check-connection”.
Добавляем для нужных ролей право на использование страницы поиска (”use advanced_sphinx”) в “admin/user/permissions”
Страница Advanced sphinx на github.
Источник: http://www.drupal.ru/node/65009
Работая с несколькими Drupal сайтами на одном хостинге, удобно использовать встроенный в Drupal механизм мультисайтинга. О преимуществах работы Drupal в режиме мультисайтинга разговор отдельный. Но обновление версии ядра Drupal в этом случае имеет определенную специфику. Нельзя обновить все сайты за один раз, т.к. у каждого сайта будут свои особенности, которые придется решать по-отдельности. Ниже изложен порядок действий, который привел к желаемому результату. Но сначала оговорка. Работоспособной процедура обновления сайта Drupal с версии 6 до версии 7 стала только после выхода релиза 7.4. Не надо пытаться делать обновление с прежними версиями.
0. Составить полный список модулей, которые используются сайтом. Выяснить на drupal.org наличие версий этих модулей под Drupal7. Возможно, функционал некоторых модулей перекочевал в ядро Drupal, как например, произошло с модулем CCK. Некоторые модули прекратили свое развитие на версии 6 и их функционал выполняют другие модули под новыми названиями для версии 7. На этом этапе нужно принять взвешенное решение о необходимости обновления. Нужно иметь ввиду, что хорошие шансы на простое обновление только у тех сайтов, которые создавались по принципу “не написав ни строчки кода”. Ибо Drupal6 и Drupal7 – это не две версии одной и той же СМС, а две разные СМС, т.к. у них разные API. В Drupal7 нет многих функция API Drupal6, а те, что сохранились по названию имеют другой набор входных параметров. Чаще всего, список параметров, передаваемых через запятую в Drupal6, заменен в Drupal7 массивом параметров [каждый из которых тоже зачастую является массивом]. Кроме модулей нужно позаботиться о новой версии темы оформления. Если все необходимые модули и тема оформления для новой версии есть, либо от непортированных под семерку можно отказаться, переходим к следующим пунктам.
1. Если действующая версия инсталляции Друпал не самая последняя (на сегодня это 6.22), то нужно сначала обновиться до последней версии (не забывая про резервные копии).
2. Рядом с каталогом установки Друпал шестой версии создаем другой каталог для версии 7. Например, шестая версия размещалась на хостинге в каталоге “/home/my_login/drupal”, здесь “/home/my_login/” – домашний каталог на хостинге; “drupal” – каталог инсталляции Друпал6. Тогда создаем каталог “/home/my_login/drupal7”.
3. Копируем последнюю версию Drupal7 со страницы http://drupal.org/project/drupal
4. Устанавливаем как обычно Drupal7 в новый каталог. Для этого можно временно создать поддомен одного из рабочих доменов, либо использовать какой-то свой тестовый домен. В любом случае, нужно на хостинге подключить этот домен/поддомен, указав для него в качестве домашнего каталога вновь созданный. В данном примере это – “/home/my_login/drupal7”. На этом шаге нам нужно убедиться в том, что данный хостинг поддерживает работу с Drupal7. Например PDO (расширение PHP), как показала приктика, присутствует не на всех хостингах. А без PDO Drupal7 не работает.
5. Устанавливаем и тестируем в Drupal7 все модули, которые необходимы для нашего сайта.
6. Делаем архив каталога “/home/my_login/drupal/sites/нашсайт.ru”.
7. Делаем копию БД нашего сайта и сохраняем к себе на ПК (с пометкой “рабочая 6” или другой понятной нам). Можно использовать phpMyAdmin хостера, но лучше воспользоваться скриптом – http://sypex.net/ru/ или аналогичным. Это быстрее, проще и удобнее.
8. Регистрируемся на сайте в Drupal6 под именем пользователя с ID=1 (который создается при установке).
9. Переводим сайт в режим техобслуживания (на странице admin/settings/site-maintenance)
10. Переходим на страницу admin/build/themes и назначаем тему по умолчанию – Garland.
11. На странице admin/build/modules отключаем все модули, которые не входят в раздел “Ядро – обязательное”. Возможно, отключение придется делать в несколько этапов из-за зависимостей между модулями. Весьма кстати было бы на этом этапе читать далее
Источник: http://www.drupal.ru/node/64863
Одним из весомых преимуществ Drupal 7 над его предшественниками есть его гибкость к настройкам и системам. Разработчики не обошли стороной и запросы к БД. В этом релизе они стали объектно-ориентированными и не привязанными к конкретной базе дынных, поскольку теперь сам Drupal генерирует синтаксис запроса. Задачею программиста остается лишь указать условия выборки. Эту статью я посвящаю анализу Database API, где приведу примеры как именно изменилось “общение” с БД.
Полная статья »
Источник: http://www.drupal.ru/node/64860
Всем привет,
была нужда сделать в таксономии базу всех регионов и городов.
Взял Классификатор адресов России (КЛАДР) здесь и сделал.
Выглядит примерно так – [img]
Использование:
Устанавливаем
Выбираем куда заливать /admin/settings/kladr
Нажимаем кнопку LOAD /admin/build/kladr , если не всё заливается сразу (там 200000 строк), нажимаем ещё раз
Если решили заливать в другой vocablary:
Создаем или Выбираем куда заливать /admin/settings/kladr
Нажимаем кнопку “Начать загрузку сначала”
Нажимаем кнопку LOAD /admin/build/kladr , если не всё заливается сразу (там 200000 строк), нажимаем ещё раз
Теперь подробнее:
Требуется “extension=dbase.so”
Вставляет два уровня терминов, первый – level1 из KLADR.DBF, второй населенные пункты от туда же.
Использует Batch API (Загрузку базы можно прерывать)
Версия 0.1
Возможны планы развития: интеграция с http://drupal.org/project/location , http://drupal.org/project/addresses и т.п.
Ну, и как обычно, disclaimer, используйте только на Ваш страх и риск.
Прикрепленный файл
Размер
drupal-kladr.png
543.36 кб
Источник: http://www.drupal.ru/node/64769
На Летней Школе Академпарка (11-30 июля) будет специальная секция для Web-проектов, которую DrupalSib организует в партнерстве с Академпарком.
20 дней на ЛША вас будет гонять целая куча известных экспертов и тьюторов. Например, будет человек, который верстал сайт Кремля, и люди из ScrumTrek.
Вы прокачаете скиллы для создания стартапа, сможете собрать свою команду/влиться в другую, поднять свою идею/украсть чужую.
Суть ЛША – цепочка уровней, которые нужно пройти:
- командообразование (делаем команду)
- конкретные вещи для бизнеса (Workshop’ы для лидеров и простых смертных: одни будут учиться проектным методикам, где брать деньги на бизнес и т.д., а другие будут развивать технические навыки) – семинары и тренинги целый день
- экспертиза инвесторов
Потом будет выход на Интерру. Короче говоря, цель ЛША – проработка проекта и вывод его на Интерру. В итоге вы заведете кучу контактов и, возможно, получите инвестиции.
На Web-секции самый высокий приоритет – у проектов на Drupal, сообщество будет оказывать им поддержку на всем пути – от ЛША до Интерры.
плюс еда, жилье (кому надо), красивое современное помещение Академпарка
Если кому интересно – приходите! Нам нужны эксперты и участники – даже из других городов и стран.
Если кто из друпалистов зарегался на школе, напишите мне (yafasova.a@i20.biz), с каким проектом и пометкой (с drupal.ru), чтоб мы были в курсе.
Страница Web-секции на сайте ЛША: http://school.academpark.com/?p=147
Fun пресс-релиз от Web-секции: http://school.academpark.com/?p=541
Официальный пресс-релиз ЛША (внимание! пафос как всегда зашкаливает + много букаффф):
http://habrahabr.ru/blogs/conference/122256/
Источник: http://www.drupal.ru/node/64352
Blogsmith – простая и удобная тема для Drupal 6 в зеленых тонах. Если используете FCKeditor, то в его настройках CSS нужно выбрать define.css дабы избежать косяков с фоном в поле редактирования ноды.
- Две колонки
- Оптимизированная для SEO
- Простая и легкая в редактировании тема
Учусь верстать под Drupal и создал сайт cmsdrupal.org.ua на который буду выкладывать свои темы. Сейчас на нем можно посмотреть демо этой темы.
Прикрепленный файл
Размер
blogsmith.rar
39.98 кб
Источник: http://www.drupal.ru/node/64336
В этой статье я расскажу и распишу как оперировать основными хуками из раздела Field API.
Field API – один из разделов Drupal 7 API, которые позволяют нам:
создавать настраиваемые поля для данных,
хранить данные в этих полях,
взаимодействовать с любым видом контента.
Проще говоря Field API – средства для полей контента.
Полная статья »
Источник: http://www.drupal.ru/node/64326
На днях перевел свой модуль cctags с шестой версии на седьмую.
Сctags – это альтернатива широко известного модуля tagedelic. Т.е. модуль формирует блок и/или страницу облака тэгов таксономии с атрибутом (классом) зависящим от частоты употребления данного термина в опубликованных нодах.
В чем преимущество данного модуля перед tagedelic.
Tagedelic – формирует ровно столько блоков (и страниц) сколько определено словарей в вашей системе причем не позволяет смешивать словари, т.е. один словарь – одно облако.
В модуле Cctags мы имеем:
Гибкие настройки и расширенные возможности по темизации вывода облака (отдельные файлы шаблонов для тэгов, названия словаря, страницы облака).
Возможность (через настройки включать несколько словарей (а для словарей с древовидной структурой – кроме этого включать/выключать нужный уровень)) вывода тэгов.
Автоматическая генерация нужного количества блоков и/или страниц.
Помимо этого вы можете сформировать практически одинаковые по содержанию блоки и разместить их в разных регионах для разных страниц сайта.
Концепция модуля Cctags основана на понятии элемента cctags.
Элемент cctags – это совокупность настроек для отображения одного блока и/или страницы терминов.
Вы можете добавить необходимое количество элементов и настроить каждый из них отдельно, причем разные элементы могут содержать один и тот же словарь или словари в любой комбинации.
Отличия модуля от версии для Друпал 6.
Убран не характерный и малоиспользуемый для данного модуля функционал:
1. Построение блока и страницы облака пользователей.
2. Построение блока материалов по связанным терминам.
3. Очистка словарей от не используемых терминов.
Проведена работа по совместимости кода модуля с версией PHP >= 5.3
Сам модуль можно пока взять тут (см. прикрепленный файл), чуть позже дев версия появится на д.о.
Источник: http://www.drupal.ru/node/64157
Пакетные операции дают возможность обрабатывать формы в течении нескольких запросов. Это предотвращает обрыв обработки изза тайм-аута РНР. Также пользователю предоставляется информация о ходе осуществления текущих операций.
Утверждают, что в первую очередь batch был разработан для гармоничной интеграции с Forms API, хотя часто его используют в обычных скриптах таких как update.php.
Представим, что нам необходимо осуществить обработку большого количества данных. Для начала мы создадим страницу в hook_menu.
Читать полностью…
Источник: http://www.drupal.ru/node/64097
Привет, Коллеги!
Наконец-то мы решились на проведение учебного курса для Drupal!
Главная идея курса: человек приходит с самыми базовыми знаниями о сайтах, уходит с реализованным проектом.
Да, первый курс из серии рассчитан на новичков. Всем известно, что на Drupal сложнее всего сделать простые вещи Курс поможет новичкам преодолеть входной порог в удивительный и безграничный мир Drupal.
Я вижу, здесь много просьб помочь сделать сайт. Курс, который мы предлагаем – хороший ответ на эти просьбы. Инвестировав немного средств и времени можно научиться достаточно быстро и качественно делать функциональные сайты на Drupal под свои задачи …и наконец-то слезть с крючка веб-студий, которые выставляют счёт не меньше 1000 рублей за каждую новую кнопочку на сайте.
Площадка для проведения курса – широко известный Учебный Центр ЭКОС: http://ekos-spb.ru/
Да, он должен быть знаком тем, кто занимается 1С. Это 4-й по количеству слушателей из 241 сертифицированного УЦ: http://1c.ru/rus/partners/training/cso/cso-list.jsp
Страничка курса: http://ekos-spb.ru/kursy-1s/kurs.php?id=21
Начало ближайших занятий: 18 июля 2011 года.
Формат: 4 дня по 8 часов в рабочее время.
Цена: 9000 рублей.
Бывают вечерние и выходные группы. Если больше подходит другое время обучения, да, можно будет подобрать соответствующую группу: (812) 610 05 05, Зоя. Или пишите semp@ekos.spb.ru, Семён.
Спасибо и удачи в освоении этой прекрасной технологии!
Источник: http://www.drupal.ru/node/64094
Всем доброго времени суток. Пришло время предоставить отчет о конференции DrupalConf, которая прошла 23 апреля 2011 года в Москве.
Цифры:
Зарегистрированных участников конференции (заполнивших анкеты перед конференцией) – 224 участника.
География участников: Россия, Беларусь, Украина, Германия.
Инфы много, далее под катом.
Профессиональный состав:
Уровень владения Drupal:
Потребность в проф.консультациях:
Мы можем смело сказать что конференция получилась международной. За пару недель перед конференцией стало понятно, что количество участников придется как-то ограничивать – количество заявок к организатором намного превысило возможности зала. Как показала конференция – это был оправданный шаг, зал был заполнен полностью, но давки/неудобств не было, всем были обеспечены сидячие места.
На заметку гостям будущих конференций – заблаговременно регистрируйтесь на сайте конференции.
Результаты
На наш взгляд первая в России большая конференция по Drupal удалась. Это было бы невозможно, без активного сообщества. Наверное, основной вывод из всей конференции – сообщество в России есть, мы собрали более 240 участников, 30% участников работают с Drupal профессионально – по характеру вопросов к докладчикам было видно, что это представители студий и коллективов разработчиков, которые видят значительный рост в сфере Drupal-разработок, эта сфера притягивает все большие бюджеты, Drupal как CMS интересует все большее количество заказчиков. Что гарантирует – регулярные встречи Drupal-разработчиков неизбежны.
Организаторы
Артем Паньков
Андрей Постников
Маша Таран
HelpTeam
Сергей Бабушев
Дубовской Александр
Спонсоры
Информационные системы для бизнеса – Генеральный спонсор
Fast Lane Ventures
Radon
InternetDevels
Информационная поддержка
РАЭК
itmozg.ru
Интернет в цифрах
RMA
CMS Magazine
Системный администратор
Drupal.ru
Рейтинг Рунета
Докладчики:
Хотим выразить благодарность всем докладчикам конференции. Вы можете просмотреть видео докладов.
1. Вступительный доклад от Постникова Андрея (andypost): Drupal 7 и Drupal 8.
2. Доклад Вячеслава Касихина (Irbis), Ubercart — немного примеров из жизни.
3. Доклад Дубовского Александра (adubovskoy), Drupal для ленивых – как мы делаем больше за меньшее время.
4. Доклад от Алексея Костина (kostin), Drupal & SEO
5. Доклад Анны Федорук, Как построить разработку на Drupal
6. Доклад Антона Житарева (NaZg), Системы Электронного Документооборота на Drupal
7. Доклад Тараса Савчука и Романа Архарова (Romka), Forbs.ru
8. Доклад Клеры Виленской (Klera), Концепция единого модуля интеграции с соцсетями
9. Доклад Влада Савицкого (vladsavitsky), Сайт на Drupal за 15 минут
10. Доклад Александра Швеца (neochief), Разработка Drupal дистрибутивов
По предварительному расписанию у нас было 10 докладов, однако осталось время на экспромт-доклад (без предварительной подготовки), который вызвался рассказать Кинзябулатов Рамиль, посвященный интеграции Ubercart и 1C, ознакомиться с докладом вы можете на данной странице http://video.yandex.ru/users/vaspi/view/44/user-tag/drupalconf/
Отзывы
Вы можете ознакомиться с неформальными отзывами о конференции, которые разместили участники на своих сайтах и блогах:
http://www.drupal.ru/node/61188
http://graker.ru/news/2011/04/24/drupalconf_2011
http://prodrupal.ru/ru/node/89
http://shvetsgroup.com/ru/blog/drupalconf-moscow
http://www.ys1.ru/blog/otchet-o-drupalconf-moscow-2011
Следующий шаг
Данная конференция возымела большой резонанс в среде Drupal-разработчиков. Начали появляться региональные встречи, такие как Встреча DrupalSib в Новосибирске, встреча Южного Друпал сообщества в Краснодаре.
Есть потребность в организации регулярных небольших встреч в Москве – Drupal-кафе. В данный момент вы можете помочь с организацией Drupal-кафе, присоединяйтесь к обсуждению и ждем вас на встречах.
Слухи и домыслы
Хотим сказать, что нас воодушевило, какой отклик вызвала конференция DrupalConf. Есть решения о повторении конференции осенью/зимой 2011 или весной 2012. Каждый из вас может оказать значительную помощь и ускорить повторение DrupalConf в Москве. Как это можно сделать:
Вы можете просто опубликовать ссылку на этот отчет у себя на сайте или в блоге. Прежде всего конференция – это люди и потребность в обмене опытом. Мы можем совместными усилиями поддерживать резонанс о конференции.
Уже сейчас готовить доклад. Поверьте, написание качественного доклада занимает значительное время. В следующей конференции возможно разделение на потоки или на дни, необходимо больше хороших и интересных докладов.
Спасибо всем: читателям, слушателям, докладчикам, спонсорам. Будем рады встретиться на следующем DrupalConf!
Источник: http://www.drupal.ru/node/63916
Начала делать скринкасты по Drupal 7. Пока 2 и без голосовой озвучки, техника создания скринкастов еще далека от совершенства. Но это поправимо
Пока есть два скринкаста:
Локализация интерфейса Drupal 7
Media Gallery в Drupal 7
Планируются новые скринкасты. Выгружаю на YouTube и у себя в блоге.
Принимается критика, пожелания и прочие уместные комментарии.
Источник: http://www.drupal.ru/node/63785
Сделал модуль Locale Cache, ускоряющий переводы строк в Drupal.
Известно, что родной язык Drupal – английский. При каждом запросе к сайту движок берет английские строки в интерфейсе и заменяет их переводами для текущего выбранного языка. Данный модуль оптимизирует и ускоряет этот процесс. В результате ускоряется загрузка страниц, снижается количество запросов к базе и (в зависимости от настроек модуля) снижается потребление сайтом оперативной памяти.
Более подробное описание модуля на странице проекта.
Для работы требует патч ядра, так что прошу детей и беременных женщин отойти от монитора.
Пробуем, тестируем, и т.д. (снапшот скоро будет готов). Настройки модуля описаны в README.
14.06.11 Добавлена опция обновления кеша локалей с помощью cron
24.06.11 Создал первый релиз. Всем, кто использовал dev версию, рекомендуется обновится
Источник: http://www.drupal.ru/node/63680
Хочу провести небольшой опрос, на фоне организации встречи в Краснодаре. Прошу отметиться, кто заинтересован в друпал-кафе в Ростове. Нужно узнать сколько нас, друпалеров, тут вообще есть. Будет достаточное количество – будет организация встречи.
update:
Предлагаю провести первую встречу в Воскресенье 26 июня в 14:00 (так чтобы удобно было добраться в Ростов и из Ростова гостям из Краснодара, если у них будет возможность приехать).
Будет это в Yo Budda (Б.Садовая, 2), что крайне удобно приезжим (очень близко к вокзалу, сами смотрите).
Телефон для связи 89287700850
Attached poll “Вас ждать на Drupal-кафе в Ростове 26 июня?”.
Register or login to poll
Results:
Да: 7 голосов
Конечно: 0 голосов
Простите, в следующий раз: 2 голоса
Я не из Ростова, но буду: 0 голосов
Источник: http://www.drupal.ru/node/63666
Советую всем кто хотел бы заняться организацией интернет магазина. http://vimeo.com/24901121
Источник: http://www.drupal.ru/node/63623
Наблюдаю здесь (и вообще в рунете) уже далеко не первый пост о том, что кто-то кому-то что-то делал, а тот другой кинул его на бабки и т.д. Начинаются слюни-сопли-слезы и прочие обиды в постах форума, обвинения оппонента в мошенничестве и проч. Чтобы не вляпаться в подобную ситуацию, необходимо:
1. Подготовить четкий и конкретный Договор между заказчиком и исполнителем;
2. Разработать техническое задание.
По п. 1. Образец договора заточен под техническое документирование, но может быть легко “перелицован” на создание сайта, программирование модулей и иную другую задачу. Впервые он был подготовлен для производства и поставки мебели в сеть магазинов Рамстор – успешно отработали по 8-ми таким договорам. Юристы заказчика морщили носики, но подписывали, поскольку все права и обязанности сторон прописаны четко (нарушил п. такой-то – отвечай по п. такому-то), какая-либо юридическая казуистика отсутствует.
По п. 2. Собственно статья, опубликованная пять с небольшим лет назад в киевском журнале “Мир автоматизации”. В статье расписаны подходы к разработке техзадания: кто и что должен делать, как с помощью ТЗ прикрыть себе заднюю полусферу, как с помощью ТЗ поиметь заказчика, если он идиот или просто “мошенник”, упомянуты вопросы стоимости ТЗ, учтен человеческий фактор.
Договор в прикрепленном файле. Статья здесь – http://tdocs.su/6740 Тот, кто осилит, гарантирован от неприятностей с заказчиком (исполнителем), прочих непредвиденностей, а также от “слезных” постов в форуме
Прикрепленный файл
Размер
dogovor_kratkosrochnyy.doc
119.5 кб
Источник: http://www.drupal.ru/node/63383
4 июня 2011 прошла “познакомительная” встреча южного сообщества. Пришли далеко не все кто хотел, но в целом встреча прошла хорошо.
Намечены некоторые цели, которые намного лучше решать в сообществе.
Подробнее
P.S. Саш, может завести подфорум “DrUG” (Друпал Юзерс Групп) и там сделать подфорумы для федеральных округов? Ну хотя бы для южан
Источник: http://www.drupal.ru/node/63368
На каждой встрече друпалеров приходим к мнению, что встречаться надо чаще. Так давайте это делать! Я вижу формат встреч таким:
* предварительная запись для оценки числа участников
* доклад минут на 20 или серия минидокладов (lighting talks) — c отведением общего времени на учебную часть — до получаса
* дружеское общение с распитием кофе/спиртного и поеданием подходящей организму пищи
* встречи раз в пару недель, при хорошем раскладе в постоянном месте в одно и тоже время
А как видите эти встречи вы? Опрос ниже.
Ищется помещение в Москве под проведение Drupal-кафе. Негромкое кафе с wifi и адекватными ценами, как вариант аудитория в учебном заведении или в офисе фирмы. Врядли планируется больше 10-20 участников, денег с этого тоже не получить, но для кафе очевидно прибыль за продажу еды/питья, а фирмы могли бы засветиться на d.ru как спонсоры сообщества.
Attached poll “Формат встречи?”.
Register or login to poll
Results:
Хочу послушать доклады: 21 голос
Хочу выступить с докладом: 9 голосов
Просто хочу пообщаться: 18 голосов
Хочу поесть и выпить: 10 голосов
Место встречи только в пределах Садового кольца: 3 голоса
Место встречи только недалеко от станции метро: 11 голосов
Источник: http://www.drupal.ru/node/63246
При создании интеренет-магазина с помощью модуля Drupal Commerce может возникнуть потребность в конфигурировании формата представления стоимости товара.
По умолчанию стоимость товара отображается в формате:
1,234.25 UAH (на примере украинской гривны)
Для русскоязычного пользователя такой формат представления не совсем удобен. В текущей версии beta 3 функционал для изменения формата представления цены товара через пользовательский интерфейс отсутствует.
Задать правильное отображение стоимости товара можно с помощью небольшого модуля, который включает в себя вызов всего одного хука:
<?php
function mymodule_commerce_currency_info_alter(&$currencies, $langcode) {
$currencies['UAH']['symbol'] = 'грн.'; //задаем символ валюты, который нужно отображать
$currencies['UAH']['code_placement'] = 'hidden'; //прячем буквенный код валюты, который отображается по умолчанию вместо символа валюты
$currencies['UAH']['symbol_placement'] = 'after'; //указываем отображение символа валюты после стоимости
$currencies['UAH']['thousands_separator'] = ''; //убираем разделитель сотен, по умолчанию это символ ","
}
?>
Хук должен выполнятся после того, как отработают хуки модуля commerce currency, для этого задаем соответствующий вес нашему модулю в таблице system
Настройку формата отображения стоимости товара с помощью UI обещают включить в одно из следующих обновлений модуля, но пока этого функционала нет, можно пользоваться таким временным решением.
Источник: http://www.drupal.ru/node/63235
Всем заинтересованным!
На ближайшей Drupal-конференции в Киеве – 3-4 июня, мы проводим акцию по предоставлению скидки 20%.
Обязательным условием получения скидки является присутствие на мероприятии. Если вы не успели зарегистрироваться, у вас есть еще время! Напоминаем, что конференция будет проходить с 3 по 4 июня в Киеве. Более подробнее о самой конференции читать тут.
Наша сотрудница, Анна Али, будет присутствовать на интересных ей докладах и свободно перемещаться по своему усмотрению. Ваша задача, найти Аню на конференции и предоставить ей свой имейл.
“Особые приметы” Ани: светлые штаны, желтая футболка и бейджик ” IT Patrol”
Для новых клиентов будет выслана специальная одноразовая ссылка для активации скидки. Если вы уже наш клиент, то мы активируем вашу скидку на 20% для существующего заказа в течении суток.
С нетерпением ждем вас,
команда IT Patrol Inc.
Источник: http://www.drupal.ru/node/63214
Последние изменения на сайте полагаю требуют пояснений, поскольку мало кто читает changelog. Я по-прежнему исхожу из того, что на сайте сообщества может обсуждаться что угодно кроме друпала, раз это интересно его участникам. При условии что это не мешает основной тематике. Есть два варианта, сделать чтобы не мешало:
1. Жесткая модерация и превращение сайта в закрытый клуб (это на d.ru мы уже прошли).
2. Разрешение любого общения, но фильтрация топиков и офтопиков на отдельные по возможности непересекающиеся потоки.
Я по долгому опыту участия в d.ru и других интернет-сообществах окончательно пришёл к пункту 2. Не должно быть открытое сообщество замодерированным, если хочет привлечения новых участников. Новички бывают разные, но всегда с тупыми вопросами, тут ничего не попишешь. Бороться скорей нужно не с ними, а с теми “профи” кто злобно этих новичков отпинывает.
Я к сожалению по ряду причин последний год мог только минимально поддерживать работу сайта, и не хотел ввязываться в крупные изменения. И после разбирательств в прежней команде модераторов задействовать старую схему модерации также не было желания. Вскоре после ДрупалКонфа этого года в Москве в узком кругу московских друпалеров были намечены планы по перестройке сайта, постепенно вовлекаются люди готовые эти планы реализовывать. По наведению порядка на сайте в текущей реализации на D6 реализуется следующее:
1. Ограничить видимость форумов Курилка и Мусорка, в том числе для поисковиков.
2. Сделать средства для отправки нодов и комментариев в эти форумы.
3. С публикации снимать только спам и материалы явно нарушающие правила сайта.
Эффект от реализации п.1 можно видеть уже сейчас, офтопики не заметны, т.к. всё содержимое Курилки и Мусорки попадает мимо трекера, а Мусорка ещё мимо страницы /blog. Это на время работы сайта под D6, потом планируется использовать API прав доступа на ноды.
По п.2 ничего готового под D6 так и не нашлось, дописывается код текущих модулей для быстрого выноса нодов в Курилку->Мусорку, а также перенос туда комментов. Пока не придумал ничего лучшего, как создавать для перенесённых комментов ноды типа “архив” со ссылкой на исходное обсуждение.
Следите за changelog’ом
Источник: http://www.drupal.ru/node/63210
В этом году расписание докладов на DrupalCamp Kyiv 2011 мы сделали заранее.
В этом отличие от прошлых кемпов – расписание докладов формируется не во время проведения конференции, а до начала кемпа.
Заранее составленное расписание докладов решает несколько важных задач:
Посетители кемпа хотят знать что будет на конференции и хотят планировать свое время.
Докладчики тоже хотят знать когда им нужно будет выступать.
Организаторы хотят знать сколько будет докладчиков, какие будут доклады, а также сколько и какие нужны помещения.
Спонсоры тоже хотят знать что будет на конференции и стоит ли вкладывать в рекламу средства.
Таким образом выигрывают все!
Как сделать своё расписание?
У каждого участника кемпа есть возможность составить свое собственное расписание докладов!
Для этого нужно зайти на сайт (залогиниться) и на странице “Расписание докладов” выбрать доклады, которые вы хотите послушать. Для этого нужно нажать кнопку “В мое расписание”
Далее на отдельной странице “Моё расписание” вы сможете увидеть только те доклады и мероприятия, которые вы выбрали.
Выбирайте доклады, создавайте свои расписания и до встречи на кемпе!
Анонс расписания докладов на сайте кемпа.
Статья на хабре: http://habrahabr.ru/blogs/drupal/120326/ (Можно плюсовать!)
Анонс на DrupalSN.ru.
Источник: http://www.drupal.ru/node/63131
Даю полный перевод обучалки по использованию Ajax (на нее, кстати, ссылались здесь). Это дубль перевода с моего сайта, который я выложил более недели назад.
Следующее руководство шаг за шагом научит вас быстрому применению Аякса в Друпале. Мы динамически обновим страницу контентом, прочитанным с сервера, без необходимости обновлять страницу. Я постараюсь сделать это по возможности просто, описывая самые основные блоки, требуемые для внедрения Аякса. Я предлагаю вам двинуться дальше и попытаться вставить более сложные вещи, исходя из нужд вашего сайта.
Давайте начнем. Как-то я создал сайт электронной коммерции, основанный на Drupal 6 & Ubercart и теперь хочу улучшить его, применив для отображения товаров Аякс. Я хочу, чтобы пользователи выбрали категорию товаров из списка, и основываясь на этом выборе, получили список товаров для данной категории.
Замечание: я рекомендую, чтобы вы познакомились с разработкой модулей в Друпале (руководство можно найти здесь http://drupal.org/node/231276)
Шаг № 1 – Создание вашего «Модуля данных»
Для того чтобы получить данные от клиента, мы должны начать с создания модуля, который будет возвращать данные с сервера. Давайте назовем наш новый модуль “dynamic_products”. Прежде всего создади каталог для нашего нового модуля. Он должен находиться в каталоге “modules” вашего сайта (обычно /sites/default/modules). Все файлы, описанные далее в этом разделе, должны создаваться в этом каталоге. Затем создадим файл .info вашего модуля. Этот файл предоставляет информацию Друпала о вашем файле, которая нужна для его активации.
Больше информации о создании .info файла можно найти здесь http://drupal.org/node/231036
Для нашего .info файла мы будем использовать следующее:
; $Id$
name = "Dynamic Products"
description = "Returns a list of products according to category."
core = 6.x
package = Example Ajax Modules
Копируем, вставляем и сохраняем верхний код в “dynamic_products.info”. После того как мы создадим наш .info файл, мы продолжим далее создание нашего файла .module. Этот файл включает рабочий код со стороны сервера. Вернемся вверх и создадим файл “dynamic_products.info” в каталоге нашего модуля..
Для того чтобы создать вызов сервера и получить некоторые данные, нам нужен menu_hook, который будет использован для «перехвата» вызова аякса. В нем будет использоваться следующая функция:
function dynamic_products_menu() {
$items = array();
$items['products/get'] = array(
'title' => 'Dynamic Products',
'page callback' => 'dynamic_products_get_by_category_id',
'access arguments' => array('access dynamic_products content'),
'type' => MENU_CALLBACK
);
return $items;
}
Эта функция заставляет перехватывать все обращения по адресам “http://www.example.com/?q=products/get” или http//www.example.com/products/get и вызывать функцию обратного вызова dynamic_products_get_by_category_id.
Далее мы сообщим Друпалу, кто имеет разрешения на использование нашего модуля. Для этого мы применим Друпаловский hook_perm().
function dynamic_products_perm() {
return array('access dynamic_products content');
}
Теперь пришло время создать функцию обратного вызова, которая вернет нам данные с сервера. С этой целью в этом руководстве мы создадим простой список товаров. В реальной жизни данные могут быть получены со стороны или любым другим удобным вам путем.
function dynamic_products_get_by_category_id($cat_id){
$items = '';
switch($cat_id){
case 12:
$items = '<ul><li>Product 1</li><li>Product 2</li></ul>';
break;
case 20:
$items = '<ul><li>Product 3</li><li>Product 4</li></ul>';
break;
}
// создаем объект JSON. Он будет содержать свойство под названием “products”, которое является набором переменных $items.
return drupal_json(array('products'=>$items));
exit;
}
Наша функция обратного вызова принимает один параметр ($cat_id). В зависимости от его значения возвращаются разные списки товаров.
Функция может иметь столько параметров, сколько нам нужно. Для передачи их в функцию мы используем Url вызова Аякса
Как вы помните, ранее мы определили функцию menu_hook (dynamic_products_menu), и настроили наш модуль на перехват обращений, сделанных по адресу “http://www.example.com/products/get”.
Для того чтобы добавить id категории к нашей функции обратного вызова, мы просто добавим его к url запроса.
Например, если мы хотим использовать значение 12 как id категории, мы просто используем следующий url http://www.example.com/products/get/12.
Мы почти закончили делать наш файл dynamic_products.module. Позже мы вернемся к нему, а сейчас сохраним его и пойдем далее.
Шаг № 2 – Создание файла javascript
Теперь мы создадим файл javascript, который будет включать клиентскую часть, создающую вызов аякса. Создадим новый файл в каталоге модуля и назовем его dynamic_products.js. Представленный код задает обработку события нажатия кнопки одного из html-элементов на нашей странице.
// $Id$
Drupal.behaviors.dynamic_products = function (context) {
$('a.categoryLink:not(.categoryLink-processed)', context).click(function () {
// Эта функция будет выполняться после того, как ajax запрос на сервер был выполнен успешно
var updateProducts = function(data) {
// Параметр "data" является объектом JSON. Свойство “products” является списком товаров, который возвращается с сервера в ответ на запрос ajax.
$('#divProducts').html(data.products);
}
$.ajax({
type: 'POST',
url: this.href, // Which url should be handle the ajax request. This is the url defined in the <a> html tag
success: updateProducts, // The js function that will be called upon success request
dataType: 'json', //define the type of data that is going to get back from the server
data: 'js=1' //Pass a key/value pair
});
return false; // return false so the navigation stops here and not continue to the page in the link
}).addClass('categoryLink-processed');
}
Копируем, вставляем и сохраняем верхний код в “ файл dynamic_products.js ”. С ним мы работу закончили.
Шаг № 3 – загрузка файла javascript
Для того чтобы загрузить .js файл со стороны клиента, нам нужно вернуться и отредактировать наш файл .module. Для этого нам при инициализации модуля нужно использовать init_hook. Для того чтобы это сделать добавим следующие строки к файлу .module:
function dynamic_products_theme() {
return array(
'dynamic_products_javascript' => array(
'arguments' => array(),
),
);
}
function dynamic_products_init() {
theme('dynamic_products_javascript');
}
function theme_dynamic_products_javascript() {
drupal_add_js(drupal_get_path('module', 'dynamic_products') . '/dynamic_products.js');
}
Сохраняем файл.
Замечание: не забудем активировать наш новый модуль на странице "admin/build/modules".
Шаг № 4 – Создание Html
Мы почти закончили. Нам нужно только создать на нашей странице код html, который будет делать вызов аякса. Чтобы упростить работу, давайте создадим 2 раздела div вверху страницы. Верхний div будет включать 2 ссылки, по одной для каждой категории товара. После щелчка на одной из этих ссылок будет отправляться запрос на сервер, а загруженный контент будет вставляться в нижний div.
<div id=”topDiv”>
<a class="categoryLink" href="/products/get/12">Cat. 1</a>
<a class="categoryLink" href="/products/get/20">Cat. 2</a>
</div>
<div id="divProducts"></div>
Создайте страницу Друпала, скопируйте и вставьте верхний код, и это все. При просмотре страницы при щелчке на одной из ссылок категорий на сервер будет отправляться запрос, и на странице будет отображаться список товаров выбранной категории.
Источник: http://www.drupal.ru/node/63094
Простой и чистый шаблон под Друпал 6. Подойдет для блогов разной тематики.
Валидность XHTML и CSS
Включены ZEN tabs
Ссылки для редактирования блоков.
Демо можно посмотреть здесь http://infotech.org.ua
Скачать можно ниже
Прикрепленный файл
Размер
infotech.rar
42.87 кб
Источник: http://www.drupal.ru/node/63068
Привет, друзья и коллеги!
Рады сообщить вам, что мы наконец-то запустили долгожданный проект DrupalSN — социальную сеть для drupal-разработчиков.
DrupalSN — это сообщество разработчиков, делающих сайты на CMS/CMF Drupal и стремящихся поделиться решениями и рецептами создания сайтов на этой замечательной системе.
Проект представляет собой разделы и страницы:
топиков, которые разделяются по блогам (группам);
систему быстрых вопросов-ответов;
раздел «Работа», в котором есть вакансии и резюме;
скринкасты.
На сайте включена система рейтингов, которые начисляются как за топики, так и за комментарии.
Для удобства включены:
внутренняя переписка между пользователями;
система связей между пользователями, типа друзья;
система закладок;
публикации в Facebook и Twitter;
инвайты (приглашения);
снятие поста с публикации его автором.
В настоящее время регистрация на сайте доступна только по приглашениям.
Для ознакомления с правилами, часто задаваемыми вопросами о проекте, можно посмотреть страницу ЧЗВ. Основное: никакого мата, никакого флуда.
Не жалуйтесь потом за блокирование аккаунтов в случае нарушений.
У неавторизованных пользователей, кроме отсутствия возможностей писать топики и участвовать в дискуссиях, скрыты персональные данные в вакансиях, резюме и профайлах.
Проект похож на Хабрахабр, чтобы ни у кого не осталось сомнений, что при работе с Drupal нет ничего невозможного — всё зависит от фантазии и навыков разработчика.
В настоящее время время стадию развития проекта можно смело назвать начальной, но проект развивается и будет развиваться. Идей у нас много, равно как и фантазии.
Если у вас есть идеи для проекта, озвучивайте их (у нас есть блог «Идеи для проекта»)
Проект связан с журналом «Друпалогия». Это подразумевает, что лучшие статьи опубликованные на DrupalSN будут напечатаны в журнале.
Авторы: Даниэль Ишмаев, Станислав Езерский
Ссылка на сайт: drupalsn.ru
Проект работает на сборке «Drabr», которую можно поставить на свой сайт и дополнить функционалом (подробная информация на сайте сборки).
Хабрапользователи могут поддержать
Источник: http://www.drupal.ru/node/63035
Статья здесь – http://drupal.in.ua/content/fotogalereya-dlya-drupal-7-ajax
Тестовый сайт – http://gallery.drupal.in.ua
Реализует функционал фотогалереи с просмотром фото при наведение «мыши» на миниатюру и листанием миниатюр с использованием технологии ajax.
Особенности:
Модуль создает свой тип материала для галереи;
Создает свой тип стиля изображения ( Image style ) для миниатюр;
Не требует дополнительных модулей (contributed modules);
Просмотр фото, при наведение указателя «мыши» и при клике на миниатюру;
Плавное появление изображения при просмотре;
Ссылка на полное изображение с возможностью открытия в окне (window.open)
Работает при отключенном js;
Дополнительные настройки (admin/config/content/drig) не обязательны;
Проверена совместимость с браузерами IE6/…, FireFox, Opera, Chrome, Safari.
27/05/2011: версия 2 – устранены визуальные искажения при медленной загрузке картинок.
28/05/2011:
Во время процесса загрузке image навигация отключается
“Бегунок” загрузки помещен на image
При навигация превью появляются плавно после полной подгрузки (ajax)
31/05/2011
Добавлена проверка корректности навигационной ссылки, при ручном вводе;
Добавлена обработке ajax status error
01/06/2011
Добавлена возможность использование в любом материале с полем типа image. ( настройка на странице admin/config/content/drig )
Прикрепленный файл
Размер
drig.zip
22.43 кб
Источник: http://www.drupal.ru/node/62902
В преддверии DrupalCamp Киев 2011 drupal.ua решил обрадовать многих пользователей, снимая языковой барьер между украиноязычным и русскоязычным сообществами.
По многочисленным просьбам мы включили русский интерфейс и локализировали группы и посты. Что означает, ваш материал будет понятен и украинцам, и русским.
Отныне посетитель сайта может видеть как русские, так и украинские посты. Кто знает украинский, тот понимает русский язык; кто не знает украинского, тот может смело игнорировать сообщения. Но, вместе с этим, русскоязычные пользователи могут не беспокоиться – ценные материалы будут переводиться на русский язык и вы ничего не потеряете.
Что делать русским на украинском сайте? Во-первых, делиться опытом. Русское сообщество поопытнее нашего, что неудивительно, ибо оно постарше. Ваша помощь в постижении друпал украинцами будет невозможно переоценить. Во-вторых, у вас появится возможность найти новых партнеров в Украине. Кто знает, возможно именно у нас, в Украине, находится человек, способный вести ваш бизнес в Украине, возможно здесь вы найдете ваших будущих разработчиков. В-третьих, в ближайшем будущем на сайте появится несколько полезных и удобных фишек, которыми вы будете пользоваться регулярно. Поэтому, пора привыкать к нашему интерфейсу.
На каком языке писать контент? Это вопрос больше касается украинцев. На нашем сайте небыло, нет, и не будет ограничений в выборе языка общения. Вы могли обратить внимание, что здесь уже существует множество постов на русском, и это при том, что до этого момента существовал только украинский интерфейс. Поэтому правило простое – контент желательно писать на языке, на котором вы думаете.
Есть ли возможность русскому читать украинский контент? Такая возможность есть. Но это будет зависеть от наличия перевода на русский. Если таковой имеется, увы, вам, скорее всего, не посчастливится прочитать это сообщение на украинском языке. Но мы уверенны, вы не расстроитесь. Но если любопытство берет верх – http://translate.google.com вам в помощь .
Начало есть, вам уже стал понятен язык интерфейса на нашем сайте. Каким будет развитие многоязычности на этом сайте в будущем? Вопрос открыт.
Мы искренне рады видеть вас на нашем сайте!
Источник: http://www.drupal.ru/node/62886
В преддверии DrupalCamp Киев 2011 drupal.ua решил обрадовать многих пользователей, снимая языковой барьер между украиноязычным и русскоязычным сообществами.
По многочисленным просьбам мы включили русский интерфейс и локализировали группы и посты. Что означает, ваш материал будет понятен и украинцам, и русским.
Отныне посетитель сайта может видеть как русские, так и украинские посты. Кто знает украинский, тот понимает русский язык; кто не знает украинского, тот может смело игнорировать сообщения. Но, вместе с этим, русскоязычные пользователи могут не беспокоиться – ценные материалы будут переводиться на русский язык и вы ничего не потеряете.
Что делать русским на украинском сайте? Во-первых, делиться опытом. Русское сообщество поопытнее нашего, что неудивительно, ибо оно постарше. Ваша помощь в постижении друпал украинцами будет невозможно переоценить. Во-вторых, у вас появится возможность найти новых партнеров в Украине. Кто знает, возможно именно у нас, в Украине, находится человек, способный вести ваш бизнес в Украине, возможно здесь вы найдете ваших будущих разработчиков. В-третьих, в ближайшем будущем на сайте появится несколько полезных и удобных фишек, которыми вы будете пользоваться регулярно. Поэтому, пора привыкать к нашему интерфейсу.
На каком языке писать контент? Это вопрос больше касается украинцев. На нашем сайте небыло, нет, и не будет ограничений в выборе языка общения. Вы могли обратить внимание, что здесь уже существует множество постов на русском, и это при том, что до этого момента существовал только украинский интерфейс. Поэтому правило простое – контент желательно писать на языке, на котором вы думаете.
Есть ли возможность русскому читать украинский контент? Такая возможность есть. Но это будет зависеть от наличия перевода на русский. Если таковой имеется, увы, вам, скорее всего, не посчастливится прочитать это сообщение на украинском языке. Но мы уверенны, вы не расстроитесь. Но если любопытство берет верх – http://translate.google.com вам в помощь .
Начало есть, вам уже стал понятен язык интерфейса на нашем сайте. Каким будет развитие многоязычности на этом сайте в будущем? Вопрос открыт.
Мы искренне рады видеть вас на нашем сайте!
Источник: http://www.drupal.ru/node/62886
Нужна ваша помощь!
На кемпе в Киеве планируем представить наших русскоговорящих разработчиков и их модули, которые выложены на drupal.org.
То есть сделать слайды, где будет представлен человек и его модули. И кратко расскзать что модуль делает.
Я думал, что зайду на друпал.орг отфильтрую по странам пользователей и посмотрю их модули!…
Но я понял, что это нереально сделать.
Поэтому прошу вас любым образом скинуть мне ссылки на ваши модули на друпал.орг.
Можно тут в комментах, можно скайпом, можно почтой!
Очень будет хорошо, если вы сможете скинуть вашу фотку (не аватар) – страна должна знать своих героев (в лицо)!
Спасибо.
ICQ: 205535814
Skype: vlad_savitsky
vlad.savitsky@gmail.com
Update
“Наши разработчики” – это русскоязычные друпал-разработчики. Сюда спокойно входят все с друпал.ру, друпал.уа, СНГ и стран Балтии.
А также Паша, ныне проживающий в Тайланде, Егор, проживающий в Канаде, и остальные друпалеры, кто ещё помнит русский язык
Источник: http://www.drupal.ru/node/62876
Вышли обновления безопасности Drupal. Drupal 7.1 и 6.21 закрывают уязвимость SA-CORE-2011-001, Drupal 7.2 и 6.22 также закрывают другие ошибки, не относящиеся к безопасности. Чтобы закрыть уязвимость SA-CORE-2011-001 достаточно проапдейтиться на 7.1/6.21.
Новость на drupal.org: http://drupal.org/drupal-7.2
Список изменений после Drupal 7.0: http://drupal.org/node/1168946
http://ftp.drupal.org/files/projects/drupal-7.2.tar.gz
http://ftp.drupal.org/files/projects/drupal-6.22.tar.gz
Источник: http://www.drupal.ru/drupal-7.2
Дата проведения: 4 июня 2011 года (суббота)
Время – 18 часов. Место сбора – Жар-пицца на Политехе, а там разберёмся куда и как.
По времени я могу и в 17 приехать в Жар-Пиццу, но жарко боюсь будет. Если кто-то хочет раньше, то подъеду раньше.
В первых числах лета, может чуть позже, может чуть раньше, хотелось бы провести первую встречу. Встреча пройдёт скорее всего в формате знакомства, где присутствующие смогут познакомиться друг с другом очно и предложить свои идеи и темы. Так же, будет несколько мини-докладов и презентация нового проекта ориентированного на Drupal-сообщество.
Ожидаемая длительность: 3-4 часа.
Место: г.Краснодар, предлагаю пиццерию “Жар-Пицца” на Красной (рядом с Политехом), средний ценник 200-300р. Возможны другие варианты в зависимости от погоды и пожеланий сообщества.
О любых изменениях будет сообщено заранее.
Записаться в наши ряды
Очень ценной будет информация о чём вы хотите услышать и можете рассказать.
P.S. Домен ещё может у кого-то не открываться, DNS делегирован в 19 часов по Москве. Альтернативный домен
Источник: http://www.drupal.ru/node/62749
Небольшая преамбула.
Человек в этих делах я не искушенный, поэтому буду писать то, что думаю. Просьба не обижаться если что не так понял. Организаторам в любом случае респект за то, что собрали нас вместе. Так же хочу отметить, что текста пишу минимум, ибо времени много не имею, поэтому могу упомянуть не обо всех моментах.
Итак, начнем.
Встреча проходила в новой гордости нашего Академгородка – в здании технопарка (оно же символ грамотного распила бабла)
Немного пофотались перед зданием
whellcome
Sentrashy@drupal.org
И поскакали внутрь, т.к. уже опаздывали. Успели как раз к знакомству участников встречи. Каждый вставал и в стиле «Меня зовут Никита, я загораю с камушками на сосочках» представлялся. Всего было около 30 человек, весьма разношерстных по составу: представители бизнеса, веб-программисты (не друпал), друпалеры, «представители чего-то там еще». Так же был обнаружен бывший и раскаявшийся жумловод
Ниже идут фотографии участников мероприятия. Если вы узнали там себя, можете сказать мне – я подпишу. Алсо я выкладываю не все фотографии, поэтому если вы были там, а я вас не выложил и вы переживаете по этому поводу, можете написать мне лс.
Очень серьезный господин с планшетом. Знает все и обо всех :
Организатор мероприятия – он же Warsib, если не ошибаюсь:
После знакомства перешли к обсуждению, а что же такое сообщество и зачем мы тут все собрались. Поставили цель – что-то вроде меряться писькой с битриксом и прививать в регионе культуру потребления исключительно расово верных сайтов сделанных на Друпале.
Потом было очень много воды, через чур много, народ стал зевать и засыпать. Дабы никто не скучал мы дружно смотрели ролики про парашютистов.
Какое отношение, спросите вы, имеет данный вид спорта к Друпалу? А вот, это еще одна иллюстрация работы сообщества, которую мы созерцали минут 15 (видимо ютуба дома ни у кого нету)
Далее было еще много громких слов, воды, из чего я понял только, что участникам сообщества предлагается делать какие-то там дистрибутивы и сборки.
Затем последовал долгожданный кофе-брейк и небольшая экскурсия по технопарку.
Аренда одного рабочего места в технопарке, к слову, стоит 1000 рублей в месяц. Очень по божески, но процедура отбора арендаторов, насколько я понял не так проста и попасть туда может не каждая начинающая компания.
После перерыва перед аудиторией выступил директор самого бизнес-инкубатора:
Затем свершилось чудо. Наконец то затронули хоть одну тему, напрямую касающуюся Друпала, а именно прослушали небольшую презентацию доклада с которыми ребята поедут на камп в Киев.
К окончанию встречи (а она длилась 4 часа) началось самое интересное. Каждый по очереди высказывал свои ощущения от встречи и выдвигал свои предложения на тему чем заняться.
Для кого-то эта встреча стала «глотком свежего воздуха», кому-то просто понравилось, кто-то не определился. Особо отмечу несколько высказываний, и даже составлю не большой рейтинг:
1 место занял молодой человек, сидевший рядом: «Давайте напишем свой апач и откажемся от использования пхп интерпретатора»
2 место занял товарищ, который четко и ясно высказал «Где Друпал блеать? О чем мы вообще нахер общались 4 часа?»
3 место я отдаю человеку, выступившему с мыслью: «Ребята, вы же просто бабла срубить хотите. А оно нам вообще надо?»
Вот как-то так. Если кого-то интересуют мои мысли по этому поводу, то скажу так. Идея сообщества меня лично интересует и я готов вкладываться своими знаниями и временем. Но не ранее того момента, когда я пойму, что это действительно сообщество людей объединенных тягой к друпалу, а не тягой к получению прибыли.
Ну и на закуску. Причина, по которой каждый участник может сказать, что не зря посетил сей ивент – очаровательная девушка Алина
Источник: http://www.drupal.ru/node/62642
Работая над вялотекущим проектом под Drupal 7, понадобилось мне показывать масштабируемые превьюхи. Поиск дал несколько результатов, но под D7 был выбран, более менее приемлемый модуль Cloud zoom, основанный на одноименном jQuery плагине jQuery Cloud zoom.
Но к сожалению автор модуля , использовал возможности jQuery плагина лишь на 10%, а точнее через данный модуль практически невозможно настроить плагин, а там, тем не менее достаточно много такого, с чем можно «поиграться»(приведу спецификацию параметров без перевода, кому надо надеюсь сами переведут).
Parameter
Description (from V1.0.0)
Default Value
zoomWidth
The width of the zoom window in pixels. If ‘auto’ is specified, the width will be the same as the small image.
‘auto’
zoomHeight
The height of the zoom window in pixels. If ‘auto’ is specified, the height will be the same as the small image.
‘auto’
position
Specifies the position of the zoom window relative to the small image. Allowable values are ‘left’, ‘right’, ‘top’, ‘bottom’, ‘inside’ or you can specifiy the id of an html element to place the zoom window in e.g. position: ‘element1′
‘right’
adjustX
Allows you to fine tune the x-position of the zoom window in pixels.
0
adjustY
Allows you to fine tune the y-position of the zoom window in pixels.
0
tint
Specifies a tint colour which will cover the small image. Colours should be specified in hex format, e.g. ‘#aa00aa’. Does not work with softFocus.
false
tintOpacity
Opacity of the tint, where 0 is fully transparent, and 1 is fully opaque.
0.5
lensOpacity
Opacity of the lens mouse pointer, where 0 is fully transparent, and 1 is fully opaque. In tint and soft-focus modes, it will always be transparent.
0.5
softFocus
Applies a subtle blur effect to the small image. Set to true or false. Does not work with tint.
false
smoothMove
Amount of smoothness/drift of the zoom image as it moves. The higher the number, the smoother/more drifty the movement will be. 1 = no smoothing.
3
showTitle
Shows the title tag of the image. True or false.
true
titleOpacity
Specifies the opacity of the title if displayed, where 0 is fully transparent, and 1 is fully opaque.
0.5
Решил таки исправить данную ситуацию и написал модуль интегрирующий тот же самый jQuery плагин, но позволяющий гибко настроить все используемые параметры.
Примеры работы модуля можно посмотреть на моей тестовой площадке.
Сам модуль можно взять здесь (см. прикрепленные файлы) …
Модуль в пре-дев версии, только для тестирования … если кого заинтересует, то будет время доведу до ума и выложу на д.о.
Устанавливается стандартно, т.е. распаковываете архив в папку sites/all/modules
забираете с сайта jQuery Cloud zoom скрипты и распаковываете их в папку sites/all/libraries/cloud-zoom
Включаете модуль.
Настраиваете тип материала (поле типа Изображение (Image) на закладке “Отображение” устанавливает формат – cczoom и далее уже настраиваете параметры вывода)
Скриншоты настройки поля:
Источник: http://www.drupal.ru/node/62581
В эту субботу, 21 мая, друпаллеры Новосибирска соберутся в Академпарке.
Мы будем знакомиться, общаться и обмениваться мыслями о том, как лучше организовать наше сообщество и как оно будет работать.
Повестка:
15:45-16:00 — регистрация участников
16:00-16:10 — вступительное слово организаторов встречи
16:10-16:40 — знакомство участников
16:40-17:00 — презентация концепции сибирского сообщества
17:00-17:15 — слово от представителя «Фонда поддержки свободного программного обеспечения»
17:15-17:30 — слово от представителя клуба «Финист»
17:30-18:00 — мозговой штурм: внесение предложений по созданию сообщества, календарный план мероприятий
18:00-18:15 — кофе-брейк
18:15-18:45 – DrupalCamp Nsk: выбор и назначение даты
18:45-19:00 — демо докладов к DrupalCamp в Киеве
Приглашаются все, кому интересен Drupal и тема создания сообщества! Встреча неформальная, приветствуются идеи и предложения от участников
НО нам нужно знать, сколько будет участников, поэтому большая просьба зарегистрироваться.
Ждем всех желающих с 16:00 до 19:00 в конференц-зале Бизнес-инкубатора Академпарка (г. Новосибирск, ул. Инженерная, 20, 3й этаж).
Источник: http://www.drupal.ru/node/62456
Для свободно распространяемых CMS главная новость года – резкий взлет популярности WordPress. Завоевавшая широкую популярность как платформа для блогов, CMS WordPress стала использоваться для создания корпоративных сайтов, промо-страниц и даже интернет-магазинов. На этом фоне Typo3, более сложная CMS, заточенная под корпоративные сайты и бизнес-процессы, потеряла две позиции и сместилась в рейтинге на пятое место. Две верхние строчки среди свободно-распространяемых систем по-прежнему остаются за CMS Joomla и Drupal, привычные профессиональным разработчикам по всей России.
http://www.ratingruneta.ru/cms/opensource
вся статья http://habrahabr.ru/blogs/about_cms/119411/
Источник: http://www.drupal.ru/node/62410
English
This is module implements import/export for the application 1c 8.x. It`s a complementary solution for 1C 8.x handler. It`s use Commerce ML 2 format such XML. Else this module work as batch process and use cron for the queue.
Russian
Данный модуль позволяет синхронизировать 1С 8.x Предприятие + 1С управление торговлей (УТ) с магазином Ubercart 2. В синхронизации участвуют:
1C -> Ubercart 2 (Прайс – лист с ценовыми предложениями)
1C -> Ubercart 2 (Категории)
1C <- Ubercart 2 (Ордера от магазина)
1C <- Ubercart 2 (Информационные данные о покупателях)
Настройки
старая глючная версия
beta 4
Прикрепленный файл
Размер
cmlservice.2.09.jpg
32.08 кб
cmlservice.2.09-settings.jpg
49.03 кб
2011_05_22_17-06-16-130.jpg
54.43 кб
Источник: http://www.drupal.ru/node/62395
А чем мы хуже Сибирян?
F.A.Q: сайт тут
P.S. почему пост не на главной?
Теперь основное:
Мы уже неоднократно встречались и довольно хорошо знаем друг друга, но формат был на уровне дружеских посиделок.
Есть идея и желание провести это мероприятие на более высоком уровне, например, в формате той же Drupal Kitchen или же, устроить просмотр и обсуждение докладов с Киевского кампа, можно и Московского, можно и голосование по темам.
Я не буду пафосно говорить об обмене опытом и прочем бла-бла-бла, просто вот такое предложение, пока в кратце, по срокам – июнь.
Организационные вопросы пока в расчёт не берём, помещение с компами/проектором/стульчиками не проблема.
Регистрация на мероприятие
Источник: http://www.drupal.ru/node/62389
В следующий четверг, 19 мая , в 19:00, в Киеве, в помещении i-klass, по адресу Лаврская, 16 (бывшая Ивана Мазепы, 34), пройдет десятая (X) встреча DrupalCafé.
Это последняя встреча перед DrupalCampKyiv 2011 – поэтому эта встреча имеет номер “Х”.
На этот раз у нас будет 3 (!) презентации:
Автоматическое тестирование интерфейса с помощью Selenium Юрий Герасiмов (Madcap)
Drupal commerce + Panels + Views = Готовый интернет магазин Вячеслав Рысь (FocusArt)
Drupal 7 и социальные сети. Модуль Social Connect. Dmitry Olaresko (Madcap)
Напоминаем, DrupalCafé – формат локальных встреч пользователей и разработчиков CMS Drupal. Вход свободный, но исключительно по регистрации, так как количество мест ограничено размерами аудитории (если вы были прошлый раз, вам все равно необходимо зарегистрироваться на события).
За справками можно обращаться к Александру Швецу по телефону +380976833155 или отправив письмо на neochief@drupal.ua
Подробности: http://drupal.ua/groups/drupalcafe/x
Источник: http://www.drupal.ru/node/62368
Только для Сибирских Drupal`еров
«Приходи ради программы, оставайся ради сообщества» – так гласит официальный слоган Drupal.
Благодаря мощному интернациональному онлайн-комьюнити, разработчики со всего мира могут обмениваться опытом и делиться своими наработками с коллегами. С другой стороны, не каждый хорошо знает английский язык, и не всегда удобно воспринимать информацию с экрана монитора.
Поэтому ничто не заменит живого общения на родном языке! Мы хотим перенести опыт мирового Drupal-комьюнити в наш регион и создать свое – сибирское сообщество DrupalSib.
Мы будем устраивать оффлайн-встречи для
- обмена опытом,
- развития навыков и получения новых знаний,
- совместной работы над проектами и крупными заказами,
- организации и выступлений на Drupal-мероприятиях,
- продвижения бренда Drupal среди клиентов и студенчества.
Приглашаем всех желающих объединиться для общего дела!
Регистрируйтесь на сайте сообщества и присоединяйтесь к нам на facebook.
Партнеры сообщества:
Айти-посиделки, Академпарк, международная молодежная организация AIESEC
Источник: http://www.drupal.ru/node/62337
Доброго времени суток, уважаемые! Хочу поделиться проблемой решением проблемы:
Стала задача – вывести в блок список самых активных блоггеров. Вывести имя пользователя и количество нод типа Blog post, оставленных им. Сортировка по убыванию по количеству постов. И имя каждого пользователя в добавок ко всему должно было выводиться ссылкой на его блог.
В итоге получилось следующее:
Как получилось? Под катом.
Итак, по порядку. Что я имел для достижения цели:
Drupal 7.x
Views 3.0-beta3
Рецепт получения блока:
Делаем новую вьюшку и делаем дисплей Block.
Мы будем выводить поля. По сему ставим Show:Fields
Фильтр: по типу содержимого Blog entry. Ставим Content: Type (= Blog entry)
Какие мы выводим поля:
- User: Name (ставим галку на Exclude from display, так как нам нужно просто взять из базы данных значение, но фактически не показывать его в данном поле. Почему – опишу ниже.)
- User: Uid (ставим галку на Exclude from display по той же причине)
- Content:Nid. При добавлении поля Views спросит о группировке, укажите Count. Таким образом мы получаем количество постов в блоге от определённого пользователя. После указания группировки Count, поле Content:Nid будет содержать только количество записей блога на каждого пользователя.
Вот тут и начинается самое интересное: нужно вывести имя блоггера, рядом показать счётчик постов, и это поле сделать ссылкой на блог пользователя. Я долго ломал голову как это реализовать, но Dealancer подсказал отличное решение: переписать поле. Действительно: у нас есть имя пользователя, его uid и количество его постов. Почему бы не вывести это в таком порядке, в каком нам это необходимо?
Есть замечательная опция у большинства полей: REWRITE RESULTS. Это свойство поля заменять свой текст по определённым правилам, которые описаны в разделе Replacement patterns, если раскрыть свойство REWRITE RESULTS.
В свойствах поля Content:Nid раскроем REWRITE RESULTS:
Поставим галочки на
[x] Rewrite the output of this field
[x] Output this field as a link
Что даст нам возможность изменять содержание поля и ссылку поля.
После расстановки галочек появятся дополнительные опции Text и Link path. Эти поля определяют текст поля и его ссылку соответственно. Они-то нам и нужны.
Нам необходимо вывести в следующем порядке: Автор (кол_во_постов постов), если сказать по-человечески: Admin (25 постов)
Мы помним, что количество постов у нас хранит поле Content:Nid. По этому дадим имя нашему полю:
[name] ([nid] постов)
Чтобы попасть на страницу блога пользователя, нужно перейти по адресу example.com/blog/user_id
А значит ссылка у нас будет вида blog/[uid]
Сохраняем, и вуаля! Осталось только сделать сортировку по убыванию количества постов. То есть чем больше постов, тем выше в списке будет показываться блоггер.
Для этого поставим сортировку по убыванию значения поля Content:nid. Напоминаю, Content:nid хранит количество постов.
COUNT(Content: Nid) (desc)
В конечном итоге вьюшка преобретает следующий вид
Надеюсь мой опыт будет кому нибудь полезен
Спасибо пользователю Dealancer за неоценимую помощь!
Источник: http://www.drupal.ru/node/62109
В конце апреля этого года в своем официальном блоге представители Google Analytics объявили об запуске бета-тестирования нового интерфейса.
В этой же статье я хочу рассказать об использовании новой очень интересной возможности – анализ скорости загрузки страницы.
О включении такой возможности, пример анализа данных по скорости загрузки страниц Вашего сайта относительно разных браузеров, операционных систем, континентам и тд, а так же о анализах скорости загрузки страницы с помощью Google WebMaster Tools можно прочитать здесь:
http://internetdevels.ru/blog/google_and_pagespeed
Источник: http://www.drupal.ru/node/62055
2я часть, теперь про стандартные обработчики views.
плюсуем, комментим
Источник: http://www.drupal.ru/node/62047
Вашему вниманию предлагается статья, в которой описывается способ встраивания стандартного функционала форм Drupal в редактор BUEditor для удобного добавления ссылок на внутренние материалы сайта.
Начну с дисклеймера. К сожалению, не имею возможностей разбирать весь процесс создания по косточкам, т.к. было потрачено немало времени и допущено и исправлено множество ошибок прежде, чем получился результат, достойный публикации. Тратить это время здесь смысла большого не имеет, лучше идти дальше. Вот решение – пользуйтесь, экспериментируйте, дорабатывайте, делитесь. Здесь же постараюсь описать все, что необходимо для реализации задуманного функционала. Описание дается для блоками, а не построчно.
Инструменты
Module API
Drupal form API
Ajax
JQuery
BUEditor
Предыстория
Основным редактором на нашем научном портале является BUEditor, т.к. есть твердая необходимость форматировать текст с использованием модуля DruTeX. Ну и просто постараться сохранить предсказуемый вид для исходных текстов (в отличие от wysiwyg-редактора) для их дальнейшего использования по-жизни. По мере наполнения появилась необходимость для кросс-линкинга между статьями, терминами словаря и другими видами материалов. Все это осложнялось отсутствием таких возможностей для BUEditor, в отличие от других редакторов, для которых есть такой модуль как Linkit. Потратив некоторое время на изучение матчасти (Drupal form API), было принято решение, что во что бы то ни стало нужно прикрутить стандартную форму Drupal к диалогам BUEditor. Ведь autocomplete уже реализован, стили сделаны, а пока форма ждет ответа, там бегает кружёк и выпадет готовая менюха – вообщем просто и красиво.
Первым делом начал искать, что было сделано. Например – http://www.drupal.ru/node/12619, но по делу там ничего не нашел. Начал экспериментировать с маленьким неофициальным модулем ajax-demo и его autocomplete-возможностями. Все быстро встало на свои места. Дальше появился вопрос – как заставить друпаловскую форму залезть в диалог редактора?
Кстати, бился с поиском до последнего, т.к. не сторонник, чтобы на сайте был такой hand-made. Но готовых решений нет и был вынужден изменить своим же принципам.
Hands on
Итак, приступаем.
Первым делом надо сделать свой модуль (назвал его callbacks), в который войдет основной функционал, а именно:
Описание формы
Описание функций обращения к базе
Клиентский js-функционал
Стили ответа
callbacks.info
; $Id$
name = callbacks module
core = "6.x"
version = "6.x-1.1"
callbacks.module
<?php
// $Id$
/**
* Implementation of hook_init().
*/
function callbacks_init(){
variable_set('callbacks_link_form_var', drupal_get_form('callbacks_link_form'));
}
/**
* Implementation of hook_menu().
*/
function callbacks_menu() {
return array(
'callback/link' => array(
'access arguments' => array('access content'),
'page callback' => 'callbacks_link_func',
'type' => MENU_CALLBACK,
),
);
}
/**
* Retrieve a pipe delimited string of autocomplete suggestions for existing users
*/
function callbacks_link_func($string) {
$matches = array();
$dst = "";
$result = db_query_range("SELECT nid, language, type, title FROM {node} n WHERE LOWER(n.title) LIKE LOWER('%s%%')", $string, 0, 10);
while ($node = db_fetch_object($result)) {
$get_alias = db_query("SELECT dst FROM {url_alias} WHERE src = 'node/%s'", $node->nid );
if( $alias = db_fetch_object($get_alias) )
$dst = $alias->dst;
else
$dst = "node/" . $node->nid;
$matches[$node->nid] = array(
'type' => check_plain($node->type),
'title' => check_plain($node->title),
'alias' => check_plain($dst),
'lang' => check_plain($node->language),
);
}
$results = array();
if (count($matches)) {
foreach( $matches as $key_nid => $values ) {
$text = '<div class="clear-block">';
// $text .= '<div class="callbacks-nid">['. $key_nid .']</div>';
$text .= '<div class="callbacks-title">'. $values['title'] .'</div>';
$text .= '<div class="callbacks-type">['. $values['type'] . ':' . ( $values['lang'] ? $values['lang'] : 'any' ) . ']</div>';
$text .= '<div class="callbacks-alias">'. $values['alias'] .'</div>';
$text .= "</div>";
$dst = $values['alias'];
$results[$dst] = $text;
}
}
drupal_json($results);
}
/**
* Defines a form.
*/
function callbacks_link_form() {
drupal_add_js(drupal_get_path('module', 'callbacks') . '/js/callbacks.js');
drupal_add_css(drupal_get_path('module', 'callbacks') . '/css/callbacks.css');
return array(
'link-path-ac' => array(
'#autocomplete_path' => 'callback/link',
'#title' => t('URL or Title'),
'#description' => t('Start type title to get its internal URL'),
'#type' => 'textfield',
'#required' => TRUE,
),
'link-text' => array(
'#title' => t('Link text'),
'#description' => t('Select text in editor or enter link text'),
'#type' => 'textfield',
),
'cancel' => array(
'#value' => t('Cancel'),
'#attributes' => array('class' => 'callbacks-button'),
'#type' => 'button',
),
'add-link' => array(
'#value' => t('Add link'),
'#attributes' => array('class' => 'callbacks-button'),
'#type' => 'button',
),
);
}
?>
hook_init() – нужен, чтобы заранее подготовить форму, иначе BUEditor ее не съест.
hook_menu() – это осознанная необходимость для autocomplete в Form API.
callbacks_link_func($string) – стандартный функционал для json-ответов. Здесь можно выбирать из базы любые поля и отдавать их для отображения, в данном случае поиск ноды в базе происходит по заголовку, но этим, как вы понимаете, можно не ограничиваться. Тут же происходит стилевое оформление – дело вкуса прячется в конце функции. Да, кстати, здесь приходится делать двойной запрос к базе, т.к. все, что мы делаем, мы делаем для живых людей и поэтому подставлять красивый alias вместо ссылки вида node/435 насущная необходимость. Для красоты (см. картинку в конце) выводится название, алиас, тип материала и язык.
callbacks_link_form() – описываем форму по-друпаловски: быстро, просто, удобно, с аутокомплитом.
JS часть. Файлик js/callbacks.js
Drupal.behaviors.callbacks = function(){
$('#edit-add-link').unbind().click(
function(){
var url = $('input#edit-link-path-ac').val();
var text = $('input#edit-link-text').val();
E = BUE.active;
E.replaceSelection( '[url'+ (text ? ('='+ url) : '') +']'+ (text || url) +'[/url]' );
E.dialog.close('fadeOut');
return false;
}
);
$('#edit-cancel').unbind().click(
function(){
BUE.active.dialog.close('fadeOut');
return false;
}
);
$(’#edit-add-link’).unbind().click() – отцепляем стандартный submit и говорим форме, что же нам от нее нужно.
$(’#edit-cancel’).unbind().click() – то же самое, но для кнопочки Cancel, для порядка.
CSS часть. Файлик css/callbacks.css
.form-radios .form-item {
display: inline;
}
.callbacks-nid {
float: left;
}
.callbacks-title {
float: left;
}
.callbacks-alias {
color: #333;
font-size: 0.9em;
clear: both;
margin-bottom: 5px;
font-weight: bold;
}
.callbacks-type {
float: right;
font-size: 0.8em;
}
.callbacks-button {
float: right;
}
Тут самая скука, расставить цвета и отступы.
Вторым делом добавить php-кнопку в BUEditor.
<?php
php:
$button_form = drupal_to_js(variable_get('callbacks_link_form_var', ''));
return "js:
var S = E.getSelection();
E.dialog.open('Internal linking', $button_form, 'fadeIn');
$('input#edit-link-text').val( S );
Drupal.attachBehaviors($button_form);
";
?>
variable_get() – важен, т.к. вариант с drupal_get_form() в данном случае приводит к непредсказуемым результатам и его использовать нельзя.
drupal_to_js() – важен, т.к. иначе форма выдается в неадаптированном для js виде.
Drupal.attachBehaviors() – важен, т.к. без этой функции форма не слушается и плохо себя ведет.
Все
По идее, этого достаточно, чтобы начать экспериментировать. В оригинальном виде у меня используются две формы и, соответственно, все описанное сделано дважды в одном модуле. Если все это после доведения до ума выльется в новый модуль для BUEditor – будет приятно, и, надеюсь, не только мне.
Буду рад получить отзывы и предложения, а так же все сообщения об ошибках. В моем случае некоторые из них проявлялись через месяц-другой использования. Но в целом все довольно стабильно. Если нужен исходник – выложу или пришлю, но там почти все так же как описано.
Выглядит форма таким образом:
А результат ее использования не менее красив:
Прикрепленный файл
Размер
callbacks_form.png
6.79 кб
callbacks_form_2.png
34.29 кб
Источник: http://www.drupal.ru/node/61991
Есть тип материала ‘diary’. Нужно разрешить доступ к нему только автору ноды.
Создаем простой модуль ‘diaryaccess’, в котором выполняем хук hook_node_access.
<?php
/**
* Implements hook_node_access().
*
*/
function diaryaccess_node_access($node, $op, $account) {
// If $node is a string, the node has not yet been created. We don't care
// about that case.
if (is_string($node)) {
return NODE_ACCESS_IGNORE;
}
if ($node->type == 'diary' and $node->uid != $account->uid) {
return NODE_ACCESS_DENY;
}
return NODE_ACCESS_IGNORE;
}?>
Источник: http://www.drupal.ru/node/61958
Мы подготовили для вас 2 тренинга – один “синий”, а другой “красный”:
Создание сайта на Drupal 7
Основы разработки модулей для Drupal 6
Базовый тренинг
Тренер: Влад Савицкий
Дата: 2 июня 2011
Время: 5ч
Продвинутый тренинг
Тренер: Евгений Курко
Дата: 5 июня 2011
Время: 8ч
Каждый участник тренинга самостоятельно создаст свой собственный сайт на Drupal 7!
К концу тренинга ваш сайт будет размещен в интернете на вашем домене.
Вы сами создате его дизайн и наполните контентом.
Научитесь руссифицировать сайт.
При всем этом, мы не будем даже прикасаться к коду, а будем пользоваться только браузером.
Курс рассчитан на начинающих Drupal разработчиков.
Будут рассмотрены базовые понятия о том, как функционирует Drupal на программном уровне, роль модулей, как модули взаимодействуют между собой.
Будут рассмотрены основные хуки Drupal, а также обзор полезных функций. Теоретические знания будут подкрепиться практическими примерами.
В течении всего курса его участники создадут несколько собственных несложных модулей на основе пройденного материала, закрепив тем самым полученные знания.
Купить билет
Купить билет
Оба тренинга уже сформированы, программа завершена и мы опубликовали их подробные анонсы:
Создание сайта на Drupal 7
Основы разработки модулей для Drupal 6
Чтобы принять участие в тренинге вам нужно зарегистрироваться на сайте кемпа, если вы этого ещё не сделали, и посетить страницу “Покупка билетов“, где можно купить билеты на любой из тренингов. Участие в тренингах и участие в кемпе никак не связаны. Вы можете отдельно купить билет на тренинги или же только на кемп – это как вам будет угодно!Тренинги будут проводиться на территории компании i-Class, которая предоставляет нам проектор и учебные компьютеры.
“Красный” или “синий” тренинг?
На самом деле выбора у вас нет!
Точнее его делать не нужно.Мы сделали так, что тренинги будут проходить не одновременно, а в разные дни! И те, кто хочет попасть на оба тренинга, – смогут это сделать.
Даты проведения тренингов
Создание сайта на Drupal 7 – 2 июня 2011 (перед кемпом)
Основы разработки модулей для Drupal 6 – 5 июня 2011 (после кемпа)
Купить билет на тренинг
Источник: http://www.drupal.ru/node/61824
Модуль выставления счета “сбербанка”
функциональность
Создание платежки на базе шаблона
Защита платежки от просмотра третьими лицами
Сохранение платежки в личном кабинете.
Отправка платежки на почту клиента.
Отправка платежки на почту компании, на адрес. куда поступают письма с заказами.
Скачать http://css.mirocow.com/projects/sberbank/files
Реализация
1. Создание платежки на базе шаблона
Платежка формируется из JPG темплэйт файла. Заполнение платежки происходит с помощью imagettftext.
Данные платежки имеют защищенный вид хранения. Принцип формирования платежки аналогичен ImageCache.
Защита платежки строится след принципом. Создается каталог хранения платежек sites\default\files\sberbank.
В нем создаются каталоги с именем UID пользователя, в которых лежат хеши платежек вида 55_fe8a0ea4ce326398482061ad5eb1e58d.jpg.
Где fe8a0ea4ce326398482061ad5eb1e58d строится из md5(номера ордера + drupal_private_key), благодаря чему, хеши всегда будут иметь уникальный вид. (подбор хеша невозможен – защита от просмотра третьими лицами)
2. Сохранение платежки в личном кабинете
Для доступа к платежам используется URI вида http:// имя_сайта /sberbank/номер ордера.jpg. Данная ссылка и сама картинка выводится в управляющем меню счета и доступна владельцу счета или администратору магазина.
3. Отправка платежки на почту клиента
Для шаблона писем формируются токены след вида: защищенный и прямой
Примеры:
* http:// имя_сайта /sites/default/files/sberbank/58.png – защищенный
* http:// имя_сайта /sites/default/files/sberbank/5/55_fe8a0ea4ce326398482061ad5eb1e58d.jpg – полный путь до файла платежки
4. Отправка платежки на почту компании, на адрес. куда поступают письма с заказами
Данные формируются аналогично пункту 4
Требования
* Используемые модули (зависимости): Token
* Необходимые библиотеки: GD
Модуль настроен и работает тут http://motodart.ru
Подробнее тут: http://css.mirocow.com/projects/sberbank/wiki/Wiki
Прикрепленный файл
Размер
sberbank.gif
2.82 кб
Источник: http://www.drupal.ru/node/61778
По состоянию на 1 мая 2011 года и по данным на странице http://camp11.drupal.ua/ru/program я получил очень интересную информацию о том, чего желают люди, которые будут на Drupal-кемпе в Киеве 3-4 июня 2011 года.
Сюрприз!
Удивило то, что больше всего набрали голосов темы про использование Drupal для мобильных устройств! Тема новая и интересная и было бы очень здорово иметь доклады по этому направлению.
Направление “Drupal-сообщество” набрало меньше всего голосов, но это не удивительно. Это скорее говорит о том, что большинство в Drupal-сообществе не видит преимуществ и потенциала в том, чтобы выкладывать свои модули на drupal.org или как-то иначе взаимодействовать с сообществом. Но осветить это направление нужно, поэтому у нас будет парад модулей сделанных нашими разработчиками. К тому же украинское Drupal-cooбщество продолжает формироваться и все мы участвуем в его развитии.
Второе по НЕпопулярности направление – “Drupal-сборки“. Тоже вполне ожидаемый результат – конференция в Москве показала, что наши разработчики ещё не видят перспектив создания и развития собственных сборок, хотя опыт наших западных товарищей говорит об обратном. Не буду вам доказывать и объяснять эту тему – оставим это тем докладчикам, которые возьмутся раскрыть это направление. Очень перспективное направление.
Распределение остальных направлений примерно равномерное, кроме направления “Разработка и деплоймент“. Это направление всегда пользовалось особым успехом на всех кемпах и конференциях. Процесс поддержки крупных сайтов – это непростая задача, которую приходится решать своим собственным способом, потому что одинаковых проектов не бывает. Я надеюсь, что мы услышим много интересного и нового на эту тему на кемпе. Также очень важно использовать хорошие методы для того, чтобы организовать разработку. Это либо даст возможность компании рости, либо будет тормозить её развитие. На кемпе будет уникальная возможность послушать руководителей компаний, которые уже искали и нашли свои собственные решения (development workflow) и успешно их используют.
Больше диаграмм можно посмотреть в статье Самые популярные темы докладов на сайте кемпа.
Самые востребованные темы
По результатам голосования, с учетом того, что у нас уже есть заявленные доклады, а также учитывая, что всего у нас 36 слотов для докладов – имеем список.
Этот список показывает желания участников кемпа, но это не значит, что все остальные темы будут неинтересны или не востребованы. Смело добавляйте ваши доклады!
Программирование
Обзор Render API в Drupal 7 (47)
Drupal 7 Database API (35)
MongoDB и Drupal (24)
Решения и настройка
Увеличение производительности Drupal (43)
Создание магазина с помощью Drupal Commerce (29)
“Облачный” хостинг для Drupal (29)
Оптимизация фронтэнда (JS, CSS, картинки и др.) (23)
Sphinx + Solr (21)
Темизация
Как рендерится страница в Drupal (от запроса до вывода на экран) (39)
AJAX и JS в Drupal (38)
Темизация форм (30)
HTML5 и Drupal (29)
Темизация вьюх (views) (27)
Препроцессоры CSS, JS и др. (25)
Бизнес и стратегия
Drupal для очень больших сайтов (Enterprise) (37)
Использование гибких (Agile) методик разработки (27)
Как выиграть с Drupal против альтернативных движков (21)
Методы продвижения сайта (18)
Обзор Drupal-индустрии (18)
Drupal-сообщество
Использование Git на Drupal.org (26)
Drupal-cертификация (17)
Развитие Drupal-сообщества (11)
Дизайн и юзабилити
Drupal 7: Новые шаблоны интерфейса (26)
Drupal-cборки
Обзор существующих сборок на базе Drupal (18)
Создание сборки (13)
Разработка и деплоймент
Инструменты разработчика (36)
Автоматическое функциональное тестирование и Drupal (35)
Как сделать правильную оценку времени? (30)
Для мобильных устройств
Создание приложений для iPhone/iPad/Android + Drupal (30)
Использование jQuery Mobile (26)
Создание сайтов для мобильных устройств (26)
Использование модулей
Использование CCK-полей (28)
Создание безопасного кода (23)
Использование модуля Panels (20)
Если вы хорошо разбираетесь в какой-либо из этих тем, то смело добавляейте тезисы вашего доклада и начинайте готовиться – времени уже не так много осталось.
Я надеюсь, что статья “Готовим доклад для кемпа” поможет вам сделать лучший доклад на кемпе. В любом случае обращайтесь за помощью ко мне (Влад Савицкий):
+38094-928-06-32
ICQ: 205535814
Skype: vlad_savitsky
vlad.savitsky@gmail.com
http://drupal.ua/user/50
http://drupal.org/user/176491
http://drupal.ru/user/6412
http://ua.linkedin.com/in/vladsavitsky
Источник: http://www.drupal.ru/node/61710
Сделал обещанный модуль.
что он себе представляет:
Модуль называется Ubercart Alter Sell Price. Находиться во вкладке ubercart – extra. Копируем – Включаем. Дальше в материале типа Product появляется возможность писать текст вместо Sell Price причем остается и сам Sell Price. Во вьесе есть дополнительное поле, которое выводит представление альтернативной цены, так и называется – Alter Sell Price.
Как работает во вьесе product – заменяем поле Product: Sell price на поле Product: Alter Sell Price. Нажимаем саве и будет нам щасье.
Product: Alter Sell Price – выводит текст продукта и если в настройках продукта снята галочка “Использовать Alter Sell Price” – то выводит реальную цену продажи.
В чем отличие от других: Альтернативную цену можно писать для каждого продукта разную.
p/s/ Это первый модуль – поэтому прошу строго не судить .. конструктивную критику приветствую..
Все всем спасибо.
Прикрепленный файл
Размер
ubercart_alter_price.zip
8.37 кб
Источник: http://www.drupal.ru/node/61512
Всем привет!
Написал модуль для логирования отправок любых форм. Вы просто указываете id формы, и модуль прицепляется к ней сам. После этого, любая отправленная в форму информация будет сохранена в отдельной таблице базы данных, и в любое время ее можно будет посмотреть.
Зачем это нужно?
Вариант 1. Отслеживание введенных значений. Не всегда вся введенная в форму информация сохраняется. Бывает, что на ее основе делаются какие-либо вычисления, и в базу сохраняются только результаты этих вычислений. Если вы хотите посмотреть, что же было введено в качестве исходных данных, то этот модуль для вас.
Вариант 2. Вы разрабатываете большую, сложную форму, многоступенчатую да с аяксом. А то и не одну и не две, в рамках какого-либо проекта. Или нескольких проектов. Чтобы не писать для каждой из этих форм свой отдельный submit-хендлер, который может быть просто огромным, да и во многом одинаковым для подобных форм, вы просто прицепляете этот модуль, и всю работу по сохранению введенной информации он берет на себя. В модуле предусмотрено API для этого.
Немного подробнее можно прочитать на странице модуля formsave (он пока в песочнице).
Немного скриншотов:
Скриншот экрана настроек
Скриншот списка отправок
Скриншот одной отправки
Если вы хотите видеть этот модуль в качестве полноценного проекта на drupal.org, отпишитесь, пожалуйста, в этой заявке на получение статуса Full project. то добро пожаловать на страницу проекта formsave
Источник: http://www.drupal.ru/node/61297
В субботу, как известно, в Москве прошла конференция по Друпалу, то есть DrupalConf. Имел честь посетить это мероприятие и я, о чем далее и расскажу. Кстати, заранее предупреждаю, что хотя отчет и будет сопровождаться фотокарточками, делал я их с телефона. А телефон, как показывает практика, — это не фотоаппарат, даже если в нем 10 мегаписькелей. На улице еще ничего, но в помещении — мрак. Хотя мне и подсказали, что это там было такое освещение. Впрочем, я все равно фотографировать не люблю, так что — чем богаты, тем и рады.
Конференция проходила на ВДНХ, что особенно приятно, поскольку так вышло, что не бывал там с самого детства. Выдвинулся рано-рано утром и прибыл к главному входу уже в 9:00.
Конференция открывалась в 9:30 в павильоне «Электрификация», так что было время прогуляться по выставке. Гулять по ВДНХ утром — хорошо. Погода отличная, людей мало, павильоны красивые. Приятно, что здания, построенные советской властью, стоят и радуют глаз до сих пор.читать далее>>>>>>>>>>>>>>>>>>>>
Источник: http://www.drupal.ru/node/61248
Спасибо участникам и докладчикам!
В этом топике предлагаю собрать впечатления и ваши замечания по организации конференции. Это поможет сделать нам осеннее мероприятие лучше.
Архив презентаций
Презентация Алексея Костина – Drupal и SEO
Презентация Александра Швеца – разработка Drupal дистрибутивов
Правильные видео от PVasili
Предварительные версии видео(пока без ответов на вопросы)
Доклад Андрея Постникова
Доклад Вячеслава Касихина
Доклад Александра Дубовского
Доклад Алексея Костина
Доклад Анны Федорук
Доклад Клеры Виленской
Доклад Влада Савицкого
Источник: http://www.drupal.ru/node/61223
Христос воскресе
не утверждаю, а даже наоборот
Источник: http://www.drupal.ru/node/61218
Буфет был очень вкусный, докладчикам тоже спасибо: много интересно было, много поучительного узнал и для дела полезного!
Организаторам и докладчикам мегареспект-всё было на высоте!!!!!
Фоточки ложите сюда!
Вниз приаттачивайте, без стеснения, пусть позавидуют те кто не был!
Источник: http://www.drupal.ru/node/61213
Привет всем.
Буду вести в этом топике репортаж с DrupalConf 2011 практически в прямом эфире.
Немного расстраивает отсутствие интернета.
Я буду выходить через свой Питерский SkyLink в роуминге. Правда не знаю надолго ли хватит этого интернета и сколько это будет стоить.
Ладно, начинаем.
Источник: http://www.drupal.ru/node/61188
Социальные сети в последнее время становятся всё более популярными и LiveLournal является одним из лидеров по числу пользователей.
Но известные события, в результате которых недавно ЖЖ был недоступен достаточно продолжительное время, обнажили суровую правду жизни: livejournal.com – это обычный сайт, с которым может произойти всё, что угодно и нет никаких гарантий, что Ваш блог на этой площадке или его содержимое “внезапно” не уйдет в небытие. Подобное встречается в ЖЖ сплошь и рядом.
Впрочем, вылететь может и Ваш stand-alone блог. К примеру, можно элементарно забыть продлить регистрацию домена (что случилось недавно с хаброй) или, не дай Бог забыть продлить хостинг. При этом в лучшем случае Ваш сайт будет недоступен некоторое время, а в худшем случае хостер может вообще снести его со всем содержимым.
Запасной аэродром для сохранения контента и юзеров в этом случае придется как нельзя кстати. Данный факт и был одним из мотивов для создания этой сборки.
Инсталляционный профиль NewsMaker предназначен как для ЖЖ блогеров, так и для владельцев независимых сайтов. Он позволяет в автоматическом режиме дублировать сообщения из Вашего stand-alone блога, сделанного на Drupal в Ваш блог или комьюнити на площадке LiveJournal. Аналогично Вы можете сохранять сообщения из Вашего ЖЖ в Ваш блог на Drupal, то есть зеркалить их.
Установка и настройка
Несмотря на то, что в этом профиле применен нестандартный инсталлятор, разработанный и реализованный моим партнером Валентином Ворониным http://shaman.asiadata.ru, его установка не отличается от стандартной друпальской.
Скопируйте архив в корень будущего сайта и распакуйте его средствами административной панели хостинга или разархивируйте в любую папку на Вашем компьютере, а затем скопируйте все файлы на сервер (во втором случае процесс копирования может занять длительное время).
На первом этапе установки сайта выберите инсталляционный профиль “NewsMaker”
Дальше установка происходит как обычно.
Если Вы хотите не только отправлять сообщения из своего блога на Drupal’e в LiveJournal, но и импортировать посты и комментарии, публикуемые в Вашем ЖЖ, на Ваш друпал-сайт, то на Вашем сервере должны быть установлены Perl модули, необходимые для правильной работы модуля LJsync.
Если же Вам нужен только кросспостинг в ЖЖ, то после инсталляции и входа на сайт просто отключите LiveJournal Sync в /admin/build/modules.
Дальнейшая настройка сводится к следующему:
Зайдите в свой профиль /user и укажите там свой логин и пароль доступа в LiveJournal
Зайдите в настройки модуля LiveJournal Sync /admin/settings/ljsync (если Вы решили его использовать) и нажмите кнопку “Вернуться к исходным” Здесь же Вы можете выбрать нужный формат импорта данных, словарь для импортируемых тегов и тип материала для импорта.
Зайдите по ФТП в папку Вашего сайта /sites/default/files/ljsync и создайте там файл вида логин_жж-lj.xml (тот, что Вы указывали в своем профиле).
На этом процесс установки и настройки можно считать завершенным. Да, и не забудьте установить права доступа 777 к папке /tmp в корне сайта.
Возможности, которые Вы получаете
Помимо перекрестного кросспостинга, о котором написано выше, Вы получаете еще ряд дополнительных возможностей:
Домашнюю страницу aka igoogle c возможностью включения, сворачивания, перетаскивания блоков
Удобный Wysiwyg текстовый редактор для добавления и редактирования материалов, с возможностью внутренней перелинковки и мультизагрузкой файлов любых типов, причем не только изображений (расширения загружаемых файлов, их размеры, объемы можно настраивать через админку). При изменении размера изображения автоматически формируется ссылка от уменьшенной копии к исходному изображению.
Простой способ подключения неограниченного количества лент новостей, причем не только из LJ, но с любого другого сайта, имеющего RSS ленту. При этом в анонсах новостей автоматически ограничивается количество символов, изображения уменьшаются, дубли новостей удаляются. Впрочем, есть возможность просмотра новостей в исходном виде или в виде заголовков.
В сборке предварительно настроены роли, которые вы можете давать своим пользователям.
Роли позволяют вам настроить безопасность и администрирование Вашего сайта на Drupal. Роли определяют группы пользователей, которые имеют некоторые привилегии, определяемые правами доступа.
Анонимный пользователь: эта роль используется для пользователей, которые не зарегистрированы или не вошли в систему. По умолчанию у них есть только возможность просмотра общедоступного содержимого.
Зарегистрированный пользователь: автоматически назначается всем пользователям, вошедшим на сайт со своим именем и паролем или по OpenID. По умолчанию имеют возможность только добавлять комментарии.
Автор: имеет возможность добавлять записи в свой блог и управлять ими. Владельцу блога рекомендуется создать для себя дополнительный аккаунт с этой ролью и постить из него.
Модератор: может удалять записи всех авторов.
Редактор: помимо удаления может редактировать все записи.
Администратор: имеет расширенные права для управления настройками сайта.
Разработчик: кроме доступа к настройкам имеет возможность работать с PHP скриптами на сайте.
User#1: Назначает права доступа для ролей и имеет доступ ко всем настройкам.
Имеющиеся проблемы
Так и не решена окончательно проблема в модуле LJsync с дублями записей, отправляемых из ЖЖ в Drupal. Пока что дубли удаляются постфактум самописным модулем, запускаемым по крону. В дальнейшем постораемся решить эту проблему более корректно.
Не публикуются комментарии к записям, изначально публикуемыемым в сайте на Drupal, а потом отправляемым в ЖЖ.
Буду благодарен, если сообщество поможет с решением этих проблем.
Пример работающего на этой сборке сайта: http://newsmaker.su/
Скачать инсталляционный профиль можно у меня в блоге
Там же будут размещаться все модификации и обновления этого профиля.
UPD Во второй версии сборки добавлена интеграция на уровне API c социальными сетями Vkontakte, Мой Мир @ Mail.ru, Facebook, Twitter. Теперь Вы можете отправлять свои сообщения не только в ЖЖ, но и в вышеперечисленные соц.сети. В отличие от стандартного кросспостинга в Facebook и Twitter через LJ, в случае применения этой сборки вы можете добавлять свои комментарии и хэш-тэги к своим записям. Решены проблемы с дублями постов и комментариев.
Актуальная версия
newsmaker-6.x-2.0-rc1.tar.gz (10.32 Мб).
http://ipload.ru/file/9113
или
newsmaker-6.x-2.0-rc1.zip (12.85 Мб).
http://ipload.ru/file/9113
————предрелизы————————
newsmaker-6.x-1.0-beta3.tar.gz (10.78 Мб).
http://www.ipload.ru/file/9095
или
newsmaker-6.x-1.0-beta3.zip (13.1 Мб).
http://www.ipload.ru/file/9094
newsmaker-6.x-1.0-beta2.tar.gz (10.38 Мб).
http://ipload.ru/file/9082
или
newsmaker-6.x-1.0-beta2.zip (12.61 Мб)
http://ipload.ru/file/9081
newsmaker-6.x-1.0-beta1.tar.gz (10.34 Мб)
http://ipload.ru/file/9073
или
newsmaker-6.x-1.0-beta1.zip (12.57 Мб)
http://ipload.ru/file/9074
Источник: http://www.drupal.ru/node/60990
Поставил drupal commerce, потыкал несколько дней, понял – весч! Все круто, все легко и гибко настраивается, легко имортируется из csv и xml при помощи модуля feeds. Вообщем то что надо! за одним НО, как мать его создать каталог?
Пробовал ставить разные модули, искать решение на d.org – ничего толового не нашел, побился головой об стену, и полез во …. views
Приступаем:
1) идем на страницу admin/structure/taxonomy и созадем словарь catalog
– на странице admin/structure/taxonomy/catalog/fields добавляем поле c изображением, например, imagecatalog
– добавляем термины, загружая и зображения и создавая иерархию словаря
2) идем на страницу admin/structure/views и включаем представление Taxonomy term
3) идем на страницу admin/structure/views/add и создаем новое представление
выбираем показатель – термины таксономии, и тип – наш словарь catalog
задаем заголовок страницы
путь ставим taxonomy/term/%
отображение ставим grid (сетка)
элементов для отображения ставим 12 – так как по умолчанию в grid 4 столбца, соответственно указываем значение кратное 4
нажимаем “продолжить и редактировать”
4) начинаем редактировать представление:
4a) в блок “Fields” добавляем поле изображение “imagecatalog”, настраиваем его по своему вкусу
расскрываем правую колонку ‘Advanced’
4б) добавляем Contextual filters
указываем значение – Таксономия: вложение
и добавляем ставим галлку – чтобы при не существующем термине показывалась 404 ошибка (этого можно не делать)
Сохраняем фильтр
таким образом мы перекрыли отображение страницы термина. Теперь по адресу taxonomy/term/id_термина будут отображаться его дочерние термины с их изображениями в виде сетки.
Но если у термина не будет дочерних терминов – ничего отображаться не будет. Такая ситуация нас не устраивает, поэтому делаем следующее:
5) Добавляем no results behavior
ставим галку возле views area
нажимаем далее и указываем какое представление может будет выводиться если у термина нет дочерних терминов, а именно taxonomy_term Dispaly: default
не забываем отметить inherit cotextual filters – это означает что аргумент (id термина) будет передаваться представлению, которое будет вызываться.
сохраняем поле, сохраняем представление.
Как это работает?
если у термина есть дочерние термины – грузится вид catalog
если нет – грузится вид taxonomy term
если использовать с модулем taxonimy menu – получается каталог как на сайте ситилинка
Как сделать пункт меню?
вариант 1: делаем все термины таксономии дочерними какого-то одного, и указываем в меню ссылку на этот термин
вариант 2: берем модуль taxonomy menu, и выводим в блоке ссылки на категории
Ожидаемые проблемы:
1) На странице термина не отображаются его дочерние термины
Причина: представление taxonomy term перекрывает по весу наше представление
Выход: отключить отображение page у представления taxonomy term
2) Помимо словаря catalog есть другие словари, для них должно быть свое отображение
Выход: ждем, иди сами портируем модуль taxonomy redirect
- задаем разные пути для разных словарей
- клонируем представление taxonomy term, меняем в нем путь на заданный в taxonomy redirect
- меняем представление catalog – указываем новые пути, и меняем no results behavior на новое представление
Прикрепленный файл
Размер
1.png
10.72 кб
2.png
14.02 кб
3.png
14.1 кб
4.png
8.96 кб
5.png
8.25 кб
6.png
13.07 кб
7.png
6.52 кб
8.png
6.65 кб
Источник: http://www.drupal.ru/node/60911
UPD. Как выяснилось из комментариев, модуль ckeditor с версии 6.x-1.3 официально поддерживает elfinder. Таким образом, всё написанное относится к возможному способу вывода “быстрой” кнопки elfinder’a на тулбар.
UPD2(08/05/2011). Плагин доработан до автоматического определения типа файла, возвращаемого elFinder
Нужен был файлменеджер/мультизагрузчик для редактора CKeditor (именно для drupal-модуля).
Я обычно использую IMCE и стал искать дополнения к IMCE, поддерживающие мультизагрузку.
Нашёл только IMCE Swfupload, но он ещё в бета-стадии и требует установки дополнительных модулей. В общем, не устроил.
Зато как-то неожиданно открыл для себя elFinder.
Менеджер показался очень удобным (на мой взгляд, даже получше IMCE).
Мультизагрузка, drag&drop, создание-удаление директорий, файлов. Автоматические тамбы картинок, ну и в целом как-то юзабельнее выглядит.
CKEditor (по крайней мере 6.x-1.3) позволяет интегрировать IMCE как “быструю” кнопку на тулбар (отдельно от диалога выбора ссылки/картинки/файла). Просто нужно раскомментировать соответствующие определения в ckeditor.config.js и убедиться что присутствует папка imce в /modules/ckeditor/plugins
Я стырил это решение и наскоро адаптировал его под elFinder в виде скромного плагина-кнопки (elFinder).
Результат: на тулбаре имеется самодельная кнопочка, по клику на которой сразу открывается окно этого файлового менеджера (т.е. минуя диалог выбора адреса).
После выбора файла (двойной щелчок или команда меню и т.д.) в менеджере, он закрывается и ссылка возвращается в CKeditor в обвязке тегов.
В общем, почти всё как в “обычном” elFinder или IMCE.
Желающие могут пойти дальше и доработать решение плагина. Для примера сравните код приложенного плагина и стандартного плагина кнопки IMCE (функция setFile()): /modules/ckeditor/plugins/imce/plugin.js
Потребуются модули:
- модуль CKEditor
- модуль elFinder
- сам файлменеджер elfinder (он отдельно от модуля).
Плагин кнопки в архиве приложен к посту. Описание установки – в файле README.TXT архива.
После установки не забыть установить необходимые разрешения ролям для доступа к elFinder, CKEditor (если вы это ещё не сделали).
Отображение кнопки не зависит от разрешений.
То есть – если вы запретили какой-то роли использовать elFinder, то кнопка не исчезнет с панели. Просто по клику на ней будет обычный “У вас нет прав для просмотра и т.д.”.
ps. И это… Отписывайтесь, пожалуйста, у кого что получилось. Будут доработки – велкам + респект и уважуха
Прикрепленный файл
Размер
elfinder.zip
2.72 кб
Источник: http://www.drupal.ru/node/60796
Так раз и навсегода.
Во первых модуль FCKeditor 6.x-2.1 работает с FCKeditor 2.6.6
УСТАНОВКА НА DRUPAL
скачать Drupal модуль управления FCKeditor 6.x-2.1 скачать
распаковать папку “fckeditor” из архива в папку “/modules”
(на вашем сайте в папке “modules” должна появится папка fckeditor)
качать FCKeditor 2.6.6 скачать
распаковать содержимое папки fckeditor архива в /modules/fckeditor/fckeditor
(не перепутайте и не создавайте еще одну папку, а копируйте содержимое архива)
ВКЛЮЧАЕМ FCKeditor
Заходим в ваш сайт как администратор
выбираем пункт меню администратора модули
в открывшемся разделе ищем одноименный модуль
включаем модуль (выбираем галочкой и жмем сохранить)
заходим в меню управление пользователями/роли
выбираем роль Зарегестрированный пользователь, отмечаем галочкой fckeditor – использовать fckeditor, сохраняем права доступа
заходим в меню настройки сайта, там выбираем fckeditor, если нет никаких сообщений идем к 9му пункту, если есть к следующему
если выходит сообщение:
The FCKeditor component appears to be not installed correctly, because modules/fckeditor/fckeditor/fckconfig.js could not be found.
Please go to the Домашняя страница FCKeditor to download the latest version. After that you must extract the files to modules/fckeditor/fckeditor and make sure that the directory modules/fckeditor/fckeditor/editor and the file modules/fckeditor/fckeditor/fckeditor.js exist. Refer to the readme.txt for more information.
ПРОВЕРЬТЕ ПУНКТЫ 3 и 4 раздела установки, причем внимательно!!
ИДЕМ в ПРОФИЛИ (внизу написано крупно) к профилю Autorezed Зарегистрированный пользователь-(тот самый которому мы настроили роль в п.5 и 6.)жмем изменить, появляется окно настройки FCKeditor
И ТАК НАСТРОЙКА FCKeditor
первая вкладка Основные настройки здесь задаем имя профиля FCKeditor, кому разрешено пользоваться (можно определенной группе ролей запретить пользоваться модулем, другой разрешить, третьей разрешить использовать только в определнных местах и т.п *
вторая вкладка Безопасность здесь мы задаем условия безопаности, фильтровать или не фильтровать код в FCKeditor
третья вкладка Настройки видимости здесь мы указываем для какой страницы, раздела или области сайта можно включить модуль (эта часть ограничивает доступ к FCKeditor указанным в первой вкладке ролям пользователей)
четвертая вкладка это Внешний вид редактора здесь настраиваем стиль отображения, скин эдитора
пятая вкладка Редактор ввода здесь мы управляем режимом ввода (первая выборка действия редактора на Enter, вторая выборка действия редактора на SHift+Enter и т.п)
шестая вкладка Настройки файлового браузера здесь выбираем через ккакой ф.б вы хотите загружать файлы, изображения и flash-ролики.
седьмая вкладка Стиль и файлы шаблонов здесь управляем шаблонами отображения редактора и стилями
Ну вот вроде все..
единственно незнаю как настроить содержимое панели FCKeditora…
Attached poll “У вас получилось установить и включить:?”.
Register or login to poll
Results:
с первого раза: 1 голос
со второго раза: 2 голоса
с третьего раза: 1 голос
никак не получается: 1 голос
Источник: http://www.drupal.ru/node/60770
Приветствую друзья!
С 3 по 4 июня, в Киеве пройдет очередной DrupalCamp Киев — конференция, посвященная CMS Drupal. Событие пройдет в неформальной атмосфере живого общения и объедение до 400 участников — как матерых друпаллеров, так и тех, кто только начинает знакомиться с Друпалом.
Формат конференции — barcamp, что означает обилие общения, обмена опытом и, конечно же, фана. Программа конференции будет формироваться заранее, на основе докладов участников и будет состоять из 4-х параллельных потоков докладов и презентаций, один из которых будет полностью англоязычным. Кроме того, на событии планируется проведение классического код-спринта и спринта переводчиков, а также много других конкурсов.
Для самых стойких, будет проведено два тренинга — базовый, который даст общее понятие о друпале, о том где его лучше всего использовать и покажет как быстро сделать сайт на этой CMS [до конференции] и продвинутый, который даст вводную в разработку своих модулей [после конференции].
Предварительная тематика обсуждений и голосование за темы доступно здесь. Подать заявку можно после регистрации, в личном кабинете.
Для докладчиков, участие в конференции бесплатное, для всех остальных — ранняя регистрация (100 первых билетов) на событие обойдется в символических 100 гривен (≈$13).
Зарегистрироваться сейчас »
UPD: Плюсуем на хабре http://habrahabr.ru/blogs/drupal/117288/
Источник: http://www.drupal.ru/node/60652
UPD: Событие переносится на 28 апреля.
В этот четверг, 14 апреля , в 19:00, в Киеве, в помещении i-klass , по адресу Лаврская, 16 (бывшая Ивана Мазепы, 34), пройдет юбилейная, десятая встреча DrupalCafé.
На этот раз у нас будет три презентации:
Selling open source [англ.] (Safeen Ghafour, Madcap)
Панели + Drupal Commerce в Drupal 7 (Вячеслав Рысь, FocusArt)
Selenium тестирование (Юрий Герасимов, Madcap)
Во время встречи будет вестись прямая трансляция.
Так как эта встреча юбилейная, есть предложение провести традиционную часть “Café” в Docker ABC (средний чек ≈ 100 грн).
Напоминаем, DrupalCafé – формат локальных встреч пользователей и разработчиков CMS Drupal. Вход свободный, но исключительно по регистрации, так как количество мест ограничено размерами аудитории (если вы были прошлый раз, вам все равно необходимо зарегистрироваться на события отправив форму на drupal.ua).
За справками можно обращаться к Александру Швецу по телефону +380976833155 или отправив письмо на neochief@drupal.ua
Источник: http://www.drupal.ru/node/60608
Иногда возникает необходимость для удобства ввода данных создать поле с автозаполнением(autocomplete field). Примерами таких полей могут быть виджеты для cck-полей Node reference i User reference.
Рассмотрим программное создание такого рода полей. Согласно Drupal Forms API reference свойство #autocomplete_path можно добавить только для элемента texfield. Это свойство определяет путь, по которому автоматически включенный JavaScript-код Друпала пошлет HTTP-запросы, используя JQuery.
Читать полностью…
Источник: http://www.drupal.ru/node/60563
Оглавление
Устанавливаем клиент и сервер
sudo apt-get install munin munin-node
переходим в каталог доступных плагинов munin
cd /usr/share/munin/plugins
скачиваем плагины для nginx
sudo wget -O nginx_request http://exchange.munin-monitoring.org/plugins/nginx_request/version/2/download
sudo wget -O nginx_status http://exchange.munin-monitoring.org/plugins/nginx_status/version/3/download
sudo wget -O nginx_memory http://exchange.munin-monitoring.org/plugins/nginx_memory/version/1/download
скачиваем другие плагины
sudo wget -O multimemory http://exchange.munin-monitoring.org/plugins/multimemory/version/3/download
sudo wget -O sshd_log http://exchange.munin-monitoring.org/plugins/sshd_log/version/1/download
sudo wget -O php5-fpm_status http://exchange.munin-monitoring.org/plugins/php5-fpm_status/version/1/download
sudo wget -O mysql_connections http://exchange.munin-monitoring.org/plugins/mysql_connections/version/1/download
sudo wget -O mysql_qcache http://exchange.munin-monitoring.org/plugins/mysql_qcache/version/1/download
sudo wget -O mysql_qcache_mem http://exchange.munin-monitoring.org/plugins/mysql_qcache_mem/version/1/download
делаем плагины исполняемыми
sudo chmod +x nginx_request
sudo chmod +x nginx_status
sudo chmod +x nginx_memory
sudo chmod +x multimemory
sudo chmod +x sshd_log
sudo chmod +x php5-fpm_status
sudo chmod +x mysql_connections
sudo chmod +x mysql_qcache
sudo chmod +x mysql_qcache_mem
выходим из директории
cd ~
включаем плагины
sudo ln -s /usr/share/munin/plugins/nginx_request /etc/munin/plugins/nginx_request
sudo ln -s /usr/share/munin/plugins/nginx_status /etc/munin/plugins/nginx_status
sudo ln -s /usr/share/munin/plugins/nginx_memory /etc/munin/plugins/nginx_memory
sudo ln -s /usr/share/munin/plugins/multimemory /etc/munin/plugins/multimemory
sudo ln -s /usr/share/munin/plugins/sshd_log /etc/munin/plugins/sshd_log
sudo ln -s /usr/share/munin/plugins/php5-fpm_status /etc/munin/plugins/php5-fpm_status
sudo ln -s /usr/share/munin/plugins/mysql_connections /etc/munin/plugins/mysql_connections
sudo ln -s /usr/share/munin/plugins/mysql_qcache /etc/munin/plugins/mysql_qcache
sudo ln -s /usr/share/munin/plugins/mysql_qcache_mem /etc/munin/plugins/mysql_qcache_mem
Некоторые плагины имеет не unix формат, чтобы он заработал в Ubuntu открываем его
sudo vim /usr/share/munin/plugins/sshd_log
и пишем команду для vim редактора (не в документ пишем а именно команду)
:set ff=unix
Редактируем дефолтовый конфиг Nginx
sudo vim /etc/nginx/sites-available/default
Добавляем новые location для localhost
location /nginx_status {
stub_status on;
access_log off;
allow 127.0.0.1;
deny all;
}
location /fpm-status {
access_log off;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME /fpm-status;
include fastcgi_params;
allow 127.0.0.1;
deny all;
}
Перезагружаем nginx
sudo /etc/init.d/nginx stop && sudo /etc/init.d/nginx start
Далее, необходимо указать плагинам, куда ходить за статистикой и тому подобное
sudo vim /etc/munin/plugin-conf.d/munin-node
Добавляем следующее
[nginx*]
env.url http://localhost/nginx_status
env.ua nginx-status-verifier/0.1
[multimemory]
env.os linux
env.names nginx php5-fpm mysqld
[users]
env.category users
[sshd_log]
user root
group root
env.logfile /var/log/auth.log
env.category users
Для работы статистики php5-fpm редактируем его конфиг
sudo vim /etc/php5/fpm/main.conf
Добавляем
pm.status_path = /fpm-status
Перезагружаем клиент Munin:
sudo /etc/init.d/munin-node restart
или
sudo service munin-node restart
Перезагружаем php5-frm
sudo /etc/init.d/php5-fpm restart
Добавляем хост
sudo vim /etc/nginx/sites-available/munin.example.ru
Вставляем примерно следующее
server {
listen 80;
server_name munin.example.ru;
access_log /var/log/nginx/munin.example.ru.access.log;
auth_basic "Restricted";
auth_basic_user_file /etc/munin/.htpasswd;
location / {
root /var/cache/munin/www;
index index.html;
}
}
Включаем
sudo ln -s /etc/nginx/sites-available/munin.example.ru /etc/nginx/sites-enabled/munin.example.ru
Создаем файлик, где будут располагаться пользователи, для которых будет открыт доступ к графикам производительности (http://www.codeobsessed.com/encryption.php нужен пароль crypt(3)):
sudo vim /etc/munin/.htpasswd
Перезагружаем nginx
sudo /etc/init.d/nginx stop && sudo /etc/init.d/nginx start
Теперь можно смотреть графики по адресу munin.example.ru
Прикрепленный файл
Размер
www_raven.zip
7.75 кб
templates_raven.zip
28.68 кб
Источник: http://www.drupal.ru/node/60544
Оглавление
Содержать свой почтовый сервер, со всеми прибомбасами, такими как антивирусник, антиспам и так далее, оказалось слишком дорого в плане ресурсов, это будет плохо вписываться в имеющиеся 384М оперативки, даже при 512 я буду смотреть в сторону увеличения воркеров для fpm, увеличения памяти для скриптов (сейчас 1 воркер на 128М, что катострафически мало), также буду смотреть в сторону организации ускорителя и кеша… В общем только на конфигурации 1Gb оперативной памяти следует задуматься о развёртовании полноценного почтового сервера.
Я использую яндекс, т.к. в панели управления доменами у моего регистратора есть автоматическая привязка. Но можно пробовать завязывать на gmail или mail.ru
Меняем имя сервера (по умолчанию оно server), впринципе это нужно для полноценного почтового сервера, но пускай будет настроено правильно.
sudo vim /etc/hostname
Пишем название, например
sergei
Меняем хост
sudo vim /etc/hosts
Заменяем нули на реальный IP
0.0.0.0 sergei.example-d6.ru sergei
Перезагружаем ОС
sudo reboot
Смотрим на имя и хост
hostname
hostname -f
Если после перезагрузки имя не сменилось, то надо идти в панель управления VDS если нет доступа к ней, то просить хостера сменить имя.
Установим нужные пакеты, которые настроены будут позже
sudo apt-get install postfix libsasl2-2 sasl2-bin
Отредактируем конфиг:
sudo vim /etc/postfix/main.cf
Исправляем:
mynetworks = 127.0.0.0/8, 192.168.0.0/16
Добавляем в этот же конфиг
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/saslpass
smtp_sasl_security_options =
relay = smtp.yandex.ru
relayhost = smtp.yandex.ru
Добавим файл /etc/postfix/saslpass:
sudo vim /etc/postfix/saslpass
smtp.yandex.ru admin@example-d6.ru:password
Закрепим изменения:
sudo postmap /etc/postfix/saslpass
Подправим php.ini:
sudo vim /etc/php5/fpm/php.ini
Находим строку sendmail_path и заменяем:
sendmail_path = sendmail -t -i -f admin@example-d6.ru
Перезагружаем fpm
sudo /etc/init.d/php5-fpm restart
Теперь должно всё работать, я проверял на контактной форме случайного сайта, т.е. не c example-d6.ru, а например example-d7.ru, чтобы убедиться что письма отсылаются с любого домена, а не только указанного в конфиге.
Источник: http://www.drupal.ru/node/60543
Оглавление
Нужно настроить cron для всех сайтов, в том числе и для технических. Периоды выбираются индивидуально для каждого сайта, но на технический я ставлю 1 раз в сутки, не смотря на то что в админке drupal’a ставлю проверять обновления раз в неделю…
Открываем для редактирования задачи cron’a
sudo crontab -e
Должно быть примерно так, третья строка (www.example-d6.ru) запускается каждую минуту чтобы убедиться сразу что работает, после чего надо выставить нормальное время, чтобы не завалить сервер если сайтов в мультисайтинге десяток, а то и не один…
45 2 * * * /usr/bin/wget -O - -q -t 1 http://technical.example-d6.ru/cron.php
15 3 * * * /usr/bin/wget -O - -q -t 1 http://technical.example-d7.ru/cron.php
* * * * * /usr/bin/wget -O - -q -t 1 http://www.example-d6.ru/cron.php
35 3 * * /usr/bin/wget -O - -q -t 1 http://www.example-d7.ru/cron.php
Источник: http://www.drupal.ru/node/60542
Оглавление
Создаём папочки в sites
www.example-d6.ru
www.example-d6.ru/files
www.example-d6.ru/modules
www.example-d6.ru/themes
www.example-d6.ru/tmp
Копируем в www.example-d6.ru из sites/default файл default.settings.php и переименовываем в settings.php
Также копируем в www.example-d6.ru robots.txt
Если сайт переносится, редактируется settings.php чтобы данные о базе были верны.
Если ставиться, новый сайт и он первый на связке, то настройки добавляются при установке, потом редактируются.
Если ставиться, новый сайт, но он уже не первый, то копировать settings.php удобнее из соседнего сайта связки, и изменить следующее
$db_url = 'mysqli: //и ваши данные о базе
$db_prefix = array(
'default' => 'exampled6_',
'locales_meta' => 'shared_',
'locales_source' => 'shared_',
'locales_target' => 'shared_',
);
$base_url = 'http://www.example-d6.ru';
ini_set('memory_limit', '128M');
Теперь остаётся только задать адрес
sudo vim /etc/nginx/sites-available/example-d6.ru
Заменяем на свой хост
server {
listen 80;
server_name example-d6.ru;
rewrite ^ http://www.example-d6.ru$request_uri? permanent; #301 redirect
}
server {
listen 80;
server_name www.example-d6.ru;
access_log /var/log/nginx/example-d6.ru.access.log;
root /var/www/drupal6;
index index.php;
if (!-e $request_filename) {
rewrite ^/(.*)$ /index.php?q=$1 last;
}
error_page 404 index.php;
# hide protected files
location ~* .(engine|inc|info|install|make|module|profile|test|po|sh|.*sql|theme|tpl(.php)?|xtmpl|svn-base)$|^(code-style.pl|Entries.*|Repository|Root|Tag|Template|all-wcprops|entries|format)$ {
deny all;
}
# hide backup_migrate files
location ~* ^/sites/www.example-d6.ru/files/backup_migrate {
deny all;
}
# Static content
location = /robots.txt {
if (-f $document_root/sites/www.example-d6.ru/robots.txt) {
rewrite . /sites/www.example-d6.ru/robots.txt;
}
break;
}
location ~ ^(/sites/all|/sites/www.example-d6.ru)?/(modules|themes|libraries)/.*.(css|js|png|gif|jpg)$ { break; }
location /misc/ { break; }
location /sites/www.example-d6.ru/files/ { break; }
# Imagecache (http://drupal.org/project/imagecache)
location /sites/www.example-d6.ru/files/imagecache/ {
if (-f $request_filename) { break; }
rewrite ^(.*)$ /index.php?q=$1 last;
}
location ~ \.php$ {
# fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/drupal6$fastcgi_script_name;
include fastcgi_params;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
}
## Disable viewing .htaccess & .htpassword
location ~ /\.ht {
deny all;
}
}
Включаем
sudo ln -s /etc/nginx/sites-available/example-d6.ru /etc/nginx/sites-enabled/example-d6.ru
sudo /etc/init.d/nginx restart
Источник: http://www.drupal.ru/node/60541
Оглавление
Создаём пользователя drupal6
sudo /usr/sbin/adduser drupal6
Добавляем папки для ключей SSH
sudo mkdir /home/drupal6/.ssh
Генерируем ключи, сразу же предложит указать файл, он будет такой /home/drupal6/.ssh/id_rsa
sudo ssh-keygen -t rsa
sudo mv ~drupal6/.ssh/id_rsa.pub ~drupal6/.ssh/authorized_keys
sudo rm ~drupal6/.ssh/id_rsa
sudo chown -R drupal6:drupal6 ~drupal6/.ssh
sudo chmod 700 ~drupal6/.ssh
sudo chmod 600 ~drupal6/.ssh/authorized_keys
Надо разрешить им доступ по SSH для заливки файлов по SFTP протаколу
sudo vim /etc/ssh/sshd_config
Должно быть примерно так
AllowUsers admin drupal6
Перезагружаем SSH
sudo /etc/init.d/ssh reload
Теперь создаём папку для сайта
sudo mkdir /var/www/drupal6
sudo ln -s /var/www/drupal6 ~drupal6/www
sudo chown -R drupal6:drupal6 /var/www/drupal6
Логинимся от имени drupal6, например через FileZilla, и заливаем свежую версию ядра, создаём базу, пользователя базы и т.д через PhpMyAdmin
Теперь определяемся с адресами, у меня будет такая структура:
technical6.example-d6.ru – технический сайт который находится пожизненно в режиме “на обслуживании”. Здесь будут включены все модули которые есть в папочке all, следить за обновлениями модулей буду именно отсюда. Это позволит не включать вообще вообще ни на одном другом сайте в этой связке этот модуль, что несомненно ускорит админку этих сайтов. Будут ставиться переводы, таблицы для переводов будут шариться на все сайты связки. Так же на главную страницу будут выноситься ссылки на скрипт обновления каждого из сайтов мультисайтинга, что при установке обновлений ускорит работу.
www.example-d6.ru – первый сайт мультисайтинга, на шестёрке.
Источник: http://www.drupal.ru/node/60540
Оглавление
Ставим MySqlDumper (www.mysqldumper.net), его я использую для переноса баз данных, т.к. один сайт имеет запредельный размер, порядка 500М в несжатом виде, также ставлю на хостинг, там делаю экспорт, здесь импорт.
sudo mkdir /var/www/mysqldumper
sudo ln -s /var/www/mysqldumper ~admin/mysqldumper
sudo chown -R admin:admin /var/www/mysqldumper
Заливаем сюда скрипты, я например через FileZilla это делаю, а не через putty
Сразу поставим права, т.к. этого потребует скрипт установки.
chmod 777 /var/www/mysqldumper/config.php
Добавляем хост
sudo vim /etc/nginx/sites-available/mysqldumper.example.ru
Вставляем примерно следующее
server {
listen 80;
server_name msd.example.ru;
rewrite ^ http://mysqldumper.example.ru$request_uri? permanent; #301 redirect
}
server {
listen 80;
server_name mysqldumper.example.ru;
access_log /var/log/nginx/mysqldumper.example.ru.access.log;
location / {
root /var/www/mysqldumper;
index index.php;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/mysqldumper$fastcgi_script_name;
include fastcgi_params;
}
}
Включаем
sudo ln -s /etc/nginx/sites-available/mysqldumper.example.ru /etc/nginx/sites-enabled/mysqldumper.example.ru
И перезагружаем nginx
sudo /etc/init.d/nginx stop && sudo /etc/init.d/nginx start
Открыв в браузере mysqldumper.example.ru увидим install, проходим её. Нажимаем на “Create directory protection” например MD5. Для nginx нужен crypt(3) можно составить например здесь http://www.codeobsessed.com/encryption.php
Открываем файл с паролями и заменяем пароль на полученный через crypt(3)
vim /var/www/mysqldumper/.htpasswd
Но это не работает для nginx сервера, поэтому добавляем в конфиг
sudo vim /etc/nginx/sites-available/mysqldumper.example.ru
следующее
auth_basic "Restricted";
auth_basic_user_file /var/www/mysqldumper/.htpasswd;
т.е. получится примерно так
server {
listen 80;
server_name mysqldumper.example.ru;
access_log /var/log/nginx/mysqldumper.example.ru.access.log;
auth_basic "Restricted";
auth_basic_user_file /var/www/mysqldumper/.htpasswd;
...
И снова перезагружаем nginx
sudo /etc/init.d/nginx stop && sudo /etc/init.d/nginx start
Источник: http://www.drupal.ru/node/60538
Оглавление
Устанавливаем нужные пакеты
sudo apt-get install phpmyadmin php5-mcrypt
В окошке не выбираем ничего просто жмём enter
Добавляем хост
sudo vim /etc/nginx/sites-available/phpmyadmin.example.ru
Вставляем примерно следующее
server {
listen 80;
server_name pma.example.ru;
rewrite ^ http://phpmyadmin.example.ru$request_uri? permanent; #301 redirect
}
server {
listen 80;
server_name phpmyadmin.example.ru;
access_log /var/log/nginx/phpmyadmin.example.ru.access.log;
location / {
root /usr/share/phpmyadmin;
index index.php;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/share/phpmyadmin$fastcgi_script_name;
include fastcgi_params;
}
}
Включаем
sudo ln -s /etc/nginx/sites-available/phpmyadmin.example.ru /etc/nginx/sites-enabled/phpmyadmin.example.ru
Забегая вперёд, после входа PhpMyAdmin будет жаловаться на установленный Suhosin, правим конфиг как рекомендовано в доках на PhpMyAdmin
sudo vim /etc/php5/conf.d/suhosin.ini
Должны быть следующие значения:
suhosin.sql.bailout_on_error = off
suhosin.post.max_array_index_length = 256
suhosin.post.max_totalname_length = 8192
suhosin.post.max_vars = 2048
suhosin.request.max_array_index_length = 256
suhosin.request.max_totalname_length = 8192
suhosin.request.max_vars = 2048
так же логи не должны включать в себя sql
Далее отключаем предупреждение о возможных проблемах с suhosin
sudo vim /usr/share/phpmyadmin/libraries/config.default.php
В файле написано что мы не должны его менять, так что меняем только это значение, чтобы надпись не раздражала, так как мы выставили рекомендуемые параметры.
$cfg['SuhosinDisableWarning'] = true;
Перезагружаем php fpm и nginx
sudo /etc/init.d/php5-fpm restart && sudo /etc/init.d/nginx stop && sudo /etc/init.d/nginx start
Теперь по адресу phpmyadmin.example.ru должна быть форма входа в PhpMyAdmin
Источник: http://www.drupal.ru/node/60537
Оглавление
Устанавливаем нужные пакеты
sudo apt-get install mysql-server mysql-client php5-mysql
Правим конфиг чтобы уменьшить потребление памяти
sudo vim /etc/mysql/my.cnf
Находим раздел про InnoDB, и добавляем
skip-innodb
Перезапускаем mysql
sudo /etc/init.d/mysql restart
если не получится, то попробовать надо так
sudo service mysql restart
Потребление памяти уменьшилось, благодаря тому, что запущено теперь меньше процессов mysql
Перезапускаем php fpm т.к. мы поставили php5-mysql, который пока не работает
sudo /etc/init.d/php5-fpm restart
Источник: http://www.drupal.ru/node/60536
Оглавление
Устанавливаем сам memcache
sudo apt-get install php5-memcache
Перезагружаем php5-frm
sudo /etc/init.d/php5-fpm restart
Источник: http://www.drupal.ru/node/60535
Оглавление
Скачиваем во временную папку последнию версию и устанавливаем
cd /tmp/
sudo wget http://bart.eaccelerator.net/source/0.9.6.1/eaccelerator-0.9.6.1.tar.bz2
sudo tar xvjf eaccelerator-0.9.6.1.tar.bz2
cd eaccelerator-0.9.6.1
sudo phpize
sudo ./configure --enable-eaccelerator=shared
sudo make
sudo make install
cd ~
теперь редактируем и добавляем следующие строки, начиная после тега [PHP]:
sudo vim /etc/php5/fpm/php.ini
; eAccelerator configuration
; Note that eAccelerator may also be installed as a PHP extension or as a zend_extension
; If you are using a thread safe build of PHP you must use
; zend_extension_ts instead of zend_extension
;extension = "/usr/lib/php5/20090626/eaccelerator.so"
zend_extension = "/usr/lib/php5/20090626/eaccelerator.so"
eaccelerator.shm_size = "16"
eaccelerator.cache_dir = "/var/cache/eaccelerator"
eaccelerator.enable = "1"
eaccelerator.optimizer = "1"
eaccelerator.check_mtime = "1"
eaccelerator.debug = "0"
eaccelerator.filter = ""
eaccelerator.shm_max = "0"
eaccelerator.shm_ttl = "0"
eaccelerator.shm_prune_period = "0"
eaccelerator.shm_only = "0"
eaccelerator.compress = "1"
eaccelerator.compress_level = "9"
eaccelerator.allowed_admin_path = "/var/www/eaccelerator"
Создаём директории с нужными права
sudo mkdir -p /var/cache/eaccelerator
sudo chmod 0777 /var/cache/eaccelerator
Перезагружаем php5-frm
sudo /etc/init.d/php5-fpm restart
Источник: http://www.drupal.ru/node/60534
Оглавление
Нам понадобятся 2 библиотеки, закачаем последние версии и установим их
cd /tmp
wget http://us.archive.ubuntu.com/ubuntu/pool/main/k/krb5/libkrb53_1.6.dfsg.4~beta1-5ubuntu2_i386.deb
wget http://us.archive.ubuntu.com/ubuntu/pool/main/i/icu/libicu38_3.8-6ubuntu0.2_i386.deb
sudo dpkg -i *.deb
cd ~
Обновим список репозиториев, для установки последней стабильной версии PHP
sudo vim /etc/apt/sources.list
Добавляем
deb http://php53.dotdeb.org stable all
Обновляемся и устанавливаем PHP с нужными пакетами.
sudo apt-get update
sudo apt-get install php5-cli php5-common php5-suhosin
sudo apt-get install php5-fpm php5-cgi
sudo apt-get install php-apc php5-curl php5-dev
Редактируем конфиг для fpm, т.к. через него у нас будет запускаться FastCGI
sudo vim /etc/php5/fpm/php.ini
Вставляем следующий параметр
cgi.fix_pathinfo = 0
Правим конфиг для пакета php-apc
sudo vim /etc/php5/conf.d/apc.ini
Добавляем строку
apc.shm_size = 48
Чтобы не было падений php-fpm открываем этот конфиг
sudo vim /etc/php5/fpm/pool.d/www.conf
На самом деле динамические воркеры, это хорошо. Если мы даём каждому юзеру свой воркер это накладно при 2000 сайтов. Но у нас только VDS с 384М, а не сервак с 16 гигами, будет несколько юзеров, но с общими воркерами, для начала поставим 1, а когда будет всё настроено можно будет увеличивать если будут свободные ресурсы (На вторую конфигурацию с гигом памяти смело можно ставить 3, или вообще не трогать и оставить динамические). Так же хорошо для крона сделать отдельный воркер, это связано с тем что на моих сайтах долго выполняется cron, время каждого запуска расчитано, поэтому хватит и одного отдельного потока, для его бесперебойной работы, чтобы он не конкурировал с пользователями сайтов. Но всё это держим только в уме, а пока ставим 1 поток на всех.
pm = static
pm.max_children = 1
Перезагружаем nginx и php5-frm.
sudo /etc/init.d/nginx stop && sudo /etc/init.d/nginx start
sudo /etc/init.d/php5-fpm stop
sudo /etc/init.d/php5-fpm start
Создаём проверочный файл
sudo vim /var/www/index.php
И пишем такую строчку
<?php phpinfo(); ?>
Проверяем, должно всё работать.
Источник: http://www.drupal.ru/node/60533
Оглавление
Смотрим установлен ли апач
dpkg -l | grep apache
Если установлен, то удаляем примерно так (будет зависеть от установленных пакетов):
sudo apt-get --purge remove apache2 apache2.2-bin apache2.2-common apache2-mpm-prefork apache2-utils apache2-doc
Устанавливаем nginx
sudo apt-get install nginx
Запускаем
sudo /etc/init.d/nginx start
Далее в браузере вводим IP своего VDS и видим надпись
Welcome to nginx!
* Если появилась ошибка 403, то на этом этапе не страшно, в одной из версий неправильный конфиг дефолтовый, что исправиться при установке PHP
Меняем дефолтовый конфиг
sudo vim /etc/nginx/sites-available/default
Заменяем содержимое файла на следующее
server {
listen 80;
server_name localhost;
access_log /var/log/nginx/localhost.access.log;
## Default location
location / {
root /var/www;
index index.php;
}
## Images and static content is treated different
location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico|xml)$ {
access_log off;
expires 30d;
root /var/www;
}
## Parse all .php file in the /var/www directory
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www$fastcgi_script_name;
include fastcgi_params;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_intercept_errors on;
fastcgi_ignore_client_abort off;
fastcgi_connect_timeout 60;
fastcgi_send_timeout 180;
fastcgi_read_timeout 180;
fastcgi_buffer_size 128k;
fastcgi_buffers 4 256k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
}
## Disable viewing .htaccess & .htpassword
location ~ /\.ht {
deny all;
}
}
Чтобы можно было добавлять много server_name в разных конфигах нужно добавить директиву server_names_hash_bucket_size в конфиге nginx в http блок
sudo vim /etc/nginx/nginx.conf
server_names_hash_bucket_size 512;
Источник: http://www.drupal.ru/node/60532
Оглавление
Устанавливаем локаль
sudo /usr/sbin/locale-gen en_US.UTF-8 && sudo /usr/sbin/update-locale LANG=en_US.UTF-8
Обновляемся
sudo apt-get update
Ставим менеджер для обновлений
sudo apt-get install update-manager-core
sudo do-release-upgrade
Ставим для обзора процессов и их потребления памяти ими, ставим htop
sudo apt-get install htop
используем очень просто
htop
Ставим утилиты разработки
sudo apt-get install build-essential
Если стоит 10.04 а не 10.10 то обновление делается так
Открываем файл менеджера обновлений для правки
sudo vim /etc/update-manager/release-upgrades
Заменяем
Prompt=lts
на
Prompt=normal
Обновляемся
sudo do-release-upgrade
Теперь должна быть версия 10.10
Источник: http://www.drupal.ru/node/60531
Оглавление
Хостер установил уже Ubuntu Server 10.10 и даже поставил ssh и Apache 2.
Заходим через SSH как root, сразу меняем пароль на нормальный
passwd
Добавляем группу избранных, назовём её raccess
/usr/sbin/groupadd raccess
Открываем файл, для того чтобы нашу группу сделать “избранной”
/usr/sbin/visudo
Добавляем в конец файла, далее если не оговаривается, то всегда вставляется именно в конец.
## Allows people in group raccess to run all commands
%raccess ALL=(ALL) ALL
Добавляем нового пользователя, пускай будет admin, но в теории хорошо как и группу называть по другому, это усложняет взлом подбором.
/usr/sbin/adduser admin
Добавляем его к ранее созданной группе
/usr/sbin/usermod -a -G raccess admin
Добавляем папку для ключей SSH
mkdir ~/.ssh
Генерируем ключи
ssh-keygen -t rsa
Делаем для нашего будущего аккаунта, где вместо нулей подставляем реальный IP адрес
scp ~/.ssh/id_rsa.pub admin@0.0.0.0:
mkdir ~admin/.ssh
mv ~admin/id_rsa.pub ~admin/.ssh/authorized_keys
Назначаем права нашему пользователю
chown -R admin:admin ~admin/.ssh
chmod 700 ~admin/.ssh
chmod 600 ~admin/.ssh/authorized_keys
Настраиваем SSH
vim /etc/ssh/sshd_config
Проверяем значения и меняем или добавляем строки если нет…
Port 10022 # Меняем на что нибудь между 1025 и 65536, это так же усложнит жизнь взломщикам.
Protocol 2
PermitRootLogin no # отключаем запись для root пользователя
UseDNS no
AllowUsers admin # если пользователей несколько через пробел называем всех
В интернете предлагают сделать следующее, я пока не разобрался как потом залогиниться
PasswordAuthentication no
Создаём правила маршрутизации в файлике, чтобы после перезагрузки сервера настройки восстанавливались.
vim /etc/iptables.up.rules
Вставляем следующее, и меняем порт для SSH, который недавно ставили 10022, остальные не трогаем, в комментариях видно для чего они понадобятся.
*filter
# Allows all loopback (lo0) traffic and drop all traffic to 127/8 that doesn't use lo0
-A INPUT -i lo -j ACCEPT
-A INPUT ! -i lo -d 127.0.0.0/8 -j REJECT
# Accepts all established inbound connections
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# Allows all outbound traffic
# You can modify this to only allow certain traffic
-A OUTPUT -j ACCEPT
# Allows HTTP and HTTPS connections from anywhere (the normal ports for websites)
-A INPUT -p tcp --dport 80 -j ACCEPT
-A INPUT -p tcp --dport 443 -j ACCEPT
# Allows mysql
-A INPUT -p tcp --dport 3306 -j ACCEPT
# Allows fcgi
-A INPUT -p tcp --dport 9000 -j ACCEPT
-A INPUT -p tcp --dport 8521 -j ACCEPT
# Allows SSH connections
#
# THE -dport NUMBER IS THE SAME ONE YOU SET UP IN THE SSHD_CONFIG FILE
#
-A INPUT -p tcp -m state --state NEW --dport 10022 -j ACCEPT
# Allows mail
-A INPUT -p tcp -m state --state NEW -m tcp --dport 25 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 110 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 143 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 993 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 995 -j ACCEPT
# Allows ldap
-A INPUT -p tcp -m state --state NEW -m tcp --dport 389 -j ACCEPT
# Allows memcache
-A INPUT -p tcp -m state --state NEW -m tcp --dport 11211 -j ACCEPT
# Allows munin
-A INPUT -p tcp -m state --state NEW -m tcp --dport 4949 -j ACCEPT
# Allow ping
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
# log iptables denied calls
-A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7
# Reject all other inbound - default deny unless explicitly allowed policy
-A INPUT -j REJECT
-A FORWARD -j REJECT
COMMIT
Чистим память
/sbin/iptables -F
Применяем наши правила
/sbin/iptables-restore < /etc/iptables.up.rules
Проверяем внимательно особенно наш порт SSH
/sbin/iptables -L
Для восстановления после перезагрузки создаём файл
vim /etc/network/if-pre-up.d/iptables
Вставляем следующее
#!/bin/sh
/sbin/iptables-restore < /etc/iptables.up.rules
Разрешаем запускать этот файл
chmod +x /etc/network/if-pre-up.d/iptables
Перезагружаем ssh
/etc/init.d/ssh reload
Закрываем Putty, открываем заново поменяв порт. Заходим под admin
Теперь нельзя залогиниться как root…
Источник: http://www.drupal.ru/node/60530
Многим знаком модуль gotwo. Он делает редирект внешних ссылок. Неудобство модуля в том что он использует нестандартный тег GO. Решил его поправить. Чтобы не было необходимости использовать нестандартные теги. Так-же в оригинальном модуле создавался новый элемент. Я же решил вносить изменения для редиректа в стандартный тег A если установлен класс GO.
Собственно сами изменения. Прошу указать на ошибки, если что не так.
Меняем только функцию _gotwo_link в файле gotwo.module
Было
<?php
function _gotwo_link($text, $filter) {
$html_dom = filter_dom_load($text);
$goNodesToRemove = array();
foreach ($html_dom->getElementsByTagName('go') as $goNode) {
// Clone <go> link to <a> link and keep all attributes intact.
$linkNode = $goNode->ownerDocument->createElement('a');
if ($goNode->attributes->length) {
foreach ($goNode->attributes as $attribute) {
$linkNode->setAttribute($attribute->nodeName, $attribute->nodeValue);
}
}
// Clone all <go> child nodes inside the new <a> tag.
while ($goNode->hasChildNodes()) {
$childNodes = $goNode->childNodes;
$linkNode->appendChild($childNodes->item(0));
}
// Verify if the url exists in the {gotwo} table. If the url is missing,
// add the url with link title to the {gotwo} table.
$href = $goNode->getAttribute('href');
$title = $goNode->getAttribute('title');
if (!empty($href)) {
$linkNode->setAttribute('href', _gotwo_get_url($href, empty($title) ? NULL : $title));
}
// Insert the new $linkNode before the previous $goNode.
$goNode->parentNode->insertBefore($linkNode, $goNode);
// Save $goNode to remove array. We cannot remove the child here or the DOM
// index will be cluttered and every second <go> link is not replacement.
$goNodesToRemove[] = $goNode;
}
?>
Стало
<?php
function _gotwo_link($text, $filter) {
$html_dom = filter_dom_load($text);
$goNodesToRemove = array();
foreach ($html_dom->getElementsByTagName('a') as $goNode) {
// Clone <go> link to <a> link and keep all attributes intact.
if($goNode->getAttribute('class') == 'go') {
$href = $goNode->getAttribute('href');
$title = $goNode->getAttribute('title');
if (!empty($href)) {
$goNode->setAttribute('href', _gotwo_get_url($href, empty($title) ? NULL : $title));
}
}
}
// Now we are able to remove the child's without loosing the index.
$text = filter_dom_serialize($html_dom);
return trim($text);
}
?>
Источник: http://www.drupal.ru/node/60488
Сделал модуль для экспорта ленты сайта в Яндекс.новости.
Для views, с гибкими настройками маппинга полей. Под семерку.
Просьба потестить и рассказать про результаты проверки Яндексом ваших лент.
Баги – в issue tracker модуля, но можно и сюда.
http://drupal.org/project/ynews
Источник: http://www.drupal.ru/node/60373
При выключенном кешировании аноним видит корзину как положено
При включенном кешировании и анониме с uid 0 корзина всегда показывается ссылкой
При включенном кешировании и анониме не 0 поведение корзины довольно непредсказуемо
Отключать кеш – не самая лучшая идея, не говоря уже о том, чтобы boost включить
вскрытие уберкарта показало, что uid 0 используется явно(кто бы сомневался) поэтому не 0 даёт такой результат
для начала запрещаем выдачу корзины анониму ссылкой
uc_cart.module
case 'view':
// 0 = Default shopping cart block.
if ($delta == 0) {
$cachable = 0;
потом ставим модуль ajaxblocks и выводим блок корзины через него
теперь можно смело включать кеширование или даже ставить boost
uc_ajax_cart работает так же отлично
единственный минус – +1 асинхронный запрос к серверу, что при включенном бусте нивелируется полностью
UPDATE 0
для не готовых идти по пути самурая есть путь ниндзи
поставить буст, не включать кеширование, поставить аякс блок
и вариант для джедаев – написать свой модуль/php-код, который выводит блок правильно, можно даже сразу с аякс
также можно попросить разработчиков уберкарт вычислять $cachable с учётом флага админки, но когда это будет?
если активно кешировать, я не вижу способов обойтись без аякс
UPDATE 1
с мест подсказывают, uid анонима должен быть 0 всегда, при любых обстоятельствах, иначе поведение модулей, его проверяющих, может стать непредсказуемым
но случается, что при выливке дампа его срывает – причины лично для меня непонятные, исправляю специально для этого сделанным sql
UPDATE 2
с мест подсказывают, uc_ajax_cart 2.x-beta версии делает всё самостоятельно
если вы не боитесь, то можно использовать его
Источник: http://www.drupal.ru/node/60318
Обновил модуль SMS для отправки уведомлений через телефоны или GSM модемы
Добавил отсылку уведомлений при новых коментариях в авторской ноде, уведомления о ответах на комментари и уведомления о всём что происходит на сайте
Ссылка на настройки sms/subscribe/comment но почему то ни как табой ни как меню не отображается если кто сможет помочь – буду рад.
Версия 0.1 http://www.drupal.ru/node/60065
Версия 0.2 http://www.drupal.ru/node/60119
Прикрепленный файл
Размер
sms-0.3.zip
12.82 кб
Источник: http://www.drupal.ru/node/60206
Итак обновил модуль SMS – отправка сообщений через мобильный телефон или GSM модем с помошью GAMMU
Добавил следующее:
* Журнал смс
* Отправка про cron
* Вкыл/Выкл транслит – Соответственно 140 или 63 символа ограничиваю строку
* Модуль подписки на новые ноды
Собираюсь добавить:
* Включение определённой роли при привязке номера
* Уведомление о новых ЛС
Прошлая версия: http://www.drupal.ru/node/60065
Если кто то поможет выложить на drupal.org буду благодарен…
Прикрепленный файл
Размер
sms-0.2.zip
11.83 кб
Источник: http://www.drupal.ru/node/60119
Возникло желание сделать трансляцию видео через IP-камеру.
Камера DSC-2121. Можно подключить напрямую к инету, в моем случае через домашний роутер DIR-320.
Далее пошли мучения с поиском и доработкой скрипта.
В результате получился такой код:
<DIV align=center>
<object id="xplugApplet" classid="java:xplug.class"
java_codebase="http://ХХХ.ХХХ.ХХХ.ХХХ"
type="application/x-java-applet"
archive="xplug.jar"
name="xplugApplet" height="480" width="640">
<param name="archive" value="xplug.jar">
<param name="code" value="xplug">
<param name="codebase" value="http://ХХХ.ХХХ.ХХХ.ХХХ/dcsclictrl.cab#version=1,0,0,2609">
<param name="scriptable" value="true">
<param name="name" value="cvcs">
<param name="type" value="application/x-java-applet;version=1.6">
<param name="menuheight" value="40"> <param name="RemotePort" value="80">
<param name="Timeout" value="10000"> <param name="mayscript" value="true">
<param name="xmode" value="preview"> <param name="productID" value="DCS-2121">
<param name="profileid" value="3"> <param name="bg" value="0xd5dfea">
<param name="inittrigger" value="0"> <param name="imageWidth" value="640">
<param name="imageHeight" value="480"> <param name="webEvent" value="0">
<param name="pageContext" value="Basic Z3Vlc3Q6">
<param name="microphone" value="0"> <param name="speaker" value="0">
<strong> Ваш браузер не имеет встроенной поддержки Java Plug-in. <br>
<a href="http://www.java.com/ru/download/manual.jsp">
Установите последнюю версию Java Plug-in отсюда.
</a>
</strong>
</object>
</DIV>
ХХХ.ХХХ.ХХХ.ХХХ – это IP Вашей камеры. Впрочем можно указывать и в “нормальном” виде – http://my_account.dlinkddns.com
На стороне клиента должна быть предустановлена Ява. Впрочем если ее не будет, появится сообщение с адресом закачки.
Проверял на ИЕ, Опере, Фоксе.
Пример реализации
(Не всегда работает. Для камеры нужен статический IP, а у меня псевдостатический, через www.dlinkddns.com)
В настройках камеры нужно создать пользователя guest с пустым паролем.
Источник: http://www.drupal.ru/node/60019
http://www.livestream.com/drupalcafe
Источник: http://www.drupal.ru/node/59942
Как сделать возможность записи видео для сайта с Веб камеры
Пример модуля в работе
Задача:
Сделать для сайта, христианской направленности, возможность записи видео с Веб камеры для сохранения видео на сервере и автоматического создания страницы. Эта цель была поставлена для того, что дать возможность людям лишенных слуха (рукоговорящим), возможность рассказать о своей проблеме или о себе их родным языком – языком жестов. Часто на сайтах есть возможность использовать разные языки, но как быть, если твой родной язык – язык жестов, конечно можно сказать, что глухие (рукоговорящие) могут читать. Да это так, но не все глухие грамотные и они очень стесняются писать из за того, что они часто неправильно ставят или вовсе не ставят окончания. Поэтому и поставили цель, организовать видео для них. Ну, хватит объяснений, приступим к делу.
Как делали:
Во-первых, для разработки были предложены разные CMS (системы управления сайтом) и из всех возможных была выбрана CMS Drupal версии 7.
- она бесплатна
- подходит по требованиям
- и мы давно с ней работаем -)
И модуль Kaltura он как раз то, что нам нужно.
Теперь опишу процесс создания: Установили Drupal и необходимые стандартные модули, после этого включили все модули, из пакета Kaltura, но здесь мы встретились с определенной проблемой, а точнее, мы включили модули и ничего не произошло, оказывается
*! Модули нужно включать последовательно!
То есть, когда мы заливаем модуль в папку “modules/” на нашем сервере, в разделе “Модули” (”Modules”), мы увидим группу модулей, принадлежащих разделу Kaltura и
первым надо включить – Kaltura Module – это сам модуль,
сохраняем
затем – kaltura as CCK field позволяет создавать поле при создании материала(требует ССК),
сохраняем
и последний – Kaltura Media Views позволяет создавать просматриваемые видео, последние добавленные, лучшие.
Только после этих манипуляций мы увидели в разделе “Конфигурация” (”Configuration”), настройки этого модуля.
Внутренняя настройка модуля Kaltura:
Заходим в “Server Integration Settings”
* KALTURA TO DRUPAL NOTIFICATION SETTINGS – здесь настраиваем Адрес нашего сайта.
* Далее нам нужно зарегистрироваться идем на сайт www.Kaltura.org и регистрируемся, получаем наш Partner ID и пароль.
* Теперь в разделе Partner Info вводим наши данные ID, email и пароль. После этого должно произойти подключение. На этом с основными настройками разобрались.
Создаем тип материала для Видео Контента
Для удобства пользования, мы решили создать новый тип материала, в который и поместим поле для добавления видео, с помощью нашего установленного модуля. Конечно, можно было использовать уже имеющиеся типы материалов, добавив туда поле для загрузки видео файлов, но мы решили, что удобнее создать новый тип материала. И так приступим.
Для создания нового типа материалов нужно перейти в раздел “Структура” (”Structure”) -> “Типы материалов” (”Node Types”).
И мы увидим имеющиеся типы материалов, нажимаем на кнопку “Добавить тип” (”Add type”):
* В поле название вводим название данного типа, мы назвали “Видео контент” и в принципе можно сохранять.
* В разделе поля добавляем новое поле, которое называется “Kaltura Video Field” и в принципе все. Сохраняем.
Теперь мы имеем тип материала с возможностью добавить видео. Единственное, что нам нужно сделать это изменить права для того чтобы даже не зарегистрированный пользователь мог создать материал “Видео Контент” и вывести ссылку на создание этого материала, как это сделать я думаю вы поймете сами, если же нет – пишите.
Материал взят с сайта http://wde.kz
Источник: http://www.drupal.ru/node/59826
Нацарапал свой модуль для экспорта в ЯндексМаркет. Причиной послужили жалобы народа на модуль yml_export, который был включён в мою бесплатную сборку интернет магазина OpenStore
yml_export прост и в этом, наверное, его сила, но он генерирует XML “налету”, что приводит к тому, что при большой товарной базе Яндекс не успевает забрать весь файл.
Кроме того у народа были некоторые проблемы с нулевыми родительскими категориями, что с точки зрения Яндекса неправильно. Не знаю, может это уже и пофиксилось Ну и наконец, у yml_export бедноваты настройки
Модуль Price Export тоже несложен, но обладает приятными фичами
1) Генерация статического .xml файла
2) Поддерживаются все теги упрощённого формата экпорта
3) Возможность выбора источника для тегов – словари или CCK поля
4) Возможность выбора включать только товары, которые активны на складе или всех их. В последнем случае корректно отрабатывается тег available – для товаров под заказ available=”false”
5) Возможность выбора пресета для картинки товара
6) Настройка пути, по которому доступен файл. Также можно качать напрямую с файловой директории
7) Рудиментная статистика: время последнего успешного создания, потраченное время на генерацию файла, количество обработанных товаров
3 режима генерации: вручную пымпочкой, по крону, при обновлении ноды
Файл проходит общую валидацию XML, Яша также ест его.
Ограничения:
не для большой товарной базы! Используется последовательный node_load() при формировании источника экпорта, что довольно затратно по ресурсам.
Качаем же
Источник: http://www.drupal.ru/node/59824
Здравствуйте друзья,
23 апреля в Москве пройдет конференция Друпал сообщества России и ближнего зарубежья.
Мы Оргкомитет конференции обращаемся к вам, потому что хотим сделать это мероприятие действительно интересным важным для Вас и вашей работы с Друпал КОНФ это ведь Наша конференция. Мы предварительно отобрали для конференции наиболее интересные доклады от «авторитетных» спикеров… и делали это с упором на наши профессиональные знания, предварительную программу составили исходя из нашего понимания интересности.
Мы обращаемся к Вам и предлагаем поучаствовать не только в конференции но и стать ее соорганизаторами, соавторами программы.
Нам очень Важно Ваше мнение и Ваше участие.
Пожалуйста Выделите пару минут вашего очень ценного времени для нашего общего дела, и Оставьте свой маленький вклад, ответьте на простые вопросы и напишите своими словами, что бы вы еще хотели услышать, увидеть, «потрогать» на конференции.
( просьба писать в пост только по сути вопросов и важное для конференции и воздержаться от комментариев лишь бы что то написать, СПАСИБО за понимание)
Для анализа вашего мнения просим ответить на два опроса следующие за этим сообщением.
К этому сообщению и к следующему за ним приклеено голосование, откройте это сообщение и пожалуйста проголосуйте, поставьте галочки…
Кроме того просим Вас написать сообщение если:
Еще есть предложение и Вы хотели послушать доклад на другую тему!
Вы сами готовы прочитать доклад на тему, возможно это кому нибудь будет интересно!
После ответа на первый опрос, просим Вас ответить так же и на второй http://www.drupal.ru/node/59657
оргкомитет по подготовке конференции друпал конф 2011
Attached poll “Мне интересен друпал в следующем разрезе”.
Register or login to poll
Results:
Сборка сайтов из готовых моделей: 18 голосов
«Допиливание» модулей для получения оптимальных результатов: 14 голосов
Написание новых модулей: 19 голосов
Дизайн, верстка, темизация под друпал: 18 голосов
Сео настройка и оптимизация сайта на друпал с помощью модулей и хитростей: 15 голосов
организация работы студии на друпал ( совместная работа разработчиков): 17 голосов
продажа сайтов на друпал ( друпал как бизнес): 17 голосов
Источник: http://www.drupal.ru/node/59658
Здравствуйте друзья,
23 апреля в Москве пройдет конференция Друпал сообщества России и ближнего зарубежья.
Мы Оргкомитет конференции обращаемся к вам, потому что хотим сделать это мероприятие действительно интересным важным для Вас и вашей работы с Друпал КОНФ это ведь Наша конференция.
Для анализа вашего мнения просим ответить на два опроса. ЭТОТ второй
Attached poll “Какой уровень докладов вам наиболее интересен”.
Register or login to poll
Results:
Я только начинаю делать сайты на друпал и хотел бы пойти правильным путем, для этого мне нужно подсказать как не наступать на: 2 голоса
Я новичок но, уже делаю сайты осваиваю модули и решения, мне интересны доклады на тему решение типовых задач ( для 90 % сайтов ): 10 голосов
Я давно занимаюсь сайтостроением на друпал и мне интересны доклады по решению нестандартных задач, оптимизации, новые возможност: 18 голосов
Друпал интересует меня как бизнес, я хочу услышать доклады на тему как зарабатывать на друпал: 3 голоса
Источник: http://www.drupal.ru/node/59657
Доброго времени суток. Хочу представить наши видео уроки по Drupal 6, которые точно будут полезны начинающим
Ничего военного в них нет, но снималось с “душой” и стремлением перетянуть людей с других CMSок, в первую очередь с Joomla.
Хотелось бы услышать мнение профессионалов по поводу того, что можно было еще снять и не плохо было бы добавить. (Views и Темизация сейчас оцифровываются).
Источник: http://www.drupal.ru/node/59507
Hello world))
Решил изменить адрес сайта с домена ORG.UA на домен COM (что б избавится от региональной принадлежности). В google webmaster это процесс подробно описан.Перемещение сайта
Может кому пригодится
Если вы собираетесь переместить свой сайт в новый домен, здесь находятся советы, которые помогут сохранить рейтинг сайта в результатах поиска Google. Основная цель – избежать ошибок 404 (файл не найден) при нажатии на ссылки на ваш сайт.
* Если вы меняете домен по причине смены торговой марки или изменения дизайна сайта, то, возможно, лучше будет совершить это в два этапа: сначала переместить сайт, а затем заняться изменением его внешнего вида. Это позволит сделать процесс перемещения более прозрачным для пользователя и менее проблемным для владельца сайта. Поэтапность действий также сократит время на поиск и устранения ошибок.
* Используйте переадресацию 301 для постоянного перенаправления всех страниц со своего старого сайта на новый. Она сообщает пользователям и поисковым машинам, что ваш сайт переехал навсегда. Рекомендуется осуществить перемещение и настроить переадресацию в пределах раздела или каталога и проверить его работоспособность и только потом перемещать все содержание.
Не устанавливайте единичную переадресацию, направляющую весь трафик со старого сайта на вашу новую домашнюю страницу. Это поможет избежать ошибок 404, однако такой способ не лишен недостатков. Настройка постраничной переадресации займет больше времени, однако это позволит сохранить рейтинг сайта в Google и не будет затруднять пользователям работу с сайтом. Если совпадение 1:1 (рекомендуется) между страницами старого и нового сайтов отсутствует, попробуйте сделать так, чтобы трафик каждой страницы старого сайта перенаправлялся на новую страницу с подобным содержанием.
* Проверьте внешние и внутренние ссылки на страницы сайта. В идеале следует связаться со всеми веб-мастерами, на сайте которых расположены ссылки на ваш сайт, и попросить их обновить ссылки. Если такой вариант не выполним, убедитесь в том, что трафик со всех страниц с входящими ссылками перенаправляется на ваш новый сайт. Также необходимо проверить внутренние ссылки на вашем старом сайте и обновить их так, чтобы они указывали на новый домен. После завершения процесса перемещения сайта используйте средство проверки ссылок от Xenu, чтобы убедиться в отсутствии неработающих старых ссылок на сайте. Крайне важно, чтобы исходное содержание включало в себя абсолютные ссылки (например, www.example.com/kulinariya/rezepti/shokoladny_tort.html), а не относительные (например, ../rezepti/shokoladny_tort.html).
* Чтобы избежать путаницы, рекомендуется сохранить право управления прежним доменом сайта в течение, по крайней мере, 180 дней.
* Используйте инструмент изменения адреса в Инструментах для веб-мастеров, чтобы сообщить Google о перемещении сайта. (Примечание. Чтобы использовать инструмент изменения адреса, нужно подтвердить свое право собственности на старый и новый сайты.)
* Убедитесь в том, что вы добавили новый сайт в свой аккаунт Инструментов для веб-мастеров и подтвердили право собственности на него.
* Мы рекомендуем создать и отправить файл Sitemap со списком всех URL на новом сайте. Файлы Sitemap позволяют сообщить Google о страницах вашего нового сайта, которые иначе могли бы быть пропущены при сканировании.
После завершения всех этих этапов вы можете использовать данные инструмента для веб-мастеров для проверки работоспособности сайта. До момента вступления всех изменений в силу может пройти некоторое время, которое как раз можно использовать для проверки сайта:
* Проверьте ошибки при сканировании старого и нового сайтов, чтобы убедиться в том, что все переадресации 301 работают правильно и что при обращении к ресурсам нового сайта не возникает ошибок 404.
* Если вы создали и передали файл Sitemap для своего нового сайта, то на странице сведений о файле Sitemap можно посмотреть, сколько из переданных URL-адресов было просканировано и добавлено в индекс Google.
Остановлюсь на пункте о Sitemap, если заходишь на алиас и смотришь карту сайта, то там указаны все старые пути, как это изменить? Откуда модуль XML Sitemap берет адрес сайта?
Источник: http://www.drupal.ru/node/59401
UPD1: в ближайший четверг встреча отменяется и дата, предположительно, переносится на 31-е марта.
UPD2: 31-е марта все в силе, ждем всех.
И снова четверг, и снова 19:00 в i-klass (Лаврская 16) мы рады будем встретить всех желающих на девятой встрече DrupalCafé.
В этот раз у нас будут две презентации:
Панели в Drupal (продвинутые фичи) (Евгений Курко)
Оптимизируем сервер под Drupal (Влад Савицкий, ShvetsGroup)
РЕГИСТРАЦИЯ
———————————————————————–
DrupalCafé – новый (относительно) формат локальных встреч пользователей и разработчиков CMS Drupal. Вход свободный, но исключительно по регистрации, так как количество мест ограничено размерами аудитории (если вы были в прошлый раз, вам все равно необходимо зарегистрироваться).
По любым вопросам можно обращаться к Александру Швецу по телефону +380976833155 или отправив письмо на neochief@drupal.ua
Источник: http://www.drupal.ru/node/59378
Есть хороший модуль SexyBookmarks, который позволяет сделать на сайте красивые кнопки для добавления материалов в различные сервисы. Но нет в нем особо популярных российских сервисов ВКонтакте и Одноклассники.
Решил добавить эти два сервиса.
Для этого нужно сделать небольшое изменение в файле sexybookmark.inc – добавить в массив, возвращаемый функцией sexybookmarks_sexybookmarks() следующие элементы:
<?php'vkontakte' => array(
'title' => t('VKontakte'),
'description' => t('Share this on !title'),
'url' => 'http://vkontakte.ru/share.php?url={PERMALINK}',
),
'odnoklassniki' => array(
'title' => t('Odnoklassniki'),
'description' => t('Share this on !title'),
'url' => 'http://www.odnoklassniki.ru/dk?st.cmd=addShare&st.s=1&st._surl={PERMALINK}',
),?>
Плюс нужно скопировать два png файла (прилагаются) в папку images/icons
В результате в списке появятся иконки вышеупомянутых сервисов.
В действии можно увидеть здесь: http://www.happyho.ru/blog/2/11291
Если такой функционал кому-то интересен, а править модуль нет желания или умения, могу выложить модуль с изменениями.
Попробую написать на Drupal.org, может добавят эти кнопки в следующую версию модуля.
Прикрепленный файл
Размер
odnoklassniki.png
2.75 кб
vkontakte.png
1.93 кб
Источник: http://www.drupal.ru/node/59299
Мы организовываем новый супер-курс для друпаллеров, имеющих навыки PHP.
Первое занятие — 9 апреля.
Приглашаем к коммерческому сотрудничеству владельцов друпал-ресурсов. Подробности по тел.
Цель курса – дать базу знаний и практики начинающим программистам PHP для разработки модулей Drupal.
Обучение будет происходить в небольших группах, чтобы каждый смог получить качественные знания и ответы на свои вопросы.
Несколько вопросов, на которые нужно для себя ответить:
Знаешь основы PHP и стремишься к новому уровню знаний?
Хочешь научиться писать Drupal модули?
Надоело быть ограниченным возможностями существующих модулей?
Нужно решать нестандартные задачи?
Ели да, то звони и записывайся – 093-918-1234
В течение всего курса, в качестве упражнений, будет осуществляться разработка собственного модуля, функциональность которого будет расширяться в соответствии с проходимым разделом программы тренинга. Техническое задание на этот модуль достаточно сложное, будут освещены все основные хуки Drupal, API форм, модули Node, User др., что позволит углубиться в специфику написания модулей для Drupal и получить хорошие практические знания.
Также курс будет включать домашние задания для подкрепления пройденного материала.
В результате вы будете обладать достаточными навыками, чтобы писать собственные модули и развиваться дальше.
И еще несколько слов о курсе.
Занятия будут проходить 2 субботы. То есть интервал между занятиями 1 неделя.
Полный день: с утра и до вечера. Перерывы на кофе и обед.
Спикеры:
Евгений Курко
Виктор Богуцкий
Стоимость 980 грн.
Хочешь получить скидку? Звони за подробностями.
Есть возможность приема оплаты по безналу.
Реквизиты для оплаты:
Отримувач: Курко Євген Володимирович
Код: 3023914671
Банк: ПуАТ «СЕБ Банк», м. Київ, МФО 300175
Р/p: 2600207929
Призначення платежу: За консультування з питань інформатизації. Рахунок-фактура без номера. Без ПДВ.
______________________________________________________________
Если вы сотрудник фирмы, то ваш работодатель может заплатить.
______________________________________________________________
Программа работы
ТЗ на модуль по управлению и учету рассылок для магазина по продаже мобильных телефонов (Newsletters)
1. Письма рассылок
1.1 Предусмотреть интерфейс для создания рассылочного письма. Письмо должно отправляться в формате HTML без аттачментов
1.2 Интерфейс должен состоять из страницы внесения/редактирования письма рассылки. Страницы со списком всех внесенных писем. Функционал по отправке письма в рассылку. Функционал по поиску письма в списке писем на рассылку.
2. Подписчики на рассылку
2.1 Предусмотреть интерфейс управления подписчиками на рассылку. Подписчики – зарегистрированные пользователи друпал сайта.
2.2 Интерфейс должен состоять из страницы внесения/редактирования пользователя, обеспечивая подписку пользователя на рассылку администратором.
2.3 После того, как админ подписал пользователя на рассылку, пользователю должно прийти соответствующее уведомление из которого он может согласиться на подписку или нет (approved/denied).
2.4 Пользователь может отписаться от рассылки в любое время (статусы subscribed/unsubscribed) после чего ему должно прийти соответствующее уведомление об отписке.
2.5 Интерфейс должен состоять из страницы со списком всех пользователей, с информацией об согласии пользователя на рассылку (approved/denied) и статус пользователя (subscribed/unsubscribed). Реализовать функционал по поиску пользователя в списке.
Источник: http://www.drupal.ru/node/59230
В конце прошлого года (2010-го) для разработки одного сайта (вот он) потребовалось вставить туда календарь новостей. Требовалось что-то легкое, быстрое, что не будет грузить сайт сильно… Поискав по модулям и не найдя ничего путного, решил написать свой календарик с блекджеком и так далее…
В общем сделано было давно и уже позабылось, но приходит новое сообщение с drupal.ru с вопросом, как же реализован календарь на том сайте… Учитывая, что есть интерес к такому модулю, я сделал его его отдельным (раньше он был в связке с другими функциями сайта).
Собственно сейчас он отображает все типы материалов в календаре… Кому неудобно в файле модуля поменяйте $type на ваше условие для типа материала, например, $type = ’story’;. Лень было добавлять в настройку блока такое поле.
О, вспомнил. Модуль включается как блок и в нем ещё формируется страница типа /calendar/ГГГГ/ММ/ДД для отображения страницы с материалами за выбранный день
Темизация осуществляется через правку css-файла и спрайта со стрелками. Скрипт править не надо
Вот и всё, собственно… Юзайте на здоровье
Чуть не забыл! Файлик вот… Шестая версия друпала
UPDATE (01.04.2011)
Обновил модуль по просьбе taru
Добавил выборку по типу материала и по полю CCK Date, для выбора материалов типа афиш
Добавил сохранение последнего месяца, чтобы не листать лишний раз.
Файл вот
За спасибо, приму копеечки на яндекс.деньги 41001896059641 или заказ на разработку новых модулей )))
Прикрепленный файл
Размер
russian_calendar.zip
7.78 кб
russian_calendar_v02.zip
9.25 кб
Источник: http://www.drupal.ru/node/59020
Очень часто бывает нужно сделать сортировку нод по какому-то критерию. Для этого часто используются Views, Nodequeue, Flag и другие похожие модули. Но часто бывает так, что функционала этих модулей недостаточно для удовлетворения хитрых требований заказчика. Конечно можно сделать много nodequeue и рассказать заказчику, которая из них за что отвечает, но такая система с точки зрения юзабилити выглядит как минимум сомнительно. Другим вариантом решения может быть добавление cck-поля “weight” и вручную для каждой ноды выставлять ее вес и уже по нему сортировать. Но опять же при наличии тысяч нод данный способ не является решением проблемы.
Читать полностью…
Источник: http://www.drupal.ru/node/58883
Источник: http://www.drupal.ru/node/58769
Наверняка все сталкивались с готовыми сборками сайтов на Drupal, когда после установки получаешь готовый сайт с набором необходимых модулей, своей темой и т.д. Существует большое количество таких сборок, среди них Open Atrium, Open Publish, Drupal Commons и т.п. Думаю возникал вопрос “А как это реализовано? или “Как это сделать?” Ответ на этот вопрос – Drupal Install Profile. И так, как создать свой установочный профиль. В основном инсталляционные профили создаются на основе существующего сайта.
Шаг 1. Подготовка файлов.
Создаем папку “modules”, в ней папку “contrib”, в которую копируем все необходимые для работы сайта модули. Создаем папку “themes”, в которой размещаем папку с нашей темой, например acquia_prosper, и набором .tpl.php и .js и .css файлов, созданных в процессе разработки сайта. Для включения некоторых особых элементов сайта в сборку, таких как views, типы контента, меню, роли, права доступа и т.д., используется модуль Features. Созданые “фичи” положим в папку “features” и разместим в папке “modules”.
Читать полностью…
Источник: http://www.drupal.ru/node/58705
Smush.it использует методы оптимизации изображения специфические для каждого формата, чтобы удалить ненужные байты из файлов изображений, а это значит что мы получаем оптимизацию изображений, не меняя их внешний вид или качество.
В интерфейсе нам доступны флешовый мультизагрузчик или загрузка по URL
После того как Smush.it обработает изображения, на экране появится отчет
Все оптимизированые изображения потом можно сохранить в ZIP файле.Как видно из отчета, оптимизация для нашего примера составила 15.84%, что является потрясающим результатом, поскольку все изображения перед этим уже были оптимизированы другой программой.
Источник
Источник: http://www.drupal.ru/node/58560
Сегодня, точнее вчера, состоялся очередной Drupal Day в Краснодаре, основная тема – восьмое марта и заказчик из Омска.
Были два человека – я и Богдан. Женщин в нашем коллективе нет, поэтому праздник никто не испортил.
В программе мероприятиея были пиво и закуска, обсуждение важных вопросов таких как завышенные требования работодателей, XSS-уязвимости и то как порутать любой сервер.
Источник: http://www.drupal.ru/node/58552
XHprof – это иерархический профайлер для PHP c HTML интерфейсом. Ядро написано на языке С (на уровне отчетов и интерфейса код уже весь на PHP), а для скачки доступно в виде экстеншина для PHP. Этот профайлер умеет собирать данные о использовании памяти, ресурсов процессора, количестве и последовательности вызовов функций, а так же inclusive time (время, потраченное на функцию и на все функции, вызванные из нее) и exclusive time(время, потраченное на функцию без учета времени на вложенные функции).
Дополнительно, XHprof поддерживает сравнение двух запусков (иерархический DIFF отчет) и умеет объединять несколько запусков для усреднения данных.
Читать полностью…
Источник: http://www.drupal.ru/node/58543
сбж
мужиков понятливых,
денег пабольше.
Источник: http://www.drupal.ru/node/58536
В настоящий момент происходит опрос drupal.org сообщества на предмет участия в развитии внутренних частей drupal 8.
Желающие могут описать возможность личного участия в разработке Drupal 8
Большая просьба писать исключительно то, в чем Вам лично есть желание принять участие!
EDIT
Я предлагаю согласовать идеи и перспективы разработки, лично я хочу проработать UX для poll, blog, forum и рефакторинг системы кеширования. Если в issue будет достаточно тестировщиков и участников – у неё больше шансов попасть в ядро.
Attached poll “Желаете ли принять участие в разработке Drupal 8?”.
Register or login to poll
Results:
Помогу кодом: 11 голосов
Помогу с темизацией: 5 голосов
Помогу с UX: 6 голосов
Неосилю: 28 голосов
Нет: 6 голосов
Источник: http://www.drupal.ru/node/58467
Сколько бы времени ни прошло, всегда находятся пользователи, которые пользуются старыми (или очень старыми) браузерами. Поддерживать весь этот антиквариат не имеет смысла, но уведомить пользователя надо. Для этой цели был создан модуль, который показывает информационное сообщение в шапке страницы и предлагает скачать свежий браузер.
Особенности и отличия от множества аналогичных модулей:
– Возможность изменить текст сообщения и ссылку на информационное видео
– Возможность изменить ссылки на сайты браузеров
– Поддерживает 5 основных браузеров: Opera, Safari, IE, Chrome, Firefox
– Возможность указать версии браузеров, начиная с которых браузеры не считаются устаревшими
– Не назойливое уведомление. После закрытия его “крестиком” больше не отобразится (cookie на период сессии)
– Автоматически обновляемая информация о браузерах. Очень точное определение версии.
– Поддерживает переводы
P.S. Дизайн взят отсюда и немного переработан. Надеюсь автор не обидится.
P.P.S. Буду рад помощи в выкладывании модуля (этого и еще нескольких) на drupal.org, что-то я никак не разберусь как это сделать.
Прикрепленный файл
Размер
oldbrowser-7.x-1.1-dev.zip
114.96 кб
Источник: http://www.drupal.ru/node/58413
[Открыта регистрация на сайте Moscow DrupalConf]
Оргкомитет DrupalConf’2011 принял решение о проведении конференции 23 апреля 2011 года! У нас уже забронирован зал, пока лучшая площадка – один из павильонов на ВДНХ(Выставке достижений народного хозяйства), что крайне символично, ибо Drupal – одно из главных достижений народа 21 века
К нашим услугам комфортный зал на 260 человек со звукоусиливающей аппаратурой.
Предварительный список докладов:
SimpleTest
Концепция единого модуля интеграции с соцсетями – seaji
Разработка Drupal дистрибутивов – neochief
Drupal и SEO – kostin
Разработка модулей – от Drupal 6 к Drupal 7
Drupal 7 & Drupal 8 – Андрей Постников
Темизация – от Drupal 6 к Drupal 7 – teamfighter
Гибкие методологии разработки, работа в команде(Как правильно организовать работу в команде – agile(scrum, xp), SVN, …)
Как построить разработку на Drupal(Использование дебагинга, Devel, Features и т.п) – Анна Федорук
Системы электронного документооборота на Drupal – NaZg
? Services – ygerasimov
Ubercart – немного примеров из жизни irbis
Why Drupal? Как убедить заказчика? leviks
Также мне кажется имеет смысл выделить отдельную секцию Производительности Друпала. В этой секции предлагаю сделать несколько мини-докладов(регламент 10-15 минут), доклады будут промодерированы по контенту – чтобы не было пересечений
Тюнинг MySQL и PHP
Бенчмарки различных методов оптимизации Drupal
Создание и управление кластером с сайтом на Drupal
Создание и управление высоконагруженными проектами на Drupal
Желающие выступать в секции: Stalker-g2, irbis, teamfighter
Список будем пополнять
Со списком докладов и докладчиков будем определяться до 15 марта. До 31 марта всем докладчикам необходимо сдать тезисный план, а до 8 апреля презентации.
Участие и кофебрейк бесплатны.
Предлагайте новые доклады, записывайтесь на существующий темы. Напоминайтесь, если кого забыл.
Источник: http://www.drupal.ru/node/58378
10 Марта в 19 часов в самом центре Петербурга, в удобном , уютном месте, состоится встреча представителей Друпал сообщества Санкт-Петербурга.
В программе
- Просмотр прямой трансляции друпал кафе из Киева презентации на тему как делать на друпал!
- презентации модуля для друпал, сделанного в Питере. Рассказ как вообще делать новые модули, и как делался тот что будет представлен.
- Свободная презентация – любой желающий может презентовать свой успех ( показать популярный модуль или проект)
- ЧАЙ КОФЕ, Пиво Музыка бар – поздравление представительниц прекрасного пола.
Вход бесплатный, нужно будет только поблагодарить бар свои чеком и наши встречи станут регулярными…
Встреча пройдет в баре ๏̯͡๏ БАР ФИЛИН ГУД/Feelin’Good!๏̯͡๏
Литейный пр., д.64/78. Тел. 907 53 56. Группа вконтакте: club8612867
( Угол Невского Литейного, во дворе напротив кофехауза , Можно приносить свой тортик пирожные Бар разрешил )
Источник: http://www.drupal.ru/node/58371
Заготовка в формате *.psd для создания дизайна под Drupal на базе 12-колоночной разметки по стандарту 960 Grid System. Надеюсь она окажется вам полезной. Файл к сожалению прикрепить не удалось, скачать его можно здесь
Источник: http://www.drupal.ru/node/58347
http://dl.dropbox.com/u/6717893/less.zip
Набросал модуль для автоматического подключения замечательного одноимённого препроцессора.
Поскольку в написании модулей и наглийском наречии слаб, прошу помощи в оформлении страницы помощи для него и readme.
Исправление идеологических ошибок тоже приветствуется.
Источник: http://www.drupal.ru/node/58323
Перед тем как переходить на 7-ую версию друпала, ответьте на вопросы (самому себе):
Зачем вам это нужно? (если всё хорошо работает)
Настолько важен вам переход или стоит подождать? (к чему спешка..)
Возможно лучше пока остаться на 6-ой версии друпала? (Меньше проблем, всё более стабильно работает)
Обычно большинство разработчиков переходят на следующую версию через 6-12 месяцев (статистика приблизительная, по моим личным наблюдениям..). Например с 4-ой на 5-ую версию, составило примерно, от трёх до девяти месяцев, хотя кто-то, только через пару лет обновился
На данный момент, для 7-ой версии друпала имеется чуть более 1000 модулей. С одной стороны это много, с другой, ещё огромное количество модулей не адаптировано под 7-ую версию, а некоторые и не будут переделаны… (по разным причинам).
Перед тем как переходить на 7-ую версию, проверьте, чтобы были все нужные вам модули сделаны для 7-ой версии.
Скачайте все нужные вам модули и установите их локально вместе с 7-ой версией друпала! Проверьте на чистой установке, нормально они работают вместе или есть проблемы. Если есть возможность, сделайте чистую установку на своём хостинге (например, на поддомене), чтобы быть уверенным, что 7-ая версия друпала работает нормально на вашем хостинге и корректно работают модули.
Если есть проблемы, ищите решение (возможно надо поставить патч, для какого-нибудь модуля) или подождите с переходом.
Возможно это займёт час-два времени, но вы будете точно знать, что эти модули вместе работают на семёрке.
Список модулей перенесённых в ядро друпал 7.x – http://drupal.org/node/895314
Кстати, можно отследить по функциональности модулей, что нового в 7-ой версии…
Если вы используте свои модули, то здесь – http://drupal.org/update/modules (eng) можете прочитать как их обновить.
Так же можете прочитать, как обновить свой дизайн сайта – http://drupal.org/update/theme (eng)
Перед переходом на 7.x версию друпала, обновите до последней версии Друпала 6.x ваш сайт. Если вы используете версию 5.x, то обновите её сначала до 6-ой версии!
Обновление.
1) Создайте резервную копию базы данных и всех папок и файлов. Сохраните в таком месте, чтобы не удалить случайно Резервную копию базы данных делайте сторонней программой, а не модулем работающим в друпале! Используйте, например – http://sypex.net/ru/
2) Войдите на сайт под пользователем ID 1 (это первый пользователь который был создан, при создании сайта).
3) Перейдите в раздел – admin/settings/site-maintenance и переведите сайт в режим технического обслуживания.
4) Перейдите в раздел – admin/build/themes и включите по умолчанию дизайн сайта – Garland.
5) Перейдите в раздел – admin/build/modules и отключите все модули которые не входят в ядро друпала (обязательные и дополнительные).
Если есть модули, которые вы не будете использовать в 7-ой версии друпала, то можете их удалить на странице – admin/build/modules/uninstall (тем самым очистив базу данных от лишних таблиц). Чем больше удалите, тем лучше )
6) Удалите все файлы и папки, за исключением папки ’sites’ и входящих в неё файлов и папок. Другие файлы, которые вы создали в других местах, тоже сохраните на месте.
Если вы делали изменения в файлах .htaccess или robots.txt, то вам придётся повтороно внести изменения уже в новых файлах.
7) Если вы удалили какие-либо модули из базы данных на странице – admin/build/modules/uninstall то можете удалить файлы этих модулей из папки – sites/all/modules или в зависимости от того, где они у вас находятся…
Остальные модули оставьте на месте, даже если они несовместимы с Drupal 7.x.
Загрузите текущую версию друпал 7.x на ваш сервер.
9) Сделайте если нужно изменения в файлах .htaccess и robots.txt
10) Удалите файл – default.settings.php он находится в папке – sites/default/default.settings.php
11) Сделайте файл settings.php доступным для записи, чтобы в процессе обновления можно было внести изменения, под версию 7.x
Если для режима технического обслуживания вы прописывали строку – $conf['maintenance_theme'] = ‘ваш_дизайн’; – то удалите строку.
12) Запустите update.php он находится по адресу http://вашсайт.ru/update.php
Если вы не можете получить доступ к update.php, то выполните следующие действия:
– Откройте в текстовом редакторе файл settings.php
– Найдите строку – $update_free_access = FALSE;
– Замените её на – $update_free_access = TRUE;
– После того как обновление будет сделано, замените обратно TRUE на FALSE
13) Сделайте резервную копию вашей базы данных, после окончания процесса обновления.
14) Замените и обновите модули, которые не входят в ядро друпала (с запуском update.php до включения модулей и после включения).
15) Убедитесь, что в строке $update_free_access файла settings.php прописано FALSE. Можете прописать строку – $conf['maintenance_theme'] = ‘ваш_дизайн’; с вашим дизайном, для режима технического обслуживания.
16) Зайдите на страницу – admin/reports/status и убедитесь, что нет ошибок.
17) Включите по умолчанию свой дизайн сайта. (конвертированный под 7.x).
18) Сделайте резервную копию базы данных.
19) Зайдите на страницу – admin/config/development/maintenance и включите сайт в рабочий режим.
20) Проверьте настройки, правильный вывод блоков и тому подобное…
Если вы столкнулись с ошибками или проблемами во время обновления, то:
– Обратите внимание на любые сообщения об ошибках.
– Восстановите сайт в предыдущее состояние с помощью резервной копии базы данных, созданной до начала процесса обновления сайта. Не пытайтесь делать дальнейшее обновление сайта, если возникли проблемы при обновлении!
Более подробную информацию по обновлению сайта, можно найти на странице – http://drupal.org/upgrade (eng)
Если в вас живёт дух экспериментатора и новатора, если вы отличный специалист и любите исправлять ошибки, если ваш темперамент и характер не даёт вам спокойно спать или просто “не дала” жена, то можете смело обновляться до 7-ой версии друпала
В остальных случаях, подождите до лета…
P.S. Если будете обновляться, отпишитесь, как получилось..
Attached poll “Вы будете обновляться до 7-ой версии?”.
Register or login to poll
Results:
Хочу обновляться, но нет нужных модулей: 4 голоса
Хочу обновляться, но боюсь косяков: 3 голоса
Не хочу обновляться, геморроя с этим много: 3 голоса
Уже обновился: 2 голоса
А нафига вообще это нужно?: 2 голоса
Буду обновляться ближе к лету: 2 голоса
Буду обновляться примерно в конце года: 1 голос
Буду обновляться в ближайшее время: 4 голоса
Источник: http://www.drupal.ru/node/58265
Что такое CDN?
Кому и почему нужно использовать CDN?
Инфраструктура CDN & Drupal
Пример расширенной настройки CDN в друпале
Распараллеливания загрузки
читать
Источник: http://www.drupal.ru/node/58264
Привет всем! С переходом на Drupal 7 мне очень непонравилось то, что вертикальные закладки “vertical tabs” в наглую включили в ядро друпала и что самое ужасное – нигде в пользовательском интерфейсе это невозможно отключить. В то время как под D6 это был отдельный модуль, который можно было установить и включить по желанию.
После чего мною был сделан модуль, который при обработке форм везде где встречаются вертикальные закладки заменяет их на обычные поля “fieldset” как это было в Drupal 6 по-умолчанию.
http://drupal.org/sandbox/Dripman/1077122 – ссылка на сам модуль на drupal.org (качаем через GIT)
Или отсюда disable_vertical_tabs.zip
Прикрепленный файл
Размер
disable_vertical_tabs.zip
915 байтов
Источник: http://www.drupal.ru/node/58246
Скрипт cron.php используется в Друпале для для работы поиска(индексация контента), отправки писем подписчикам, сбора rss-фидов и т.д. – модули сами могут давать задания для выполнения по расписанию.
На drupal.org присутствует немалое количество модулей, которые позволяют тем или иным образом взаимодействовать со скриптом крона. Наиболее популярными среди них являются: SuperCron и Poormanscron. Первый имеет неплохой набор настроек для автоматизации и планирования крон-задач и является очень перспективным, а второй из всех настроек может похвастаться только интервалом запуска скрипта cron.php. На мой взгяд наиболее правильным и удобным является модуль Elysia cron – этот модуль, благодаря своей исключительной гибкости и юзабельности серьезно уделывает конкурентов.
Полная статья »
Источник: http://www.drupal.ru/node/58184
В отличие от наших платных тренингов, решили провести социальное мероприятие основной целью которого является предоставить возможность дохода в IT сфере (в основу разработка сайтов на Drupal) социально незащищенным людям, такие как инвалиды, дети в детских домах.
Это бесплатное мероприятие на которое уже с интересом откликнулись многие активистов и добрые, которые работают и помогают с инвалидами и в детских домах.
Мероприятие пройдет 5-6 марта.
Анонс, отчет, отзывы и фотографии тут.
Нужна помощь
- людей, которые смогут выступить, поделиться опытом,
- help team
- персональное наставничество
Attached poll “Это актуально?”.
Register or login to poll
Results:
Да: 4 голоса
Нет: 2 голоса
Нет: 0 голосов
Источник: http://www.drupal.ru/node/58065
Всем сюда, прямой эфир тут:
http://www.livestream.com/drupalcafe
Источник: http://www.drupal.ru/node/57961
Если ты ещё мужчина,
То сегодня есть причина.
Доставай бутылку водки,
Вспоминай себя в пилотке.
И – туда, где ждут друзья,
С 23 февраля!
Источник: http://www.drupal.ru/node/57860
Во первых, что такое Apache Solr?
Apache Solr – это расширяемая поисковая платформа с открытым исходным кодом для от проекта Apache Lucene.
Почему Apache Solr?
Основными критериями выбора этой платформы для нас стало то, что Apache Solr оптимизирован для работы с большой нагрузкой и что репликация уже в составе ядра платформы, а это дает большие возможности для масштабирования.
На одном с проектов мы столкнулись с вопросом «А что будет если наш основной Solr сервер вдруг перестанет отвечать? Вся система поиска на сайте умирает?».
Полная статья »
Источник: http://www.drupal.ru/node/57760
Дамы и господа, леди и джентльмены! Товарищи!
От лица ресурса drupal-bloggers.com предлагаю провести опрос на самый интересный блог о Друпал 2010. Проголосуйте за блог, который вам запомнился в 2010 году, блог, который вы с интересом продолжаете читать и в 2011 году.
К голосованию предлагаю самые активные и полезные блоги по агрегатору Drupal-bloggers.com:
EllECTRONC – http://drupalblog.ru/
Drupalka – http://www.drupalka.ru/
XandeadX – http://xandeadx.ru/
Graker – http://graker.ru/
Drupal Developer – http://drupaldeveloper.ru/blog
Sidashin.ru – http://sidashin.ru/
ShvetsGroup – http://shvetsgroup.com/ru/blog
Drupalace – http://drupalace.ru/
Shift-Web – http://www.shift-web.ru/
Sherskova.Ru – http://sherskova.ru/
Мой блог – http://dovbysh.com/ru/blogs/kodo понятно вне конкурса.
Думаю будет логично иметь возможность проголосовать за несколько блогов одному пользователю.
Предлагаю обратить внимание не только на количество материалов в блоге, но так же на их полезность и форму подачи материалов (дизайн блога и оформление статей).
К сожалению действительно полезных и активных блогов о Друпал не много. Ряд интересных блогов перестали обновляться в течении 2010 года. Но в целом активность и уровень распространения материалов о Друпал через блоги и личные сайты только растет, что не может не радовать.
Загадывать наперед достаточно сложно, но есть желание конкурс «Друпал-блоггер года» сделать постоянным.
Чтобы конкурс был интереснее как блоггерам , так и друпаллерам победителю конкурса предлагается небольшой приз – японский чай фукамущи сенча «Пожелание богатства»
Чай предоставлен Магазином японского чая. Пересылка чая победителю естественно осуществляется за счет магазина авиапочтой.
Опрос проводится до 1 марта (неделю). Не проходи мимо! Поделись своим мнением!
Победит интереснейший!
Attached poll “Какой на ваш взгляд наиболее интересный блог о Друпал в 2010 году?”.
Register or login to poll
Results:
EllECTRONC: 12 голосов
Drupalka: 3 голоса
XandeadX: 53 голоса
Graker: 30 голосов
Drupal Developer: 4 голоса
Sidashin.ru: 3 голоса
ShvetsGroup: 29 голосов
Drupalace: 32 голоса
Shift-Web: 11 голосов
Sherskova.Ru: 2 голоса
Источник: http://www.drupal.ru/node/57737
Сегодня на всех страницах www.drupal.ru прикрепили вот такое объявление о попытках взлома Drupal-сайтов: PSA-2011-001 – “Drupal security update” social engineering.
Для старых перцев вроде меня подобная попытка зафейлить сайт действительно является Not critical, как и сказано по ссылке. Но в наше уютненькое коммуните в последнее время набижало немало новичков, чьё знание английского оставляет желать лучшего. Отсюда непонимание того, как именно работает команда разработчиков Drupal и, как следствие, потенциальная подверженность подобного рода атакам. Потому, думаю, будет нелишним перевести данное послание от высшего разума группы по обеспечению безопасности Drupal с одного великого и могучего на другой.
PSA-2011-001 – Социальная инженерия через «обновление безопасности Drupal»
Размещено группой по обеспечению безопасности Drupal 17 февраля 2011 года.
Идентификатор: PSA-2011-001
Модуль: Ядро Drupal и контрибутивные модули
Версия: Все версии
Дата: 17 февраля 2011 года
Риск: Не критический
Описание
Публичное объявление об атаке посредством социальной инженерии через письма приходящие якобы от группы по обеспечению безопасности Drupal.
Ниже текст получаемого сообщения по-английски:
Hello,
I am a member of the Drupal security team. Our installation records show that your site runs Drupal on PHP [version] and [server]. We have recently found a security problem with that configuration which could allow a hacker to get into the site and delete any posts they want. We have not posted anything about this yet publicly as we want to get this patch out to as many people as possible first.
We have developed a patch for this bug – all you need to do is upload this file to your site in the sites/default/files/ folder (do not change the name of the file) and Drupal will see it and install it for you. We recommend you do this as soon as possible.
Sincerely,
James
Drupal security team
Перевод на русский:
Здравствуйте,
Я член группы по обеспечению безопасности Drupal. Запись об установке вашего сайта говорит, что он запущен на Drupal на PHP [версия] на сервере [имя сервера]. Недавно мы обнаружили проблему безопасности с такой конфигурацией сайта, которая позволяет хакерам получить доступ к нему и удалить любую страницу. Мы еще не объявляли об этом публично, поскольку хотели, чтобы максимальное число людей получили это сообщение в первую очередь.
Мы разработали патч, устраняющий эту ошибку, его необходимо загрузить на ваш сайт в папку sites/default/files/ (не изменяйте имя файла), чтобы Drupal обнаружил и установил его. Рекомендуем сделать это как можно скорее.
С уважением,
Джеймс.
Группа по обеспечению безопасности Drupal
Это письмо отсылается якобы с адреса группы по обеспечению безопасности Drupal (drupal_s@yahoo.com) в легко подменяемом поле «От». Оно также содержит файл с патчем, который требуется загрузить и установить еа ваш сайт. Излишне говорить, что этот файл содержит код, делающий вашу систему доступной извне. Если вы получили сообщение, подобное вышеприведённому, ни в коем случае не загружайте прикрепленный файл.
Как группа по обеспечению безопасности Drupal работает с пользователями:
Группа по обеспечению безопасности Drupal не предоставляет патчи для сайтов.
Группа по обеспечению безопасности Drupal никогда не будет просить администраторов сайтов загрузить какие-либо файлы. мы лишь рекомендуем обновлять ядро Drupal или контрибутивные модули до последних версий с официального сайта www.drupal.org.
Группа по обеспечению безопасности Drupal использует только три способа связи с пользователями CMS: отчет о необходимости обновления при установке Drupal, сообщения и RSS на http://drupal.org/security, и новости, доступные на вашей странице пользователя сайта www.drupal.org. Группа по обеспечению безопасности Drupal не публикует свои сообщения на Twitter и не предоставляет других официальных каналов связи, кроме вышеуказанных.
Группа по обеспечению безопасности Drupal никогда не будет запрашивать ваших паролей к хосту или инсталляции CMS на нем.
Если вы получаете сообщение от кого-то, кто утверждает, что он член группы по обеспечению безопасности Drupal и вы считаете его просьбу сомнительной, пожалуйста, отправьте это сообщение на наш адрес security@drupal.org.
Наши контакты
Отправить сообщение группе по обеспечению безопасности Drupal можно через форму обратной связи на странице http://drupal.org/contact.
В заключение
Снова старая история. Не доверяй никому; если доверяешь, то проверяй; даже проверив, не доверяй все равно. Особенно в случае, когда неведомый хрен с бугра облагодетельствует тебя каким-то сомнительным кодом.
Если кто-то, знающий English лучше меня, заметил ошибки, исправляйте в комментариях.
Источник:
PSA-2011-001 – “Drupal security update” social engineering
Перевод – direqtor
Источник: http://www.drupal.ru/node/57631
Белый Дом продолжает поддержку открытого исходного кода Drupal. В 2009 он мигрировал на Drupal, а в апреле 2010 раскрыл код некоторых модулей разработанных для него.
Это хорошее начинание продолжено. Для популярного файлового менеджера IMCE выложен набор плагинов IMCE tools. Кроме того объявлено о поддержке таких проектов как: Open Atrium, Features, Spaces, Boxes, Context, StrongArm и Admin. Кроме того, www.whitehouse.gov участвует в разработке модуля автоматического назначения тегов Calais, утилиты для организации массовой загрузки файлов IMCE SWFupload и модуля для создания коротких URL shortURL.
Вот так обыденно и просто. Сравнивая это сообщение с тем, что творится в наших эмпиреях, просто других слов кроме матов не остаётся. В этой стране чуть ли не каждый месяц объявляют о создании очередного супер-вупер-мега-портала для госнужд за десяток мегарублей. А на деле это оказывается слепленной неизвестно кем за три дня поделкой на какой-нибудь недоношенной CMS, глядя на которую даже не специалист понимает, что 90% бюджета было спилено группой неустановленных лиц. Ни разу не слышал, что бы наше правительство поддерживало что-то в плане свободного ПО. Может у кого другие сведения?
Будь свободные деньги, точно бы начал какую-нибудь очень радикальную партию финансировать. Или Навального. Или свалил бы в Гондурас, где тепло и финики.
Кстати, правительство Лондона год назад тоже переехало на Drupal.
А у нас вот так:
Источник: http://drupal.ru/node/57407
Белый Дом продолжает поддержку открытого исходного кода Drupal. В 2009 он мигрировал на Drupal, а в апреле 2010 раскрыл код некоторых модулей разработанных для него.
Это хорошее начинание продолжено. Для популярного файлового менеджера IMCE выложен набор плагинов IMCE tools. Кроме того объявлено о поддержке таких проектов как: Open Atrium, Features, Spaces, Boxes, Context, StrongArm и Admin. Кроме того, www.whitehouse.gov участвует в разработке модуля автоматического назначения тегов Calais, утилиты для организации массовой загрузки файлов IMCE SWFupload и модуля для создания коротких URL shortURL.
Вот так обыденно и просто. Сравнивая это сообщение с тем, что творится в наших эмпиреях, просто других слов кроме матов не остаётся. В этой стране чуть ли не каждый месяц объявляют о создании очередного супер-вупер-мега-портала для госнужд за десяток мегарублей. А на деле это оказывается слепленной неизвестно кем за три дня поделкой на какой-нибудь недоношенной CMS, глядя на которую даже не специалист понимает, что 90% бюджета было спилено группой неустановленных лиц. Ни разу не слышал, что бы наше правительство поддерживало что-то в плане свободного ПО. Может у кого другие сведения?
Будь свободные деньги, точно бы начал какую-нибудь очень радикальную партию финансировать. Или Навального. Или свалил бы в Гондурас, где тепло и финики.
Кстати, правительство Лондона год назад тоже переехало на Drupal.
А у нас вот так:
Источник: http://www.drupal.ru/node/57407
В прошлом году в составе команды энтузиастов собрались и сделали вот этот перевод. Было весело, получилось неплохо.
Сейчас есть желание сделать еще переводов важных статей про Друпал. Более актуальных – про семерку. Соответственно, вопрос: кто хочет поучаствовать?
Перевести можно, например, вот эту серьезную документацию: http://drupal.org/developing/api/database. Также будет здорово, если желающие увидеть перевод тех или иных статей про Друпал (желательно, 7) накидают в этот топик ссылок.
Всх, кто хочет принять участие, прошу отмечаться. Участникам предыдущего перевода, а также тем, кто специально просил, немного погодя вышлю персональные приглашения.
Пока отозвались:
Softovick
heap.ster
q2_faith
Ch
iHappy
Shift-Web
G.A. Vinogradov
LeopART
ingumsky@drupal.org
ZanaDLucTyc
P.Selfin@drupal.org
Clarion
kyky
Dock@drupal.org
mak-vardugin
Предложено к переводу:
http://drupal.org/node/360052 – Standards, security and best practices
http://drupal.org/developing/api/database – Drupal 7 Database API
http://drupal.org/theme-guide/6-7 – Theming Guide
Источник: http://drupal.ru/node/57373
В прошлом году в составе команды энтузиастов собрались и сделали вот этот перевод. Было весело, получилось неплохо.
Сейчас есть желание сделать еще переводов важных статей про Друпал. Более актуальных – про семерку. Соответственно, вопрос: кто хочет поучаствовать?
Перевести можно, например, вот эту серьезную документацию: http://drupal.org/developing/api/database. Также будет здорово, если желающие увидеть перевод тех или иных статей про Друпал (желательно, 7) накидают в этот топик ссылок.
Всх, кто хочет принять участие, прошу отмечаться. Участникам предыдущего перевода, а также тем, кто специально просил, немного погодя вышлю персональные приглашения.
Пока отозвались:
Softovick
heap.ster
q2_faith
Ch
iHappy
Shift-Web
G.A. Vinogradov
LeopART
ingumsky@drupal.org
ZanaDLucTyc
P.Selfin@drupal.org
Clarion
kyky
Dock@drupal.org
mak-vardugin
NovoKain
likin
alexart79
Предложено к переводу:
http://drupal.org/node/360052 – Standards, security and best practices
http://drupal.org/developing/api/database – Drupal 7 Database API
http://drupal.org/theme-guide/6-7 – Theming Guide
Источник: http://www.drupal.ru/node/57373
Не так давно мной был написан один занятный модуль для быстрой конвертации валют между собой. Представляет из себя блок со списком валют и полем для ввода данных.
Модуль тянет по крону данные о валютах из банков на выбор – ЦБР или НБРБ (Российский и Белорусские центральные банки). Валюты можно включать или отключать, менять их местами. В качестве основной валюты можно использовать любую из представленных валют. В модуль встроены стили, который можно при необходимости отключить.
Модуль имеет довольно удобную и пользовательски-простую страницу с настройками. Устанавливается модуль просто – достаточно закинуть его в папку с модулями /sites/all/modules, потом перейти на сайте в раздел настройки модулей /admin/build/modules и включить. После данной операции в разделе с блоками /admin/build/block появится блок “Валютный конвертер”. Достаточно перетащить его в любой регион и (обязательно) запустить крон (для того, чтобы модуль получил данные из банков). После этого блок будет работать.
Настроить блок можно на странице /admin/settings/currency_converter. Здесь пояснения, я думаю, будут лишними. Не разобраться там невозможно
Модуль находится под активной разработкой, поэтому любые замечания и предложения только приветствуются.
Собственно, сабж: currency_converter
Источник: http://drupal.ru/node/57336
Не так давно мной был написан один занятный модуль для быстрой конвертации валют между собой. Представляет из себя блок со списком валют и полем для ввода данных.
Модуль тянет по крону данные о валютах из банков на выбор – ЦБР или НБРБ (Российский и Белорусские центральные банки). Валюты можно включать или отключать, менять их местами. В качестве основной валюты можно использовать любую из представленных валют. В модуль встроены стили, который можно при необходимости отключить.
Модуль имеет довольно удобную и пользовательски-простую страницу с настройками. Устанавливается модуль просто – достаточно закинуть его в папку с модулями /sites/all/modules, потом перейти на сайте в раздел настройки модулей /admin/build/modules и включить. После данной операции в разделе с блоками /admin/build/block появится блок “Валютный конвертер”. Достаточно перетащить его в любой регион и (обязательно) запустить крон (для того, чтобы модуль получил данные из банков). После этого блок будет работать.
Настроить блок можно на странице /admin/settings/currency_converter. Здесь пояснения, я думаю, будут лишними. Не разобраться там невозможно
Модуль находится под активной разработкой, поэтому любые замечания и предложения только приветствуются.
Собственно, сабж: currency_converter
Модуль разработан при поддержке Интернет-Маркетинга
Источник: http://www.drupal.ru/node/57336
Предварительный список докладов:
SimpleTest
Концепция единого модуля интеграции с соцсетями
Разработка Drupal дистрибутивов
Drupal и SEO
Разработка модулей – от Drupal 6 к Drupal 7
Темизация – от Drupal 6 к Drupal 7
Гибкие методологии разработки, работа в команде(Как правильно организовать работу в команде – agile(scrum, xp), SVN, …)
Как построить разработку на Drupal(Использование дебагинга, Devel, Features и т.п)
Также мне кажется имеет смысл выделить отдельную секцию Производительности Друпала. В этой секции предлагаю сделать несколько мини-докладов(регламент 10-15 минут), доклады будут промодерированы по контенту – чтобы не ыбло пересечений
Тюнинг MySQL и PHP
Бенчмарки различных методов оптимизации Drupal
Создание и управление кластером с сайтом на Drupal
Создание и управление высоконагруженными проектами на Drupal
Предварительный список докладов:
SimpleTest
Концепция единого модуля интеграции с соцсетями – seaji
Разработка Drupal дистрибутивов – neochief
Drupal и SEO – kostin
Разработка модулей – от Drupal 6 к Drupal 7
Темизация – от Drupal 6 к Drupal 7 – teamfighter
Гибкие методологии разработки, работа в команде(Как правильно организовать работу в команде – agile(scrum, xp), SVN, …)
Как построить разработку на Drupal(Использование дебагинга, Devel, Features и т.п)
Системы электронного документооборота на Drupal – NaZg
? Services – ygerasimov
Также мне кажется имеет смысл выделить отдельную секцию Производительности Друпала. В этой секции предлагаю сделать несколько мини-докладов(регламент 10-15 минут), доклады будут промодерированы по контенту – чтобы не ыбло пересечений
Тюнинг MySQL и PHP
Бенчмарки различных методов оптимизации Drupal
Создание и управление кластером с сайтом на Drupal
Создание и управление высоконагруженными проектами на Drupal
Желающие выступать в секции: Stalker-g2, irbis, teamfighter, rxb
Список будем пополнять
Обсуждение и рейтингование тем докладовв – накидал простенький сайтик camp.isfb.ru, анонимные пользователи могут добавлять доклады и комментарии, авторизованные помечаться как докладчики
Со списком докладов и докладчиков будем определяться до 15 марта. До 31 марта всем докладчикам необходимо сдать тезисный план, а до 8 апреля презентации.
Предварительно, дата конференции – 15 апреля, формат – весь день, с 10:00 до 19:00. После – закажем столик в каких-нибудь Елках-Палках.
Участие и кофебрейк бесплатны. Вещание организуют наши партнеры.
Предлагайте новые доклады, записывайтесь на существующий темы. Напоминайтесь, если кого забыл.
Источник: http://drupal.ru/node/57043
Предварительный список докладов:
SimpleTest
Концепция единого модуля интеграции с соцсетями
Разработка Drupal дистрибутивов
Drupal и SEO
Разработка модулей – от Drupal 6 к Drupal 7
Темизация – от Drupal 6 к Drupal 7
Гибкие методологии разработки, работа в команде(Как правильно организовать работу в команде – agile(scrum, xp), SVN, …)
Как построить разработку на Drupal(Использование дебагинга, Devel, Features и т.п)
Также мне кажется имеет смысл выделить отдельную секцию Производительности Друпала. В этой секции предлагаю сделать несколько мини-докладов(регламент 10-15 минут), доклады будут промодерированы по контенту – чтобы не ыбло пересечений
Тюнинг MySQL и PHP
Бенчмарки различных методов оптимизации Drupal
Создание и управление кластером с сайтом на Drupal
Создание и управление высоконагруженными проектами на Drupal
Предварительный список докладов:
SimpleTest
Концепция единого модуля интеграции с соцсетями – seaji
Разработка Drupal дистрибутивов – neochief
Drupal и SEO – kostin
Разработка модулей – от Drupal 6 к Drupal 7
Темизация – от Drupal 6 к Drupal 7 – teamfighter
Гибкие методологии разработки, работа в команде(Как правильно организовать работу в команде – agile(scrum, xp), SVN, …)
Как построить разработку на Drupal(Использование дебагинга, Devel, Features и т.п)
Системы электронного документооборота на Drupal – NaZg
? Services – ygerasimov
Также мне кажется имеет смысл выделить отдельную секцию Производительности Друпала. В этой секции предлагаю сделать несколько мини-докладов(регламент 10-15 минут), доклады будут промодерированы по контенту – чтобы не ыбло пересечений
Тюнинг MySQL и PHP
Бенчмарки различных методов оптимизации Drupal
Создание и управление кластером с сайтом на Drupal
Создание и управление высоконагруженными проектами на Drupal
Желающие выступать в секции: Stalker-g2, irbis, teamfighter, rxb
Список будем пополнять
Обсуждение и рейтингование тем докладовв – накидал простенький сайтик camp.isfb.ru, анонимные пользователи могут добавлять доклады и комментарии, авторизованные помечаться как докладчики
Со списком докладов и докладчиков будем определяться до 15 марта. До 31 марта всем докладчикам необходимо сдать тезисный план, а до 8 апреля презентации.
Предварительно, дата конференции – 15 апреля, формат – весь день, с 10:00 до 19:00. После – закажем столик в каких-нибудь Елках-Палках.
Участие и кофебрейк бесплатны. Вещание организуют наши партнеры.
Предлагайте новые доклады, записывайтесь на существующий темы. Напоминайтесь, если кого забыл.
Attached poll “Предпочтительная дата проведения”.
Register or login to poll
Results:
15 апреля: 11 голосов
22 апреля(накладывается на риф 20-22 апреля): 7 голосов
готов прийти в любой день: 15 голосов
не приду: 4 голоса
Источник: http://www.drupal.ru/node/57043
Вот и вышел долгожданный релиз Drupal 7. В целом продукт мне понравился, и для того, что бы получше изучить новое АПИ я решил постепенно перевести написанные мной модули под новую платформу. Первой ласточкой стал один из элементов модуля ccfilter – collapse text. Но, что бы было поинтересней, я не просто перевел его под D7, но и несколько расширил функциональность.
Новый модуль ccfcollpase позволяет встраивать при помощи специальных тэгов (аля BBCode) в материалы сворачиваемый/разворачиваемый текст.
По сравнению с версией для D6, данный фильтр позволяет вставлять вложенные элементы, кроме того предусмотрен блок врапера, который позволяет разворачивать/сворачивать все элементы находящиеся внутри данного врапера. Также можно установить с помощью дополнительных атрибутов индивидуально для каждого слайдера некоторые параметры поведения, как то скорость сворачивания/разворачивания и метод сворачивания/разворачивания (пока доступны три метода slide, fade, slidefade).
В дальнейшем данный фильтр будет использован как один из составляющих элементов ccfilter под D7.
Примечание: далее в тексте примеров , что бы не срабатывал фильтр я заменил английскую букву c на русскую с.
Общий синтаксис:
/**
* Структура обработки фильтра:
* в треугольные скобки помещены не обязательные синтаксические конструкции
* одинарные кавычки в параметрах обязательны, порядок параметров произвольный
*
*******************************************************************************
* <[сollapse-wrapper <hide|show> <title-show='Expand All' title-hide='Collapse all'>]>
* [сollapse <attributes>]
* <материал внутри слайдера>
* <[сollapse <attributes>]>
* <материал внутри вложенного слайдера>
* <[/сollapse]>
* <продолжение материала внутри слайдера>
* [/сollapse]
* <[/сollapse-wrapper]>
*******************************************************************************
* опциональные атрибуты задают режим работы слайдера
* если аттрибуты не установлены, то беруться предустановленные параметы в настройках фильтра
* attributes =
* <hide|collapsed|show|expanded> - определяют как будет выглядить слайдер
* при загрузки страницы hide или collapsed - свернутый слайдер,
* show или expanded - развернутый слайдер
* <title-show='Expand'> - определяет префикс заголовка для разворачивания слайдера
* <title-hide='Collapse'> - определяет префикс заголовка для сворачивания слайдера
* <title=''> определяет постфикс заголовка слайдера
* например для комбинации title-show='Показать' title-hide='Скрыть' title='материал'
* для развернутого слайдера будет сформирован заголовок - Показать материал
* и при сворачивании он будет меняться на - Скрыть материал
* <speed-show='slow|fast'> <speed-hide='slow|fast'> - скорость разворачивания и
* соответственно сворачивания слайдера, кроме значений slow и fast можно указать
* число миллисекунд
* <method-show='Slide|Fade|SlideFade'> - метод анимации при разворачивании
* <method-hide='Slide|Fade|SlideFade'> - метод анимации при сворачивании
*
* [сollapse-wrapper <show|hide> <title-show='Expand All' title-hide='Collapse all'>]
* ......-
* [/сollapse-wrapper]
* определяет контейнер для нескольких слайдеров, и добавляет ссылку c возможностью
* развернуть или свернуть все слайдеры внутри контейнера
* атрибут show hide - определяет начальное значение обработчика враппера
*/
Если атрибуты не проставлены (а все они необязательны), то их значения берутся из предопределенных значений определенных в настройке фильтра.
В атрибутах имеющих значение – обязательны одинарные кавычки.
Порядок и наличие атрибутов произвольный, если какой либо из атрибутов не определен, то его значение берется из предопределенного в настройках фильтра .
Значения по умолчанию:
title-show=t(’show’)
title-hide=t(’hide’)
title=”
speed-show=’fast’
speed-hide=’fast’
method-show=’slide’
method-hide=’slide’
Допускаются вложенные сполеры (т.е. внутри сполера вы можете расположить еще дополнительные сполеры), уровень вложенности технически не ограничен и определяется здравым смыслом и ограничениями дизайна (верстки) сайта.
Полный заголовок формируется как конкатенация префикса (title-show|title-hide) и заголовка (title)
Некорректность (нарушение структуры – парности тэгов) не отслеживается и может привести к непредсказуемым результатам (вплоть до краха верстки), поэтому кажется сомнительный включать данный фильтр в общедоступный формат ввода.
Так как данный сайт (имеется ввиду мой домашний сайт) все еще на D6, для экспериментов и тестирования я создал новый сайтик www.printarts.ru, примеры работы фильтра можно посмотреть на страничке http://www.printarts.ru/article/proverka-raboty-ccfcollapse-filtra
Жду отзывов и багрепортов тестирования данного модуля.
Оригинал материала на сайте www.hotel-prog.ru
Прикрепленный файл
Размер
ccfcollapse.zip
5.7 кб
Источник: http://drupal.ru/node/56981
Вот и вышел долгожданный релиз Drupal 7. В целом продукт мне понравился, и для того, что бы получше изучить новое АПИ я решил постепенно перевести написанные мной модули под новую платформу. Первой ласточкой стал один из элементов модуля ccfilter – collapse text. Но, что бы было поинтересней, я не просто перевел его под D7, но и несколько расширил функциональность.
Новый модуль ccfcollpase позволяет встраивать при помощи специальных тэгов (аля BBCode) в материалы сворачиваемый/разворачиваемый текст.
По сравнению с версией для D6, данный фильтр позволяет вставлять вложенные элементы, кроме того предусмотрен блок врапера, который позволяет разворачивать/сворачивать все элементы находящиеся внутри данного врапера. Также можно установить с помощью дополнительных атрибутов индивидуально для каждого сполера некоторые параметры поведения, как то скорость сворачивания/разворачивания и метод сворачивания/разворачивания (пока доступны три метода slide, fade, slidefade).
В дальнейшем данный фильтр будет использован как один из составляющих элементов ccfilter под D7.
Примечание: далее в тексте примеров , что бы не срабатывал фильтр я заменил английскую букву c на русскую с.
Общий синтаксис:
/**
* Стркутра обрабоки фильтра
* в треугольные скобки помещены не обязательные значения (сами они не нужны)
* одинарные кавчки в параметрах обязательны, порядок параметров произволный
*
*******************************************************************************
* <[сollapse-wrapper <hide|show> <title_show='Expand All' title_hide='Collapse all'>]>
* [сollapse <attributes>]
* <материал внутри сполера>
* <[сollapse <attributes>]>
* <материал внутри вложенного сполера>
* <[/collapse]>
* <продолжение материала внутри сполера>
* [/сollapse]
* <[/сollapse-wrapper]>
*******************************************************************************
* опциональные атрибуты задают режим работы сполера
* если аттрибуты не установлены, то беруться предустановленные параметы в настройках фильтра
* attributes =
* <hide|collapsed|show|expanded> - определяют как будет выглядит сполер
* при загрузки страницы hide или collapsed - свернутый сполер,
* show или expanded - развернутый свернутый сполер
* <title-show='Expand'> - определяет префикс заголовка для показа сполера
* <title-hide='Collapse'> - определяет префикс заголовка для скрытия сполера
* <title=''> определяет постфикс заголовка сполера
* например для комбинации title-hide='Скрыть' title-show='Показать' title='материал'
* для развернутого сполера будет сформирован заголовок - Скрыть материал
* и при сворачивании он будет меняться на - Показать материал
* <speed-show='slow|fast'> <speed_hide='slow|fast'> - скорость разворачивания и
* соответственно сворачивания сполера, кроме значений slow и fast можно указать
* число миллисекунд
* <method-show='Slide|Fade|SlideFade'> - метод анимации при разворачивании
* <method-hide='Slide|Fade|SlideFade'> - метод анимации при сворачивании
* <hode='NumNode'> - содержимое сполера берется из ноды номер NumNode
* содержимое создается во время создания текущей ноды и обновляется только в
* случае сброса кэша
* <ajax-hode='NumNode'> - содержимое сполера берется из ноды номер NumNode
* содержимое подгружается через ajax при первом разворачивании сполера (если сполер свернут)
* или при первой загрузке строницы (если сполер развернут)
* если атрибут title не определен и есть один из атрибутов node или ajax_node,
* то в качестве title будет использован заголовок ноды.
* Нода в сполер загружается без комментариев и заголовка.
* Вывод ноды определен через шаблон 'ccfcollapse-inline-node.tpl.php'
* в шаблоне поставляемом с модулем также
* скрыты массивы field_tags и links
*
* [сollapse-wrapper <show|hide> <title-show='Expand All' title-hide='Collapse all'>]
* ......-
* [/сollapse-wrapper]
* определяет контейнер для нескольких сполеров, и добавляет ссылку c возможностью
* развернуть или свернуть все сполеры внутри контейнера
*/
Если атрибуты не проставлены (а все они необязательны), то их значения берутся из предопределенных значений определенных в настройке фильтра.
В атрибутах имеющих значение – обязательны одинарные кавычки.
Порядок и наличие атрибутов произвольный, если какой либо из атрибутов не определен, то его значение берется из предопределенного в настройках фильтра .
Значения по умолчанию:
title-show=t(’show’)
title-hide=t(’hide’)
title=”
speed-show=’fast’
speed-hide=’fast’
method-show=’slide’
method-hide=’slide’
Допускаются вложенные сполеры (т.е. внутри сполера вы можете расположить еще дополнительные сполеры), уровень вложенности технически не ограничен и определяется здравым смыслом и ограничениями дизайна (верстки) сайта.
Полный заголовок формируется как конкатенация префикса (title-show|title-hide) и заголовка (title)
Некорректность (нарушение структуры – парности тэгов) не отслеживается и может привести к непредсказуемым результатам (вплоть до краха верстки), поэтому кажется сомнительный включать данный фильтр в общедоступный формат ввода.
Так как данный сайт (имеется ввиду мой домашний сайт) все еще на D6, для экспериментов и тестирования я создал новый сайтик www.printarts.ru, примеры работы фильтра можно посмотреть на страничке http://www.printarts.ru/article/proverka-raboty-ccfcollapse-filtra
Жду отзывов и багрепортов тестирования данного модуля.
Оригинал материала на сайте www.hotel-prog.ru
**************************************************************************
Обновил модуль.
**************************************************************************
Добавлен следующий функционал:
1. Два (взаимоисключающих) атрибута node=’N’ и ajax-node=’N’ (если указаны оба то работает node).
Данный атрибут позволяет подгрузить в сполер ноду с номером N (при этом содержимое между тэгами [сollapse][/collapse] не имеет значения, так как будет заменено на содержимое ноды.
Различие этих атрибутов следует из названия, первый (node) формирует материал сполера из ноды во время создания, второй на “лету” посредством подгрузки node через ajax.
У обоих методов есть свои достоинства и недостатки.
Особенности атрибута node:
- Если изменена включаемая нода, то в сполере она не измениться до момента сброса кэша или пересохранения самого материала включающего сполер с данной нодой.
+ Включенный статично материал доступен для индексации поисковиками
+ Более быстрая загрузка сполера
+ При отключенном в браузере js материал виден как статический текст
Особенности атрибута ajax-node:
+ Нода в сполер загружается единожды при первом разворачивании сполера
+ Материал в сполере всегда актуален (т.е. если изменилась включаемая нода, то материал в сполере тоже будет загружаться измененный)
-+ Поисковики и индексаторы не будут видеть материал скрытый в сполере (даже в том случае если установлен атрибут show)
- При отключенном в браузере js материал не будет виден
Особенности применения данных атрибутов:
Будет плохой идеей «зациклить» материал т.е. при помощи атрибута node (ajax-node) включит в текущий материал создаваемую ноду непосредственно либо опосредованно, через цепочку нод (например вы редактируете ноду № 5 и включаете в сполер ноду №3 а в ноде №3 в сполер включена нода № 5), т.е. избегайте рекурсии, скорее всего это приведет к падению сервера с 502 ошибкой, и может быть исправлено только убиением(редактированием) данной ноды непосредственно в базе (для экспериментаторов править надо таблицу {field_data_body} после чего сбросить кеш).
В параметры конфигурации добавлен параметр определяющий можно ли включать в сполер не опубликованные ноды (в принципе я подумал что будет хорошей идеей создать не опубликованные ноды как шаблоны для дальнейшего включения в сполеры),
если данный флажок не установлен и нода включенная в сполер снята с публикации, то в сполер вместо содержания ноды будет выведена информация об отсутствии ноды (если это статический метод загрузки, то только после очистки кэша)
Вывод ноды определяется шаблоном ccfcollapse-inline-node.tpl.php (который вы можете переопределить в своей теме), в шаблоне по умолчанию (который включен в данный модуль) отключен вывод тэгов ноды и линки (т.е. практически выводиться голый “body” ноды).
Комментарии включаемой ноды не попадают в сполер.
В качестве включаемой ноды можно включать ноду в свою очередь содержащую свои сполеры (в том числе и с атрибутам node/ajax-node)
Правда в случае с включением ноды содержащей ajax-node сполер на моей теме возникают какие-то проблемы с css но попробую разобраться (может это тема глючит).
Да и еще раз избегайте рекурсии прямой или косвенной.
Если у вас включен модуль path (pathauto) то в качестве параметра node/ajax-node
можно использовать и синоим (например “article/test_node”).
Если при использовании атрибутов node или ajax-node не использован атрибут title, то в качестве title будет использован заголовок включаемой ноды.
Данный заголовок всегда формируется статично, т.е. если вы изменили заголовок включаемой ноды, то надо или сбросить кэш, либо пересохранить сам материал.
2. Переменные в атрибутах теперь могут быть заключены не только в одинарные но и в двойные кавычки (но обязательно парные), это позволяет например создавать атрибуты типа “O’Вerly” или ‘ООО “Моя компания”‘.
Пример использования новых возможностей можно посмотреть по адресу
http://www.printarts.ru/article/collapse-test-load-node
Прикрепленный файл
Размер
Новая версия – ccfcollapse.zip
8.01 кб
Источник: http://www.drupal.ru/node/56981
Модуль обмена данными с 1С (использует формат данных CommerceML 2)
Настройки
Для облегчения интерфейса и для стабильности хода выполнения операций, импорт продуктов из 1С разделен на 3 этапа.
Операция удаления продуктов
Операция импорта продуктов из 1С
Операция импорта ценовых предложений из 1С
Импорт
# Удаление ранее импортированных товаров (batch process)
# Импорт в полуавтоматическом режиме категорий из 1С (batch process)
# Импорт в полуавтоматическом режиме позиций товара, с привязкой к категориям (batch process)
# Импорт ценовых предложений из 1с
# Автоматический импорт (возможен только с модулем 1С www.cmlservice.com)
Экспорт
# Экспорт заказов из 1С
# Экспорт контрагентов из 1С
# Автоматический экспорт (возможен только с модулем 1С www.cmlservice.com)
скачать
Источник
Источник: http://drupal.ru/node/56968
Модуль обмена данными с 1С (использует формат данных CommerceML 2)
Настройки
http://drupal.org/project/cmlservice (теперь и на .org)
https://bitbucket.org/mirocow/cmlservice (и на bitbucket.org)
Для облегчения интерфейса и для стабильности хода выполнения операций, импорт продуктов из 1С разделен на 3 этапа.
Операция удаления продуктов
Операция импорта продуктов из 1С
Операция импорта ценовых предложений из 1С
Импорт
# Удаление ранее импортированных товаров (batch process)
# Импорт в полуавтоматическом режиме категорий из 1С (batch process)
# Импорт в полуавтоматическом режиме позиций товара, с привязкой к категориям (batch process)
# Импорт ценовых предложений из 1с
# Автоматический импорт (возможен только с модулем 1С www.cmlservice.com)
Экспорт
# Экспорт заказов из 1С
# Экспорт контрагентов из 1С
# Автоматический экспорт (возможен только с модулем 1С www.cmlservice.com)
скачать
Источник
Источник: http://www.drupal.ru/node/56968
***OpenStore – это сборка готового интернет-магазина на основе Ubercart и Drupal***
Предистория
Сайт проекта
Скачать сборку
Тут мы ловим блох
В этой теме я буду информировать народ о последних новостях проекта.
Добрые вести на 6.02.2011
Вышла Openstore Beta 2. Версия представляет собой перебродивший прежний dev + 2 новых модуля:
Yml export производства товарища restyler. Честно говоря, я не сильно в восторге от этого модуля, он сильно прост (хотя возможно это плюс) да и принцип действия не особо нравится, к тому же, пришлось немножко подправить, но, тем не менее, респект и уважение автору.
Долгожданный модуль интеграции 1С с Уберкарт производства товарища Mirocow, а точнее его demo. Доступна полнофункциональная версия, но за деньги. Купить можно (и нужно) через меня. Покупая что-то через меня, вы поддерживате проект и энтузиазм мой, его творящий.
Качаем, торопливо отстранив только что откупоренный пивас
Важные объявления:
Разобрался в настройках Openstore сам и хочешь помочь другим? Нужны добровольцы для написания руководства пользователя интернет магазина на основе Уберкарт!
Сделал таки магазин с использованием сборки OpenStore?
Отправь своё детище на мыло openstore.org.ua@gmail.com c указанием своего логина на сайте проекта www.openstore.org.ua. Я размещу на этот магазин прямую ссылку с сайта проекта!
Источник: http://drupal.ru/node/56952
***OpenStore – это сборка готового интернет-магазина на основе Ubercart и Drupal***
Предистория
Сайт проекта
Скачать сборку
Багтреккер
Обновление от 27.03.2011
ВНИМАНИЕ
Проект заморожен в связи с переездом автора в США. В ближайшие как минимум 6 мес (начиная с апреля 2011) я вряд ли смогу хоть как-то заниматься этим проектом. Это значит, что как минимум на этот срок:
Не будут выходить никакие обновления
Не будут рассматриваться задачи в багтреккере, сам багтреккер будет закрыт во избежании спама.
Загрузки всё также будут доступны
Спасибо за понимание!
Источник: http://www.drupal.ru/node/56952
Привет!
Мы проводим тренинг для начинающих веб-мастеров.
Очень доступно рассказываем, показываем и сразу практикуем, как сделать свой сайт на Drupal.
Часть людей, начинающих работать с Друпалом, сталкиваются в первое время (недели-месяцы) с рядом тривиальных задач, решение которых не очевидно по разным причинам, поэтому приглашаем пройти наш курс и открыть мозг для новых знаний:)
Кратко.
Цель тренинга — научить эффективно использовать возможности Drupal.
Архитектура меню, блоков, таксономия.
Изучаем основные модули Views, CCK, ImageCache и др.
Первый опыт в проведении тренинга по созданию сайтов для новичков оказался весьма успешным. Мы запланировали проведение курсов для вечерней группы и группы выходного дня.
Группа выходного дня — 18-20 февраля
Вечерняя группа — 9-12 февраля
Стоимость обучающих курсов 1 000 грн. Вне зависимости от выбранного формата: учиться в выходные (суббота, воскресенье и вечер пятницы) либо вечером в будни (среда, четверг и пятница вечером, и полдня субботы).
Каждому участнику предоставляется персональный доступ для сайта FTP и БД (база данных).
После прохождения курса участникам предоставляется консультативная поддержка.
По всем вопросам можно обращаться по телефону 093 330 28 30 (Даша),
либо отправляйте свои контактные данные на daredjana@gmail.com.
Источник: http://drupal.ru/node/56898
Привет!
Мы проводим тренинг для начинающих веб-мастеров.
Очень доступно рассказываем, показываем и сразу практикуем, как сделать свой сайт на Drupal.
Часть людей, начинающих работать с Друпалом, сталкиваются в первое время (недели-месяцы) с рядом тривиальных задач, решение которых не очевидно по разным причинам, поэтому приглашаем пройти наш курс и открыть мозг для новых знаний:)
Кратко.
Цель тренинга — научить эффективно использовать возможности Drupal.
Архитектура меню, блоков, таксономия.
Изучаем основные модули Views, CCK, ImageCache и др.
Первый опыт в проведении тренинга по созданию сайтов для новичков оказался весьма успешным. Мы запланировали проведение курсов для вечерней группы и группы выходного дня.
Группа выходного дня — 18-20 февраля
Вечерняя группа — 9-12 февраля
Стоимость обучающих курсов 1 000 грн. Вне зависимости от выбранного формата: учиться в выходные (суббота, воскресенье и вечер пятницы) либо вечером в будни (среда, четверг и пятница вечером, и полдня субботы).
Каждому участнику предоставляется персональный доступ для сайта FTP и БД (база данных).
После прохождения курса участникам предоставляется консультативная поддержка.
По всем вопросам можно обращаться по телефону 093 330 28 30 (Даша),
либо отправляйте свои контактные данные на daredjana@gmail.com.
Источник: http://www.drupal.ru/node/56898
С чего все началось? С темы которая всех на этом форме мягко говоря удивила: “Прикрепить файлы к статье Joomla“. Несмотря на название, само содержимое топика (опуская слово Joomla) было вполне адекватным! А именно поставлена следующая задача.
Задача: Прикрепить к статье файл.
Основные требования:
1. Файл должен загружаться с компьютера автора, в процессе ввода текста. *Хороший пример – этот форум. Тут можно прикрепить файл непосредственно при вводе сообщения.
2. Файл должен быть защищён от скачивания НЕ зарегистрированными пользователями. *не просто скрыта ссылка, а именно защита от скачивания и хотлинков.
Дополнительные (не обязательные, но крайне жалетельные) требования:
1. Если пользователь не загистрирован, то ссылка на файл не исчезает, он просто не может его скачать
2. Если не зарегистрированный пользователь пытается скачать файл – система его уведомляет о необходимости регистрации
3. Счётчик скачивания файла где-нибудь недалеко от ссылки “скачать”
4. Статика в админке, “кто, когда и что” скачал (это было бы вообе шикарно!)
Подопытным для всего этого как не странно стала не Joomla, а Drupal 7.
Сама задача для друпала не хитрая “Прикрепить к статье (материалу) файл” нам позволяет замечательная фишка семерки “Field API” т.е. по сути первый пункт основных требований выполнили. Идем дальше:
Цитата:
Файл должен быть защищён от скачивания НЕ зарегистрированными пользователями. *не просто скрыта ссылка, а именно защита от скачивания и хотлинков.
Это для меня был самый интересный вопрос, поэтому на нем я и заострю внимание.
Для начала нам надо настроить “файловую систему” первым делом надо создать приватную папку, где будут хранится все наши приватные файлы. Я сделал это следующим образом:
cd /путь/к/папке/с/установленным/друпалом/sites/default
chmod 755 .
mkdir files-private
chmod 555 .
Для тех кто не в теме, расшифровываю. Сначала папке /sites/default задал права на запись, создал в ней папку, затем вернул права на “только доступ”. поскольку папку /sites/default/files по умолчанию отдана апачу, я решил не создавать приватную папку в ней, чтоб еще не писать правила для запрета апача гулять туда (хотя подозреваю что оповестить его о запрете все равно придется).
После этой процедуры вернемся в админку друпала, а именно идем по адресу admin/config/media/file-system и в настройках “Приватный путь файловой системы” вписываем только что созданную нами папку sites/default/files-private после чего сохраняем настройки.
Далее идем по направлению Структура » Типы содержимого » наш тестовый тип » Управлять полями создаем поле типа “файл” (для изображений аналогично) и в настройках указываем Хранилище Личные файлы сохраняем и смотрим что получилось.
Я минут 5 втыкал что за фигня получилась, вроде как файлы приватные загружаются в одну структуру, отдаются из другой, но отдаются всем подряд. После чего я начал гуглить… и первым делом нагуглил следующее:
Цитата:
Setting the download method to “Private” doesn’t have any effect by itself…
what the private download setting does do, is fire off an extra event, hook_download()
Тут кстати автор опЯчататься. На самом деле хук называется hook_file_download
А вообщем это все можно перевести как “Сама по себе приватная файловая система ничего не делает т.е. по сути это api и которая дает один (может и больше, не интересовался) хук с помощью которого мы можем управлять скачиванием этих файлов. После чего я набросал модуль из двух хуков, один создает новое право для ролей hook_permission, а второй тот самый hook_file_download в котором указано что если у пользователя нет права на просмотр приватных файлов слать его лесом! Получившийся модуль искать в прикрепленных файлах.
После активации модуля идем на страницу прав пользователей admin/people/permissions и выдаем новое правило “View private files” кому положено качать приватные файлы т.е. зарегистрированным пользователям. На этом собственно второй пункт выполнен, все анонимы идут лесом.
Теперь идем по дополнительным пунктам:
Цитата:
1. Если пользователь не загистрирован, то ссылка на файл не исчезает, он просто не может его скачать
Уже сделано.
Цитата:
2. Если не зарегистрированный пользователь пытается скачать файл – система его уведомляет о необходимости регистрации
В нашем модуле надо просто $uri прировать не к -1 а к странице регистрации.
3 и 4 пункты решает модуль Download Count вот только портировать под 7-ку еще надо его. А вот это Download Tools для семерки, но сам его не тестил.
Ну в общем-то тема раскрыта, комментируем.
Источник: http://drupal.ru/node/56888
С чего все началось? С темы которая всех на этом форме мягко говоря удивила: “Прикрепить файлы к статье Joomla“. Несмотря на название, само содержимое топика (опуская слово Joomla) было вполне адекватным! А именно поставлена следующая задача.
Задача: Прикрепить к статье файл.
Основные требования:
1. Файл должен загружаться с компьютера автора, в процессе ввода текста. *Хороший пример – этот форум. Тут можно прикрепить файл непосредственно при вводе сообщения.
2. Файл должен быть защищён от скачивания НЕ зарегистрированными пользователями. *не просто скрыта ссылка, а именно защита от скачивания и хотлинков.
Дополнительные (не обязательные, но крайне жалетельные) требования:
1. Если пользователь не загистрирован, то ссылка на файл не исчезает, он просто не может его скачать
2. Если не зарегистрированный пользователь пытается скачать файл – система его уведомляет о необходимости регистрации
3. Счётчик скачивания файла где-нибудь недалеко от ссылки “скачать”
4. Статика в админке, “кто, когда и что” скачал (это было бы вообе шикарно!)
Подопытным для всего этого как не странно стала не Joomla, а Drupal 7.
Сама задача для друпала не хитрая “Прикрепить к статье (материалу) файл” нам позволяет замечательная фишка семерки “Field API” т.е. по сути первый пункт основных требований выполнили. Идем дальше:
Цитата:
Файл должен быть защищён от скачивания НЕ зарегистрированными пользователями. *не просто скрыта ссылка, а именно защита от скачивания и хотлинков.
Это для меня был самый интересный вопрос, поэтому на нем я и заострю внимание.
Для начала нам надо настроить “файловую систему” первым делом надо создать приватную папку, где будут хранится все наши приватные файлы. Я сделал это следующим образом:
cd /путь/к/папке/с/установленным/друпалом/sites/default
chmod 755 .
mkdir files-private
chmod 555 .
Для тех кто не в теме, расшифровываю. Сначала папке /sites/default задал права на запись, создал в ней папку, затем вернул права на “только доступ”. поскольку папку /sites/default/files по умолчанию отдана апачу, я решил не создавать приватную папку в ней, чтоб еще не писать правила для запрета апача гулять туда (хотя подозреваю что оповестить его о запрете все равно придется).
После этой процедуры вернемся в админку друпала, а именно идем по адресу admin/config/media/file-system и в настройках “Приватный путь файловой системы” вписываем только что созданную нами папку sites/default/files-private после чего сохраняем настройки.
Далее идем по направлению Структура » Типы содержимого » наш тестовый тип » Управлять полями создаем поле типа “файл” (для изображений аналогично) и в настройках указываем Хранилище Личные файлы сохраняем и смотрим что получилось.
Я минут 5 втыкал что за фигня получилась, вроде как файлы приватные загружаются в одну структуру, отдаются из другой, но отдаются всем подряд. После чего я начал гуглить… и первым делом нагуглил следующее:
Цитата:
Setting the download method to “Private” doesn’t have any effect by itself…
what the private download setting does do, is fire off an extra event, hook_download()
Тут кстати автор опЯчататься. На самом деле хук называется hook_file_download
А вообщем это все можно перевести как “Сама по себе приватная файловая система ничего не делает т.е. по сути это api и которая дает один (может и больше, не интересовался) хук с помощью которого мы можем управлять скачиванием этих файлов. После чего я набросал модуль из двух хуков, один создает новое право для ролей hook_permission, а второй тот самый hook_file_download в котором указано что если у пользователя нет права на просмотр приватных файлов слать его лесом! Получившийся модуль искать в прикрепленных файлах.
После активации модуля идем на страницу прав пользователей admin/people/permissions и выдаем новое правило “View private files” кому положено качать приватные файлы т.е. зарегистрированным пользователям. На этом собственно второй пункт выполнен, все анонимы идут лесом.
Теперь идем по дополнительным пунктам:
Цитата:
1. Если пользователь не загистрирован, то ссылка на файл не исчезает, он просто не может его скачать
Уже сделано.
Цитата:
2. Если не зарегистрированный пользователь пытается скачать файл – система его уведомляет о необходимости регистрации
В нашем модуле надо просто $uri прировать не к -1 а к странице регистрации.
3 и 4 пункты решает модуль Download Count вот только портировать под 7-ку еще надо его. А вот это Download Tools для семерки, но сам его не тестил.
Ну в общем-то тема раскрыта, комментируем.
Источник: http://www.drupal.ru/node/56888
Есть такой замечательный модуль Guestbook. Позволяет делать гостевую книгу для сайта и персональные гостевые для пользователей.
Подготовил версию для 7.x. В основу взял 6.x-2.0.
Удалена поддержка Panels.
Скачать можно здесь.
Источник: http://drupal.ru/node/56852
Есть такой замечательный модуль Guestbook. Позволяет делать гостевую книгу для сайта и персональные гостевые для пользователей.
Подготовил версию для 7.x. В основу взял 6.x-2.0.
Удалена поддержка Panels.
Скачать можно здесь.
Источник: http://www.drupal.ru/node/56852
Прошу поддержать плюсиками:
OpenStore — бесплатная сборка интернет — магазина на основе Drupal и Ubercart
Источник: http://drupal.ru/node/56703
Прошу поддержать плюсиками:
OpenStore — бесплатная сборка интернет — магазина на основе Drupal и Ubercart
Источник: http://www.drupal.ru/node/56703
Привет, сообщество!
К выпуску готовится номер журнала «Друпалогия», в связи с этим, предложение авторам статей или переводов, связанных с Друпал: вы можете отправить свои материалы нам и ваша статья будет размещена. Вам почёт уважение от читателей, нам ещё больше оптимизма и альтруизма для хороших дел.
Ни у кого не возникло желание написать хорошую статью для журнала?
Темы статей могут быть любыми, но связанными с Drupal 6, 7, информационными технологиями, программированием, системным окружением.
Требования простые:
Объём статьи не менее двух печатных листов формата А4 (Arial, Garuda, 11pt);
Обязательно проверяйте орфографию, пунктуацию и вообще грамотность текста. ;
Код должен быть подсвечен, из кода должны быть убраны все ссылки на описание тегов, функций. Не касается ссылок по теме статьи;
В коде не должен присутствовать русский язык, за исключением комментариев к коду;
Перед кодом должна быть указана используемая версия PHP;
Не надо вставлять кучу ссылок на Drupal.org на одну страницу;
Анонс статьи должен присутствовать;
Изображения, схемы, снэпшоты поощряются. Изображения не должны быть масштабированы;
Если в вашей статье должны быть ссылки, не стесняйтесь их вставлять (редиректы запрещены!);
Запрещена публикация статей без ведома их авторов. Не касается переводов, но ссылка на оригинальную статью должна присутствовать!
Структура документа:
Автор: (Фамилия (Ник) Имя);
Оригинальная статья: (если это перевод);
Версия Drupal;
Анонс;
Статья.
Количество статей не ограничено. Можно определиться по тематике:
Про Drupal;
Drupal 7
Обзоры модулей;
Локализация
Обучение (советы, уроки);
Не Drupal (публикации на темы, не касающиеся Drupal, но имеющие отношение к IT, Web, кодингу и т.п.);
В настоящее время присланы статьи:
Ubercart Payment API
Views API
Drupal, SVN, Drush
Темизация шаблонов
Пакет Zabbix
Заметки по правильной настройке Drupal
Огромная благодарность вам!
Многие готовили доклады на прошлогодний «ДрупалКэмп», который к всеобщему сожалению не состоялся, поэтому предлагаю опубликовать ваши доклады в виде статей в журнале «Друпалогия», который в настоящее время испытывает реальные проблемы с материалами.
Для тех, кто не в танке: Пилотный выпуск (скачать)
————————————————————————————————————————————————————
Любые вопросы можно задать здесь или написать письмо на drupalogy.magazine@gmail.com
P.S. Проект «Друпалогия» участвует в рейтинге рунета, поддержите его: http://www.ratingruneta.ru/awards_vote/?site_id=68110
Источник: http://drupal.ru/node/56612
Привет, сообщество!
К выпуску готовится номер журнала «Друпалогия», в связи с этим, предложение авторам статей или переводов, связанных с Друпал: вы можете отправить свои материалы нам и ваша статья будет размещена. Вам почёт уважение от читателей, нам ещё больше оптимизма и альтруизма для хороших дел.
Ни у кого не возникло желание написать хорошую статью для журнала?
Темы статей могут быть любыми, но связанными с Drupal 6, 7, информационными технологиями, программированием, системным окружением.
Требования простые:
Объём статьи не менее двух печатных листов формата А4 (Arial, Garuda, 11pt);
Обязательно проверяйте орфографию, пунктуацию и вообще грамотность текста. ;
Код должен быть подсвечен, из кода должны быть убраны все ссылки на описание тегов, функций. Не касается ссылок по теме статьи;
В коде не должен присутствовать русский язык, за исключением комментариев к коду;
Перед кодом должна быть указана используемая версия PHP;
Не надо вставлять кучу ссылок на Drupal.org на одну страницу;
Анонс статьи должен присутствовать;
Изображения, схемы, снэпшоты поощряются. Изображения не должны быть масштабированы;
Если в вашей статье должны быть ссылки, не стесняйтесь их вставлять (редиректы запрещены!);
Запрещена публикация статей без ведома их авторов. Не касается переводов, но ссылка на оригинальную статью должна присутствовать!
Структура документа:
Автор: (Фамилия (Ник) Имя);
Оригинальная статья: (если это перевод);
Версия Drupal;
Анонс;
Статья.
Количество статей не ограничено. Можно определиться по тематике:
Про Drupal;
Drupal 7
Обзоры модулей;
Локализация
Обучение (советы, уроки);
Не Drupal (публикации на темы, не касающиеся Drupal, но имеющие отношение к IT, Web, кодингу и т.п.);
В настоящее время присланы статьи:
Ubercart Payment API
Views API
Drupal, SVN, Drush
Темизация шаблонов
Пакет Zabbix
Заметки по правильной настройке Drupal
Огромная благодарность вам!
Многие готовили доклады на прошлогодний «ДрупалКэмп», который к всеобщему сожалению не состоялся, поэтому предлагаю опубликовать ваши доклады в виде статей в журнале «Друпалогия», который в настоящее время испытывает реальные проблемы с материалами.
Для тех, кто не в танке: Пилотный выпуск (скачать)
————————————————————————————————————————————————————
Любые вопросы можно задать здесь или написать письмо на drupalogy.magazine@gmail.com
P.S. Проект «Друпалогия» участвует в рейтинге рунета, поддержите его: http://www.ratingruneta.ru/awards_vote/?site_id=68110
Источник: http://www.drupal.ru/node/56612
Коллеги!
Нам доступен зал на 250 человек – метро Цветной бульвар. http://maps.yandex.ru/-/CZv8Ugr
Я считаю, грех не воспользоваться этим фактом для проведения следующей конференции по Drupal в Москве.
Кроме того, я располагаю достаточным количеством времени для участия в организационной части этого события.
Предлагаемое время – середина апреля. Надеюсь, что это предложение будет позитивно воспринято сообществом.
Предлагаю отметиться в данной теме, кто хочет быть докладчиком, помогать в организации и просто участвовать – а так же высказывать пожелания по датам и дням недели. От вашей активности зависит, произойдет ли данное мероприятие.
UPD 1. Активность хорошая – делаем!
UPD 2. с 28 января по 6 февраля я в отпуске, пока высказывайте идеи, предлагайте доклады, заявляйтесь как докладчики, после 6 февраля все соберу и систематизирую.
Интересны предложения по докладам, датам проведения, дня недели
Источник: http://drupal.ru/node/56290
Есть замечательный модуль OpenADS. Нужен для интеграции банерообменной системы OpenX c Drupal.
Подготовил версию для 7.x. В основу взял 6.x-1.0.
Тестировалась с OpenX 2.8.7, возможны глюки с другими версиями.
Скачать можно здесь
Источник: http://drupal.ru/node/56235
Есть замечательный модуль OpenADS. Нужен для интеграции банерообменной системы OpenX c Drupal.
Подготовил версию для 7.x. В основу взял 6.x-1.0.
Тестировалась с OpenX 2.8.7, возможны глюки с другими версиями.
Скачать можно здесь
Источник: http://www.drupal.ru/node/56235
Здравствуйте!
С недавнего времени начал понемногу пользоваться твиттером. Там есть такое интересное понятие – хэш-тег, его использование позволяет пользователям отсматривать твиты определенной тематики, например твиты про ваш город или твиты про веб-дизайн.
Среди прочих хэш-тегов есть хэш-тег #drupal – которым пользуется сообщество drupal разработчиков со всего мира. Но есть особенность, дело в том что данным хэш-тегом пользуется преимущественно англоязычное сообщество, и просматривая твиты чувствуешь себя немного неуютно, хочется чтобы было по-русски.
Поэтому я начал в своих твитах про Drupal использовать хэш-тег #drupal_ru, и видимо пока только я один им пользуюсь.
В связи с этим призываю русскоязычное сообщество drupal-разработчиков поддержать новый хэш-тег. Я уверен, что группировка именно русскоязычных твитов о drupal будет способствовать и продвижению системы, и сплоченности русскоязычного сообщества, и обеспечит бОльшую отдачу от твитов.
Кроме того, если еще нет такого, то предлагаю создать модуль, позволяющий вести трансляцию твитов по хэш-тегу на сайте. Как например сделано тут www.uwdc.ru “Tweets #uwdc”.
Источник: http://www.drupal.ru/node/56173
Хочу рассказать о своем опыте работы с некоторыми аргументами Views.
И о тех случаях где их можно эффективно применять.
Часть 2.
Задача. Нужно вывести в блоке картинки текущей страницы.
Причем чтобы потом блок можно перемещать из колонки в колонку (из региона в регион).
На месте картинок может быть все что угодно, что есть в содержимом страницы.
Создаем новый Вид, добавляем вывод Блок и в его настройках кон фигурируем что нужно вывести в настройках Полей.
При необходимости указывать фильтры страницы из которой это берется.
Преимущество данного метода в том, что Views можно точнее настраивать, чем стандартные методы вывода.
Настройка аргумента.
В списке блоков нужно этот блок поместить в нужный регион.
Надеюсь, это будет полезно тем, кто этого не знал.
Источник: http://drupal.ru/node/56000
Хочу рассказать о своем опыте работы с некоторыми аргументами Views.
И о тех случаях где их можно эффективно применять.
Часть 2.
Задача. Нужно вывести в блоке картинки текущей страницы.
Причем чтобы потом блок можно перемещать из колонки в колонку (из региона в регион).
На месте картинок может быть все что угодно, что есть в содержимом страницы.
Создаем новый Вид, добавляем вывод Блок и в его настройках кон фигурируем что нужно вывести в настройках Полей.
При необходимости указывать фильтры страницы из которой это берется.
Преимущество данного метода в том, что Views можно точнее настраивать, чем стандартные методы вывода.
Настройка аргумента.
В списке блоков нужно этот блок поместить в нужный регион.
Надеюсь, это будет полезно тем, кто этого не знал.
Источник: http://www.drupal.ru/node/56000
Привет, друзья!
Я немного обновил проект Drupalogy: выставка сайтов, сделанных на Drupal. Изменения незначительные, но присутствуют.
UPD:
Изменена страница профайла пользователя
Добавлены уведомления о новых личных сообщениях
Добавлены ссылки «добавить в закладки», «поделиться в Facebook», «поделиться в вКонтакте». Страница с закладками есть в профайле.
Изменены:
дизайн
тема
логотип
переработан список категорий: их стало больше (часть переименована, часть удалена, часть добавлена)
Добавлены:
вывод последних комментариев (в футере)
рандомный показ сайтов с наивысшим рейтингом (в футере)
вывод всех комментариев пользователя (в профайле)
вывод списка разработчиков (выводятся все пользователи, добавившие хоть один сайт)
добавлено меню пользователя
добавлено диалоговое окно авторизации или регистрации
включены приватные сообщения
Изменена страница профайла пользователя
Добавлены уведомления о новых личных сообщениях
Добавлены ссылки «добавить в закладки», «поделиться в Facebook», «поделиться в вКонтакте». Страница с закладками есть в профайле.
Осталось:
темизировать страницы с данными пользователя (в процессе)
исправить мелкие недочёты
Сайт иногда может быть выключен:
просьба отнестись с пониманием: сайт делается в реальном времени, по причине того, что пользователи продолжают добавлять свои сайты в галерею.
Адрес проекта: drupalogy.ru или друпалогия.рф
Если у вас есть предложения, озвучивайте.
Хабрапользователи могут поддержать: http://habrahabr.ru/blogs/drupal/112319/
Источник: http://drupal.ru/node/55985
Привет, друзья!
Я немного обновил проект Drupalogy: выставка сайтов, сделанных на Drupal. Изменения незначительные, но присутствуют.
UPD:
Изменена страница профайла пользователя
Добавлены уведомления о новых личных сообщениях
Добавлены ссылки «добавить в закладки», «поделиться в Facebook», «поделиться в вКонтакте». Страница с закладками есть в профайле.
Изменены:
дизайн
тема
логотип
переработан список категорий: их стало больше (часть переименована, часть удалена, часть добавлена)
Добавлены:
вывод последних комментариев (в футере)
рандомный показ сайтов с наивысшим рейтингом (в футере)
вывод всех комментариев пользователя (в профайле)
вывод списка разработчиков (выводятся все пользователи, добавившие хоть один сайт)
добавлено меню пользователя
добавлено диалоговое окно авторизации или регистрации
включены приватные сообщения
Изменена страница профайла пользователя
Добавлены уведомления о новых личных сообщениях
Добавлены ссылки «добавить в закладки», «поделиться в Facebook», «поделиться в вКонтакте». Страница с закладками есть в профайле.
Осталось:
темизировать страницы с данными пользователя (в процессе)
исправить мелкие недочёты
Сайт иногда может быть выключен:
просьба отнестись с пониманием: сайт делается в реальном времени, по причине того, что пользователи продолжают добавлять свои сайты в галерею.
Адрес проекта: drupalogy.ru или друпалогия.рф
Если у вас есть предложения, озвучивайте.
Хабрапользователи могут поддержать: http://habrahabr.ru/blogs/drupal/112319/
Источник: http://www.drupal.ru/node/55985
Хотел, как лучше, а получилось опять 12 листов формата А4, поэтому здесь только анонс
В статье «CMS Drupal + AuthorIT против CMS Drupal + FCKeditor» было вскользь упомянуто об организации мультисайтинга связкой CMS Drupal + AuthortIT, в настоящей же статье:
* отчаявшимся выложена пошаговая инструкция по организации мультисайтинга на Drupal на хостинге it-patrol;
* любознательным разъяснена «физика» сотворенного;
* делаварам приведены количественные, качественные и эфемерные преимущества мультисайтинга;
* склонным к интригам повествовано о трагической судьбе председателя в условиях суровой социалистической действительности…
А сама статья здесь – http://tdocs.su/15050
ЗЫ. Напоминаю, что статья от начинающего для начинающих, поэтому прошу ногами сильно не пинать.
Attached poll “Интересен ли материал статьи?”.
Register or login to poll
Results:
Очень: 3 голоса
Да: 10 голосов
Не очень: 2 голоса
Нет: 1 голос
Я окончил МЭИ (МИФИ, МФТИ, МГУ, ВВИА им. Жуковского) и, будучи человеком деликатным, никогда не выберу предыдущую опцию!: 0 голосов
Источник: http://drupal.ru/node/55982
Хотел, как лучше, а получилось опять 12 листов формата А4, поэтому здесь только анонс
В статье «CMS Drupal + AuthorIT против CMS Drupal + FCKeditor» было вскользь упомянуто об организации мультисайтинга связкой CMS Drupal + AuthortIT, в настоящей же статье:
* отчаявшимся выложена пошаговая инструкция по организации мультисайтинга на Drupal на хостинге it-patrol;
* любознательным разъяснена «физика» сотворенного;
* делаварам приведены количественные, качественные и эфемерные преимущества мультисайтинга;
* склонным к интригам повествовано о трагической судьбе председателя в условиях суровой социалистической действительности…
А сама статья здесь – http://tdocs.su/15050
ЗЫ. Напоминаю, что статья от начинающего для начинающих, поэтому прошу ногами сильно не пинать.
Attached poll “Интересен ли материал статьи?”.
Register or login to poll
Results:
Очень: 3 голоса
Да: 10 голосов
Не очень: 2 голоса
Нет: 1 голос
Я окончил МЭИ (МИФИ, МФТИ, МГУ, ВВИА им. Жуковского) и, будучи человеком деликатным, никогда не выберу предыдущую опцию!: 0 голосов
Источник: http://www.drupal.ru/node/55982
Захотелось чтоб в Ubercart advanced catalog при выборе категории отображались товары из вложенных подкатегорий, а список категорий отображался картинками.
Результат можно посмотреть здесь: http://www.krasmebel.ru/shop/catalog/ofisnaya-mebel
Для этого
1. В представлении advanced_catalog заменил Аргумент Таксономия: ID Термина на
Таксономия: ID Термина (с глубиной)
2. Поправил
/sites/all/modules/uc_advanced_catalog/uc_advanced_catalog.module
Обновлено (исправленный вариант):
<?php
if ($count > 0) {
/* if (count($links)) {
$output .= theme('links', $links, array('class' => 'links inline uc-categories')) ."<br />\n";
}
// creating pager
ksort($row);
$rows[] = $row;
$pager = theme('table', array(), $rows, array('class' => 'pager-field'));
// output construction
$output .= $catalog->description;
*/
//My begin
// creating pager
ksort($row);
$rows[] = $row;
$pager = theme('table', array(), $rows, array('class' => 'pager-field'));
// original code
// Display table of child categories similar to an osCommerce site's front page.
$columns = variable_get('uc_catalog_category_columns', 3);
$cat_rows = array();
$row1 = array();
$i = 1;
foreach ($child_list as $cell) {
$row1[] = array('data' => $cell, 'class' => 'category');
if ($i % $columns == 0) {
$cat_rows[] = $row1;
$row1 = array();
}
$i++;
}
if (count($row1) > 0 && count($row1) < $columns) {
if (count($cat_rows) >= 1) {
$row1 = array_merge($row1, array_fill(count($row1), $columns - count($row1), array('data' => ' ', 'class' => 'category')));
}
$cat_rows[] = $row1;
}
$output .= $catalog->description;
$output .= theme('table', array(), $cat_rows, array('class' => 'category'));
//My end
?>
Источник: http://drupal.ru/node/55950