Собственно ссылка на описание
По многочисленным просьбам выкладываю подробное описание моего доклада с картинками.
Источник: http://www.drupal.ru/node/76904
Собственно ссылка на описание
По многочисленным просьбам выкладываю подробное описание моего доклада с картинками.
Источник: http://www.drupal.ru/node/76904
В Новосибирске состоится первое DrupalCafe.
Ждем всех желающих выступить с докладом и поучаствовать в обсуждении актуальных тем.
1.Тема доклада: “Семейство panels”, докладчик: Антон Галицын
2.Тема доклада: “Учетная система для Drupal”, докладчик: Павел Прищепа
3.Тема доклада: “Сравнение различных CMS таких как: Drupal, Bitrix и Netcat”, докладчик: Сорокин Андрей
Предварительная обязательная регистрация
г.Новосибирск, Академгородок, ул. Инженерная 20, Технопарк, конференцзал на 3 этаже
Начало: 25 февраля в 12:00
Окончание: 25 февраля в 15:00
Помощь в подготовке докладов Роман Чижиков: skype: roman.chizhikov
Организационные вопросы: Павел Прищепа: skype: prischepa.p
info@drupalsib.ru
тел.офиса (383) 233-27-00
Attached poll “Придете ли вы на первое DrupalCafe в Новосибирске?”.
Register or login to poll
Results:
да: 6 голосов
нет: 6 голосов
Источник: http://www.drupal.ru/node/76619
Скачать модуль для Drupal 6: yandex_weather-6.x-1.1.zip
Скачать модуль для Drupal 7: yandex_weather-7.x-1.1.zip
На прошлой неделе на сайте drupal.ru я увидел активное обсуждение топиков «Яндекс сервисы в одном проекте» и «Встреча по поддержке и продвижению Яндекс-сервисов в Drupal». В представленном списке существующих модулей для интеграции с сервисами Яндекса я не обнаружил модуля про погоду. Я доработал свой модуль, исправил ошибки, дописал дополнительный функционал и решил выложить на сайт для обсуждения сообществом.
Вот так выглядит блок с информером погоды от Яндекса в дефолтной теме.
В настройках блока можно:
указать город по умолчанию; разрешить/запретить отображать форму выбора города в блоке; выбирать размер информера.Текстовые сообщения модуля написаны на английском языке и переведены на русский язык.
Если данный модуль вызовет интерес, то можно переписать его и для Drupal 7. Буду благодарен за любые конструктивные комментарии.
UPD 21.02.2012: Обновил модуль. На прошлой неделе Яндекс обновил свой сервис погоды, поэтому поломалась часть функциональности моего модуля. Сейчас исправил. А также сделал версию модуля под Drupal 7.
Скачать модуль для Drupal 6: yandex_weather-6.x-1.1.zip
Скачать модуль для Drupal 7: yandex_weather-7.x-1.1.zip
Источник: http://www.drupal.ru/node/76316
Всем привет!
Мы собираемся провести следующий DrupalConf 25-26 мая 2012 в Москве.
Но вот вопрос(просим расшифровать свой голос в комментариях):
Attached poll “какой формат будет для всех удобней ?”.
Register or login to poll
Results:
1 день – 2 потока – суббота (26 мая): 34 голоса
2 дня – 1 поток – пятница, суббота (25-26 мая): 35 голосов
Источник: http://www.drupal.ru/node/75740
Всем привет!
22 декабря 2011 года произошла встречи инициативной группы по созданию Российской Друпал ассоциации. От сообщества присутствовали: kostin, gagaga, axel, Даша Богуцкая, Андрей Постников и Паньков Артем.
Итак, промежуточные итоги встречи:
1. Маркетинг.
Маркетинг признал одним из важнейших направлений деятельности Ассоциации. На данном промежуточном этапе приоритетными задачами стали:
- участие Ассоциации в круглых столах, конференциях, выставках;
- увеличение числа публикаций в оффлайн журналах, статей, блогов и мнений экспертов;
- интенсивное освещения Drupal в смежных отраслях, а не на ресурсах, связанных с Drupal;
- создание промо-ролика о Drupal;
- разработку презентационных материалов;
- освещение лучших русских проектов на Drupal;
- привлечение новичков к Drupal;
2. Вопросы требующие дальнейшей проработки и обсуждения:
- сертификация специалистов и подбор персонала Ассоциацией;
- доработка сборок;
- консалтинг.
3. Организационно правовая форма Друпал Ассоциации.
Вопрос ОПФ будет прорабатываться в части целесообразности регистрации юридического лицо со сложной организационно-правовой формой(по сути, это создаст нагрузку на бухгалтерию, в том числе пересылку бумажных документов, как минимум 15 000*12 = 180 000, что в условиях неясности финансирования вызывает вопросы). Какое-то время мы еще будем консультироваться с юристами.
Вопрос, как я понимаю, больной и актуальный для многих. Мы думаем над тем, как принять взвешенное решение, которое устроит всех.
4. С Drupal.ru будет осуществляться взаимодействие и сотрудничество в рамках маркетинговых вопросов. Общее мнение состоит в том, что это разные ресурсы.
На данный момент в разработке находится сайт ассоциации и мы надеемся, что мы представим его не позднее середины-конца февраля. А пока инициативная группа начнет проработку оставшихся вопросов.
Источник: http://www.drupal.ru/node/75147
День добрый.
Портировал Inner poll для Drupal 7, для моего любимого www.drupal.ru. Прикрепляйте опросы к любому документу .
При портировании кое-где немного изменил логику и вывел количество воздержавшихся.
Поля в БД совместимы с версией для Drupal 6, только добавились новые индексы.
Перевод модуля содержится в архиве модуля.
Ищу тех кто поможет разместить модуль на drupal.org.
Особенности модуля
Все действия пользователей сохраняются без перезагрузки страницы (хмм, возможно, пора уже перестать считать AJAX фишкой); автор опроса может разрешить (или не разрешить) пользователям отменять свои голоса голоса; автор опроса может открывать/закрывать опрос, а так же устанавливать дату автоматического закрытия опроса; автор опроса может разрешить/запретить множественный выбор; автор опроса, если он не является модератором, может править вопрос опроса только до тех пор, пока в опросе нет ни одного голоса; автор опроса, если он не является модератором, может править ответ на вопрос только до тех пор, пока за этот ответ нет ни одного голоса; опрос может содержать до 999 вариантов ответа; пользователи не могут просматривать результаты опроса до тех пор пока не проголосуют, для неопределившихся с решением есть кнопка “Воздержаться”, после нажатия которой будут показаны результаты, но при этом пользователь потеряет возможность голосовать в этом опросе; администратор сайта может раздавать права на голосование, создание опросов, редактирование опросов, редактирование опросов даже в случае если в них уже есть голоса;Пояснение к пунктам 5 и 6. Они нужны для того, чтобы авторы не вносили кардинальных изменений в опрос тогда, когда другие юзеры уже отдали в них свои голоса. Например, был опрос “Любите ли вы клубнику”, на который получены ответы “Да” — 95%, “Нет” — 5%, а затем ушлый автор сменил вопрос на “Смотрите ли вы порнографию”.
Примечания
Не стал прикручивать кэш, так как в кэш можно класть всю страницу сторонними средствами при необходимости (обработка AJAX живёт на своих URL). Не реализован файл тестов, если кто напишет, буду благодарен. Отсутствует шаблон вывода контента так как количество выводимых данных мало и многое можно темизировать с помощью *.css.Загрузка
Ссылка: Inner poll для Drupal 7.
Источник: http://www.drupal.ru/node/74900
Продолжение комментария http://www.drupal.ru/node/74274?page=1#comment-435564
Компания Яндекс заинтересована в продвижении и повышении уровня интеграции своих сервисов с Drupal.
Предлагается провести встречу по вопросам разработки, встреча ориентирована преимущественно на разработчиков.
Яндекс интересует:
Так же я считаю, что будет нелишним подготовить вопросы и предложения по использованию API
Очники:
http://www.drupal.ru/username/rxb
(?) http://www.drupal.ru/username/valeratal
(?) http://www.drupal.ru/username/marygold
http://www.drupal.ru/username/stalker-g2
+1 человек с Артёмом
http://www.drupal.ru/username/irbis
http://www.drupal.ru/username/axel
Те, кто будет приходить лично приходят на главный вход в офис Яндекса и говорят, что они на встречу с Друпал сообщестом. Гостей будет встречать Вадим Францев, руководитель группы маркетинга бизнес-решений, с 19-00 до 19-10 на главном ресепшене. Опаздавшие либо к секретарям обращаются и их проводят, либо звонят по телефону +7 495 739-70-00, добавочный 4234.
Переговорка “7.Холмов”
Илья Азаров
http://www.drupal.ru/username/byuro-piyavok
Заочники:
http://www.drupal.ru/username/gagaga
http://www.drupal.ru/username/fortis
http://www.drupal.ru/user/orb
http://www.drupal.ru/username/s-f
http://www.drupal.ru/username/andypost-drupalorg
http://www.drupal.ru/username/validoll
http://www.drupal.ru/username/konstantinkomelin-drupalorg
http://www.drupal.ru/username/restyler
http://www.drupal.ru/username/dd-85
http://www.drupal.ru/username/gde
http://www.drupal.ru/username/enemy
http://www.drupal.ru/username/scotty
http://www.drupal.ru/username/yexel
http://www.drupal.ru/username/cyber
http://www.drupal.ru/username/marygold
http://www.drupal.ru/username/seaji
http://www.drupal.ru/username/higor1968
http://www.drupal.ru/username/plazik
http://www.drupal.ru/username/aleks-84
http://www.drupal.ru/username/lomalkin
http://www.drupal.ru/username/insime
http://www.drupal.ru/username/eagle
http://www.drupal.ru/username/direqtor
http://www.drupal.ru/username/forest-run
http://www.drupal.ru/username/arcadaisb
http://www.drupal.ru/username/glu2006
http://www.drupal.ru/username/splash
Те, кто участвуют удаленно: в 19-10 по МСК должны зайти по адресу http://yandex.adobeconnect.com/drupal/ – здесь будет трансляция, а также чат (вопросы/ответы).
Хотят запись:
http://www.drupal.ru/username/enemy
http://www.drupal.ru/username/softovick
http://www.drupal.ru/username/mak-vardugin
http://www.drupal.ru/username/andruxa
http://www.drupal.ru/username/orion76
http://www.drupal.ru/username/saltan
http://www.drupal.ru/username/6run0
Будут вноситься коррективы
Источник: http://www.drupal.ru/node/74730
В четверг, 26 января, в 19:00, в Харькове пройдет третье по счету DrupalCafe.
Место проведения – по прежнему Выставочный центр «РАДМИР ЭКСПОХОЛЛ», по адресу ул. Академика Павлова 271 (м. Академика Павлова).
Темы докладов:
1. “Уровень абстракции баз данных и ее преимущества” (Бабченко Виталий)
“Задачи прототипов и их решения.” (Андрей Кошкин)
Краткий обзор модулей и их конфигурации описывающий создание функционального прототипа E-comerce и SocialComunity систем
2. “Принципы безопасной разработки сайтов на Drupal” (Иванченко Александр)
В процессе доклада будет рассмотрено:
-Безопасные принципы работы с БД средствами Drupal
-Принципы работы с пользователями и пользовательскими данными
-Как избежать XSS и CSRF атак
-Общие рекомендации для безопасной разработки
3. “Темизация Drupal 7″ (Литвиненко Сергей)
Архитектурные и принципиальне отличия тем для Drupal 7 от Drupal 6. Краткий обзор RDFa и работы с рендер массивами.
Участие бесплатное, в программе как обычно кофе+плюшки.
Желательно предварительная регистрация, всем желающим – отпишите в комментарии или в контакты ниже.
https://docs.google.com/spreadsheet/viewform?formkey=dERVTEhMVEdZMVdIVlk…
По всем вопросам можно обращаться:
+38(099)3525316 – Алексей Гайдабура, gaydabura@gmail.com skype: alexey.gaydabura
+38(067)2802207 – Иван Мосев, i.k.mosev@gmail.com, skype: i.k.mosev
Спонсор – WDG (http://wdg-company.com/)
Источник: http://www.drupal.ru/node/74622
Мы наконец-то выложили обещанное и долгожданное видео докладов с DrupalCamp! Спасибо Петру Козаченко, Владимиру Колосу и Александру Даниленко за съемку и обработку. Результат их совместной работы вы можете увидеть здесь http://www.youtube.com/user/DrupalCampDonetsk.
Мы также выложили слайды презентаций сюда http://slideshare.net/DrupalCampDN, А еще, мы прикрепили эти видео и слайды к темам докладов на нашем сайте: http://donetsk.drupal.ua/ru/program/session-schedule. Пожалуйста, оставляйте ваши отзывы!
Источник: http://www.drupal.ru/node/74516
Всех со “старым” Новым Годом
Мы все такие разные, но давайте быть терпимее, добрее и лучше
А у Вас уже наступил? )))
p.s.: и всё таки Drupal рулит!
Источник: http://www.drupal.ru/node/74510
Друзья! Наша инициативная группа рада объявить о выходе в свет нового, открытого, русскоязычного электронного журнала – Drup’n’Roll!
На его страницах вы сможете найти много полезной информации для разработчиков и администраторов сайтов и прочих веб-приложений, созданных на базе нашей любимой CMF Drupal.
В первом номере вы найдёте статьи об особенностях построения процессов разработки вместе с модулем Features и инструментом Drush, прочитаете материалы об относительно новом течении в создании графических тем — Responsive design, сможете
ознакомиться с последними новостями из жизни Drupal-сообщества и мероприятиями по всему миру.
Для чего мы это делаем? Самая главная цель, которую мы ставим перед собой — популяризация CMF Drupal среди
разработчиков и потребителей их услуг. Будем учиться и работать вместе!
http://drupnroll.ru/
Прошу модераторов прикрепить этот пост на главной
Источник: http://www.drupal.ru/node/74474
Предлагаю обсудить возможность объединить все Яндекс сервисы в одном проекте. На текущий момент на д.о. есть несколько различных модулей для интеграции с яндекс сервисами.
Поиск по сайту дал следующие результаты:
Яндекс.маркет — 6.x. Яндекс.маркет — 6.x и 7.x(dev). Яндекс.маркет — в песочнице. Яндекс.видео — 7.x(dev) new! Яндекс.метрика — 6.x и 7.x. Яндекс.метрика — в песочнице. Яндекс.вакансии — обсуждается. Яндекс.новости — 6.x(dev) и 7.x(dev). Яндекс.карты — 6.x(dev). Яндекс.деньги — 5.x платёжный шлюз для уберкарт. Яндекс.сервер — в песочнице. Яндекс.поделиться — в песочнице. Яндекс.спеллер — в песочнице. Яндекс.почта — обсуждается. Яндекс.карты — почти готов. Яндекс.карты — во вложении. Site verification — 6.x и 7.x. Яндекс.маркет — во вложении. Быстрый заказ — обсуждается. Яндекс.погода — во вложении.Если что то забыл, поправьте.
Вот мои причины, для чтобы собрать все сервисы в один проект:
На данный момент большинство из этих модулей находятся «в стадии разработки», а многие попросту брошены без особых шансов получить стабильный релиз для D6 и D7. Я думаю ситуация измениться, если у проекта будет несколько разработчиков. Это поможет устранить дублирования проектов. Например, в приведённом списке представлено сразу 4 модуля для интеграции с Яндекс.маркет. Думаю, лучше всё таки будет объединить усилия. Помощь новым разработчикам. Несколько модулей находятся в песочницах из-за того, что некому сделать review кода. На д.о. яндекс мало кому интересен… Для многих яндекс сервисов интеграция с Друпалом полностью отсутствует. В том числе для самого главного, на мой взгляд сервиса — Яндекс.xml. Для одного общего проекта, легче найти спонсоров.Attached poll “Нужно ли объединять все яндекс.модули в один проект?”.
Register or login to poll
Results:
Да: 43 голоса
Нет: 25 голосов
Источник: http://www.drupal.ru/node/74274
История из разряда “Новая жизнь старых вещей”. Точнее – новая “шуба” для привычного элемента форм radios. Для тех случаев, когда элемент radios строится из модуля.
Собственно, началось всё с того, что искал способ отобразить в форме модуля некую таблицу символов с возможностью выбора любого одного символа. Символы должны быть достаточно крупные (шрифт где-то 18-20px). Для начала попытался приспособить обычный select, но не понравилось: во-первых, список слишком длинный и выбирать неудобно, а во-вторых, добиться единообразного отображения (размер шрифта, padding, выравнивание и т.д.) в разных браузерах оказалось совсем непросто.
В общем, нужно было искать более компактное решение, при котором таблица была бы именно таблицей. В процессе разных тестов случайно обнаружил, что метки (label) для элемента radios в большинстве браузеров обрабатывают клики как и родительский (связанный с меткой) сам radios-control (кружочек, по которому мы тыкаем мышкой). То есть – по клику на метку элемент устанавливается в состояние checked, как если б мы кликали на сам кружочек. Не бог весть какое открытие, но беглый поиск в гугле аналогичных развитых решений с использованием меток ничего не дал. И я приступил к работе.
После ряда тычков в неверных направлениях было выведено более-менее унифицированное и кроссбраузерное решение (CSS + jQuery). Я его назвал Radios Select. Вот оно, со скромной гордостью и удовлетворением представляю своё детище:
А вот что происходит по клику на элементе:
Код, формирующий вывод:
<?php$form['rs_example_1']['radios_select_1'] = array(
'#type' => 'radios',
'#title' => t('Select word:'),
'#default_value' => 1,
'#options' => $values,
'#radios_select' => TRUE, // enables Radios Select for this radios element
'#description' => t('Word to use in form.'),
);
?>
Собственно, Radios Select можно использовать не только, как таблицу символов, а для выбора любого значения: строки, числа. Родилась идея сделать модуль-хук, который бы темизировал элементы radios как Radios Select, если у элементов установлен соответствующий параметр, а иначе – выводил бы стандартный radios. В процессе работы над модулем элемент Radios Select “оброс” рядом параметров, позволяющих кастомизировать вывод этого псевдо-элемента (это действительно скорее псевдо-элемент, поскольку по факту строится обычный radios и последующая обработка в submit’е – типичная для radios).
Например, можно изменить свойства шрифта элемента:
$form['rs_example_2']['radios_select_2'] = array(
'#type' => 'radios',
'#title' => t('Select word:'),
'#default_value' => 2,
'#options' => $values,
'#radios_select' => TRUE, // enables Radios Select for this radios element
'#rs_attributes' => array(
'label' => array(
'font' => 'Times New Roman', // this sets font family (same as in CSS way)
'font_size' => 1.4, // this sets font size (in "units" units)
'font_color' => '#339933', // this sets font color (same as in CSS way)
'line_height' => 2, // this sets line height (in "units" units)
'units' => 'em', // can be em or px (default: px)
),
),
'#description' => t('Word to use in form.'),
);
?>
А вот и вариант для искомой таблицы символов:
// Replace Soft Hyphen symbol (­) by non-breaking space
// (this symbol produces row break in Firefox and Opera)
$values['­'] = ' ';
$form['rs_example_3']['radios_select_3'] = array(
'#type' => 'radios',
'#title' => t('Select symbol:'),
'#default_value' => '©',
'#options' => $values,
'#radios_select' => TRUE, // enables Radios Select for this radios element
'#rs_attributes' => array(
'label' => array(
'width' => 2, // sets label width (in "units" units)
'height' => 2, // sets label height (in "units" units)
'line_height' => 2,
'padding_x' => '3px', // horizontal padding (we use px instead of units)
'padding_y' => '3px', // vertical padding (we use px instead of units)
'units' => 'em',
),
),
'#description' => t('Symbol to use in form.'),
);
?>
Можно “подкрасить” оформление элемента (выбирается также светлая или тёмная стрелка):
$form['rs_example_4']['radios_select_4_1'] = array(
'#type' => 'radios',
'#title' => t('Select character:'),
'#default_value' => 2,
'#options' => $values,
'#radios_select' => TRUE, // enables Radios Select for this radios element
'#rs_attributes' => array(
'element' => array(
'frame_color' => '#d4d0c8', // this sets frame color
'dark_arrow' => TRUE, // this sets dark arrow for this element
),
'label' => array(
'width' => 2,
'height' => 2,
'padding_x' => '3px',
'padding_y' => '3px',
'units' => 'em',
),
),
'#description' => t('Character to use in form.'),
);
?>
Или убрать фон выбранного элемента и объединить с селектором (так называемый hollow-режим):
$form['rs_example_4']['radios_select_4_2'] = array(
'#type' => 'radios',
'#title' => t('Select character:'),
'#default_value' => 2,
'#options' => $values,
'#radios_select' => TRUE, // enables Radios Select for this radios element
'#rs_attributes' => array(
'element' => array(
'hollow' => TRUE, // this sets hollow mode
),
'label' => array(
'width' => 2,
'height' => 2,
'padding_x' => '3px',
'padding_y' => '3px',
'units' => 'em',
),
),
'#description' => t('Character to use in form.'),
);
?>
А можно и вставить картинки в селектор, причём выровнять по желанию – либо по верху (по умолчанию), либо по низу (как в этом примере):
$values = array(
'<img src="' . $images_path . 'image1.png" /><br />Some image 1',
'<img src="' . $images_path . 'image2.png" /><br />Some image 2',
'<img src="' . $images_path . 'image3.png" /><br />Some image 3',
'<img src="' . $images_path . 'image1.png" /><br />Some image 4',
'<img src="' . $images_path . 'image2.png" /><br />Some image 5',
'<img src="' . $images_path . 'image3.png" /><br />Some image 6',
);
$form['rs_example_5']['radios_select_5_1'] = array(
'#type' => 'radios',
'#title' => t('Select image:'),
'#default_value' => 0,
'#options' => $values,
'#radios_select' => TRUE, // enables Radios Select for this radios element
'#rs_attributes' => array(
'label' => array(
'valign' => 'bottom', // this sets vertical alignment of labels to bottom
'font_size' => 12,
'line_height' => 14,
'padding_x' => 4,
'padding_y' => 4,
),
),
'#description' => t('Select horizontal or vertical image.'),
);
?>
Другой вариант с картинками – выравнивание “в ряд” с текстом метки (можно также задать произвольный vertical-align для изображения, как обычно в CSS, здесь, в примере – просто смещение от базовой линии):
$values = array(
'<img src="' . $images_path . 'ru.png" /> Russian Federation',
'<img src="' . $images_path . 'us.png" /> USA',
'<img src="' . $images_path . 'ca.png" /> Canada',
'<img src="' . $images_path . 'fr.png" /> France',
'<img src="' . $images_path . 'de.png" /> Germany',
'<img src="' . $images_path . 'it.png" /> Italy',
'<img src="' . $images_path . 'gb.png" /> United Kingdom',
'<img src="' . $images_path . 'gr.png" /> Greece',
'<img src="' . $images_path . 'tr.png" /> Turkey',
'<img src="' . $images_path . 'ua.png" /> Ukraine',
'<img src="' . $images_path . 'no.png" /> Norway',
);
$form['rs_example_5']['radios_select_5_2'] = array(
'#type' => 'radios',
'#title' => t('Select country:'),
'#default_value' => 0,
'#options' => $values,
'#radios_select' => TRUE, // enables Radios Select for this radios element
'#rs_attributes' => array(
'label' => array(
'img_valign' => '-4px', // sets vertical alignment of images
'nowrap' => 'TRUE', // disables word wrapping for text in labels
),
),
'#description' => t('Country from where you are.'),
);
?>
А можно упорядочить метки в колонки (любое количество колонок):
<?php$values = array(
'<img src="' . $images_path . 'ru.png" /> Russian Federation',
'<img src="' . $images_path . 'us.png" /> USA',
'<img src="' . $images_path . 'ca.png" /> Canada',
'<img src="' . $images_path . 'fr.png" /> France',
'<img src="' . $images_path . 'de.png" /> Germany',
'<img src="' . $images_path . 'it.png" /> Italy',
'<img src="' . $images_path . 'gb.png" /> United Kingdom',
'<img src="' . $images_path . 'gr.png" /> Greece',
'<img src="' . $images_path . 'tr.png" /> Turkey',
'<img src="' . $images_path . 'ua.png" /> Ukraine',
'<img src="' . $images_path . 'no.png" /> Norway',
);
$form['rs_example_6']['radios_select_6'] = array(
'#type' => 'radios',
'#title' => t('Select country:'),
'#default_value' => 0,
'#options' => $values,
'#radios_select' => TRUE, // enables Radios Select for this radios element
'#rs_attributes' => array(
'element' => array(
'columns' => 4, // this sets ordering by 4 columns
),
'label' => array(
'img_valign' => -4, // px by default, so we can skip units
'nowrap' => 'TRUE',
),
),
'#description' => t('Country from where you are.'),
);
?>
Наконец, труъ-программисты могут полностью изменить вид Radios Select с помощью CSS (стили аттачатся “на лету”, при создании элемента):
$values = array(
'<img src="' . $images_path . 'ru.png" /> Russian Federation',
'<img src="' . $images_path . 'us.png" /> USA',
'<img src="' . $images_path . 'ca.png" /> Canada',
'<img src="' . $images_path . 'fr.png" /> France',
'<img src="' . $images_path . 'de.png" /> Germany',
'<img src="' . $images_path . 'it.png" /> Italy',
'<img src="' . $images_path . 'gb.png" /> United Kingdom',
'<img src="' . $images_path . 'gr.png" /> Greece',
'<img src="' . $images_path . 'tr.png" /> Turkey',
'<img src="' . $images_path . 'ua.png" /> Ukraine',
'<img src="' . $images_path . 'no.png" /> Norway',
);
$form['rs_example_7']['radios_select_7'] = array(
'#type' => 'radios',
'#title' => t('Select country:'),
'#default_value' => 0,
'#options' => $values,
'#radios_select' => TRUE, // enables Radios Select for this radios element
'#rs_attributes' => array(
'element' => array(
'columns' => 4,
'css' => array(
'div.type-radios-current {background: #222 url("'. $images_path . 'custom_bg.png") bottom right no-repeat; border-color: #222 !important;}',
'div.type-radios-current .inner {background: #a8a8a8;}',
'div.type-radios-current label {background: #ffc136 url("'. $images_path . 'custom_label_active.png") center center repeat-x !important; border: 1px solid #c35e22 !important; color: black;}',
'div.rs_opened {background: #222 url("'. $images_path . 'custom_bg_active.png") bottom right no-repeat;}',
'div.rs_opened .inner {background: none;}',
'div.type-radios-select {background: #d0d0d0 url("'. $images_path . 'custom_select_bg.png") top center repeat-x !important; border-color: #222 !important;}',
'div.type-radios-select label.selected {background: #ffc136 url("'. $images_path . 'custom_label_active.png") center center repeat-x !important; border: 1px solid #c35e22 !important; color: black;}',
'div.type-radios-select label {background: #3a3a3a url("'. $images_path . 'custom_label.png") center center repeat-x !important; border: 1px solid #222 !important; color: white;}',
'div.type-radios-select label:hover {background: #ffc136 url("'. $images_path . 'custom_label_active.png") center center repeat-x !important;}',
),
),
'label' => array(
'img_valign' => -4,
'nowrap' => 'TRUE',
),
),
'#description' => t('Country from where you are.'),
);
?>
Все эти примеры (рабочие и с исходным кодом) доступны из help’а модуля Radios Select (см. приложенный архив) по адресу: admin/help/radios_select
Internet Explorer.В IE, как обычно, всё “не как у людей”. Начнём с того, что все “красивые” закругления в нём отсутствуют. Попытки прицепить JS-библиотеки типа PIE, curved-corner и пр. положительного результата не дали – эти надстройки ломают разметку inline-элементов.
Вторая проблема – IE единственный из браузеров, который не захотел “понимать” клики по меткам. Пришлось специально для него сделать эмуляцию клика по радиокнопке при клике на метке.
Ещё одна особенность конкретно IE6 – курсор почему-то не устанавливается в “hand” (pointer) при hover’е над метками, даже если явно указывать для него правило в CSS.
В общем, базовый функционал в IE всё же обеспечен (по крайней мере версии IE6, IE7, IE8 с Radios Select работают нормально). Но выглядит в нем всё чуть менее красиво.
Поведение при noscript.При выключенном JS происходит следующее:
1. Скрывается контейнер выбранного (текущего) элемента – тот, который со стрелкой справа.
2. Делается видимым контейнер селектора (который содержит все элементы).
3. Становятся видимыми сами радиокнопки (слева от каждого элемента), таким образом пользователь может выбрать нужный пункт традиционным для radios образом – щёлкнув на элементе.
4. Таким образом, форматирование/оформление Radios Select в основном сохраняется, добавляются только input’ы.
Примечание: IE и здесь ведёт себя несколько отлично от других браузеров. При выключенном JS он не “признаёт” клики на вложенных в метку картинках (IMG) как клики на метке. Только если пользователь кликнул на текст метки или непосредственно на круглый элемент-радиокнопку.
Примечание: при выключенном JS input’ам присваивается свойство float: left (с тем, чтобы сохранить разметку и равные ширины при использовании колонок. Как следствие радиокнопка “уходит” с базовой линии контейнера и автоматически начинает позиционироваться от верха. Это в общем-то никак не сказывается на разных способах вывода элемента – за исключением, когда используется выравнивание по нижнему краю (как в примере с картинками выше). В этом случае кнопки будут расположены на разной высоте:
Желающие могут скачать и установить модуль. Модуль очень нуждается в тестировании под разными браузерами. Пока протестировано в GoogleChrome, Safari, Opera 11, Firefox 8, IE 6,7,8.
Если будете использовать/тестировать элемент под другими браузерами – просьба отписываться здесь о результатах (с указанием версии браузера).
Как бы и всё.
Скачать модуль Radios Select
Источник: http://www.drupal.ru/node/74267
Хочу поделиться с комьюнити модулем controller, который можно взять здесь. В чем смысл модуля?
Модуль позволяет для каждого УРЛа, который вы определяете в hook_menu() прописать действие контроллера. Для этого есть специальный новый элемент ‘action’:
<?phpЗдесь объявляется новый контроллер SettingsController и действие indexAction() которое будет вызывано для УРЛа ‘admin/settings/controller’.
По умолчанию контроллеры должны лежать в специальной папке controllers/. Которую можно создать в папке своего модуля. Имя файла будет таким же как и прописано в ‘action’, однако имя класса нужно дополнять префиксом, который будет равен имени модуля после применения СamelCase нотации (с первой большой буквой). Звучит сложно, чтобы понять какие префиксы добавятся для разных модулей, несколько примеров:
foo_bar станет FooBar my станет My test_my_super станет TestMySuper и т. д.В примере выше, в хуке меню объявлен контроллер SettingsController, имя модуля controller, значит полное имя класса будет ControllerSettingsController, а имя файла SettingsController.php. Пример как все это дело работает можно найти в самом модуле.
Надеюсь, понятно описал, если есть вопросы, спрашивайте!
P.S. У темы появилось продолжение.
Источник: http://www.drupal.ru/node/74262
————————
| Создаем форму |
————————
|
———————————————————————
| Выводим данные с помощью функции variable_get() |
———————————————————————-
Для этого:
Создаем модуль.
Для этого:
- создаем папку и называем ее по названию модуля, например urokone и сохраняем его в my_site/sites/all/modules
- в этой папке создаем в notepad++ два файла в формате utf-8 without BOM. Что такое BOM и где скачать notepad++ смотрим в википедии.
Создаем два файла в этой папке и называем их
urokone.info
urokone.module
; $Id$ name = Urokone description = Simple form one core = 6.x
; $Id$ //если вы будите выставлаять ваш модуль на Drupal.org то он добавит автоматически свои параметры
name = urokone // название вашего модуля
description = Simple form one //описание
core = 6.x //в нашем случае мы пишем для Drupal 6.
Минимальное содержание этого файла, для того что бы открыть страницу с модулем (с формой), это функция меню.
<?php function urokone_menu() { $items = array(); $items['urokone'] = array( 'page callback' => 'drupal_get_form', 'page arguments' => array('urokone_formone'), ); return $items; }
$items['urokone'] = array( ); // эта сторочка означает, что форму c названием (Form_ID) urokone_formone, которую я собираюсь вставить в этот модуль можно будет найти после активации если кликнуть на локальном сервере
127.0.0.1/my_site/urokone
Теперь активируем модуль
Для этого:
- кликните в администраривной панели на Administer -> modules
ваш новые модуль будет находится в разделе others. Кликаем чекбокс напроив нашего модуля.
У меня на локальном сервере это выглаядит так:
И кликаем на кнопку Save Configuration. Когда сделаем следующие изменения в модуле надо будет очистить кеш. Administer->Performance->Clear cashed data
———————————–
2.1 | Создаем меню |
———————————–
|
————————————————————————-
2.2. | Создаем условия доступа для различных пользователей |
————————————————————————–
|
——————–
2.3. | Создаем help |
——————–
|
—————————————————————————-
2.4. | Создаем форму |
———————–
|
———————————————————————————————-
2.5. | Выводим содержиое, которое user вбил в форму на экран (в нашем
случае в блоке)
————————————————————————————————
Для создания меню используем hook – это функции дрюпала. Например hook
function hook_menu()
для нашего модуля мы должны измеить по названию нашего модуля на
function urokone_menu() { $items = array(); $items['urokone'] = array( 'title' => 'Как подтвердить факт отправленния ненулевых данных в форму?', 'description' => 'Urokone first form', 'page callback' => 'drupal_get_form', 'page arguments' => array('urokone_formone'), 'access arguments' => array('access administration pages'), 'type' => MENU_NORMAL_ITEM, ); return $items; }
2.2. Создаем условия доступа различных пользователей.
Используем хук hook_perm()
function urokone_perm() { return array('access urokone content', 'access administration pages'); } // function urokone_perm() 2.3. Создаем help
Используем хук hook_help()
function urokone_help($path, $arg) { $output = ''; //declare your output variable switch ($path) { case "admin/help#urokone": $output = '<p>'. t("Displays information about site") .'</p>'; break; } return $output; } // function urokone_help
Здесь можно сохранить модуль. Помните (Administrator-> modules -> Save configurations) и посмотреть появление строчки “Displays information about site” , если пойти Administer – > help -> urokone
Если на этой страницы кликнуть на urokone то увидим страницу со строкой “Displays information about site”. Мы в хуке help можем заменить эту строку на подробное описание нашего модуля.
———————————————————————————————
Теперь нам осталось
————————
| Создать форму |
————————
|
———————————————————————
| Выводим данные с помощью функции variable_get() |
———————————————————————-
———————————————————————————————-
Используем функцию urokone_formone()
Например я хочу сделать такую форму:
Для этого в Drupla мы пишем функцию urokone_formone().
function urokone_formone($form_state) { $form = array(); $form['one_one'] = array( '#type' => 'checkbox', '#title' => 'if ($_REQUEST["text"]) {echo "Data was send";}', '#default_value' => variable_get('one_one', false), ); $form['one_two'] = array( '#type' => 'checkbox', '#title' => t('if ($_REQUEST("text")) {echo "Data was send";}'), '#default_value' => variable_get('one_two', false), ); $form['one_three'] = array( '#type' => 'checkbox', '#title' => t('if {$_REQUEST["text"]} {echo "Data was send";}'), '#default_value' => variable_get('one_three', false), ); return system_settings_form($form); } // end urokone_formone
Заходим на 127.0.0.1/lesson/urokone
При этом в результате работы функции return system_settings_form($form); появляютя две кнопки “Save configuration” и “Reset to default”
2.5. Выводим содержиое, которое user вбил в форму на экран (в нашемfunction urokone_block($op='list', $delta=0) { if ($op == "list") { $block = array(); $block[0]["info"] = t('urokone'); return $block; } else if ($op == 'view') { switch ($delta) { case 0: $block_content = ''; $block['subject'] = 'urokone'; $one_one= variable_get('one_one', false); $one_two= variable_get('one_two', false); $one_three= variable_get('one_three', false); if ($one_one or $one_two or $one_three) { if ($one_one) $block['content'] .= 'your answer is correct '; if ($one_two) $block['content'] .= 'your answer is not correct '; if ($one_three) $block['content'] .= 'your answer is not correct'; } break; } return $block; } } // end urokone_block
Теперь надо активировать новый блок urokone который мы создали. Идем в Administer -> blocks.
Находим наш блок urokone в списке Disabled.
Меняю регион с “none” на другоe. Я например выбрала “Left sidebar”.
И нажимаю на кнопку внизу Save blocks.
Теперь зайдем еще раз на страницу с нащей формой 127.0.0.1/lesson/urokone и кликнми на какой нибудь чекбокс. Например на вророй чекбокс с правильным ответом.
У нас слева в блоке urokone появится сообщение о том на какой чекбокс мы кликнули.
Источник: http://www.drupal.ru/node/74258
Я буду использовать модуль, который полностью аналагечен модулю из урока один. Я хочу добавить еще один чекбокс в форму и изменить title у первой страницы.
Изменить форму можно и без использования модуля. Смотрите в комметах sas@drupal.org: Как без использования модуля изменить форму.
Код двух файлов модуля uroktwo:
uroktwo.info
uroktwo.module
<?php ;$Id$ /***************************************************** * Implements hook_menu(). *******************************************************/ function uroktwo_menu() { $items = array(); $items['uroktwo'] = array( 'title' => 'What is the correct way to create MySql database? ', 'description' => 'lesson two form', 'page callback' => 'drupal_get_form', 'page arguments' => array('forma'), 'access arguments' => array('access content'), 'type' => MENU_NORMAL_ITEM, ); return $items; } /***************************************************** * Implements hook_perm(). *******************************************************/ function uroktwo_perm() { return array('access uroktwo content', 'access administration pages'); } // function uroktwo_perm() /***************************************************** * Implements hook_help(). *******************************************************/ function uroktwo_help($path, $arg) { $output = ''; //declare your output variable switch ($path) { case "admin/help#uroktwo": $output = '<p>'. t("Displays information about site") .'</p>'; break; } return $output; } // function uroktwo_help /***************************************************** * Implements function forma *******************************************************/ function forma($form_state) { $form = array(); $form['one'] = array( '#type' => 'checkbox', '#title' => t('create.databas()'), '#default_value' => variable_get('one', false), ); $form['two'] = array( '#type' => 'checkbox', '#title' => t('mysql_create_db()'), '#default_value' => variable_get('two', false), ); $form['three'] = array( '#type' => 'checkbox', '#title' => t('create_mysql()'), '#default_value' => variable_get('three', false), ); $form['four'] = array( '#type' => 'checkbox', '#title' => t('create_d()'), '#default_value' => variable_get('four', false), ); $form ['submit'] = array ( '#type' => 'submit', '#value' => t('Submit'), ); return $form; } // end forma /***************************************************** * Implements hook_block(). *******************************************************/ function uroktwo_block($op='list', $delta=0) { if ($op == "list") { $block = array(); $block[0]["info"] = t('uroktwo'); return $block; } else if ($op == 'view') { switch ($delta) { case 0: $block_content = ''; $block['subject'] = 'uroktwo'; $one= variable_get('one', false); $two= variable_get('two', false); $three= variable_get('three', false); if ($one or $two or $three) { if ($one) $block['content'] .= 'your answer create.database() was incorrect '; if ($two) $block['content'] .= 'your answer mysql_create_db() was correct '; if ($three) $block['content'] .= 'your answer create_mysql_db() was incorrect'; } break; } return $block; } } // end uroktwo_blockДля написания hook_form_FORM_ID_alter нам надо знать значение FORM_ID. Если это наш собственный модуль, то можно просто посмотреть на функцию формы.
function forma ($form_state)
forma в нашем случае и будет Form_ID, а hook будет называтся название_модуль_form_forma_alter. Для нашего модуля это будет uroktwo_form_forma_alter.
Второй способ найти Form_ID это посмотреть source code. Для этого я на локальном компьюторе открываю страницу с формой. В моем случае название сайта lesson. В хуке меню мы в этой строчке определили ($items['uroktwo'] = array()), что форму можно открыть, если набрать 127.0.0.1/lesson/uroktwo.
Откройте страницу с формой. Теперь в интернет эксплоурере идите Page -> view souce. С помощью ctrl – F ищим строчку в которой есть слово form. У меня это
То есть id = “forma”
Теперь собственно хук
<?phpfunction uroktwo_form_forma_alter(&$form,
Получилась полностью функциональная форма, но кнопка сабмит расположенна выше нового чекбокса.
Давайте это исправим. Добавим строчку weght в хук, и у нас получится
<?phpfunction uroktwo_form_forma_alter(&$form,
&$form_state) {
$form['one']["#title"] = "I do do not know";
$form['five'] = array(
'#type' => 'checkbox',
'#title' => t('create_data()'),
'#default_value' => variable_get('five', false),
);
$form ['submit'] ['#weight'] = 1000;
}
?>
На этом все.
P.S. Создавать новые модули надо сначала на отдельном, выделенном для этого сайте, а потом уже переносить в реальный сайт.
Источник: http://www.drupal.ru/node/74214
Перевод интервью Dries Buytaert сайту thinkdigit.com:
В. Привет Дрис! Недавно прочитал, как вы упомянули в блоге, что “люди постоянно спрашивают, где найти хороших Drupal-программистов”, а вы отвечаете “не спрашивайте меня, я не знаю”. Мы часто слышим о Друпале. Правда ли платформа так недосягаема, что хороших специалистов почти не найти? Или же освоить ее достаточно просто, как вы думаете?
О. На самом деле, это хороший вопрос. Drupal часто используют для создания довольно сложных веб-сайтов, так что и устроен он несколько сложно. Это, так сказать, необходимое зло. Чтобы создавать сложные проекты корпоративного уровня, сложное программное обеспечение – необходимо. И это автоматически означает, что нужно преодолеть некоторую кривую обучения. И в то же время, с распространением Друпала, спрос на специалистов тоже растет и превышат существующее предложение. Так что, необходимо вовлечь в проект Drupal больше людей. Кроме того, для удовлетворения спроса нужно больше людей в учебных программах.
В общем, частично сложность в том, что сложна сама система, и частично – в том, что нужно больше обученных специалистов.
В. Многие заявляют, что они поиграли с Друпалом, но в итоге решили, что им приятнее другие платформы, такие как WordPress. Что вы им ответите и как планируете повысить применимость Друпала?
О. Drupal часто критикуют за то, что он немного сложнее в использовании, чем другие платформы. В то же время, как я уже сказал, Drupal используют там, где не используются другие проекты. Опять же, Enterprise-решения – отличный пример. И в то же время, мы понимаем, что это проблема и что ее можно решить. Так, если вы посмотрите, скажем, на Drupal 7, а это сейчас основная версия, то увидите, что наша работа, в основном, сосредоточена на повышении удобства для пользователя и юзабилити системы. Мы приложили немало сил, улучшили дизайн и архитектуру, чтобы сделать Drupal 7 проще в использовании. То же самое будет и с Drupal 8. В центре внимания по-прежнему останется юзабилити. Причем, не только юзабилити для пользователей, но и для разработчиков.
В. По-вашему, как лучше всего начать освоение Drupal? И есть ли планы ввести какую-нибудь систему сертификации через компанию Acquia?
О. Есть масса способов освоить Drupal. Можете обучаться платно, можете учиться иными способами. Можете учиться через участие сообществе Drupal, общаться с другими членами сообщества, учиться у них. Также есть много книг о Друпале. Наверное, более 40. В сети есть куча документации, есть видео. Вот такие разные способы изучать Друпал. Я считаю, если человек хочет изучать Drupal, у него должна быть такая возможность. А одна из прелестей open-source (Drupal) – это доступ к лучшим в мире специалистам. В сравнении с проприетарным ПО, ограничений нет. Нельзя стать экспертом с мировым именем по Sharepoint, если не работаешь в команде Sharepoint, если ты не сотрудник Microsoft. А с Друпалом действительно можно стать первым номером!
Что касается второй части вопроса про сертификацию – сейчас никакой Drupal-сертификации нет. После поездки в Индию, я понял, что многим людям сертификация нужна. Учитывая этот факт, и то, что Drupal ищет пути развития, в будущем, возможно, мы подумаем насчет сертификации.
В. Значит вы открыты для идеи программ сертификации?
О. Да я всегда был для нее открыт. Думаю, это хорошая идея. Но еще я думаю, что она хорошая только если будет хорошо реализована. Вот несколько примеров. Вот есть сертификация Cisco. Иметь такой сертификат значит очень многое. Получить его – очень сложно. Для такой сертификации я конечно открыт. С другой стороны, в некотором роде учеба в колледже – это тоже сертификация. Окончишь колледж – получишь сертификат. Так что, с академической точки зрения, я верю пользу сертификации. Но реализовать ее надо хорошо.
В. Может, посоветуете нашим читателям ресурсы, где можно найти ценную информацию о Drupal? Как вы уже упоминали, где-то есть бездонные кладези.
О. Моя компания Acquia проводит несколько вебинаров, можете их посетить. Также у нас есть документация. А клиенты получают доступ ко всем видам учебных ресурсов, в том числе и к Drupal Lullabot, где есть целые часы видео. Ну и есть Drupal.org, там ресурсов очень много.
В. А как можно внести свой вклад в сообщество?
О. Вообще, есть сотни способов. Я всегда призываю всех следовать своей страсти, потому что в конечном счете, я думаю, именно так люди развиваются. Если вы можете присоединиться и сразу писать код, то можете решить ряд существующих задач. Можете помочь нам писать модули. А если вам по душе писать документацию – найдется масса документов, требующих редакции. Также можете помочь написанием руководств. Можете помочь и другими способами, например, участвовать в организации разных мероприятий. То есть каждый может помочь по-своему. Если не знаете, с чего начать, присоединяйтесь к нам в IRC и поспрашивайте людей. Они подскажут верное направление. Канал #drupal на freenode.
В. Одна из основных проблем – если обновлять ядро до следующей версии, некоторые старые плагины перестают работать. Например, модули для 6.X обычно не работают в версии 7.X. И порой новые версии не появляются довольно долго. Видите ли вы в этом проблему? Планируете ли добавить некий уровень совместимости для облегчения задачи?
О. Хороший вопрос. Обратная совместимость – это почти философия. Какие-то проекты выбирают путь поддержки обратной совместимости, какие-то – нет. До сих под в проекте Drupal мы выбрали нарушение обратной совместимости. У обоих путей есть свои недостатки и достоинства. Очевидный недостаток – нужно обновлять модули каждый раз при выходе новой версии. Достоинство, впрочем, в том, что нам не нужно беспокоится об устаревших вещах. Мы можем изобретать их заново. Мы можем и дальше изменять Друпал в сторону наилучшей платформы. А другие платформы, для которых выбран путь обратной совместимости, с большим трудом внедряют инновации, так как вынуждены поддерживать старый код. Очевидно, у каждого пути есть свои достоинства и недостатки. Мы решили нарушить обратную совместимость. Кто знает, возможно однажды все изменится. Но я чувствую, что это верный путь, особенно для скриптовых языков, таких как РНР, где весь код должен быть загружен.
В. А возможно ли авто-обновление модулей ядра Друпала?
О. В общем-то, возможно. Мы над этим сейчас работаем. Так, в Drupal 7 есть модуль update, с помощью которого можно узнать, что нужно обновить, а также установить обновления для необходимых модулей. Ядро при этом автоматически обновить невозможно, если только вы не пользуетесь чем-нибудь вроде Gardens. Вероятно, в будущем появится и возможность прямого обновления ядра и модулей. Впрочем, это не совсем просто, да и не очень хорошо для сложных проектов. Но для проектов попроще, даже для проектов Drupal Gardens, обновлять ничего не надо. Там это делается автоматически, за вас.
В. Рассматривали ли вы возможность использования профилей (сборок), если Друпал ставят под определенный сценарий, такой как блог или сайт интернет-магазина – чтобы пользователи сразу могли работать с сайтом, а настройки проходили проще?
О. Ну, вы можете включать и выключать модули. Так вы выбираете ту или иную конфигурацию. Также сейчас активно развивается модуль Features. Он позволяет сохранять и более серьезные разновидности изменений в конфигурации. Например, внести изменения в четыре-пять модулей и сохранить их. [не получается точно понять, о чем говорит автор в оригинале - пр. graker]
В. Расскажите, какие недостатки ядра Drupal 7 вы устраняете в Drupal 8?
О. Интересно! Их много (улыбается). Мы всегда очень критичны к себе. Один из самых значительных недостатков Drupal 7 – его возросшая сложность. Когда вышел релиз Drupal 7, мы не были уверены, что все API в нем полностью готовы. Так что в Drupal 8 мы тратим немалую часть времени на чистку API. И это возможно потому что мы нарушаем обратную совместимость. А еще одним из самых важных направлений в Drupal 8 мы считаем поддержку мобильной платформы. И много еще всего. Всегда есть куча вещей, которые надо улучшить.
В. Сейчас многие говорят про HTML5. Да вы и сами проявили к нему интерес. Как думаете, как на него повлияет наличие на рынке устройств с разными форм-факторами? И как насчет оффлайн доступа к данным?
О. Интересный вопрос. Мы пока не знаем. Мы решили, что ключевым направлением развития Drupal в восьмой версии будет HTML5. Это одна из самых простых задач. Мы сосредоточились на нескольких стартовых изменениях, занимаемся ими прямо сейчас. А дойдем ли мы до оффлайн-доступа и геолокации – зависит от двух вещей. От того, сколько людей мы наберем под задачу и от совместимости браузеров. А пока мы шаг за шагом запускаем нововведения по одному и работаем с ними. В конечном счете, мы бы хотели поддерживать все новые классные возможности HTML5.
В. А при этом вы сотрудничаете с разработчиками браузеров?
О. Да, с ними созваниваемся. Вот недавно говорили с Microsoft о некоторых вещах, которые надо поправить в IE. И в последней версии IE они были поправлены. Из чего наглядно видно, какого масштаба достиг наш проект, раз мы можем сотрудничать с крупными разработчиками браузеров и влиять на них.
В. А кто решает, по какому пути будут развиваться будущие версии Друпала? Группа разработчиков ядра? Учитывается ли мнение сообщества? Или решения принимаете лично вы?
О. Для Drupal 8 в основе решения были разные факторов. Во-первых, мое собственное мнение. А мое мнение, в свою очередь, основывается на мнениях некоторых людей, с которыми я регулярно встречаюсь и общаюсь, путешествуя по всему миру. Я беседую с пользователями Друпала – как с одиночными, так и с компаниями. Беседую с разработчиками, которые создают на Друпале сайты. Беседую с самой разной публикой, пытаюсь понять, что для них важно и как нам улучшить Друпал. И у всех есть отличные идеи. А в этот раз, для Drupal 8, мы провели опрос среди разных пользователей. И я подвел итоги их требований и окончательно расставил приоритеты Drupal 8.
В. А если модуль, созданный сообществом, станет очень популярным – может он войти в ядро?
О. Да., именно так мы и делаем. Если модули становятся очень популярны и все ими пользуются, я считаю, что это часть инфраструктуры. И в подходящее время они попадут в ядро. В Drupal 7 мы поместили в ядро кучу модулей, более 60. Некоторые маленькие, другие – очень большие, как например CCK. Кроме того, в Drupal 8 есть такие инициативы как интеграция HTML5. И поэтому есть надежда, что в Drupal 8 не будет нужды в модулях поддержки HTML5. А еще в Drupal 7 есть модуль Services, в восьмой версии мы поместим его в ядро.
В. А модуль Views тоже будет интегрирован в ядро?
О. Views – интересный зверь. Модуль номер один в Друпале. И с этой точки зрения он очень важен. Но, в то же время, он все еще развивается. Плюс, сам модуль очень сложен. И принимая во внимание всю его сложность, я хотел бы чтобы Views был полностью готов до каких-либо значительных изменений.
В. Планируете ли вы поддержку нереляционных баз данных?
О. Уже поддерживаем. Разработчики крупных сайтов на Друпале уже использовали MongoDB. Можно использовать и Cassandra, и другие нереляционные базы данных.
В. Как вам известно, услуги компании Acquia довольно дороги. Планируете ли вы вводить специальные цены для рынков развивающихся стран, учитывая что именно нашего рынка ожидается большая активность в сетевом пространстве? [речь об Индии, интервью брал индус - пр. пер.]
О. Наши услуги дороги, но хочу заметить, что это – премиальные, высококачественные услуги. То есть, “лучшие” в своем роде услуги. Что до специальных цен на услуги в Индии – нужно сесть и все обдумать. Скорее всего, они будут. Путешествие в Индию открыло мне глаза, и пока я там оставался, не раз думал, что наши цены для них слишком высоки. Так что через некоторое время мы должны выработать какое-то решение.
В. Так вы намерены принять активное участие на индийском рынке?
О. О да, безусловно. Думаю, в Индии много возможностей по целому ряду причин. Здесь много талантливых инженеров, которых мы хотели бы видеть частью сообщества, чтобы помочь развивать Друпал. А мы бы хотели развивать все, что помогает Друпалу. Кроме отдельных инженеров, есть и большие компании по системной интеграции, такие как Wipro и Accenture. И они изо всех сил пытаются найти талантливых друпалеров. Мы на это смотрим как на главное направление работы в будущем. И мы хотели бы сделать здесь очень много разного.
—
Перевод был осуществлён на сайте коллективных переводов Cotranslate.Net, под чутким руководством graker. Переводчики: masdzen, xandeadx, graker, Plazik.
Источник: http://www.drupal.ru/node/74136
Перевел большое интервью с Дрисом Байтаертом, опубликованное в конце декабря на портале Linux For You http://www.linuxforu.com/2011/12/dries-buytaert-interview-drupal-8-busin…
Дрис Байтаерт, создатель и руководитель проекта Drupal, недавно посетил Индию. Linux For You поговорил с ним о его планах по расширению сферы Drupal в Индиии, о Drupal 8, о компаниях, специализирующихся на Drupal и их бизнес модели, об Open Source и др.
Существует множество систем управления контентом, где именно вы позиционируете Drupal и чем вы отличаетесь?
Drupal это интересное животное, если вы присмотритесь внимательно. На нем работает два процента всех сайтов в мире. Но самое уникальное в Drupal это то, что он масштабируется от больших веб сайтов до очень маленьких. На нем работают блоги, но на нем также работают большие сайты медиа компаний. Он также уникальный в своих возможностях и функциональности. И все благодаря сообществу Drupal, в котором десятки тысяч людей развивают Drupal. У нас есть более 10 000 модулей. Поэтому мы находится в таком положении, что мы можем создать любой вид сайта на Drupal.
Полная версия перевода опубликована на Хабре http://habrahabr.ru/blogs/drupal/135646/ (как более удобной платформе для пропаганды Друпала).
Источник: http://www.drupal.ru/node/74035
Всем доброго времени суток.
Хочу поделиться радостной новостью – сегодня я наконец выпустил в массы официальный релиз темы с моего блога – Drupalace Theme. Она представляет из себя блоговый шаблон с разнообразными настройками. Тема в течение пяти месяцев проходила тестирование на моём блоге и завоевала множественные симпатии со стороны посетителей. А так как я человек абсолютно не жадный, то я решил выложить тему в общественное пользование. Тема написана для седьмой версии Друпала.
Основные преимущества:
10 регионов под блоки. Есть даже регион для добавление рекламы под материалом (node bottom) Изменяемая разметка темы Возможность добавления материала в социальные сети (работает через сервис addthis) Навигация по материалам (ссылки на предыдущий и следующий материал) Логин во всплывающем окошке Настраиваемый текст для блока поиска Симпатичный дизайн Хорошая читабельность текста Тема проверялась во всех браузерах, кроме IE6 и ниже. Детальная прорисовка многих мелочей.Тема, ушедшая в релиз – это улучшенная тема с моего блога. Добавлены настройки, поддержка IE7+, дополнительные иконки.
Почитать подробнее и посмотреть скриншоты вы можете здесь.
Скачать тему можно с официальной страницы Drupalace Theme.
Всех с прошедшими и будующими праздниками!
Источник: http://www.drupal.ru/node/74022
Хочу поздравить весь дружный состав д.ру с новым 2012 годом!)
Каждому желаю профессионального роста и интересных проектов. а д.ру желаю наконец то трансформироваться в очень удобный проект общения разработчиков)
Всех с наступающим 2012 годом!)
p.s. много не пейте)
Источник: http://www.drupal.ru/node/73972
Источник: http://www.drupal.ru/node/73947
Drupal Forum – ежегодная конференция всеукраинского масштаба, посвященная системе управления контентом сайта с открытым исходным кодом Drupal. Для каждого drupal-ера это отличная возможность повысить свой уровень знаний и мастерства, узнать новые фишки и познакомиться с ведущими drupal специалистами Украины.
Для кого будет интересен DrupalForum?Основная цель Drupal Forum – дать возможность специалистам приобретать и делиться полученными знаниями, а также организовать сообщество Drupal. Мероприятие будет интересно разработчикам (как начинающего, так и высокого уровня), менеджерам проектов, а также всем, кто связан с разработкой веб-проектов.
В 2012 году организаторы DrupalForum преследуют еще одну цель – популяризация Drupal. Специально разработанная программа DrupalForum 2012 предоставляет возможность всем желающим веб-мастерам и начинающим drupal разработчикам прослушать курс лекций по основам создания сайтов на CMS Drupal. Регистрируйтесь, количество мест на курс лекций для начинающих ограничено.
Программа и формат конференцииТрадиционно DrupalForum пройдет в формате BarCamp, который предполагает проведение докладов самими участниками в свободной форме. Заявки на проведение докладов принимаются на официальном сайте конференции.
Конференция пройдет в течение двух дней (10-11 февраля 2012 года). В первый день планируется три потока, один из которых организован специально для начинающих друпалеров и веб-мастеров, которые только слышали о Drupal. На второй день планируется один поток докладов и BOF-ы (BOF-ы – спонтанные обсуждения, которые проходят в отдельной комнате).
Темы и докладчикиНа конференцию прибудут и выступят передовые drupal разработчики Украины. Ожидаемое количество докладов – более 25-ти. На данный момент любой желающий имеет возможность подать доклад на официальном сайте конференции.
Место и время проведенияDrupal Forum традиционно пройдет в городе Запорожье. Дата проведения – 10-11 февраля. Место проведения – гостиница “FOUR POINTS by SHERATON”, расположенная по адресу бул. Шевченко 71А, Запорожье (Украина).
Условия участия и оплатаВход на конференцию DrupalForum 2012 – свободный. Единственное условие – предварительная регистрация, которую можно пройти здесь.
КонтактыПо всем вопросам и предложениям Вы можете связаться с организаторами:
Тел.: +38 (066) 123-77-54 – Евгений
mail: info@DrupalForum.com.ua
Источник: http://www.drupal.ru/node/73867
В рамках проведения зимней школы по друпалу в г. Новосибирске (DWS-2012) мы ищем:
Те, кто вложатся в сообщество гарантированно будут иметь отдачу, в том числе и в виде дохода.
программа проведения Drupal Winter School
Те, кто решит проявить себя, пишите на почту: school@drupalsib.ru
В письме укажите, пожалуйста:
Источник: http://www.drupal.ru/node/73864
Одно из немногих оставшихся мест в Drupal 7, которые не получили Field API изменения – это профили пользователей. Вы можете добавлять поля в профили, но стандартные поля остались в старом виде. Это означает, что у вас меньше гибкости при теммизации их и использовании в пользовательском интерфейсе. На пример, в управлении отображением профиля вы не сможете изменить стиль отображения аватара пользователя для каждого дисплея. По умолчанию можно установить только стиль отображения из настроек учетных записей пользователей.
Это не так плохо, но к примеру, если вы используете в профилях пользователей картинки размером 250px, они так же будут использоваться в комментариях и нодах. Если посмотреть тему Batrik то можно увидеть, что там для комментарием используются изображения размером 75х75px, а для нод 20х20px. Но пользователю загружаются оригиналы изображений, а потом масштабируются браузером. Это может повлиять на время загрузки страницы.
К счастью, есть очень простое решение этой проблемы:
Модуль ImageCache Profiles
Этот модуль добавляет 3 новых опции в настройке аккаунта(см. рисунок выше): пресет который будет использоваться при показе аккаунта пользователя, комментариев и нод. На посещаемых сайтах с большим количеством страниц и контента использование этого модуля может значительно уменьшить размер страницы и время её загрузки.
Данный модуль очень прост в использовании. Его необходимо только включить и затем выбрать в настройках аккаунтов пресеты для каждого вида изображения пользователя.
Модуль можно скачать по ссылке – http://drupal.org/project/imagecache_profiles
Статья взята с сайта южного сообщества Drupal
Источник: http://www.drupal.ru/node/73758
Иногда нужно быстро сделать контактную форму или форму заказа и поместить ее как блок на какой-нибудь странице, но нет времени на разработку модуля (или не хватает знаний). Предлагаю модуль simpleForm2. он позволяет создать практически любую форму и любое количество таких форм на сайте. Для построения формы нужно хотя бы поверхностное знание HTML.
Вот страница проекта на drupal.org: simpleForm2
Сразу скачать можно отсюда.
Источник: http://www.drupal.ru/node/73738
Для сайта API сменился DNS, на время изменения доменных записей можно прописать IP-адрес 91.223.223.64 для api.drupal.ru. По вопросам работы сайта api.drupal.ru обращайтесь к Александру Швецу.
Источник: http://www.drupal.ru/node/73693
Всем привет!
Сообщество DrupalSib стартует Зимнюю Школу веб-программирования на Друпал.
Кодовое название DWS-2012 (Drupal Winter School 2012)
http://www.drupalsib.ru/drupal-winter-school
Приглашаем пройти обучение.
Регистрация обязательно.
Есть скидки:
+ для тех кто раньше зарегался,
+ для тех кто пришел со своим ноутом,
+ для тех кто введет кодовое слово DRUPAL.RU
Скидки суммируются.
Будет три уровня от новичка, до гуру.
К словам просьба не цепляться, мы действительно готовы разбирать по косточкам самые сложные вопросы.
Мы все еще надеемся найти в регионе людей с высоким уровнем владения друпалом и большим желанием заниматься его популяризацией.
Приглашаем к сотрудничеству.
Мы говорим что на этом благом деле можно и нужно зарабатывать. Поэтому эта школа будет платной.
Хотя мы проводим и бесплатные занятия регулярно на базе средней образовательной школы.
Мы работаем над привлечением проектов на сообщество и у нас есть прогресс в этом направлении.
Чем раньше мы подружимся с командами тем лучше для всех. Ждем контактов.
Мы все еще верим что удастся собрать в эНске добротную друпал-конференцию до конца 2012 года.
Ну и обязательно посмотрите наш ролик
http://www.youtube.com/watch?feature=player_embedded&v=lzNyB97hXgg
Он немного пафосный какой и должна быть реклама, но нам он очень нравится
Источник: http://www.drupal.ru/node/73553
На сегодня здесь созданно 445 опросов и собрано 13057 ответов/choices к ним. Текущая реализация inner poll
Предлагаю провести еще одно голосование – Нужен ли на drupal.ru механизм крепления опросов к публикациям?
Пост следует из плана в рамках плановой миграции на drupal 7 и будет дополняться мнениями из коментов, как например
- разрешать ли внесение изменения в порядок и новых вариантов ответа в открытый опрос
Своё видение, даже графическое, просьба освящать в коментах, можно развёрнуто
Пока планируется отключение модуля, так что варианты замены тоже приветствуются.
Attached poll “Нужен ли на drupal.ru механизм крепления опросов к публикациям?”.
Register or login to poll
Results:
нужен: 59 голосов
нужен но другой: 13 голосов
оставить в режиме для чтения: 2 голоса
Убрать совсем: 11 голосов
Источник: http://www.drupal.ru/node/73531
При создании сайтов досок-объявлений, сайтов поиска работы, каких-либо сервисов, довольно часто встречается необходимость создать возможность динамического заполнения полей формы данными, которые уже были ранее введены, оставив возможность ручного пользовательского ввода.
Данная статья является примером реализации подобного функционала.
Статью можно прочитать на сайте южного Drupal-сообщества
Статья является переводом, первоисточник – Import form values from one form to another via AJAX и является полностью рабочим примером.
Источник: http://www.drupal.ru/node/73094
Описание:
Модуль создан для создания пользовательских страниц с возможностью подмены контента, как всей страницы, так и только той части, что выводится в переменной $content.
Возможности:
Создание неограниченного числа пользовательских страниц
Создание сложных путей
Создание путей с именованными параметрами вида %param, %some итд
Создание путей с именованными зарезервированными параметрами вида %node, %user, %modulename_modulename
Создание путей с неограниченным числом параметров (ограничение только на длину URI)
Создание не явных параметров вида %
Создание страниц с указанием ролей, которые могут иметь доступ к этим страницам
Создание страниц с указанием темы
Создание шаблонов страницы как в отдельном файле темы вида [cid].tpl.php, так и в template.php вида [cid]()
Поддержка модуля features для экспорта/импорта страниц
Поддержка модуля context
Подробности тут: http://css.mirocow.com/projects/custom-page/wiki/Wiki
Скачать тут: http://css.mirocow.com/projects/custom-page/repository
Level: Profi
Источник: http://www.drupal.ru/node/73058
и созданию Российской Друпал ассоциации(да, Дрис в курсе и одобрил)
план работы, миссия и возможные направления – http://cl.ly/192o2j251k1i3d060I2L
К диалогу приглашаются все, у кого есть ценные идеи, видение процесса и желание участвовать.
Формат встречи: круглый стол, 12 участников. Отписываемся, кто хочет участвовать.
Дата: четверг, 22 декабря, 19:00. Место: наш офис, м. Дмитровская, 2-ая Хуторская, д. 38а, с. 9
0. Паньков Артем
0. Анастасия Торлина
1. kostin
2. gagaga
3. axel
4. RxB
5. Даша Богуцкая
6. andriy.olischuk
7. andypost
Тем, кто хочет оказаться среди оставшихся трех человек, предлагаю поступить, как Андрей – написать некий бриф, в чем он видит/не видит ассоциацию и повесить его в топик. Это будет отличным входным билетом, так как цель встречи в четверг – выработка плана конкретных действий.
Источник: http://www.drupal.ru/node/73023
Изначальная идея #states заключается в том, что бы была возможность создания динамических форм без написания JavaScript как такого. #states разрешает без единой строчки кода JavaScript, только с помощью php и Form API Друпала изменять состояние одного елемента (видимость-visible/invisible, активность – enabled/disabled, необходимость – required/optional, состояние чекбоксов – checked/unchecked, expanded/collapsed сворачивать/разворачивать филдсеты) на основании состояния второго (или даже на основании нескольких елементов) после какого-то действия пользователя.
Полную версию статьи читать здесь
Источник: http://www.drupal.ru/node/72990
Давайте в честь наступающего нового года соберемся и дружно сыграем в мафию.
в чем прелесть этой игры?
- каждый игрок интересно раскрывается;
- можно быстро познакомиться;
- просто это интересное, увлекательное и хитроумное занятие.
В общем, все, кто будут в Москве 25 декабря обязательно приходите:)
В 16.45 ждем всех желающих в Циферблате на Солянке (м.Китай-город, ул. Солянка, 11/6, на углу здания стеклянная дверь – звонить в домофон. Без вывески).
Приходить вовремя, так как ровно в 17.00 игра начнется – “город засыпает”, поэтому опоздавшим придется ждать начала следующей игры, чтобы присоединиться.
Если не умеешь играть? все равно приходи, мы тебя быстро научим!
Условия:
1. Оплата. Согласно формату Циферблата нужно платить поминутно – в первый час 2 рубля в минуту, каждый последующий час – 1 рубль в минуту. За это получаете чай (в неограниченном количестве), сладости, вкусное варенье, можно даже поджарить в тостере хлеб либо положить себе в тарелку понравившееся печенье и бублики.
2. Принеси подарок. Средняя цена подарка не больше 50 рублей – чисто символический. Каждый принесет с собой сюрприз, мы на месте вытянем бумажки с именами гостей и подарим свой подарок тому, чье имя вытянем. Это очень важная часть любого новогоднего праздника! Отговорки типа “не знал, что подарить”, “забыл”, “не успел купить” не принимаются. Принесите то, что самому было бы приятно получить, подумайте, чем удивить человека, которого даже не знаете)
Что дарить?
- что-нибудь вкусное
- что-нибудь сделанное своими руками
- то, что хотелось бы получить самому, но никто почему-то не дарит…
- все, что угодно
- приятную безделушку
3. Оденься красиво. Чтобы у нас было праздничное настроение нужно всем нарядиться:
- парни – поменяйте ради этого события привычные джинсы и свитер на рубашку (вы даже не представляете как нравятся девушкам ребята в белых рубашках – в этом определенно что-то есть:)) и брюки – чтобы нам, барышням, хотелось на вас побольше смотреть и заглядываться;)
- девушки – откажитесь на несколько часов от брюк и джинсов, давайте наденем платье или юбку)
Вот увидите, эти нехитрые хитрости помогут создать особенную атмосферу праздника… буквально на ровном месте.
И напоследок: так как выбранное нами помещение не резиновое, сделаем предварительную регистрацию. Все желающие сыграть в Мафию должны написать об этом в комментах к этой теме в группе вконтакте. Мы очень-очень будем вас ждать:)
Подробности http://vkontakte.ru/topic-32565125_25651784
Источник: http://www.drupal.ru/node/72928
Наконец-то портировал модуль календаря по материалам на Drupal 7 (не без финансовой помощи, правда, вот этого человека ( namli), а так бы ещё полгода, наверно, портировал)…
Итак, суть модуля:
Простой календарь по материалам, которые можно выбирать либо по дате создания материала, либо по полю типа date (если date установлен, конечно). Если выбор материалов идет по полю, то возможны множественные значения полей (несколько дат на один материал).
Модуль по-прежнему включается как блок и в нем ещё формируется страница типа /calendar/ГГГГ/ММ/ДД для отображения страницы с материалами за выбранный день. Все настройки модуля можно найти в параметрах блока из контекстного меню “Настроить блок”. Обновлены по сравнению с версией модуля для 6-ки выборки по типам материалов и поле с датой. Добавлено изменение заголовков событий. Если раньше все материалы назывались событиями, то теперь можно указать, что это будет (записи, новости, события и т.д.)
Добавлена возможность создания отдельных тем оформления календаря. Сейчас там три темы оформления: стандартная, vista и gridy. Стандартная тема тянется по ширине блока, а vista и gridy фиксированной ширины (198 и 182 точки соответственно).
В темы оформления добавлены симпатичные всплывающие подсказки. Добавлены два типа отображения подсказок
Стандартный – при наведении указателя мыши на день отображается количество материалов
Подгрузка ссылок – загружается список ссылок на материалы при наведении указателя мыши на день. Для этого типа можно выбрать количество показываемых ссылок.
В натройках блока:
● селектор типов материалов (не надо писать руками)
● селектор полей с датой (с проверкой на модуль date)
● список тем оформления
● изменение подписей к материалам
● ссылки во всплывающих подсказках
● настройка количества элементов на страницах и в подсказках
Пока только не доделал перевод на английский и файл перевода… а там и на drupal.org выложу
За спасибо, приму копеечки на яндекс.деньги 41001896059641 или заказ на разработку новых модулей )))
UPD от 15 декабря 2011:
обновлен модуль с замечаниями RxB (все кроме темизации html через функцию, всё-таки считаю не нужным, но если найдутся те, кому позарез надо будет, сделаю), поэтому обязательно при обновлении модуля отключите старую версию, так как ряд функций был переименован.
Источник: http://www.drupal.ru/node/72877
Для проведения в Москве семинаров по Drupal
Ищем:
желающих попробовать себя в качестве лектора,
тех, кто много всего освоил и изучил, и теперь хочет поделиться своим опытом,
заинтересованных в построении имиджа эксперта Drupal, консультанта.
Так же будем рады партнерству.
В данный момент особенно нужны:
- специалист по сео-оптимизации;
- специалист по jQuery;
- специалист PHP.
Новосозданная группа вконтакте http://vkontakte.ru/club32565125
Там есть афиша ближайших мероприятий. Приходите – смотрите)
Если интересно сотрудничать, пишите daredjana@gmail.com
В письме укажите, пожалуйста, 1) что вы умеете делать, 2) в чем видите свою роль при нашей совместной работе 3) и что вас мотивирует.
Источник: http://www.drupal.ru/node/72538
Спешите прийти на последнее DrupalCafe в этом году! Cледующее не раньше января-февраля.
Пнд, 5 декабря, с 19:00 до 21:30. Можно приходить пораньше.
Где?Как всегда в любезно предоставленном нам ЧиталКафе в центре Москвы: ул. Покровка 38/1 (вход с Лялиного переулка) карта. 10-15 мин. пешком от метро Чистые пруды или Курская.
ДрупалКафе? Что это? Почти как конференция, только гораздо короче. Почти как форум на d.ru, только без троллей и спама. Доклады и обсуждения о друпале и не только. Живые друпалеры с drupal.ru. Уютное место проведения с книжками по стенам, оборудованное чаем, плюшками, а также проектором. Вход свободный, выход тоже, познания друпала — не требуются, но приветствуются. Заранее благодарим!За помещение: xbforte,
За видеосъёмку: pvasili.
Источник: http://www.drupal.ru/node/72415
пишите в личку с указанием цвета шапочки и его производителя.
если никто не напишет – фапотьку оставлю сибе: она офигенна!
Источник: http://www.drupal.ru/node/72409
Внимание! Трансляцию можно смотреть на http://yatv.ru/DrupalConf_2011_P2
Периодически инернет отваливается, но мы стараемся оперативно восстанавливать вещание
Слайды конференции http://dl.dropbox.com/u/1197453/drupalconf2011.zip
Источник: http://www.drupal.ru/drupalconf-moscow-2011-video
Представляем вам сборку интернет-магазина CommerceBox на основе Drupal 7 и модуля Drupal Commerce.
На сегодня среди для Drupal 7 существует практическое единственное нормальное решение, позволяющее создать функциональный интернет-магазин — это модуль Drupal Commerce.
Проблематика заключается в том, что данный модуль является очень гибким решением для программиста. Но это не коробочный модуль, каковым раньше был Ubercart.
С Drupal Commerce все по другому. Этот модуль является более фрейморкным, он рассчитан на программиста. Программисты там могут творить чудеса. Но обычному пользователю либо начинающему программисту нужен легкий старт. Для этого и создана сборка CommerceBox.
В сборке CommerceBox мы пытаемся сделать сделать основу для развертывания интернет-магазина.
Модуль Drupal Commerce базируется на API Drupal, соответственно он автоматически использует все возможности, которые предоставляет ядро Drupal. Кроме того, Drupal Commerce сам по себе имеет довольно мощное API. Если Вы программист то можете без труда расширить функционал вашего магазина используя API как Drupal, так и Drupal Commerce.
Кратко и по сути в сборке сейчас реализованы:
Админка для управления товарами. Некоторые идеи позаимствованы у Мадженты Обертка интернет-магазина: главная, карточка товара, каталог Много визуальных плюшечекБолее детальный и маркетинговый перечень возможностей системы выглядит так (программистам не читать):
Корзина с возможностью управления количеством добавленных товаров Гибкая система прав доступа и администрирования пользователей Отзывы к товарам Социальные закладки Список желаний (WishList) Кнопки Share на Twitter, Google+, Facebook Фильтр поиска товаров Автоматическое создание материала для отображения товара при создании товара Товар с базовым набором полей с возможностью добавления новых полей (поля структурированные по категориям) Выбор пользователем вида представления товаров: списком или сеткой Полный контроль над выводимыми элементов каталога: размер превью, теги, заголовок и тд. Возможность добавления “сопутствующих товаров” Возможность сравнения товаров Новости магазина Последние просмотренные товары Похожие товары Контекстные статьи Контакты магазина Meta-теги для каждой категории или любой избранной страницы. XML карта сайта Пользователи онлайн Список возможностей мы будем наращивать. Наша цель создать сборку для быстрого старта интернет-магазина за минимум потраченного времени и ресурсов.Сайт ресурса: http://commercebox.org/
Источник: http://www.drupal.ru/node/72159
В пятницу 2.12.2011 в 19:00 пройдет очередная встреча Drupal кафе Москва
Место проведения уже традиционно – ул. Покровка 38/1 Читалкафе (вход с Лялиного переулка) карта. Вход свободный, регистрация не требуется, глубоких познаний друпала — тоже.
Список докладов и тем для дискуссии:
Увеличение качества и прибыльности проекта для разработчика Открытое обсуждение темы – Drupal vs Бизнес: почему Drupal лучше любого framework и как его правильно готовить при управлении проектами. Типы контента — это гвозди прибивающие ноды в нужные места сайта. А теперь уберём гвозди… (глубоко теоретическая дискуссия) И напоследок, когда все захотят спать: MySQL + Drupal, базовая настройкаИсточник: http://www.drupal.ru/node/72096
Здравствуйте! Это aRpi.
Вот решил написать статью не тему “Создание своего типа материала программно”. На изучение этого вопроса, и написание статьи было потрачено 6 часов. В начале и сам не знал как это делать, так что если что то не так, поправьте.
Готовый модуль к статье можно скачать здесь.
Как правило операции по созданию и удалению типа материала выполняются при создании и удалении модуля. В функциях называемых modulename_install и modulename_uninstall, размещенных в файле modulename.install. Однако в нашем случаи, в приложенном к статье модуле, мы будем все делать напрямую. По нажатию кнопки, будет запускаться та или иная функция, создающая или удаляющая тип материала. У меня это функции: mtpn_cretypnod и mtpn_remtypnod.
Весь код модуля целиком приводить не буду.
Напишу лишь код, выполняющий непосредственно создание и удаление типа материала.
Прошу обратить внимание имя модуля у меня “mtpn”.
Кстати! Чтобы просто определить есть ли тип материала достаточно просто попытаться его загрузить, в случаи неудачи будет возвращен false.
Для этого нужно использовать функцию node_type_load передав в неё машинное имя типа материала.
И так! Создаем свой типа материала программно:
Для того чтобы создать тип материала, необходимо вызвать функцию node_type_save.
Передав в неё контент материала, на основе которого и будет создан тип материала.
Создаем контент материала, это массив заполненный данными описывающими материал.
<?phpЗатем мы окончательно формируем контент материала, заполнив неуказанные поля дефаултными значениями.
<?phpСледующей функцией в контент материала добавляются поля по умолчанию, свойственные стандартному типу материала.
В частности это поле body, в котором как правило размещается текст любой ноды.
Создаем тип материала. Этаже функция позволяет сохранить ранее созданный тип материала.
<?phpТеперь наш тип материала добавлен в базу данных, в таблицу node_type.
Однако он ничем не отличается от типа материала созданного через админку.
И к сожалению, мы даже не можем создать ноду на основе этого типа материала, пункта добавления, на странице “/node/add” ещё нет.
Тип материала нужно ещё настроить.
Продолжаем…
Получаем инстанцию материала, специальный объект который позволяет настроить тип-материал.
<?phpДобавляем пункт на страницу “/node/add”, позволяющий создать ноду, нашего типа материала.
Кстати если пункт не появился, возможно необходимо перестроить меню, что мы и сделаем немного позже.
Применяем внесённые изменения. Иначе все то что мы проделали с инстанцией материала не имеет смысла.
<?phpЧтобы ноды нашего типа материала не были скучными, добавляем в него уникальные поля.
Создаются поля при помощи функции field_create_field.
Однако после создания их необходимо ещё связать с типом материала.
Связывание осуществляется созданием инстанции поля, функцией field_create_instance.
Создаем поля.
<?phpКак только поля будут созданы, они будут добавлены в базу в таблицу field_config.
Создаем инстанции-полей, функцией field_create_instance.
Инстанция поля это такая вещь которая позволяет связать ранее созданное поле с указанным типом материала.
И определить как и в каком виде значение поля будет редактироваться на странице редактирования ноды.
Создаем инстанции полей.
<?phpПерестраиваем меню чтобы пункт добавления ноды в “/node/add” был доступен.
К несчастью это долгая операция но к счастью, мы не так часто будем создавать свой собственный тип материала, так что все в порядке.
Вот и все!
Да кстати.
Как только будет создана хотя бы одна нода нашего типа материала, в базе будут созданы таблицы соответствующие полям, в которых и будут храниться данные полей, из которых состоит нода.
В нашем случаи это таблицы field_data_mtpn_f1 и field_data_mtpn_f2.
Эти таблицы точно также будут удалены при удалении полей.
Удаление своего типа материала программно:
Для начала удалим абсолютно все узлы соответствующие нашему типу материала.
<?phpТеперь можно приступить к удалению полей, инстанций-полей, и уже после этого удалить тип материала.
Удаляем поля.
<?phpУдаляем инстанции полей.
<?phpУдаляем тип материала.
<?phpПерестраиваем меню чтобы пункт добавления ноды в “/node/add” был уничтожен.
<?phpЧистка. Подчищает базу, удаляя всякие там уже казалось бы удаленные поля и таблицы.
<?phpИсточник: http://www.drupal.ru/node/71971
26 ноября, суббота, 12:00
Клуб Джерри Рубина. Ленинский пр-т, 62/1
План семинара: основы разметки веб-страницы; эффективные инструменты разработчика; верстка страницы, стандарты, новшества, применение в теммизации Drupal, разбор темы, основные вопросы в создании и редактировании темы.
В конце занятия каждый участник сможет оставить денежные пожертвования сколько считает нужным. В зависимости от того, насколько ему понравилось занятие, лектор и помещение Клуба.
Регистрация по адресу daredjana@gmail.com: ФИО, номер телефона, указать тему лекции и число.
Источник: http://www.drupal.ru/node/71776
Добрый день!
Во вложенных файлах модули для интеграции платежной системы Mainpay и Drupal, а также Drupal ubercart.
Принимают оплату с помощью карт, электронных кошельков (WebMoney, Яндекс.Деньги и прочие) и мобильной коммерции. Помимо этого есть SMS и терминалы.
Если возникнут вопросы или пожелания по модулю – пишите на support@mainpay.ru
Источник: http://www.drupal.ru/node/71718
В четверг, 8 декабря, в 19:00, в Днепропетровске, по адресу ул. Телевизионная 4а, в большом конференц зале, на 3-м этаже состоится дебютное DrupalCafe №1 в Днепропетровске.
По плану состоится обсуждение двух тем:
1. Управление отображением материалов с помощью Display suite. Докладчик – Илья Станкевич (AMgrade). Уровень темы –Средний.
Илья расскажет о модуле Display suite, который позволяет избавиться от десятков шаблонов и дает возможность очень гибко управлять выводом содержимого через веб-интерфейс.
2. Module Relation. Докладчик – Артем Бердышев (AMgrade). Уровень темы – Средний.
В докладе Артем подробнее расскажет:
• о возможностях и недостатках references-модулей;
• о модуле Relation и его отличии от references;
• об интеграции модуля Relation с Views;
• приведет пример использования модуля Relation
Напоминаем, DrupalCafe имеет формат локальных встреч пользователей и разработчиков CMS Drupal. Организатором встречи является компания AMgrade с поддержкой Компьютерной Академии «ШАГ». Вход свободный.
Желающие быть в курсе будущих DrupalCafe в г. Днепропетровске могут написать письмо по электронной почте на cafe@amgrade.com и сообщить имя и контактный email. Оповещение придет за несколько недель до события с подробной информацией (дата, время, место, темы).
За дополнительной информацией можно обращаться, позвонив по телефону +38 (066) 123-77-54 или написав письмо на электронную почту e.shalenniy@amgrade.com
Источник: http://www.drupal.ru/node/71684
RAID5 это не только высокая скорость и надёжность при сбое одного диска, но и полный п… несколько дней возни при сбое двух дисков. Сервер где размещался drupal.ru и другие сайты в полуразобранном состоянии и пока он не соберётся обратно для сайта найдено новое место.
За время своей жизни drupal.ru сменил разные хостинги, от шареда на инфобоксе и балкона московской квартиры, до выделенных серверов в Masterhost и собственного сервера. Пришло время потестировать ещё одну площадку Gor Martsen предоставил ресурсы своего хостинга it-patrol.com под размещение drupal.ru, за что Гору огромное спасибо!
Сайт за время жизни на старом сервере успел корнями присосаться к разным директориям вне виртуального хоста, вроде всё что нужно я восстановил, если что отвалилось — пишите.
Источник: http://www.drupal.ru/node/71558
Ввиду работ по замене дисков на сервере, где размещён drupal.ru, сайт будет недоступен несколько часов, сегодня 15 ноября 2011. Время начала работ пока не известно, скорее всего в первой половине дня по московскому времени.
Источник: http://www.drupal.ru/node/71551
Opendeals друпал сборка для электронной коммерции
http://drupal.org/project/opendeals
Состав модулей типовой commerce, views, rules, features. Cборка не самая легкая, но тем не менее шевелится. Удобно реализована панель для управления нодами-представлениями продуктов. Добалено несколько правил для управления магазином и демо-контент.
Источник: http://www.drupal.ru/node/71542
Несколько часов 12 ноября 2011 сайт был недоступен. После сбоя питания у хостера на нашем сервере отказал один из дисков в RAID и произошли критические ошибки на нескольких ФС, в результате mysql не перезапустился при рестарте сервера. ФС восстановлены, все сервисы возвращены к работе.
Источник: http://www.drupal.ru/node/71421
Допустим мы имеем сайт ( придумаем ему синоним @SITE) в двух и более редакциях, например:
1) Сайт в интернете видят все люди – @site.live
2) Сайт на локальной машине – @site.dev
обновляем файлы сайтов вместе с модулями (откуда куда):
drush rsync –progress @site.dev @site.live
обновляем базы данных (при дополнительных параметрах, можно исключать/включать таблицы) (откуда куда)
drush sql-sync –no-cache @site.dev @site.live
обновляем только файловый контент сайтов (откуда куда)
drush rsync @site.dev:%files @site.live:%files
(по дефолту site/mysite.ru/files/ или sites/default/sites – кто любит плодить друпалы)
Хотим посмотреть список включенных модулей удаленного сайта
drush @site.live pml –status=enabled
Хотим включить модули удаленного сайта: admin_menu authcache
drush @site.live en admin_menu authcache -y
Теперь опишу как мы обозначаем синонимы, оригинал примера тут http://drupalcontrib.org/api/drupal/contributions–drush–examples–exam…
1. Создаем файл site.aliases.drushrc.php в любом из каталогов ~/.drush, /etc/drush, там где установлен drush, либо прописываем дополнительный путь для каталога синонимов
2. Приведу пример своего файла в котором описан сайт с двумя версиями live – живой сайт на хостинге, dev – сайт на локальной машине
<?php
$aliases['dev'] = array(
'root' => '/var/www/drupal7/',
'uri' => 'www.mysite.local',
);
$aliases['live'] = array(
'root' => '/home/user/projects/mysite',
'uri' => 'site.ru',
'remote-host' => 'mysite.ru',
'remote-user' => 'user-hosting',
'ssh-options' => '-p2222',
'path-aliases' => array(
'%drush' => '/home/user/bin/drush/',
'%drush-script' => '/home/user/bin/drush/drush',
#'%root' => '/home/user/projects/site/sites/',
'%dump-dir' => '/home/user/projects/site/dump/',
'%dump' => '/home/user/projects/site/dump/sro.sql',
#'%files' => 'sites/site.com/files',
),
);
?>
ps Особеннно радует работа с мультисайтиногом, т.е. даже когда у вас сайты в sites/ на одной установке drupal
Синхронизируем сайты drupal через drush
от lullabot Более подробно на английском
работает ли под вендой – незнаю, т.к. не использую её
Единственное не получилось у меня обновить сайт с одно удаленного сервера на другой удаленный сервер (локальный удаленный – удаленный локальный = работает)
Источник: http://www.drupal.ru/node/71139
Близится конец года, а с ним и “закрытие сезона”.
Предлагаю встретиться в неформальной обстановке, поговорить, проанализировать этот год, построить планы на будущий и просто пообщаться.
Так как теперь к нам потянулись новички – то устроить небольшую сессию ответов на вопросы и программирования на бумажке.
Дата: 12 ноября-суббота
Место: Бар “Министерство”
Время: 17 часов по Москве
Оставляйте свои предложения.
Источник: http://www.drupal.ru/node/71057
Всем привет.
Последние полтора месяца в основном занимался разработкой нового проекта – Plugin Detector.
скриншот:
Идея проекта – помочь разработчику (менеджеру, заказчику) определиться с выбором плагина для сайта. Вторая задача – показать новые и интересные плагины jQuery, которых возможно многие еще не видели и не знают о их существовании. На сайте есть как новые креативные плагины, так и заезжаные «ветераны» плагиностроения, типа Tablesorter, Lava lamp menu, попапы и д.р.
Сайт задумывался как очень узкоспециализированный, но с качественными материалами и продуманными выборками.
Идеи реализованные на сайте не новы. Решения, показавшиеся мне уместными, взяты и адаптированы под конкретную задачу.
Технические детали:
Версия друпала – 7
Рецензии
Вместо модуля nodereview были использованы обычные комментарии d7, расширенные дополнительными полями CCK, благо теперь на семерке это сделать не проблема.
Скриншот формы добавления рецензии:
примечание. форма выглядит брутально, но это временно
Модуль nodereview наверное, хороший, но первичная установка сразу показала, что работает он совсем не так как того требует изначально задуманный дизайн приложения. Его настройки не позволяли задать другую логику работы отзыва, а хакать модуль не хотелось.
Особенность рецензии в том, что пользователь может оставить только одну рецензию для плагина. Поэтому нужно было сделать ограничение кол-ва комментариев к ноде. Для того чтобы ограничить количество отзывов, пробовал использовать модуль Comment Limit, но он работал с ошибкой, запрещая редактировать отзыв (коммент). Модуль почему-то думал что нажимая кнопку сабмит (при редактировании коммента), пользователь пытается засабмитить второй коммент, и блокировал это действие. Его пришлось отключить и реализовать ограничение ручками.
Пока что комментариев на сайте нет. В будущем возможно сделаю (пока не уверен что они нужны). Т.к. обычные комменты уже заняты, нашел модуль commentfield, реализующий очень простые комменты (без древовидного обсуждения, без прикрепления полей и файлов к ним).
Голосования
Rate – голосование за ноду (up/down)
Поля в рецензиях с помощью CCK (Content Construction Kit), который в семерке в ядре (4 селекта для оценок и 3 текстовых поля)
скриншот CCK полей коммента (рецензии):
Сначала, голосование за ноду сделал на Fivestar. Звездочки меня уже утомили, их пихают везде с поводом, и без повода. Поэтому решил сделать что-то креативное, а-ля логотипы jquery вместо звездочек:
Однако в процессе последующей разработки было решено отказаться от логотипов jquery вместо звездочек, т.к. многие люди (дизайнеры, менеджеры и заказчики) просто не знают что это лого jquery и не способны не только оценить фишки, но что хуже – вообще теряются и не знают что делать с этим элементом. Звездочки я исключил, поэтому остался up/down, реализовал который я с помощью модуля rate.
С оценками в рецензиях все просто. При сохранении, удалении или редактировании комментария, вызываются соответствующие хуки (например hook_comment_insert), которые перехватывают системные действия, и привязывают к таким событиям мой произвольный код. Я сделал при вставлении и редактировании рецензии – вычисление общей оценки плагина. Сначала с помощью функции avg() в SQL запросе я узнаю среднее арифметическое для каждого критерия оценки (для всех рецензий, относящихся к одной ноде). Запрос выглядит примерно так:
SELECT avg(field_value) FROM field_table INNER JOIN comment...
потом таким выражением узнаю общую оценку плагина: ( a + b + c + d ) / 4
Вот хуки, которые вызываются при добавлении рецензии (или изменении ее оценок)
<?php
function mymodule_comment_insert($comment) {
}
function mymodule_comment_delete($comment) {
}
function mymodule_comment_update($comment) {
}
?>
Похожие плагины
SQL запрос от xandeadx: http://xandeadx.ru/blog/drupal/234
Пользовательский ввод
Для оформления контента плагинов:
СKeditor (из wysiwyg) + One click upload + Image resize filter
Не используются (выключенные модули):
menu
block
locale
views
Так как я не использую модуль menu, чтобы выделять текущий пункт меню, сделал примитивную функцию:
<?phpfunction lcustom($alias, $link_title ) {
if($alias == arg(0)) {
if($_GET['q'] == 'best' && isset($_GET['page'])){
echo '<a href="/'.$alias.'">'.$link_title.'</a>';
} else {
echo $link_title;
}
} else {
echo '<a href="/'.$alias.'">'.$link_title.'</a>';
}
}
?>
Подобной функцией пользуюсь уже не на первом проекте. Вызов функции выглядит так:
<?php
<div class="fooerMenu">
<span><?php lcustom('submit', 'Предложить плагин'); ?></span>
<span><?php lcustom('flagged', 'Помеченные ссылки'); ?></span>
<span><?php lcustom('reviews', 'Рецензии'); ?></span>
</div>
?>
Хостинг
IT-patrol – просто летает. Отклик в 50 мс – это вещь. Сервак отрабатывает очень быстро. Особенно заметно внутри админки – на служебных страницах, предыдущий хост тупил.
jQuery
Чтобы воспользоваться файлом jQuery, который использует ядро друпала, удалось найти такое решение. Все скрипты jquery, написанные для сайта, нужно завернуть в такую конструкцию:
(function ($) { ... })(jQuery);
Иначе эти скрипты не видят друпаловский jquery, а подключать еще один jquery показалось кощунственно. Интересно, что решение трудно было нагуглить, и в конечном итоге нашел его в исходниках друпаловских модулей.
jQuery, используемое в демках, в основном грузится с Google CDN
Дизайн
Делал сам. Готовые темы не использовались. Не всё в дизайне мне нравится. Есть вещи, которые сделаны грубо (например форма добавления рецензии или некоторые попапы), и они будут со временем исправлены. Есть вещи (дизайн, функционал), над которыми я много думал, несколько раз переделывал, но так и не достиг ощущения что они работают как надо. Постепенно буду подтачивать.
Кроссбраузерность
А нет ее. Плотно смотрю в хроме и фоксе, время от времени проверяю в опере. В ИЕ не смотрел, да в общем-то и не собираюсь. Данный сайт для разработчиков, а они не пользуются ИЕ (я надеюсь!). Во всяком случае, чтобы посмотреть работоспособность демки, можно скопировать ее адрес в ИЕ, и я считаю этого достаточным минимумом.
Флаги
Я не стал использовать модуль flag, хотя давно о нем знаю. Было проще написать один аякс-запрос, добавляющий ссылку в БД, чем связываться с многофункциональным модулем, который из коробки скорее всего не подойдет под мои задачи.
Авторизация
uLogin – рульная штучка, заработало сразу все как и хотел. Был сильно удивлен фактом работы из коробки, думал что минимум день придется потратить на вкуривание манов, и еще день на то чтобы настроить его под себя. А оказалось что установка заняла минут ну отсилы 10, а подкручивание под себя еще час-два.
Конечно, я фанат аватарок, но в данном случае аватарки мне кажутся лишними, т.к. будут отвлекать от самих рецензий и оценок. Поэтому я их не настраивал, не знаю насколько сложно.
При первой авторизации создается пользователь. Это мой первый сайт с авторизацией через соц. сети, поэтому ощущения необычные.
Друпаловскую регистрацию решил отключить вообще, чтобы не было путаницы в типах аккаунтов.
Для того чтобы показывать иконку социальной сети, через которую авторизован пользователь, я делаю так:
<?php if(strpos($user->init, '_google')){ ?>
<span class="Google" title="Вы вошли через Google аккаунт"></span>
<?php } else if (strpos($user->init, '_vkontakte')){ ?>
<span class="Vk" title="Вы вошли через аккаунт Вконтакте"></span>
...
?>
У меня есть далеко не все аккаунты, через которые можно авторизоваться в uLogin, поэтому я протестировал только некоторые способы авторизации. Если кто-то найдет баги в тех способах авторизации, которые я не тестировал, пожалуйста сообщите.
Да, еще пара моментов. Стандартный модуль для д7, который выложен на официальном сайте ulogin вставляет виджет авторизации только на странице авторизации (user/login, и наверное регистрации), однако совсем не сложно вставить этот виджет (по факту это iframe ) в любое место страницы. В модуле я строку с iframe (который выводит виджет авторизации на странице /user/register) закомментил.
Второй момент – редирект после авторизации. Из коробки, модуль ulogin после авторизации редиректит на главную, а если ты находишься на странице и уже хочешь что-то туда написать – это просто убивает. Поэтому чтобы сделать редирект на текущую страницу, (на которой пользователь нажал кнопку авторизации), пришлось немного подправить модуль. Если интересно что и как могу написать в комментах.
Кажись это все, что вспомнилось.
Прикрепленный файл Размер screen.png 69.67 кб review_add_form.png 7.72 кб review_fields.png 17.71 кб fivestar.png 5.95 кб users_table.png 34.31 кбИсточник: http://www.drupal.ru/node/70966
В четверг, 10 ноября, в 19:00, в Запорожье, в лекционном зале Компьютерной Академии «ШАГ», по адресу Рекордная 20, состоится DrupalCafe №4.
Темизация Drupal 7 с нуля. Докладчик – Алексей Попов. Уровень темы – начальный. Алексей продемонстрирует, как сделать тему для Drupal 7, располагая только готовой версткой и не используя Zen. Пошаговые формы в Drupal. Докладчик – Анатолий Герасимов (AMgrade). Уровень темы – начальный. Анатолий раскажет о вариантах реализации пошаговых форм в Drupal, а также покажет возможность их создания различными способами.Напоминаем, DrupalCafe имеет формат локальных встреч пользователей и разработчиков CMS Drupal. Организатором встречи является компания AMgrade с поддержкой Компьютерной Академии «ШАГ». Вход свободный.
Желающие быть в курсе будущих Drupal Cafe в г. Запорожье могут написать письмо по электронной почте на cafe@amgrade.com и сообщить имя и контактный email. Оповещение придет за несколько недель до события с подробной информацией (дата, время, место, темы).
За дополнительной информацией можно обращаться, позвонив по телефону +38 (066) 123-77-54 или написав письмо на электронную почту e.shalenniy@amgrade.com
Источник: http://www.drupal.ru/node/70472
В этот четверг, 27 октября, в 19:00, в Харькове пройдет второе по счету DrupalCafe.
Место проведения – Выставочный центр «РАДМИР ЭКСПОХОЛЛ», по адресу ул. Академика Павлова 271 (м. Академика Павлова).
1.Drupal6. Musthave modules. Алексей Гайдабура (WDG).
2. Drupal7 Deploy using Apache Ant – Дмитрий Светличный (WDG). Решение проблем синхронизазии между dev и production версиями БД.
3.Unit-тестирование в Drupal. Selenium – Дмитрий Олареско
UPD:
4. Мобильная разработка под
PhoneGap: прогулка по пересеченной местности с препятствиями
* PhoneGap что это вообще такое?
* В каких условиях работает?
* Что предоставляет?
* Время собирать грабли
* …
* Profit ли?
Участие бесплатное, в программе как обычно кофе+плюшки.
Желательно предварительная регистрация, всем желающим – отпишите в комментарии или в контакты ниже.
https://docs.google.com/spreadsheet/viewform?hl=ru&formkey=dEFMMVd3SXRxe…
По всем вопросам можно обращаться:
+38(099)3525316 – Алексей Гайдабура, gaydabura@gmail.com skype: alexey.gaydabura
+38(067)2802207 – Иван Мосев, i.k.mosev@gmail.com, skype: i.k.mosev
Спонсор – WDG (http://wdg-company.com/)
Источник: http://www.drupal.ru/node/70429
Итак, новости! Во-первых, наш генеральный спонсор – компания Microsoft!
0. Конференция состоится 3 декабря.
1. Формат – 1 поток.
2. Конференция пройдет там же, где и в прошлый раз – метро ВДНХ, павильон Электрификация http://www.expo-elektra.ru/kak-nas-najti.html . Будет интернет! Все недочеты организации прошлой конференции учтем.
3. Конференция будет бесплатной!
Дорогие гости из других городов, можете покупать билеты. Дата не поменяется, событие состоится!
Открыта регистрация на сайте http://drupalconf.ru/user/register Если вы участвовали в прошлой конференции, вам необходимо зайти на сайт и обновить информацию в профиле.
Открыто голосвание и прием докладов! зарегистрированные пользователи могут добавить доклад, перейдя по ссылке http://drupalconf.ru/node/add/session
Голосовать за доклады зарегистрированные пользователи могут по адресу http://drupalconf.ru/sessions
Начало регистрации: 9:30
Окончание конференции: 19:00
Источник: http://www.drupal.ru/node/70326
Первая, сентябрьская встреча сообщества Drupal в Иркутске доказала, что эта CMS интересна и востребована.
Продолжаем! Ждем всех, кто знаком или только хочет познакомиться с лучшей бесплатной системой управления сайтами, в четверг, 27 октября в кофейне “Белая ворона”: http://vkontakte.ru/coffeenbook
Формат встречи:
Несколько коротких докладов (15-20 минут), интересных, в первую очередь, новичкам в Drupal. Неформальное общение Drupal-разработчиков – обмениваемся опытом, знакомимся с коллегами Распитие кофе/чая/других напитков.В программе 2 доклада (пока):
“Насколько глубока кроличья нора?”. Продвинутое применение модуля Views (доклад, который не вошел по времени в прошлую встречу) Интернет-магазин на Drupal? Бредовая идея!Начало в 19:00
Адрес кофейни “Белая ворона”: Карла Маркса, 37. Вход через магазин цветов “Рассвет”, находится между Л’Этуалью и Золотом Якутии. Заходите в цветы, немного проходите вперед и спускаетесь в цокольный этаж, идите на запах кофе.
Drupal Cafe Иркутск в социалках:
“В контакте”: http://vkontakte.ru/event31257801
“Facebook”: http://www.facebook.com/event.php?eid=240592689322661
Иркутяне, добавляйтесь!
Есть вопросы? Звоните: +7 914 8888621
Комментировать можно здесь и на drupal4all: http://drupal4all.ru/node/28
Источник: http://www.drupal.ru/node/70199
Предлагается для тестирования и использования новый модуль оплаты для Drupal Commerce через шлюз Робокасса
Итак, тестируйте и пишите отзывы по Commerce Robokassa
ЗЫЖ модуль разработан в сотрудничестве с http://www.internet-marketing.by/
Источник: http://www.drupal.ru/node/70117
Необходимо разработать модуль Яндекс.Карты для Drupal 7? Прошу сообщить стоимость и сроки.
Примерное ТЗ:
ТЗ модуля Я.Карты для Drupal 7:
- возможность выбора Народной карты Яндекса
- при добавлении ноды пользователь ставит на карте маркер
- при просмотре ноды отображается сама нода и карта с маркером пользователя
- если это возможно, то сделать выбор – что показывать на маркере (Заголовок ноды и, например, поля из ноды)
- (можно и без этого пункта) находясь на странице термина, вывести маркеры всех нод принадлежащих этому термину на карту
Исполнителям: Данный модуль планируется выложить на drupal.ru.
Заказчикам (таким же как я): Думаю модуль Я.Карты для Drupal 7 нужен не одному мне, поэтому желающие скинуться приветствуются.
Источник: http://www.drupal.ru/node/69824
В нашей провинции не так уж много всего этого интернета, но иногда кое-что случается. Все кто работает по Drupal во Владивостоке и Приморье приглашаются. Еще даже есть время заявить доклад. Я хотел это сам сделать, но пока здоровье немного не позволяет. Но в любом случае будет интересно пообщаться с коллегами и в кулуарах. Вход свободный. Подробности – www.vldc.ru
UPD: Конференция прошла на ура. Мои впечатления http://shaman.asiadata.ru/node/570
Доклады принимались в PDF, велась видеозапись. Так что, как будут материалы в сети, скину ссылки отдельным постом. Некоторые доклады реально увлекли.
UPD: Отдельного поста пока не получается. Доклады конференции можно найти на YouTube http://www.youtube.com/playlist?list=PL22D4523E5E229D54
Спасибо GrawlCore за труды по заливке. Плюсаните его там на Хабре.
И, кстати, начались шевеления насчет провести во Владивостоке хотя бы Drupal Cafe.
Источник: http://www.drupal.ru/node/69814
День добрый.
Грядёт Drupal 8 и в нём будет новая тема оформления. Как в 7-ке на смену Garland пришла Seven, так и в 8-ке будет новая тема, в том числе и тема админки.
Хотялось бы поднять тему разделения темы сайта и темы админки и узнать, кто какую тему устанавливает для админки. На данный момент для Drupal 7, по моему мнению популярны три темы:
Seven – стоит по умолчанию RootCandy Rubik (требует наличия темы Tao)
На мой взгляд Rubik – наиболее удобная и проработанная тема для админки. А для быстрой навигации по страницам настройки модулей есть страница http://www.site.ru/admin/index.
Поделитесь какими темами для админки Вы пользуетесь.
Только вместе мы сможем достичь светлого будущего.
Attached poll “Какую тему вы используете для админки”.
Register or login to poll
Results:
seven: 29 голосов
rootcandy: 6 голосов
rubik: 17 голосов
свой вариант: 6 голосов
OM Admin Theme: 0 голосов
Polpo Admin Theme: 1 голос
Источник: http://www.drupal.ru/node/69727
Решил на сайте сделать корзину в сплывающем окне.
Прежде всего хочу сказать спасибо Splash за помощь по выковыриванию данных из корзины.
И за отличный модуль UC JS CART который очень был кстати.
Были использованы модули uc ajax cart для добавления динамической корзины, colorbox для попап окон, uc js cart для динамического подсчета товара, ну и немного допилены tpl и css.
Итак первое это uc ajax cart. В нем есть папка с тимплейтами, немного правим .tpl для реализации внешнего вида и некоторого функционала.
Сюда же добавим скрытый div с содержимым корзины и ссылку colorbox для показа этого содержимого в попап окне.
У меня это так:
По внешнему виду так:
Там еще функция для склонения товар, товары, товаров есть:
Далее как вы увидели в шаблоне есть вывод содержимого корзины <?php print ubercart_popup(); ?>
Это и есть функция которая выдирает содержимое корзины писать её нужно в template.php
Выглядит она так:
В общем содержимое уже выводится в попапе, только вот есть несколько моментов. Это не срабатывает яваскрипт для обновления позиций товара из модуля uc ajax cart(как решить не знаю). По этому поводу я отключил в настройках модуля фитчу “Ajaxify cart page”.
Далее установите модуль uc js cart – как раз он и позволяет динамически подсчитывать стоимость.
Вот практически и все. Остальное можно сделать средствами css.
Осталось одно, когда мы открываем корзину и добавляем или уменьшаем количество позиций, в самом блоке корзины при закрыти попап окна нихера не меняется. Скорее всего нужно дописать кусок яваскрипт кода для обновления.(займусь позже)
У меня это выглядит вот так все:
Если кто то из читателей решал этот воброс более изящно, корректно, быстро и еще как нить иначе расскажите плиз.
Всем спасибоу!
Источник: http://www.drupal.ru/node/69695
Ну вот и пришло время закончить обжовывать данную тему.
У меня кончилось горючее и печеньки
Сегодня рассмотрим настройки и внешний вида материалов, а также пройдемся (еще раз) механике трансформации ноды ))))
Актуально при постройке структуры на основе нод, закрепление материала освещенного в части 2
Глава 2 Карточка компаниитемизируем ноду
Глава 3 Типы материаловПробежимся по 3-ем основным материалам
Глава 4 ЗаключительнаяЗа сим господа, я завершу писать на эту тему.
В скором времени постараюсь сделать дамп и выложить на суд общественности для допилки и закидывания помидорами.
Вместе все-таки легче делать. У меня уже глаза мылятся..
И все-таки, а нахера оно надо?
Отвечу: помощь манагерам или персоналу без финансовых вливаний. Повышение личного экспириенса. Могу я, значит может и друпал, только четко поставить задачу.
Можно построить ледокол из обычной лодки. Все ограничено Вашей фантазией или конкретной задачей.
часть 1
часть 2
часть 3
————–
оригинал
————–
ДАМП
SQl дамп
Дамп сайта целиком
Attached poll “Делать дамп?”.
Register or login to poll
Results:
нах: 4 голоса
давай: 15 голосов
давай, я помогу идеями и реализацией: 5 голосов
давай-давай, я его подшаманю и продам, а тебе шиш: 2 голоса
не-не-не, я с 1С останусь: 0 голосов
Источник: http://www.drupal.ru/node/69691
15 октября 2011 в городе Краснодаре будет проводиться BarCamp, силами Южного сообщества будет организована секция Drupal, в рамках которой будет несколько докладов и бурное их обсуждение.
Темы и докладчики:
Почему Drupal? Или немного из своего опыта. Докладчик: Виктор Степаньков
Инструменты для SEO и интернет-маркетинга в Drupal. – Докладчик: Пётр Селфин
Продаем бесплатное – ищем ценность OpenSource решений на примере CMS Drupal. Докладчик: Александр Дубовской
Красивые формы в Drupal 7. Докладчик: Богдан Романенко
Мероприятие состоялось, считаю довольно успешно.
Видео и тексты презентаций будут выложены на http://drupalyug.ru.
Источник: http://www.drupal.ru/node/69365
Друзья, мы рады сообщить вам приятную новость! Мы начали принимать заявки на доклады на DrupalCamp Donetsk 2011, который состоится 25-27 ноября в отеле Ramada (бывш. Атлас). Подать заявку можно на сайте события до 31 октября, после чего пройдет голосование.
В программе DrupalCamp 14 докладов, BoF’ы (самоорганизующиеся обсуждения, спонтанные доклады и прочие активности), дополнительный день для код спринта, а также конкурсы и вечеринка, где будет звучать Drupal-rock!
Во время DrupalCamp вы сможете повысить свой уровень владения Drupal, завести новые профессиональные контакты, найти сотрудников или работодателя. Ожидается более 100 участников из Украины, России и из-за рубежа!
Благодаря неоценимому вкладу наших спонсоров, активных участников Drupal-сообщества, мероприятие будет бесплатным! Для того, чтобы стать участником, достаточно просто зарегистрироваться на сайте Кемпа. Предложение для спонсоров находится здесь.
Источник: http://www.drupal.ru/node/69350
Во вторник 4.10.2011 в 19:00 пройдет третья встреча Drupal кафе Москва
Место проведения уже традиционно – ул. Покровка 38/1 Читалкафе (вход с Лялиного переулка) карта
На этот раз у нас будет несколько докладов.
1. Microsoft и Drupal (PVasili)
2. Настройка от боевого, до сервера разработки в VirtualBox (В. Касихин)
3. Минидоклады: инструменты разработки в Drupal, меры защиты сайта (Александр Графов)
Оставшееся время, как всегда посветим остальным актуальным вопросам.
Источник: http://www.drupal.ru/node/69238
В четверг, 6 октября, в 19:00, в Запорожье, в лекционном зале Компьютерной Академии «ШАГ», по адресу Рекордная 20, состоится DrupalCafe №3.
По плану состоится обсуждение двух тем:
Views + Context = Layout. Докладчик – Павел Шейман (AMgrade). Уровень темы – начальный. Павел расскажет о модулях Views и Context и том, как с их помощью можно контролировать вывод материалов на странице. Перенос материала (Content deployment). Докладчик – Ефим Евтушенко (AMgrade). Уровень темы – начальный. Ефим сделает обзор модулей, позволяющих переносить контент с одного drupal сайта на другой, и расскажет о возможностях этих модулей, их плюсы и минусы.Напоминаем, DrupalCafe имеет формат локальных встреч пользователей и разработчиков CMS Drupal. Организатором встречи является компания AMgrade с поддержкой Компьютерной Академии «ШАГ». Вход свободный.
За дополнительной информацией можно обращаться, позвонив по телефону +38 (066) 123-77-54 или написав письмо на электронную почту e.shalenniy@amgrade.com
Источник: http://www.drupal.ru/node/69155
Итак, окончательная информация:
Дата: четверг, 29 сентября, 19:00.
Место проведения Drupal Cafe в Иркутске – кофейня “Белая ворона”: http://vkontakte.ru/coffeenbook. Адрес: Карла Маркса, 37. Вход через магазин цветов “Рассвет”, находится между Л’Этуалью и Золотом Якутии. Заходите в цветы, немного проходите вперед и спускаетесь в цокольный этаж, идите на запах кофе.
В программе – 3 доклада (20-30 минут):
“Насколько глубока кроличья нора?”. Продвинутое применение модуля Views (уровень – начальный и средний). “Ускоряемся”. Быстрая разработка шаблонов Drupal при помощи “базовых” тем (уровень – начальный и средний). “Мелочи в Drupal”. “Подводные камни”, о которых лучше знать заранее. (уровень – начальный).Будем рады видеть всех, кому интересен Drupal и вообще тема создания сайтов и веб-сервисов.
Drupal Cafe Иркутск в социалках:
“В контакте”: http://vkontakte.ru/event30298356
“Facebook”: http://www.facebook.com/event.php?eid=172728356140202
Иркутяне, добавляйтесь!
Есть вопросы? Звоните: +7 914 8888621
Комментировать можно здесь и на drupal4all: http://drupal4all.ru/node/25
Афиша мероприятия
Источник: http://www.drupal.ru/node/69127
В середине сентября опубликована публичная версия стандартов веб-разработки в версии 1.0. Документы подготовлены представителями Ассоциации интернет-разработчиков при поддержке Российской ассоциации электронных коммуникаций (РАЭК) и компании Microsoft.
Настоящая редакция затрагивает стандартизацию основных этапов разработки и продвижения сайта, а также представляет для ознакомления образцы основных документов, которые сопровождают рабочий процесс от момента знакомства Заказчика и Исполнителя до выставления счета на оплату.
Приведенные на сайте документы носят рекомендательный характер для исполнения следующих работ:
· разработка веб-сайта
· разработка дизайна веб-сайта
· продвижение веб-сайта в поисковых системах
Окончательное принятие стандартов прошло на заседании Комиссии РАЭК по веб-разработке, которое состоялось в рамках Общего собрания членов РАЭК 12 сентября 2011 года.
По мнению создателей, эти документы могут быть полезны как для начинающих веб-разработчиков, так и для компаний, уже существующих на рынке.
Ознакомится можно тут http://wsdoc.ru
Источник: http://www.drupal.ru/node/69016
Предлагаю провести вторую встречу Drupal Cafe в Субботу 1 октября в 15:00 (так чтобы удобно было добраться в Ростов и из Ростова гостям из других городов, если у них будет возможность приехать).
Будет это в Yo Budda (Б.Садовая, 2), что крайне удобно приезжим (очень близко к вокзалу, сами смотрите).
На повестке дня:
1. Будут новички – вот и познакомимся
2. Баркэмп Краснодар – кто едет
3. Сообщество стартаперов в Ростове – почему бы не рассказать им про друпал
4. Succes stories – посиделки в кафе не располагают к каким-либо структурным докладом, но располагают к небольшим историям из личного опыта, ради этого стоит отвлечься на пару часов и посидеть с коллегами
Телефон для связи 89287700850
Attached poll “Примерно сколько человек ждать, сообщите пожалуйста”.
Register or login to poll
Results:
Я буду: 0 голосов
В другой раз: 0 голосов
Источник: http://www.drupal.ru/node/68992
Может кому пригодится http://druit.ru/blogs/views/203
Источник: http://www.drupal.ru/node/68935
Не знаю было ли такое решение или нет, по крайней мере я не нашел.
Раскуривал эту тему очень давно. Решений на форуме приведено уйма, но не все по моему удачные (требуют лесть в код или создавать отдельные шаблоны). В общем есть “правильное” решение которое думаю и предлагал девелопер.
После установки Колорбокса лезем в его настройки и включаем опцию “Enable Colorbox inline” (а Enable Colorbox load поможет вам с разными формами)
После чего создаем ноду\блок и в его теле пишем такой код
<a class="colorbox-inline" href="?width=500&height=500&inline=true#myid">link</a> <div style="display: none;"><div id="myid"><?php print render (node_view(node_load(19)), FALSE, TRUE);?></div></div>Где, width=500 – высота окна, height=500 – ширина окна, link – отображаемая ссылка на окно, myid – название вашего дива, 19 – ID ноды содержимое которой хотим вывести в окно.
Сохраняем в формате PHP code и радуемся)))
Источник: http://www.drupal.ru/node/68873
Сделал модуль ImageAPI GraphicsMagick интегрирующий инструментарий для работы с изображениями GraphicsMagick c ImageAPI. С помощью модуля можно применять GM для обработки изображений, например в модуле ImageCache и ImageCache Actions (вместо встроенного в php GD2 и ImageMagick).
На данный момент в нем интегрированы простейшие действия (изменения размеров, кадрирование и т.д.). Также реализовал поддержку наложения водяных знаков с помощью этого модуля в модуле ImageCache Actions: http://drupal.org/node/1284668 .
Больше всего модуль будет полезен программистам, способным написать свое действие (image action) но также подойдет и обычным пользователям для снижения нагрузки на хостинг и ускорения “тяжелых” операций с изображениями (естесственно, при условии, что вы можете установить сам GraphicsMagick – не на каждом хостинге это доступно).
Видел на Д.ру уже подобную тему, но там речь шла о модуле для D7. Этот модуль – только для D6.
Сравнение с ImageMagick ImageAPI инструментарием. Этот модуль не использует GM как IM (GM частично поддерживает команды IM). В целом, я считаю достоинством то, что это отдельный ImageAPI инструментарий. Например, этот модуль знает про существование gm утилиты и ее команд, и может запускать другие команды gm, а не только convert. Кроме того, GM на одних и тех же командах может вести себя не так, как IM, потому что его исходный код отличается. Этот модуль запускает каждое действие с изображением как отдельную операцию с временным файлом. Данное поведение необходимо, чтобы полноценно использовать различные команды (GM не умеет группировать _все_ команды в одну). Это несет в себе потенциальные недостатки (небольшое снижение производительности и возможную потерю качества результирующего изображения при многократных последовательных операциях с потерей качества), но обходится с помощью своего действия (image action). Этот модуль работает в “сыром” режиме – каждое действие имеет полный доступ к командной строке (на самом деле, действие само запускает GM) что позволяет делать с изображением все что угодно, включая запуск любых сложных операций и внешних программ обработки изображений.Источник: http://www.drupal.ru/node/68783
Желающим! Наблюдающим! И просто Сочувствующим!
Общение, общение, общение – активное, креативное, позитивное, попивательное, пожевательное, сногшибательное!Место встречи: традиционное (м. Китай-город, Ёлки-палки – Москва, ул. Солянка, 1/2, стр. 1).
Время: известное (ориентировочно 24.09.2011 в 18:30).
Повестка: дружить, общаться, развлекаться.
Пишите в теме, кто постарается присутствовать.
Источник: http://www.drupal.ru/node/68719
Весьма популярная проблема “пропавшего” CKeditor или его частей. Во время разработки своего последнего сайта столкнулся с ней раза три и все по разным причинам. Отпишусь, пожалуй. Сразу скажу, что решения проблем в большинстве случаев очевидные, но сразу в голову не всегда приходят.
Возможная проблема 1Проблема: Установили модуль, но не закинули в него сам редактор.
Решение: Идем на страничку редактора, качаем и закидываем файлы и папки редактора в подпапку “ckeditor” папки модуля. В этой подпапке должен быть файл-подсказка COPY_HERE.
Проблема: Панелька просто не появляется. Или появляется, но не у всех пользователей.
Решение: Во первых правильно должны быть настроены разрешения ролей самого Drupal (mysite/admin/user/permissions). Во вторых CKeditor нужно вручную привязывать к новым ролям. Идем в настройки редактора (mysite/admin/settings/ckeditor), выбираем профиль, например Default и напротив него нажимаем “изменить”. В первой группе настроек “Основные настройки” выставляем галочки нужным новым ролям.
Проблема:
У меня такое произошло после выгрузки сайта на хостинг.
Решение: Помогло удаление модуля и переустановка+перенастройка прямо на хостинге. Корень проблемы так и не нашел.
Пробелма: не открывается файловый менеджер IMCE или нет кнопки “Browse” при попытке добавить картинку в сообщение.
Решение: идем в настройки редактора (mysite/admin/settings/ckeditor), выбираем профиль, нажимаем напротив него “изменить”. Далее в группе Настройки файлового браузера, в File browser type (Link dialog) выбираем IMCE.
Проблема: При работе с IMCE нет кнопки “загрузить” и “Создать дирректорию”.
Решения: Во-первых, чтобы создать поддиректории нужен модуль IMCE mkdir. Кнопки у меня пропали из-за конфликта с “modernizr”, который использовал при вертске.
UPD: предложенные решения помогли именно мне, в то время как не помогли другие. Таких “других” очень много. Смотрите и их, напрмиер кликнув по тегу ckeditor.
Источник: http://www.drupal.ru/node/68678
Есть мысль провести в Иркутске встречу в формате Drupal Cafe.
Ориентировочная дата – четверг, 29 сентября, 19:00. Место и программа уточняются.
Напомню – формат Drupal Cafe предполагает несколько коротких докладов (15-20 минут), а так же дружеское общение с распитием кофе/чая/других напитков.
Иркутяне, присоединяйтесь!
Drupal Cafe Иркутск в социалках:
“В контакте”: http://vkontakte.ru/event30298356
“Facebook”: http://www.facebook.com/event.php?eid=172728356140202
Комментировать можно здесь и на drupal4all: http://drupal4all.ru/node/25
Источник: http://www.drupal.ru/node/68632
Всех программистов поздравляю с профессиональным праздником! Успехов в работе и не бросайте Друпал Без вас тут будет тяжело
Источник: http://www.drupal.ru/node/68471
Приглашаем всех самарских (и не только самарских!) друпалеров встретиться на следующей неделе и обсудить дела насущные.
На первом собрании предлагается:
- познакомиться
- пообщаться
- обсудить возможность организации мероприятия как у взрослых: с проектором и докладами
Beer club в Paint House, http://dosug.samara24.ru/restaurants/company/21476
Время проведения:суббота, 17 сентября, 17:00
Карта:
мой телефон (Антон)
+7 917 602 37 90
Attached poll “Место проведения”.
Register or login to poll
Results:
Beer club (Paint House): 7 голосов
У Швейка: 3 голоса
Frau Muller: 5 голосов
Источник: http://www.drupal.ru/node/68264
Сделал модуль Views Tracker, позволяющий создавать высокопроизводительную замену родному трекеру из ядра. Модуль основан на идеях модуля Tracker 2, но по сути является абсолютно новым, написанным с нуля проектом.
Актуальность модуля можно почувствовать на своей шкуре здесь, на Drupal.ru, где трекер, похоже, кешируется, что убивает основную идею – быстрое отслеживание изменений.
Чтобы получить максимальный прирост производительности от использования модуля, нужно создать view по аналогии с tracker, встроенным в Views, но использовать поля, аргументы, фильтры и критерии сортировки из групп модуля Views Tracker везде, где это возможно:
для общего трекера используйте группу Views Tracker для трекера пользователя используйте группу Views Tracker UserСписок дополнительных фич и различий между Views Tracker и Tracker2:
В отличие от Tracker 2, Views Tracker имеет индекс по типу материала. За счет этого можно создавать разные трекеры для разных групп материалов без потерь скорости. В отличие от модуля Tracker 2, Views Tracker имеет поддержку модуля Node Comments Views Tracker содержит значительно меньше кода, чем Tracker 2. Tracker 2 не поддерживается – значительные изменения происходят за кадром. Видимо, сказывается то, что модуль используется на Drupal.org Tracker 2 имеет интерфейс пользователя, а Views Tracker нужно использовать вместе с модулем Views (или написать свой интерфейс). Поддержка Views в Tracker 2 тоже есть, но почему-то отсутствует в релизе (те самые изменения “за кадром”).Модуль только выложен, возможно имеет баги. Приглашаю желающих к тестированию.
Источник: http://www.drupal.ru/node/68023
Рад общественности представить новый модуль. Это Ajax microblog. Данный модуль реализует функционал Twitter и будет развиваться в этом направлении. Целью модуля или пакета модулей является организация полной копии функционала предоставляемой всеми известной системой микроблогинга Twitter.com
Ссылка на проект: http://css.mirocow.com/projects/microblog
скачать тут: http://css.mirocow.com/projects/microblog/repository
Спонсор модуля: www.ruh.kz
Прикрепленный файл Размер e6674f3201affd625334c0d00cb96301.jpg 71.2 кбИсточник: http://www.drupal.ru/node/67970
На одном очень популярном ресурсе посвященном различным ЦМС, в комментах о друпале нашел следующую запись о минусах системы:”Грубое русское сообщество”.
Это ведь мы с вами. И правда грубим и хамим новичкам. И я в том числе( Давайте будем добрей и терпеливее.
п.с. такое вот сегодня лирическое настроение
Источник: http://www.drupal.ru/node/67917
Только что опубликовал новость как комментарий в посте о модуле рассылок.
Здесь для удобства обсуждения еще раз расскажу как настроить автоматическую e-mail рассылку практически любых материалов с вашего сайта.
Настроить так, чтобы вебмастер не тратил время на составление рассылки и ее отправку.
Материалы публикуются на сайте и тут же попадают в рассылку, на основе определенных правил. Эти правила задаются через views.
Как это делается – всего 3 простых шага:
Берете мой модуль подписки – он нужен для набора подписчиков. Или используете “ручную” форму подписки от сервиса Настраиваете любой фильтр через views на отдачу материалов в виде rss Скармливаете один, два или сколько вам нужно вариантов rss сервису рассылок и… вуаля: письма уходя автоматически.Подробнее о том как скормить и настроить rss для отправки писем.
Это не просто банальное транслирование rss на e-mail. Вы получаете:
Возможность настроить дизайн рассылки под свой корпоративный стиль; Гибкую настройка правил отправки сообщений; Полное отсутствие рекламы; Использование языка Smarty для ветвлений и циклов; Возможность импорта списка подписчиков. Полный контроль режима отправки (моментальный автоматический, по расписанию или ручной); Плюс остальные возможности сервиса рассылок.Предпоследний и последний пункты требует отдельного пояснения.
Благодаря режиму отправки по расписанию, вы фактически можете организовать регулярные дайдежесты материалов сайта на e-mail. Или, наоборот, отправлять каждый новый материал “моментально” (раз в час).
Из остальных возможностей сервиса, если ваш проект коммерческий вам может пригодиться возможность персонализации и сбора любого количества дополнительных данных о подписчике. Это затем можно использовать для сегментирования списка рассылки.
Добавьте к этому всю мощь модуля views по формированию rss лент и в ваших руках очень гибкий и мощный инструмент для автоматизации работы с базой подписчиков.
Появились вопросы, спрашивайте – отвечу.
P.S. Если у вас уже собрана база подписчиков легально (!), то вы можете ее импортировать.
Источник: http://www.drupal.ru/node/67894
Продолжаем разгребать Вьюсы, Флаги и панели.
В данной статье рассмотрим блок (views) Часть Б нашего интерфейса и его работу.
Под катом трафик 1,3 мб.
Здесь мы рассмотрели только одну вьюху. Дальше больше! Когда протрезвею тогда посмотрим настройки флагов, настройки Rules и много еще чего вкусного.
часть 1
часть 2
часть 4
————–
оригинал
Источник: http://www.drupal.ru/node/67879
Вчера вечером тихо и незаметно вышел Drupal 7.8.
Качать, как обычно, на http://drupal.org/project/drupal
Были исправлены ошибки и сделаны небольшие улучшения API. В этом релизе нет исправлений ошибок безопасности. Новые возможности будут добавляться в предстоящем релизе Drupal 8.0.
Подробней написано тут http://drupal.org/node/1265840
Источник: http://www.drupal.ru/node/67868
Сабж!
Задался вопросом “Как грамотно вставить таблицу в друпал, с использованием полей и т.д.?“, в поиске здесь наткнулся на топик “Вывести таблицу excel на страницу“. Вспомнил, что раньше видел пару модулей на drupal.org по теме, поискал и нашел.
Итак…
Tables Filter Module
Самый, наверно, простой табличный модуль. Ставите его, включаете в Форматах Ввода этот фильтр и, используете токены вида [table ] для редактирования таблицы. Пример построения таблицы – здесь.
Никакого импорта файлов и т.д.
Дешево и сердито.
Slickgrid
Более продвинутый вариант.
Удобные средства редактирования таблицы, приличное количество фич. Импорта файла с таблицей, похоже нет.
Имхо, удобен, если таблицы приходится добавлять нечасто и небольшие.
Sheetnode
Самый продвинутый модуль.
Для импорта использует http://phpexcel.codeplex.com/ и https://github.com/infojunkie/socialcalc
Некоторые возможности (на сейчас, модуль развивается):
Экспорт-импорт CSV, XLS, XLSX, OOCalc, Google Docs Spreadsheets (в разработке), etc.
Экспорт, помимо перечисленного, в PDF.
Значения таблиц могут раскидываться по (cck)полям.
… и многое другое.
Стабильная версия – только для 6ки, и разработка – для 7ки.
За подробностями лучше на страницу модуля.
Источник: http://www.drupal.ru/node/67684
*** Модуль нуждается в тестировании ***
Написал фактичеки “вслепую”, нет возможности протестировать в реальных условиях
Установка
В настройках своего аккаунта вебмани:
УРЛ результата: ВАШДОМЕН/webmoney/result
УРЛ успешной оплаты: ВАШДОМЕН/webmoney/success
УРЛ неуспеха: ВАШДОМЕН/webmoney/fail
Тип подписи: MD5
Настройки модуля тут admin/commerce/config/payment-methods => Webmoney => Enable payment method: Webmoney
кошелёк при расчёте выбирается по дефолтной валюте магазина
Прикрепленный файл Размер commerce_webmoney.zip 19.3 кбИсточник: http://www.drupal.ru/node/67677
Я думаю, каждый друпалер использует на своих сайтах модули Views и Pathauto. Да, на некоторых сайтах можно без них обойтись, но, фактически, оба этих модуля давно входят в джентльменский набор при запуске нового сайта, поэтому нет нужды объяснять, для чего они используются. Некоторое время назад я столкнулся с проблемой, которая не то, чтобы была критичной, но беспокоила моё эстетическое чувство и не давала мне считать свою работу выполненной. Дело было связано с тем, что views и pathauto по-разному представляют пользователю одни и те же вещи — как-то заголовки материалов и имена пользователей.
До некоторых пор это не особенно бросается в глаза, но представим себе следующую ситуацию — у вас есть вьюс, с помощью которого вы выводите список материалов по адресу example.net/content. Если задан аргумент, вьюс выводит только материалы за авторством конкретного пользователя. Самый простой способ сделать это — указать в качестве аргумента User:Uid. В результате получается, что при запросе вида example.net/content/1 будут отображаться все материалы, созданные суперпользователем, при запросе example.net/content/150, пользователем с uid 150 и так далее. Это хороший способ, у которого есть один минус — URL example.net/content/150 «некрасив» и мало, о чём говорит стороннему наблюдателю (хотя я часто использую такие конструкции для вьюсов, «закрытых» для пользователя).
Сделать URL «более говорящим» можно достаточно легко, если использовать в качестве аргумента не User:Uid, а User:Name. В результате мы получаем красивые адреса вроде example.net/content/ingumsky, едва взглянув на которые можно понять, что содержимое страницы будет иметь отношение к тому или иному пользователю (другое дело, какое отношение они к нему имеют . В принципе, такого решения уже вполне достаточно, если бы не одно «но»…
Например, представим, что на нашем сайте есть пользователи с именами Ingumsky, John Smith, jack_brown, S.White, He is Awesome, Паша. Мы включаем на сайте модуль pathauto и с его помощью создаём для каждого пользователя красивые адреса страниц профилей: example.net/users/ingumsky, example.net/users/john-smith и так далее. и здесь обнаруживается, что в адресах страниц пользователей, на страницах блогов и так далее синонимы имён пользователей отличаются от того, что принимает views в качестве аргумента. Сравните, как выглядят аргументы во Views и синонимы Pathauto [в квадратных скобках] для каждого из перечисленных выше пользователей (обращаю внимание, что в настройках аргумента включены опции «lowercase» и «turn spaces into dashes»:
example.net/content/ingumsky — материалы пользователя Ingumsky [ingumsky]
example.net/content/john-smith — материалы пользователя John Smith [john-smith]
example.net/content/jack_brown — материалы пользователя jack_brown [jackbrown]
example.net/content/s.white — материалы пользователя S.White [swhite]
example.net/content/he-is-awesome — материалы пользователя He is Awesome [he-awesome]
example.net/content/паша — материалы пользователя Паша [pasha]
Как видно, Views принимает в качестве аргумента именно имя пользователя, которое при указанных чуть выше настройках, просто переведено в нижний регистр и избавлено от пробелов (они заменены на дефисы). Но Pathauto при создании синонима вносит больше изменений в исходный текст. В результате в тех случаях, когда в именах пользователей встречаются знаки подчёркивания, точки, кириллица или даже некоторые английские слова, которые неважны для SEO (is, are и тому подобное), аргумент отличается от того синонима, который нам предлагает Pathauto.
Как я написал в самом начале записи, это не критичная проблема, но она… м-м-м… раздражает. Хочется, чтобы всё было красиво и «единообразно». Вопрос состоял в следующем: Как добиться того, чтобы скармливаемый вьюсу аргумент всегда выглядел так же, как выглядит ник в URL, созданном Pathauto?
Первоначальный поиск по этим вашим энтернетам не дал нужного мне результата, и я даже обратился за помощью к сообществу. Тот вариант решения, который мне посоветовали, показался мне излишне сложным для данного случая — к тому моменту я уже понял, в каком направлении нужно копать, и вскоре решение было найдено. Так как я уверен, что данная задача наверняка интересовала не только меня, предлагаю своё решение и вам:
1. В качестве аргумента мы будем использовать не User: Name, а User: Uid, пусть это прозвучит и несколько странно Теперь нам надо сделать так, чтобы из аргумента, который принимает наш вьюс, мы смогли вытащить uid;
2. В качестве «Что делать, если аргумент не указан» ставим «Показывать всё»;
3. Проверять аргумент мы будем с помощью php, поэтому смело выбираем в списке валидаторов «PHP Code»;
4. В текстовом поле пишем:
5. Profit!
В результате мы получаем views, который правильно обрабатывает аргументы, если они выглядят так же, как наши синонимы. Этот вьюс принимает так же и непосредственно uid в качестве аргумента. Это удобно, но, если у вас есть пользователи с числовыми именами, лучше избавиться от первой части условия в if.
Возможно, гуру Друпал засмеют меня и скажут, что решение было очевидным. Что ж, возможно и так. Я до этого решения дошёл далеко не сразу да и то только по наводке комментаторов с drupal.org, благодаря которым я понял, что надо смотреть в сторону валидатора аргумента. Надеюсь, что это решение поможет кому-нибудь ещё.
Источник: http://www.drupal.ru/node/67625
Во вторник 30.08.2011 в 19:00 пройдет уже вторая встреча Drupal кафе Москва
Место проведения – ул. Покровка 38/1 Читалкафе (вход с Лялиного переулка) карта
По длительности планируем опять 2-3 часа, по примеру первой встречи.
Основной темой будет обсуждение результатов ДрупалКон’11 Лондон.
Если останется время, то посветим остальным актуальным вопросам.
Как всегда приветствуются доклады. Выступающие могут воспользоваться проектором и микрофоном.
Из изменений по поводу самого кафе:
На этот раз увеличиться ассортимент напитков, включая чай и кофе.
Так же в меню будет присутствовать еда, которой так не хватало на первой встрече.
По поводу WiFi вопрос пока остается не решенным, но в ближайшее время думаю разрешиться.
Attached poll “Приду на встречу”.
Register or login to poll
Results:
Да: 3 голоса
Нет: 4 голоса
Хочу, но не смогу: 2 голоса
Источник: http://www.drupal.ru/node/67534
Привет, Сообщество!
Представляю вам вольный перевод статьи о Drupal Commerce, которая помогает понять общий принцип работы DC. Несмотря на то, что система ещё не популярна, не помешает быть в курсе, что придумали ребята на смену Ubercart и как это должно работать. Статья достаточно теоретическая и старая (февраль 2010), так что за техническими подробностями вам придется идти на сайты drupalcommerce.org, api.drupalcommerce.org, drupal.stackexchange.com, Commerce Guys Video и, конечно, читать исходники.
Поиграть с модулем можно, установив профиль Commerce Kickstart.
Успехов!
Исходная статья: http://www.drupalcommerce.org/node/129
В этом посте описаны общие концепции заказов в Drupal Commerce (DC).
ЗаказыКак и товары (Products), заказы в DC — это сущности, поддерживающие поля (fields) Drupal 7. DC представляет один тип сущности заказа, но теоретически внешние модули могут создавать свои типы заказов.
Основные поля заказа:
order_id: Числовой ID заказа (первичный ключ) order_number: Дополнительный торговый ID заказа (буквы/цифры, возможно использовать шаблон). Служебные данные creator_uid: пользователь, создавший заказ customer_uid: пользователь, на чье лицо оформлен заказ created: Дата создания changed: Дата изменения revision_id: ID версии заказаorder_number выполняет такую же функцию, как sku в товаре.
Мы сохраняем концепцию статусов заказа (status), используемую в Ubercart, но несколько развиваем её. Основная идея в том, что есть состояния заказа (states), которые определяют жизненный цикл заказа (такой как Корзина » Принят » Выполняется » Выполнен). На каждом из этих основных шагов могут выполняться различные процессы, отличающиеся для каждого магазина, но внешние модули смогут полагаться на наличие некоторых основных состояний заказа. Для этих целей в хуке hook_commerce_order_state() будут определяться состояния заказа.
Информация о заказчикеИнформация о заказчике, кроме e-mail (который хранится в основной таблице заказа), будет добавляться с помощью полей. DC имеет в зависимостях модуль Address Field, который использует xNAL-стандарт хранения адресов. По умолчанию в DC создаётся поле «Платёжный адрес», а отдельный модуль доставки (Shippable Products) добавляет к товарам и заказам поля, относящиеся к доставке. Он также управляет полями, связанными с доставкой, в формах оформления заказа, на страницах просмотра заказа и др.
Commerce ShippingМодуль Commerce Shipping отделился от основной поставки DC. В задачу модуля входит расчет и отображение всего, что связано с доставкой.
Работа модуля описывается следующими шагами:
Этот модуль был создан как API, который разработчики смогут использовать, чтобы расширять функционал DC. Разработчикам предлагается создавать модули, в которых будут определены свои методы доставки.
Записи заказа (позиции, сущности) aka Line ItemsВ основе заказов лежит концепция Line Items, сущностей, для которых может быть определено несколько типов. Записями заказа является всё, что влияет на его конечную сумму (т.е. товары, налоги, доставка, скидки, сборы и т.д.) У записей заказа есть line_id, торговый ID (line_item_label), ссылка на заказ order_id, тип записи, название (изменяемое для каждого заказа), количество и поле «Цена». При добавлении записи к заказу мы также записываем сумму записи в поле commerce_total (количество * цена), чтобы избежать неопределённостей при округлении. Для типов записей заказов должна быть возможность настройки отображения полей, например, чтобы скрывать поле «количество» для для записей типа «Налоги» и т.д.
КомментарииЗаказы также могут иметь комментарии, но мы собираемся перенести этот функционал в систему журналирования. Также мы будем использовать версии для заказов, чтобы фиксировать и отображать изменения различных полей.
КорзинаКорзина в DC хранится как заказ. Когда пользователь первый раз добавляет товар в корзину, будет создан новый заказ в состоянии cart (Корзина) с только что добавленным товаром. Объект этого заказа будет доступен при последующих передвижениях пользователя по сайту. Однако пока заказ в стадии «корзина», все записи в нём будут повторно проверяться, чтобы поддерживать актуальное состояние цен/доступности и т.д. Таким образом для записей заказа необходимо установить стадию, когда они должны сохраняться. Например, нет смысла сохранять запись скидки до того, как заказ оформлен, потому что до этого момента скидки будут пересчитываться вместе с ценами при каждой загрузке заказа.
Если все товары удалены из корзины, то удаляется и заказ, и предоставляется хук для внешних модулей, чтобы те могли при необходимости сохранить информацию об удаляемом заказе.
Корзину пользователя среди заказов можно определить по стадии «cart» или по тому, что у таких заказов ещё не определён торговый ID.
Пока заказ не принят, для него не создаётся новых версий. Это может приводить к потере важных маркетинговых данных, поэтому мы хотим создать некий журнал взаимодействия пользователя с магазином.
Корзина выполнена как один их модулей DC — cart.
ЦеныИсходная статья: http://www.drupalcommerce.org/node/124
К сожалению работа с ценами не так проста, потому что цена, установленная для товара, это только отправная точка этой работы. Когда пользователь оформляет заказ, для этой цены могут появиться скидки, налоги, сборы и др. Чтобы управлять всем разнообразием цен, налогов и других ценовых изменений, мы должны создать гибкую систему управления ценами.
Мы проделали большую работу, чтобы понять, что же такое цена и какие требования будут предъявляться к системе управления ценами.
Components of a Price (Компоненты цены)
Цена состоит из суммы и валюты.
Base price (базовая цена)
Это сумма и валюта, привязанная к товару, записи заказа или любой другой сущности с полем цены. Базовая цена — это цена которая отображается в форме редактирования товара.
Current price (текущая цена)
Актуальная цена, с учётом скидок, налогов и сборов. За её основу берётся базовая цена. Может быть изменена с помощью системы управления ценами.
Display price (Отображаемая цена)
Администратор магазина может настроить параметры отображения цены. Во-первых, он может настроить темизацию (симовол валюты, префикс, суффикс и т.д.); во-вторых, он может указать, какую цену выводить (базовую или изменённую).
Altering a price (Изменение цены)
Изменение цен возможно через код или с помощью правил (Rules). За вызов хуков и исполнение правил должна отвечать сущность, реализующая конкретную тип цены.
Price logging (логирование цены)
Все внесённые в цену изменения должны фиксироваться как часть цены. Это позволит другим модулям оценивать изменения, такие как включенные налоги и скидки. Также эта информация сохраняется в заказе, чтобы впоследствии можно было проследить образование цены.
Price Formatting
Числовое форматирование (например, 1.000,00 или 1,000.00) определяются на языковом уровне. Знак валюты определяется в настройках валюты.
Управление ценами состоит из нескольких подсистем.
The price field (Поле цены)
Это поле определяется посредством Field API и может использоваться с любыми сущностями друпала. Хотя мы акцентируем внимание на том, как цены будут привязываться к сущности «Товар» (Product), поле цены может быть привязано и к заказам, записям заказа, нодам, терминам и т.д.
The price object (Объект «Цена»)
Объект цены является основным в системе управления ценами. Этот объект требуется в заказе, чтобы предотвратить нежурналируемые изменения цен. Объект цены содержит информацию о базовой валюте, базовой цене, текущей валюте, текущей цене, и журнал изменений цены.
Также объект цены предоставляет несколько методов модификации цены и предоставляет доступ к журналу модификаций, основанному на категории изменения, названии модуля, который совершает изменение, и описания изменений.
Pricing rules
Конкретно объект цены не предоставляет интеграцию с Rules, её предоставляет сама сущность (entity) цены, обеспечивая Rules необходимым контекстом для работы с ценой.
Это требует от разработчиков модулей внимательности при определении своих правил.
Views integration (Интеграфия с Views)
Цены будут полностью интегрированы с Views. Правда могут возникнуть вопросы с сортировкой и фильтрацией, потому что текущая цена не всегда совпадает с базовой.
Display formatters
Модуль цен должен поставляться вместе с базовыми типами отображения, позволяющими отображать цену с или без основных изменений, или отображать сумму всех составляющих цены. Например, мы захотим отобразить сумму налогов для кажного продукта, или цену на продукт включая НДС и т.д. Эти типы отображения должны быть доступны для Field API и Views.
Источник: http://www.drupal.ru/node/67283
Здравствуйте, уважаемые! Нужна Ваша помощь!
Тему обучения Drupal кто только не начинал… Мы решили заняться этим всерьёз и надолго. При поддержке сильнейших сего ресурса (Александра Графова, Андрея Постникова), не без поддержки со стороны чудо-хостинга it-патруля (безвоздмездной!), мы (небольшая инициативная команда) накидали прототип, который в последствии будет частью портала drupal.ru. Адрес этого ресурса по понятным причинам мы сейчас не разглашаем. Торжественное открытие этого раздела состоится в тот момент, когда не останется ни одного известного нам бага.
Все замечательно и быстро продвигается, есть прототип, есть контент, есть море идей и энтузиазма, однако, нас мало и наши силы не то чтобы на исходе, но мы остро нуждаемся в “новой крови” для нашего детища.
Вот список специалистов, которые нам остро необходимы:
Люди, умеющие писать толковые интересные технические тексты (aka копирайтер); Люди, умеющие программировать на Drupal 7 (установка, настройка модулей. Дописывание и кастомизация модулей – приветствуется!); Люди, умеющие профессионально тестировать интернет-проекты (обязательное требование – внимание к мелочам, ибо, дьявол в деталях!).
Территориальная принадлежность специалиста – не имеет значения. Крайне желательно наличие Skype (текстовой версии достаточно).
Господа и дамы! Присоединяйтесь к нам и станьте у истоков большого начинания!
В отместку за Ваши усилия, мы обещаем почет, уважуху и мегареспект со стороны русскоязычного сообщества начинающих друпал-разработчиков (собственно, для кого этот ресурс и делается ).
Присылайте Ваши заявки на почту 4drupal.ru@gmail.com , мы обязательно Вам ответим!
Источник: http://www.drupal.ru/node/67169
Спортбокс занял 1-ое место в номинации “Развлечении и спорт” в ежегодном конкурсе “Рейтинг Рунета”.
Конкурс сайтов «Рейтинг Рунета» — это премия за лучшие интернет-проекты в своей номинации, проводимая среди профессиональных веб-разработчиков.
Ну и да, Спортбокс сделан на друпале, если кто не знает.
Источник: http://www.drupal.ru/node/67124
Во вторник 16.08.2011 в 19:00 пройдет встреча формата Друпал-кафе Москва
Место проведения – ул. Покровка 38/1 (вход со двора, Лялин переулок) ЧиталКафе карта
По длительности планируется 2-3 часа, так чтобы можно было за чашкой чая обсудить в спокойной обстановке следущие темы:
- предстоящий DrupalCon London и позиционирование там отечественных команд и разработчиков
- обновление сайта Drupal.Ru
- …а также другие насущные задачи.
PS: проектор и микрофон есть, посадка до 50 человек, безалкогольный бар + легкий алкоголь по демократичным ценам
Следущая встреча запланирована на 30.08.2011 там же! На ней обсудим результаты ДрупалКон’11 Лондон
Если кто-то не сможет быть – плиз, изложите своё видение в коментах: что такое отечественное сообщество Drupal?
Attached poll “Приду на встречу”.
Register or login to poll
Results:
Да: 14 голосов
Нет: 7 голосов
Хочу, но не смогу: 13 голосов
Источник: http://www.drupal.ru/DrupalCafe/Ru/Moscow/2011/08/16
RedHat сделал облачный сервис с JBoss на борту,
бесплатно можно размещать свои JEE приложения.
http://www.jboss.org/openshift.html
В редакции Express можно размещать PHP проекты, например сайты на Drupal
Инструкция PDF по установке DRUPAL
UPD:rhc-snapshot вот тут полнее документация https://docs.redhat.com/docs/en-US/OpenShift_Express/1.0/htm
UPD2: вот это еще катит http://sourceforge.net/projects/adminer/ только правильно путь к базе надо указать ../../data/.ht.sqlite
UPD3: добавили mysql http://goo.gl/CwXoF
Источник: http://www.drupal.ru/node/66825
RedHat сделал облачный сервис с JBoss на борту,
бесплатно можно размещать свои JEE приложения.
http://www.jboss.org/openshift.html
В редакции Express можно размещать PHP проекты, например сайты на Drupal
Инструкция PDF по установке DRUPAL
Источник: http://www.drupal.ru/node/66825
В четверг, 1 сентября, в 19:00, в Запорожье, в лекционном зале Компьютерной Академии «ШАГ», по адресу Рекордная 20, состоится DrupalCafe в г. Запорожье.
По плану состоится обсуждение двух тем:
Почему Drupal? Докладчик — Алексей Попов. Уровень темы – начальный. Алексей расскажет и продемонстрирует, как сделать сайт со следующим функционалом: статические страницы; простой каталог; форма обратной связи; новости; статьи; Кэширование в Drupal. Докладчик — Илья Станкевич (AMgrade). Уровень темы – начальный. Илья поведает, как уменьшить нагрузки на сервер с помощью кэшированияНапоминаем, DrupalCafe имеет формат локальных встреч пользователей и разработчиков CMS Drupal. Организатором встречи является компания AMgrade с поддержкой Компьютерной Академии «ШАГ». Вход свободный.
За справками можно обращаться по телефону +38 (066) 123-77-54 или электронному адресу e.shalenniy@amgrade.com
Источник: http://www.drupal.ru/DrupalCafe/Ua/Zaporozhye/2011/09/01
В четверг, 1 сентября, в 19:00, в Запорожье, в лекционном зале Компьютерной Академии «ШАГ», по адресу Рекордная 20, состоится DrupalCafe в г. Запорожье.
По плану состоится обсуждение двух тем:
Почему Drupal? Докладчик — Алексей Попов. Уровень темы – начальный. Алексей расскажет и продемонстрирует, как сделать сайт со следующим функционалом: статические страницы; простой каталог; форма обратной связи; новости; статьи; Кэширование в Drupal. Докладчик — Илья Станкевич (AMgrade). Уровень темы – начальный. Илья поведает, как уменьшить нагрузки на сервер с помощью кэшированияНапоминаем, DrupalCafe имеет формат локальных встреч пользователей и разработчиков CMS Drupal. Организатором встречи является компания AMgrade с поддержкой Компьютерной Академии «ШАГ». Вход свободный.
За справками можно обращаться по телефону +38 (066) 123-77-54 или электронному адресу e.shalenniy@amgrade.com
Источник: http://www.drupal.ru/node/66816
Компания основателя друпал Дриса Байтаерта “АКВИА” сменила фирменный стиль, у нее новый логотип, открылся новый сайт!
Компания разделила все сервисы на 4 категории
- Разработчики ( сборки и профайлы, на сайте можно скачать около десятка разных продуктов )
- Хостинг ( облачный хостинг для разработчиков и проектов, можно прямо на сайте выбрать себе тариф)
- Обслуживание ( от консультаций и тех. поддержки до дистанционного управления проектом)
- Обучение ( курсы тренинги и Acquia Library)
Можно бесплатно посмотреть Acquia Tv .
На сайте есть раздел showcase лучшие сайты на друпал.
На заставке написано что уже 2% сайтов в МИРЕ работают на ДРУПАЛ.
( ВСЕГО в мере более 300′000′000 сайтов! )
Источник: http://www.drupal.ru/node/66655
Собственно тема Remove Garland from Core.
Те кто не согласны, еще не поздно заступится.
Attached poll “Гарланд лучшая друпал тема всех времён и народов?”.
Register or login to poll
Results:
Да: 48 голосов
Нет: 33 голоса
Источник: http://www.drupal.ru/node/66608
Статья на http://drupal.in.ua/content/fotogalereya-imageflow-dlya-d7
Что это ?
~~~~~~~~
Это порт для галереи изображений на основе http://finnrudolph.de/ImageFlow в Drupal 7. Галерея может формироваться для любого типа
материала с полем типа “Image” и привязкой через словарь таксономии в конкретную галерею.
Тестовый ссылка: http://gallery.drupal.in.ua/imageflow
Установка
~~~~~~~~
1) Распаковать архив в папку в sites/all/modules
2) Создать папку sites/all/libraries (если еще нет) и скопировать в нее содержимое архива из dimageflow/libraries/imageflow.zip
Это библиотека галереи (http://finnrudolph.de/ImageFlow), с несколькими закомментированными строками, для совместимости.
3) Вы можете использовать для галереи любой тип материала с:
- Полем типа “Image” (Обязательное);
- Полем типа “Term reference” (Обязательное, для названия галереи).
Примечание: Если такого нет – создайте новый тип с обязательными двумя типами полей.
4) Зайти на страницу с настройками модуля admin/config/content/dimageflow и выполнить настройки.
- Для организации галереи у материала xxx, надо выбрать поле которое будет использоваться при показе в галереи;
- Обязательно выбрать поле словаря таксономии, термины которого будет использоваться в качестве названий галерей;
- Тип миниатюрного изображения используется для первичного показа;
- Для того, чтобы при нажатии на миниатюрное изображение Вы попали на страницу изображения, а не материала в “путь для просмотра фото” – [image_path]
- Можно задать другой путь для страницы галереи по умолчанию он – dimageflow;
25/08/11
Добавлены настройка параметров (см. http://finnrudolph.de/ImageFlow/Documentation ) на страницу admin/config/content/dimageflow
1) imagesHeight – Height of the images div container in percent
2) imageFocusM – Multiplicator for the focussed image size in percent
29/08/11 12 Версии
Добавлены настройка параметров (см. http://finnrudolph.de/ImageFlow/Documentation ) на страницу admin/config/content/dimageflow
1) imageFocusMax – Maximum number of images on each side of the focussed one, default value: 4
2) Captions – Disables / enables the captions
План развития:
~~~~~~~~
1) Сделать массовую загрузку изображений из локальной папки в галерею с заданным именем.
2) Сделать страницу для views, пока по крайне мере под D7 нет адаптированного решения на org.
3) imagesM – Multiplicator for all images in percent
ВНИМАНИЕ ВАЖНО:
Права на хостинге на папки в т.ч. libraries/imageflow – 755 , на файлы .php, в том числе libraries/imageflow/reflect2.php – 644
Источник: http://www.drupal.ru/node/66476
DrupalCamp Donetsk 2011 — это ежегодное собрание Drupal разработчиков в Донецке сфокусированное на системе управления содержимым сайта с открытым исходным кодом Drupal. Событие соберет 150 программистов, дизайнеров, владельцев сайтов со всей Украины и ближнего зарубежья.
На конференции будут проведены доклады, обучающие тренинги, импровизированные обсуждения, а также код-спринты, что будет способствовать эффективному обмену опытом, усовершенствованию системы Drupal и её компонентов, а также увеличит число участников Drupal сообщества в Донецке и СНГ.
Формат конференции BarСamp предполагает проведение докладов самими участниками в свободной форме без ограничений по опыту, возрасту и другим признакам докладчика. Заявки на проведения доклада могут подаваться в день доклада при наличии свободных слотов. Предполагается, что конференция будет бесплатная для участников, а все расходы возьмут на себя спонсоры.
Предпологаемые даты проведения DrupalCamp – 26 – 27 ноября, число участников – 120-150 чел, количество докладов – 12, все остальное – по желанию. В первом потоке будут проходить доклады, во втором – практические занятия, код-спринты, обсуждения, конкурсы.
Господа, примите, пожалуйста, участие в опросе в отношении будущего DrupalCamp в Донецке в ноябре 2011. Очень важно ваше мнение! http://bit.ly/DrupalCampDonetsk2011
P.S.
Пересечения с DrupalConf’2 нам избежать не удастся, поскольку оба ивента были запланированы на одно и то же время, места проведения и потенциальные спонсоры поставлены в известность. Зато есть выбор куда поехать
Источник: http://www.drupal.ru/node/66467
Друзья, давно пора собраться разработчикам Drupal в Харькове и перезнакомится, именно с этой целью мы решили организовать первое в Харькове DrupalCafe, которое состоится в четверг, 8 сентября.
Место проведения – ул. Сумская 53, 2-й этаж, Конференц-зал. “Глобал Консалтинг” (вход с ул. Данилевского).
Время проведения – 19.00 – 22.00
В программе пока планируются такие доклады:
1. Drupal – Backend Interface – как не испугать заказчика + “Must have” modules (Алексей Гайдабура)
2. Drupal Perfomance issues, tips & tricks. (Антон Иванов)
3. Фичи ннада? Или почему стоит использовать модуль Features (Евгений Фиделин)
4. Системы управления версиями (VCS). Знакомство с Git. (Дмитрий Олареско)
Есть так же идея провести open space дискуссии на интересующие темы.
Если у вас есть предложения по темам докладов или open space обсуждений, вопросы по организации или вы хотели бы выступить отпишитесь в комментариях.
(На данный момент темы докладов ждут ваших предложений и/или вопросов. Так как это первая встреча такого рода в Харькове, то просьба также в комментариях оставлять пожелания, замечания и желаемые темы докладов.)
Участие бесплатное, в программе кофе+плюшки.
Желательно предварительная регистрация, всем желающим – отпишите в комментарии или в контакты ниже.
http://maps.google.com.ua/maps?hl=uk&ll=50.007601,36.237609&spn=0.00282,…
По всем вопросам можно обращаться:
+380993525316 – Алексей Гайдабура, gaydabura@gmail.com skype: alexey.gaydabura
+380672802207 – Иван Мосев, i.k.mosev@gmail.com, skype: i.k.mosev
Спонсор – WDG (http://wdg-company.com/)
Информационный партнер Медиапорт (http://mediaport.ua)
При поддержке http://www.dev-time.org
UPD. Зарегистрируйтесь пожалуйста чтобы мы примерно могли оценить сколько людей придет. https://docs.google.com/spreadsheet/viewform?formkey=dHltZlRTZlk1UjdUOVR…
Доклады
фичи ннада.pdf – https://docs.google.com/viewer?a=v&pid=explorer&chrome=true&srcid=0BwNew…
vcs_git.pdf – https://docs.google.com/viewer?a=v&pid=explorer&chrome=true&srcid=0BwNew…
drupal performance.pdf – https://docs.google.com/viewer?a=v&pid=explorer&chrome=true&srcid=0BwNew…
Фотоотчет
http://shiva.net.ua/drupal-cafe-kharkov-08-09-2011.html Спасибо Олегу Пальчику
Источник: http://www.drupal.ru/node/66438
Коллеги!
Я думаю провести следующий DrupalConf в ноябре этого года, учтя опыт московского и киевского кемпа. В этой теме традиционно предлагаю отписаться тем, кто готов прийти, и особенно тем, кто готов сделать доклад.
Ориентировочные даты 19 или 26 ноября, ориентировочный формат – 2 потока.
Отчет об апрельской конференции
Attached poll “Предпочтительный день недели”.
Register or login to poll
Results:
Пятница: 10 голосов
Суббота: 32 голоса
Источник: http://www.drupal.ru/DrupalConf/Ru/Moscow/2011
Есть предложение встретиться друпалерам Москвы и их окрестностей.
Дата: конец августа-начало сентября.
Вариант 1. Посидеть в традиционном месте в ёлках-палках. Кафе такое, кто не знает.
Вариант 2. Весело всей толпой сходить на картинг, lasertag или любое другое времяпрепровождение.
Вариант 3. Выбраться ближе к природе и пожарить мяса на открытом огне.
Варианты 4, 5, 6 – предлагайте.
Attached poll “Что делаем?”.
Register or login to poll
Results:
Вариант 1: 4 голоса
Вариант 2: 5 голосов
Вариант 3: 8 голосов
Свой вариант: 0 голосов
Я ассоциальная личность и не буду ни с кем встречаться!: 8 голосов
Источник: http://www.drupal.ru/node/66206
Кто помнит или не помнит – я писал когда то, что под заказ пишу модуль для Промокодов (пруфлинк).
Собственно постепенно я его дописываю и сегодня ударным темпом закрыл одну из хотелок.
В чем профит модуля, спросите вы?
Все просто. Если вам нужно пользователю присвоить уникальный номер из заданного диапазона и присвоить ему роль – этот модуль предназначен именно для этого. Администратор генерит промокоды через админку, выдает людям. При регистрации или при редактировании профиля пользователь может указать в специальном поле промокод и получить номер и роль. Полученный номер можно использовать, к примеру, для выдачи значков или футболок и т.п. На роль можно повесить специфические права и доступы.
Для проекта открыл sandbox http://drupal.org/sandbox/softovick/1190802 – если кто желает, может поучаствовать в тестировании и фидбеке. На всякий случай прикрепил к посту архив с модулем.
UPD:
+ добавлен выбор роли, которая присваивается при активации промокода
+ сделан прототип более детального списка промокодов в виде таблицы с ссылкой на профиль пользователя.
Источник: http://www.drupal.ru/node/66200
На главной странице есть лента новостей. Она состоит из:
1. Дата новости;
2. Анонс новости;
3. Ссылка на саму новость.
Захотелось мне реализовать ajax-загрузку основного текста новости на место ссылки.
Изучив “как создать свой модуль”, основы javascript, jquery и вспомнив основы php-программирования я все таки реализовал свою идею. Возможно для профи это 5 минутное дело, у меня ушло около 5 дней в совокупности. Работу модуля можете посмотреть на www.appri.ru.
Модуль назвал loadnews. Здесь обноленный код.
Файл loadnews.module:
<?php
/*
* Implementing hook_init
*/
function loadnews_init() {
drupal_add_css(drupal_get_path('module', 'loadnews') . "/loadnews.css");
drupal_add_js(drupal_get_path('module', 'loadnews') ."/loadnews.js");
}
/*
* Implementation hook_perm
*/
function loadnews_perm() {
return array('access onthisdate content');
}
/**
* Implementation hook_menu()
*/
function loadnews_menu() {
// Элемент меню с соответствующим путем
$items['loadnews'] = array (
// Функция, которая будет "обрабатывать" путь
'page callback' => 'loadnews_ajax',
// Права на доступ к пути
'access arguments' => array('access content'),
// Элемент не будет отображаться в меню сайта
'type' => MENU_CALLBACK,
);
return $items;
}
/* Функция обработки запроса */
function loadnews_ajax() {
/*
* Ссылка на на новость передается методом GET в переменной 'url'
* В БД алисы адресов хранятся без первого слеша, поэтом удаляем его
*/
$url = substr($_GET['url'], 1);
// По полученному алиасу ищем в таблице url_alias соответствующий системный адрес
$sys_url = db_result(db_query("SELECT n.src FROM {url_alias} n WHERE dst = '%s'", $url));
/* Адрес получаем в виде "node/nid". Нам нужно получить параметр nid.
* Для этого разбиваем строку на массив из 2-х элементов, второй который наш nid
*/
$sys_url_array = explode('/',$sys_url);
// Сохраняем наш nid в переменную
$nid = $sys_url_array['1'];
// Выбираем поле основного текста новости "field_news_text_value" из таблицы "content_type_news"
$result = db_result(db_query("SELECT n.field_news_text_value FROM {content_type_news} n WHERE n.nid = '%d'", $nid));
// Наш ответ клиенту
drupal_json(array('status' => 1, 'data' => $result));
}
?>
Файл loadnews.js: Drupal.behaviors.loadnews = function(context) { // Добавляем для всех ссылок в блоке новостей class =loadnews $('#block-views-news-block_news', context).find('a').addClass('loadnews') // Реагируем на клик .bind('click', function() { // Передаем с методом get адрес ссылки var href = $(this).attr('href'); // Переменная, это куда мы будем выводить ответ var target = $(this).parents(".field-content"); // Прячем ссылку $(this).hide(); // Вместо нее выводим анимацию $(target).append("<div class=loading></div>"); // Получаем данные с сервера $.get(Drupal.settings.basePath + 'loadnews', {url:href} , function(response) { // Сохраняем ответ в переменной var result = Drupal.parseJson(response); // Прячем анимацию $(target).find(".loading").hide(); // Вместо нее ставим "Свернуть" $(target).append("<span class=hidenews>Свернуть</span>"); $(target).append("<span class=shownews>Подробнее...</span>"); $(target).find(".shownews").hide(); // Создаем блок для вывода текста новости $(target).append("<div class='newstext'></div>"); // Изначально блок будет скрыт, чтобы потом красиво его развернуть $(target).find("div.newstext").hide(); // Загружаем текст из переменной в блок $(target).find("div.newstext").html(result.data); // Красиво раскрываем наш блок $(target).find("div.newstext").slideDown("fast").addClass("active"); // Реализация скрытия и раскрытия блока (нужно оптимизировать код) $(target).find(".hidenews").click(function() { $(target).find(".hidenews").hide(); $(target).find("div.newstext").slideUp("fast").removeClass("active"); $(target).find(".shownews").show(); }); $(target).find(".shownews").click(function() { $(target).find(".shownews").hide(); $(target).find("div.newstext").slideDown("fast").addClass("active"); $(target).find(".hidenews").show(); }); }); return false; }); }
Хотелось бы услышать мнения и замечания профи по коду. Спасибо за внимание.
Прикрепленный файл Размер loadnews_v6.x-1.6.zip 3.62 кбИсточник: http://www.drupal.ru/node/66172
Давно хочу прикрепить свою ленту сообщений из новой социальной сети Google plus на свой же хоумпейдж. Официального пути это сделать пока нет. Вот один из “неофициальных” вариантов:
1) создать RSS-поток ваших сообщений на сайте http://plusfeed.appspot.com/. В общем-то для этого просто надо добавить ваш ID на сайте G+ к адресу Plusfeed’а. Вот так, например – http://plusfeed.appspot.com/116910563308964275374
2) включить модуль Feed aggregator (есть в стандартном дистрибутиве Drupal) на странице ВАШСАЙТ/admin/build/modules/list.
3) добавить полученный на шаге 1 адрес фида в настройках на странице ВАШСАЙТ/admin/content/aggregator/add/feed
4) и, конечно, настроить cron (если он у вас еще не настроен) и не забыть установить права для просмотра ленты (на ВАШСАЙТ/admin/user/permissions).
И все…
По желанию можно задать адрес для этой страницы, добавить ссылку в меню сайта, сделать более внятное оформление и т.п.
Получится что-то вроде такого: http://vadimbarsukov.com/aggregator/sources/1
Не скажу, что меня все устраивает (например, не показываются фото и видео), но все же это лучше, чем ничего.
Источник: http://www.drupal.ru/node/66099
Приветствую.
Как оказалось, есть модуль, позволяющий отказаться от необходимости прописывать теги страницы в отдельном поле – Hashtags, теги как в твиттере, отмечаются непосредственно в тексте. И для seo лучше.
Единственный минус в том, что он есть только под 6-ю версию, и с портом D7 совершенно не ясно… аналогов модуля не нашел.
Источник: http://www.drupal.ru/node/66069
Default Node Gallery – дополнение к модулю Node Gallery – создает галерею по умолчанию для каждого юзера (и для каждой пары тип_галереи – тип_изображения) при входе его на сайт.
Так же позволяет управлять доступом к галерее по умолчанию, чтобы юзер случайно ее не удалил.
В общем, это должно работать как функция “неразобранные фотки” на многих фотосайтах.
Модуль пока сыроват – возможны ошибки, о которых прошу сообщать в issue queue модуля.
Источник: http://www.drupal.ru/node/66060
Вышел drupal 7.7., который является 7.6, но с поправленными строками в “версии”
7.5 содержит фиксы безопасности.
Короче говоря. Качать и ставить надо 7.7.
Drupal 7.5, a maintenance release which fixes security vulnerabilities is now available for download. Drupal 7.6 7.7 also fixes other issues reported through the bug tracking system.
Note: Drupal 7.7 is just Drupal 7.6 with a fixed VERSION string (7.6 was reporting itself as 7.5). No other changes.
читаем, качаем тут
Источник: http://www.drupal.ru/node/66057
Долго капашилась, вроде что-то получилось, а вдруг кому-нибудь пригодиться.
Для быстрой и удобной работы с использованием хуков может пригодиться Eclipse PDT. После его установки, необходимо сделать следующее – скачать файл http://drupal.org/project/eclipse, его содержимое Drupal.xml импортировать в Preferences > PHP > Editor > Templates. Зайдите в Help menu, потом Install New Software введите
Name: XTND.US
Location: http://xtnd.us/downloads/eclipse.
У меня установилось, но почему-то в пункте Php Content Type не отобразились Drupal Module и Drupal Themes. Поэтому я ввела в ручную следующее -
# *.module
# *.install
# *.test
# *.info
# *.po
# *.theme
# *.engine
(для того, чтобы пхп их распознавал).
После данных действий, при наборе hook появляется выборка всевозможных хуков, а после выбора конкретного, его код отображается на странице. (Или же надо при наборе нажать ctrl+space)
Источник: http://www.drupal.ru/node/66000
Всем привет, презентую модуль-шлюз http://sms24×7.ru для SMS Framework.
Модуль очень простой, меньше 100 строк, использует их библиотеку, подробное описание api нашел тут.
Ссылка на модуль – https://github.com/stan-kondrat/drupal-sms24×7PS. Никакого отношения не имею к sms24×7, была нужда в русском шлюзе, его нагуглил первым.
PPS. Если хотите по тестить стандартный модуль SMS User (Provides integration between the SMS Framework and Drupal users), но есть один момент. Он отсылает четырех значный код подтверждения, на что шлюз отвечает: “Сообщение содержит указание на платный номер“, самое простое решение:
diff --git a/sms_user.module.orig b/sms_user.module index 799ec7f..403b609 100644 --- a/sms_user.module.orig +++ b/sms_user.module @@ -264,7 +264,7 @@ function sms_user_settings_sleep_form_submit($form, &$form_s } function sms_user_send_confirmation($account, $number, $options) { - $code = rand(1000, 9999); + $code = rand(100, 999); $data[0] = array( 'number' => sms_formatter($number), 'status' => 1,Источник: http://www.drupal.ru/node/65940
Индекс (англ. index) — объект базы данных, создаваемый с целью повышения производительности поиска данных. Таблицы в базе данных могут иметь большое количество строк, которые хранятся в произвольном порядке, и их поиск по заданному критерию путем последовательного просмотра таблицы строка за строкой может занимать много времени. Индекс формируется из значений одного или нескольких столбцов таблицы и указателей на соответствующие строки таблицы и, таким образом, позволяет искать строки, удовлетворяющие критерию поиска. Ускорение работы с использованием индексов достигается в первую очередь за счёт того, что индекс имеет структуру, оптимизированную под поиск — например, сбалансированного дерева.
Википедия Для тех кто не понялИндекс в таблицах базы данных, это как предметный указатель в книге. Если не было бы предметного указателя, то вы бы листали всю книгу и просматривали текст каждой страницы в поисках какого-то определённого слова. В случае присутствия предметного указателя, вы быстро пробегаетесь по указателю, находите нужное слово и страницу и экономите время. Индекс в базах данных работает так же.
И чего ты этим сказать хотел?Ещё работая в IT-Patrol была замечена интересная статистика, а именно:
старые сайты имели большие показатели неиндексированного чтения и проблемы с производительностью. Естественно, в голове это не совсем укладывалось, так как с виду вполне себе обычный сайт, но работает медленно и даёт нехилую нагрузку по БД.
Изначально это связывалось с кривыми модулями и другими физическими ущербностями.
Потом при обновлении fermer.ru я столкнулся с тем, что отпали индексы по fid в таблице files.
Время шло, вышла семёрка, начались апдейты на неё, при апдейте hr-portal.ru было замечено отпадение индексов и даже то, что некоторые индексы давно отсутствовали, но портал более менее нормально работал на шестёрке.
Дело в том, что между версиями меняется структура БД и при накладках во время апдейта, старый индекс удаляется за ненадобностью, а новый не создаётся, например, из-за дублей, так бывает в таблице blocks.
В итоге мы получаем с виду работающий сайт, но внутри имеем вот такие грабли
Очень просто, Устанавливаем модуль Schema
Сразу хотелось бы предупредить что в версии модуля для Drupal 7 наблюдается баг с префиксами БД, данные которые даёт модуль по БД с префиксом некорректны.
Идём в admin/build/schema/report
Перед нами предстанет страница подобная этой
Легенда:
На желтом фоне пишутся предупреждения, в большинстве случаев они говорят о том, что авторы некоторых модулей не читали раздел про типы полей на api.drupal.org.
Филдсет Match несёт информацию о таблицах которые совпадают со схемой.
Mismatch сообщает нам о таблицах в которых проблемы со схемой.
Extra это таблицы в БД, которые не связаны схемой ни с одним модулем.
primary key: missing in database
Говорит о том, что потерян первичный индекс.
Ещё возможен вариант потери обычного индекса, например:
indexes content_type_uid: missing in database
Вооружаемся текстовым редактором, просматриваем install-файлы модулей, смотрим там hook_schema() и восстанавливаем индексы соответствующими запросами:
ADD INDEX [index_name] (index_col_name,…)
или ADD PRIMARY KEY (index_col_name,…)
или ADD UNIQUE [index_name] (index_col_name,…)
или ADD FULLTEXT [index_name] (index_col_name,…)
Не забываем, что индексы бывают разных типов – составные, уникальные, простые и т.п.
Я помогу вам за 1000р или эквивалент, я приведу отпавшие индексы в порядок и добавлю свои наработки.
И кстати, если вы клиент Патруля более трёх месяцев, то на вас распространяется 50% скидка, если вы пришли на IT-Patrol менее 3 месяцев назад, то стоимость составит 750р за проблемный сайт, просто напишите в техническую поддержку.
Источник: http://www.drupal.ru/node/65583
Drupal 7 уже был тревожным сигналом – ведь для стабилизации и приближения релиза, Аквии и многим другим компаниям пришлось выделить сотрудников на зарплате, занимающихся решением багов на фул-тайм.
В этом смысле, инициативы Дриза и компании по Drupal 8 очень пугающие:
- очень сильно повышены требования к количеству багов, которые вызывает то или иное изменение
- добавлены очень жесткие критерии приема патчей. Предполагается, что контрибутор должен будет ознакомиться с тонной документации, прежде чем провести какое-нибудь изменение. И это будет действительно тонны – я не шучу. Текущая сложность Drupal – learning curve, как ее называют, покажется детским садом по сравнению с новыми требованиями.
Все это – бюрократизация, дополнительные барьеры для участия многих контрибуторов. Непонятно, как можно забюрократизировать процесс по-максимуму, и рассчитывать что сообщество – добровольцы, будут разгребать все это.
Многие потенциальные контрибуторы уже давно не участвуют в разработке ядра по причине низкой эффективности труда:
- чтобы добавить то или иное изменение, нужно убедить кучу народа
- бесконечные споры по поводу реализации того или иного изменения. В условиях равноправности мнений, из спора очень трудно прийти к компромиссу
- готовые патчи могут висеть месяцами, ожидая своей участи. Стоит только вспомнить эпические изменения, связанные с состояниями гонки (race conditions) в Drupal 6 и каких усилий стоило реализовать их.
В этом смысле, я не вижу здесь тенденций к улучшению. Более того, все будет только усугубляться. Неудивительно, что такие инноваторы, как Development Seed, покинули мир Друпала. Этот процесс будет продолжаться и дальше. Бюрократизация – тормоз и злейший враг инноваций.
Как бы я решил эту проблему ? Я бы сделал процесс разработки распределенным, убрал узкое горлышко в виде небольшой группы комиттеров ядра. Это уже давно предлагалось: существовала так называемая инициатива Small Core, в рамках которой предлагалось разделить друпал на слабо связанные подсистемы, разрабатываемые отдельно, и оставить ядро минимального размера. Эта инициатива не нашла серьезной поддержки, к сожалению.
Дриз и ко вряд ли пошли бы на такое – ведь тогда они потеряли бы контроль над продуктом. Друпал, как торговый знак, перестал бы приносить дивиденды.
Мой прогноз: Drupal 8 намертво увязнет в своих проблемах, и чтобы вытащить его, бизнесам придется еще больше рассчитывать на свои силы, и еще меньше – на сообщество. Многие переосмыслят использование Drupal в своем бизнесе. Drupal перестанет быть продуктом сообщества, и станет больше продуктом корпораций. В этом смысле, наверное, он в чем-то повторит судьбу Linux.
Мы увидим больше дистрибутивов Drupal, мы увидим LTS редакции, для потребителей, не желающих гнаться за номерами версий, как белки в колесе. Аквия, которая во всем подражает Redhat, возможно разразится своим Acquia Enterprise Drupal с 10 летней поддержкой )))
http://www.drupal4hu.com/node/300
http://benbuckman.net/drupal-excessive-complexity
http://randyfay.com/node/110
http://www.unleashedmind.com/en/blog/sun/the-drupal-crisis
http://www.unleashedmind.com/en/blog/sun/crisis-conclusions
Источник: http://www.drupal.ru/node/65464
Статья для тех, у кого возникнет необходимость отобразить прикрепленный PDF документ на странице просмотра содержимого. Реализуется это довольно просто…
Полная статья »
Источник: http://www.drupal.ru/node/65269
На DrupalCamp Kyiv 2011 я рассказывал о наших разработчиках, которые публикуют свои модули на drupal.org.
«Наших» модулей оказалось довольно много и, даже просто рассказывая в одном предложении про каждый из модулей, мы бы потратили не один час. Очень порадовало то, что были вопросы о том, как опубликовать свой модуль? какие преимущества? и др.
Сейчас процедура получения права на публикацию модуля усложнилась, но это к лучшему. Благодаря такой процедуре, будут отсеиваться бесполезные модули и те, которые дублируют без особых причин функционал уже существующих модулей.
В то время как ваш модуль может находиться в песочнице длительное время, вы можете уже сейчас публиковать патчи, которые исправляют ошибки или добавляют новые фичи в существующие contrib-модули, разработчиком которых вы не являетесь.
Contrib-модулями называются модули, которые были созданы и опубликованы на drupal.org сторонними разработчиками. Любой желающий может их использовать (contribution).
Contrib-модули и вклад в развитие DrupalЭти contrib-модули являются вкладом drupal-разработчиков по всему миру в развитие Drupal.
Есть и другие способы, как можно сказать спасибо тем, кто развивал Drupal до вас, кто создавал полезные модули, писал документацию, тратил свое время на тестирование чужих модулей и исправление ошибок, а также ребятам из команды безопасности (Security Team), которые внимательно изучали код в поисках уязвимостей и принимали меры по их устранению.
Это может быть:
Членство в Drupal Association. О том, что это дает и на что тратятся членские взносы лучше почитать на сайте Drupal Association. Написание документации. Перевод документации на родной язык. Перевод строк ядра и модулей на родной язык. Детали на сервере локализации. Участие в организации Drupal-мероприятий в своей стране. Участие в зарубежных Drupal-мероприятиях. Создание модулей для Drupal. Создание и проведение тренингов. Запись обучающих скринкастов про Drupal. Популяризация Drupal (без спама, холиваров и троллинга). Создание сайтов на базе Drupal. (Да, это тоже вклад в развитие Drupal!) Направление части прибыли от проекта на развитие Drupal. Это может быть как локальное использование, так и перечисление в виде пожертвования Drupal-разработчикам. Участие в качестве спонсоров на Drupal-мероприятиях.Но самое доступное и простое – как мне кажется – это сделать патч и опубликовать его на drupal.org!
Это не так сложно, как публиковать модуль и дешевле, чем оплачивать членство в Ассоциации Drupal. Патч можно опубликовать достаточно быстро. Ваша активность поможет вам быстрее получить право на публикацию модулей, а также создаст вам репутация серьезного человека, который в Drupal-сообществе «всерьёз и надолго».
Но сначала нужно рассмотреть несколько ключевых моментов:
Можно ли использовать contrib-модули для серьёзных проектов? Стоит ли тратить время на создание и публикацию патча на drupal.org?Читать дальше »
Источник: http://www.drupal.ru/node/65065
Замена названий скачиваемых файлов:
Цель: при сохранении файла по умолчанию подставлять в название содержимое атрибута title
т.е. например, чтобы по нажатию на ссылку
<a href="proba.zip" title="Пробный архив">скачать</a>
, предлагало сохранить “Пробный архив.zip”
и так для любого интересующего расширения (doc, pdf, jpg ..)
Решение: на самом деле решение к друпалу имеет очень небольшое отношение, т.к. почти не знаю его. Поэтому, наверняка, оно не оптимальное и я буду рад любым советам по его улучшению. С другой стороны, им могут воспользоваться такие же новички (и не только для друпала).
Краткий алгоритм:
Пройтись по все ссылкам в интересующем месте, выбрать те, что ссылаются на файлы типа zip, rar, doc и т.п. Отлавливать клики по ним, отменяя стандартное действие, вместо которого отправлять в php-файл путь ссылки и нужное название В php-файле настроить header-ы на загрузку Привязать все это к друпалуПервый пункт (javascript):
window.onload = function(){ //взять все ссылки, из содержимого статьи var links = document.getElementById("content").getElementsByTagName("a"); //перебрать все найденные ссылки for(var i=0;i<links.length;i++){ $href= links[i].getAttribute("href"); //если у ссылки есть путь if($href!=null && $href!=""){ var ext = $href.substr($href.lastIndexOf('.') + 1); //перекрыть ссылки на документы и архивы if(ext.match(/zip|rar|doc|docx|pdf/)){ links[i].onclick = saveFile; } } } } function saveFile(tag){ $path = this.getAttribute("href"); $label = this.getAttribute("title"); //если нет title, взять название файла if($label==null || $label==""){ $label=$path.match(/(?:^|\/|\\)([^\\\/]+)$/)[1]; $label = $label.substr(0,$label.lastIndexOf('.')); } //создать временную форму для отправки методом post var submitForm = document.createElement("FORM"); document.body.appendChild(submitForm); submitForm.method = "POST"; submitForm.action= "/php/download_file.php"; createNewFormElement(submitForm, "file", $path); createNewFormElement(submitForm, "label", $label); submitForm.submit(); submitForm.parentNode.removeChild(submitForm); ////////////////////////////////////////////////////////// return false;//отменить переход по ссылке } //вспомогательная функция для создания полей в форме function createNewFormElement(inputForm, elementName, elementValue){ var newElement = document.createElement("INPUT"); newElement.name = elementName; newElement.type="hidden"; inputForm.appendChild(newElement); newElement.value = elementValue; }
Здесь обрабатываются все ссылки, лежащие в контейнере с id=”content”. Чтобы не зверствовать c post-отправкой, и не подключать jquery используется простой трюк с временным добавлением формы.
Второй пункт (php):
//заменитель
if(isset($_POST["label"]))$label = $_POST["label"];
else $label = basename($filename);
//расширение файла
$fileextn = end(explode('.', $_POST['file']));
switch($fileextn)
{
case "pdf": $ctype="application/pdf"; break;
case "exe": $ctype="application/octet-stream"; break;
case "zip": $ctype="application/zip"; break;
case "doc": $ctype="application/msword"; break;
case "xls": $ctype="application/vnd.ms-excel"; break;
case "ppt": $ctype="application/vnd.ms-powerpoint"; break;
case "gif": $ctype="image/gif"; break;
case "png": $ctype="image/png"; break;
case "jpeg":
case "jpg": $ctype="image/jpg"; break;
default: $ctype="application/force-download";
}
//Проверка, на то, можно ли отдавать запрашиваемый файл (спасибо xxandeadxx)
//например, выдавать только с указанными расширениями
if($ctype!="application/force-download"){
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private",false);
header("Content-Type: $ctype");
header("Content-Disposition: attachment; filename=\"$label.$fileextn\";");
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".filesize($filename));
readfile("$filename");
exit();
}
}
?>
Третий пункт:
php-скрипт положить в \sites\all\libraries\ download_file.php
js-скрипт положить в \sites\all\themes\infopark\js\download_file.js (не забыть изменить путь к php)
В файле \sites\all\themes\тема\тема.info добавить scripts[] = js/download_file.js (для того, чтобы подгружать этот скрипт на все страницы).
Пример прилагается.
Прикрепленный файл Размер download_files.zip 5.87 кбИсточник: http://www.drupal.ru/node/65058
Небольшая подсказка новичкам куда глядеть, в случае, если под единственным комментарием к ноде вы внезапно обнаружили пейджер и вот уже 2 часа вспоминаете что вы перед этим делали и какие модули подключали.
Досконально в процесс не вникал, но суть в том, что если на данной странице у вас есть вьюха с пейджером (а она скорее всего есть, может быть и в блоке), то оба этих пейджера получают один и тот же ид, и по сути выполняют одни и те же действия.
По этому идем в настройки пейджера этой самой вьюхи и в поле “Pager ID” ставим, допустим, единичку вместо нолика, или двоечку, в зависимости от количества используемых пейджеров на странице.
Там же можно прочитать описание ин инглиш:
Unless you’re experiencing problems with pagers related to this view, you should leave this at 0. If using multiple pagers on one page you may need to set this number to a higher value so as not to conflict within the ?page= array. Large values will add a lot of commas to your URLs, so avoid if possible.
Источник: http://www.drupal.ru/node/65047
Интересный твит пробегал в недавно от «детроидца», известного своими скринкастами… гугл переводит это: «Я думаю, что когда-нибудь люди поймут, что цены за обучение #Drupal нелепы.», полагаю, что речь идёт о прошедших курсах:
Drupal 7 Site Building
June 27, 28, 29 $1,350
Drupal 7 Theming
June 30 & July 1 $900
Entire Week of Workshops
June 27 – July 1 $2,000
Предлагаю проголосовать всем заинтересованным и предлагать свои варианты решения об образовании Drupalista в коментах.
Предлагаю русскому сообществу обсудить положение дел и высказать свои предложения, так как помимо начальных курсов, которые будут привлекать в наше дружное сообщество новичков есть насущная потребность в подобных курсах для обучения сотрудников компаний-разработчиков и, вероятно, частних лиц, желающих повысить свой профессиональный уровень не только на пока еще редких друпал-конференциях (друпал-кафе в россии пока закрыто
Один из найденных тренингов по конкурирующей платформе выставил на начальное обучение ценник (4500 вебинар и от 6500 за очное посещение), в ближайшее время на Drupal.Ru появится раздел посвященный обучению людей премудростям Drupal, пока полагаю в виде подобного ресурса от Acquia. Но об этом позже
PS: … на пути к Друпал-центру обучения и не только
Attached poll “Сколько Вы готовы платить за повышение квалификации, работая с Drupal?”.
Register or login to poll
Results:
Я нищий..: 38 голосов
20 000 – 15 000: 11 голосов
10 000 – 5 000: 23 голоса
не более 5 000: 32 голоса
Источник: http://www.drupal.ru/node/65015
Сделала на базе 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
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 и без голосовой озвучки, техника создания скринкастов еще далека от совершенства. Но это поправимо
Пока есть два скринкаста:
Планируются новые скринкасты. Выгружаю на 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)
Для того чтобы получить данные от клиента, мы должны начать с создания модуля, который будет возвращать данные с сервера. Давайте назовем наш новый модуль “dynamic_products”. Прежде всего создади каталог для нашего нового модуля. Он должен находиться в каталоге “modules” вашего сайта (обычно /sites/default/modules). Все файлы, описанные далее в этом разделе, должны создаваться в этом каталоге. Затем создадим файл .info вашего модуля. Этот файл предоставляет информацию Друпала о вашем файле, которая нужна для его активации.
Больше информации о создании .info файла можно найти здесь http://drupal.org/node/231036
Для нашего .info файла мы будем использовать следующее:
Копируем, вставляем и сохраняем верхний код в “dynamic_products.info”. После того как мы создадим наш .info файл, мы продолжим далее создание нашего файла .module. Этот файл включает рабочий код со стороны сервера. Вернемся вверх и создадим файл “dynamic_products.info” в каталоге нашего модуля..
Для того чтобы создать вызов сервера и получить некоторые данные, нам нужен menu_hook, который будет использован для «перехвата» вызова аякса. В нем будет использоваться следующая функция:
Эта функция заставляет перехватывать все обращения по адресам “http://www.example.com/?q=products/get” или http//www.example.com/products/get и вызывать функцию обратного вызова dynamic_products_get_by_category_id.
Далее мы сообщим Друпалу, кто имеет разрешения на использование нашего модуля. Для этого мы применим Друпаловский hook_perm().
Теперь пришло время создать функцию обратного вызова, которая вернет нам данные с сервера. С этой целью в этом руководстве мы создадим простой список товаров. В реальной жизни данные могут быть получены со стороны или любым другим удобным вам путем.
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. Позже мы вернемся к нему, а сейчас сохраним его и пойдем далее.
Теперь мы создадим файл 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".
Мы почти закончили. Нам нужно только создать на нашей странице код 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
Скачать можно ниже
Источник: 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:
31/05/2011
Добавлена проверка корректности навигационной ссылки, при ручном вводе; Добавлена обработке ajax status error01/06/2011
Добавлена возможность использование в любом материале с полем типа image. ( настройка на странице admin/config/content/drig )
Источник: 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
Время – 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%, а точнее через данный модуль практически невозможно настроить плагин, а там, тем не менее достаточно много такого, с чем можно «поиграться»(приведу спецификацию параметров без перевода, кому надо надеюсь сами переведут).
Решил таки исправить данную ситуацию и написал модуль интегрирующий тот же самый 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