сайт Фестиваля Науки 2012
Запустили сайт Фестиваля Науки 2012.
Сделали дизайн:
http://www.festivalnauki.ru
Прикольные exposed формы:
http://www.festivalnauki.ru/events?field_gorod=%D0%9C%D0%BE%D1%81%D0%BA%...
Запустили сайт Фестиваля Науки 2012.
Сделали дизайн:
http://www.festivalnauki.ru
Прикольные exposed формы:
http://www.festivalnauki.ru/events?field_gorod=%D0%9C%D0%BE%D1%81%D0%BA%...
Недавно в Москве завершился ежегодный Фестиваль Науки, большое, интересное 3-х дневное мероприятие, организаторами которого являются Министерство образования и науки РФ, правительство г. Москвы и МГУ, а спонсорами - такие компании как Роснефть, Газпромбанк, Intel и Microsoft.
Команде Pixeljets выпала честь создать и поддерживать сайт Фестиваля.
Не одна сотня часов ушла сначала на дизайн, разработку и поддержку сайта. Не раз мы радовались, как быстро получается разворачивать нужный функционал в Друпале, не раз покрывали Друпал матом, когда в самый ответственный момент выползали досадные баги и недоработки (но чаще надо было винить себя, конечно же
festivalnauki.ru
Страница мероприятий
Страница выставок
Хочется выразить особую благодарность Саше Фоменкову из команды Фестиваля, с которым мы работали над сайтом все это время.
есть заказ, размышляем над реализацией.
надо магазин.
по условиям, должен держать нагрузку:
150к хитов в день, из них 50к хитов за первые три часа
500 заказов в день, из них 300 в первые два часа.
примерно 30% трафика - авторизованные пользователи
планируем d7+ubercart
мы такими серьезными в плане нагрузки проектами еще не занимались.
какие шансы что это все будет нормально работать без извращений ( в виде хаков ядра и отказа от вьюсов и всех модулей кроме user и node ), но с memcached+varnish+nginx+возможно бд на отдельной машине? (например, на главной ожидается пара-тройка вьюсов)
читал много-много всего, но конкретных примеров - мол семерка без хаков с вьюсами и варнишем тянет такое-то кол-во авторизованных - не видел.
еще вопрос, кто чем посоветует проводить стресс-тесты (надо генерировать анонимный/авторизованный траффик 70/30, и эмулировать создание заказов)?
заранее благодарен.
вот этот доклад представляет интерес: http://romka.eu/blog/doklad-na-drupalconfmoscow-2011
но там нет второй части, про сетап машин - не понятно какой кластер все это обслуживает.. ну и boost мне кажется не очень полезен будет в нашем случае
Это перевод моего блогпоста Writing robust code that uses fields, in Drupal 7
В семерке изменился способ прямого доступа к полям (cck в друпале 6.x). В шестерке мы пишем:
<?php
$field_val = $node->field_yourfield[0]['value'];
?>
В семерке уже надо писать:
<?php
$field_val = $node->field_yourfield[LANGUAGE_NONE][0]['value'];
?>
(во всяком случае, так рекомендуют писать официальные доки).
То есть, у нас появилось разделение значений поля по языкам.
Я уж не знаю, насколько это упростило создание кода, который хорошо работает с несколькими языками (сложных мультиязычных проектов в d7 я пока не делал) - надеюсь, упростило серьезно, но для "обычных" сайтов с одним активным языком этот подход добавляет некоторую головную боль разработчикам.
Проблема здесь в том, что надеяться на правильную работу константы LANGUAGE_NONE нельзя!
В небольшом очерке я рассмотрю варианты решения этой проблемы.
Прочитать статью: http://sidashin.ru/blog/safe-drupal7-fields-code
Сделал модуль для экспорта ленты сайта в Яндекс.новости.
Для views, с гибкими настройками маппинга полей. Под семерку.
Просьба потестить и рассказать про результаты проверки Яндексом ваших лент.
Баги - в issue tracker модуля, но можно и сюда.
Команда Pixeljets сделала сайт-магазин открыток Apcards.ru, о чем я и спешу поделиться с другими друпалерами
Задача была - сделать интерфейс удобным для масс-закупок, когда человек накидывает по сотне позиций в корзину, и сделать удобный поиск.
С родного уберкартовского "каталога" сразу спрыгнули на views реализацию каталога товаров, чтобы использовать exposed filters для поиска открыток, и спокойно темизировать всё, что понадобится.
Проблему интерфейса масс-закупок решил на базе uc_multibuy + доработки чтобы заставить его красиво работать во вьюсах:
Форма exposed фильтров была прокачана через javascript - был добавлен "живой" подсчет найденных товаров в момент когда заказчик еще тыкает на форме чекбоксы:
В корзине реализован "живой" подсчет скидок, тоже js:
Там же было сделано отслеживание, был ли в предыдущем заказе пользователя этот товар, и если да, то в каком количестве.
Несколько хитроумных "надстроек" над CCK для реализации "раздела загрузок", для реализации "спецпредложений" - которые на самом деле являются просто флагами CCK, но могут менять названия, и деактивироваться - позволили сэкономить немало времени, а не фигачить все с нуля со своими таблицами в бд.
По мотивам обсуждения http://drupal.ru/node/53748 сделал модуль расчета доставки средствами EMS Russia.
Модуль использует родные поля доставки, предоставленные уберкартом.
Т.е. человек при оформлении заказа выбирает область, и вписывает город. город при необходимости (если не найден в базе ems) чистится от "г,пос,...", и проверяется еще раз. Если фейл - считаем как до региона. Есть поддержка международных отправлений.
Адрес проекта: http://drupal.org/project/uc_ems
Как видите, есть настройки типа добавочной стоимости.
В итоге был так же создан багрепорт в Уберкарт (устарели регионы России, модуль это пока решает динамической подменой вводимых пользователем данных):
http://drupal.org/node/1027060
Если кто-то хочет материально отблагодарить разработчика, т.е. меня, я не против
В комментарии к переводу просьба писать "ems от [ник на drupal.ru]", если хотите быть упомянуты на странице модуля drupal.org - сообщайте с каким урлом/именем.
Yandex.money
transfer-pay@yandex.ru
или номер счета: 4100190415303
Webmoney
Z352678179207
R114412215620
E406623242647
Из моего блога sidashin.ru
В нашем магазине платных тем некоторое время не было никаких обновлений. Мы были заняты созданием крупных проектов для заказчиков (сами-знаете-на-какой-системе), но, в конце концов, нам удалось взять перерыв, чтобы вывести наши собственные продукты на качественно новый уровень.
Основные новости:
Привет! У нас новая работа
Равный-равному - это сайт, посвященный профилактике ВИЧ-инфекции.
Задача Pixeljets была в создании яркого дизайна и Друпал-темы (программирование функционала - не наша работа)
После отрисовки схематичных набросков, размышлений и обсуждения с заказчиком, пришли к дизайну, который вы можете наблюдать на http://www.peer-education.ru .
"Фишка" визуала - красная ленточка (которая, кстати, неплохо "тянется" по экрану на любом разрешении), символ борьбы с ВИЧ.
На главной странице акцент посетителя намеренно смещен к шапке с яркими иконками, которые олицетворяют наиболее вероятные желания человека, впервые попавшего на сайт - "узнать больше о методе" и "смотреть презентации".
На всех вторичных уже четко поставлен акцент на основной навигации.
неплохим подарком на ДР оказался запуск нашего нового сайта - http://pixeljets.com . Пока только английская версия. Мы решили поменять название, потому что, пожалуй, имя "RussianWebStudio" изжило себя. Было - немного высокомерно, длинновато, и окончание "WebStudio" словно выпрыгнуло из 98 года. Стало - коротко, современно и молодежно Pixeljets переводится как "Пиксельные самолетики", если что.
этот пост - копипаст с моего блога sidashin.ru (там этот текст нормально отформатирован и оформлен)
Модули для шестерки, которые упрощают жизнь разработчика и модератора. Рассмотрены модули: Administration menu, Block edit, Masquerade, Devel, Module_filter, Drush, Fasttoggle, Admin links, Delete all, Views Bulk Operations (VBO).
Все никак руки не доходили отпостить на дру - вот теперь, из больничной палаты, время появилось
Сделали блог. http://sidashin.ru
Авторы - я и Олег, возможно вам уже знакомые по студии http://russianwebstudio.ru
Сайт на Drupal7. Гайки кое-где отваливаются, свежачок, что сказать..
Надеюсь, кому-нибудь контент покажется интересным.
Представляем новый, сделанный нами сайт на Друпале:
Продажа аквариумной рыбы от рыборазводчика из Ульяновска.
Подробнее о сайте и начинке:
Сайт совсем небольшой, и прайс-лист - самая важная функциональная часть. Обновляется очень быстро и удобно - он рендерится из загружаемого эксель файла (аплоад через вот такую специальную форму загрузки, которая рендерится на всех страницах для админа):
Сразу после этого в шапку автоматически добавляется дата последней загрузки прайс-листа, чтобы покупатели сразу видели его актуальность при заходе на сайт:
При совпадении латинского названия в прайс-листе с нодой в каталоге ("Описание рыб"), в прайс-листе автоматически появляется ссылка на это описание:
Краткое описание: рестораны Лондона.
Фишки:
1) Быстрая фильтрация заведений по различным cck параметрам, с использованием faceted search модуля (пришлось в нем покопошиться)
2) Красивый рендеринг меню ресторанов, которое вбивается в textarea в определенном формате, на страничке ресторана подгружается аяксом (правда, посмотреть пока нельзя, меню нигде не вбито - на скрине только)
Мне окончательно надоело пользоваться поиском браузера на странице модулей, и я сделал небольшой модуль который фильтрует все модули по названию на лету. Кажется, достаточно удобно. Может кому пригодится
Примерно месяца два назад я попал в команду на интересный проект. Сеть сайтов на Друпале. Каждый конечный сайт (мы называем их satellite) имеет свою базу пользователей, свой текст на страницах, свою контактную информацию в блоках, но по функционалу является точной копией сайта "донора" (template website), который вроде как является шаблоном из которого можно очень быстро создать еще один сателлит. Сайты не самые простые, webforms, cck, OG, views, наполеоновские планы по развитию и добавлению нового функционала типа i18n и приема платежей, все как надо. Все бы ничего, но эти изменения с шаблонного сайта надо регулярно переносить на все сателлиты. Понятное дело, что целиком каждый раз убивать базу сателлита и переписывать базой с шаблонного сайта нельзя - надо сохранять юзеров, их комменты, изменения на страницах. Т.е. переносить надо: новые ноды, сеттинги из админки, созданные блоки.
Как бы вы решали такую задачу?
[буду дописывать сюда по мере мыслей]
BTW, ищутся эксперты по Друпалу. Конкретно решать эту задачу, и другие, попроще. Проект интересный, задачи адекватные, общение с ребятами из Acquia, такими гуру как Robert Douglas, Joshua Brauer, соответственно офигенный экспириенс и level up Оплата достойная.
Требования:
- php/javascript
- знать Drupal как свои пять пальцев
- умение пользоваться svn
- устный и письменный английский, достаточный чтобы объясняться на нем и понимать других
Мы достаточно давно занимаемся созданием проектов на Друпале, но
вот только сейчас наконец нашли время и силы сделать полноценный сайт своей студии. А то был сапожник без сапог
Сайт мультиязычный, на двух доменах одновременно (язык определяется по домену).
http://russianwebstudio.ru - русская версия
http://russianwebstudio.com - английская версия
Из интересных мелких фич:
- режимы просмотра портфолио (картинками/списком) - через cookies&views
- фильтр автоконверсии цен из евро в рубли по текущему курсу ЦБ РФ на всех страницах (которые на русском)
Сайт делали два человека (как и бОльшую часть наших сайтов):
Empiric (дизайн, верстка, интеграция верстки в Друпал)
restyler (дизайн, программирование)
Давно собирался заняться drupal 6 и изучить, как там что - views 2, новое ядро, прокачанные темы. испачкал свои руки, и теперь делюсь этим с посетителями друпал.ру
проект первый:
http://zaosoyuz.ru/
сравнительно простой сайт, cck+views для каталога
проект второй, посерьезней:
http://ufomedia.ru/
социалка, user karma + extra_voting_forms + views + cck + imagecache + ..
в ранней бетке пока. с явными багами в "социальной" части не столкнулся, хотя смиренно ждал их - все четко.
список модулей:
bueditor
cck
extra_voting_forms
filefield
imageapi
imagecache
imagefield
logintoboggan
site_helper (тут пара строчек - валидация на cck поле link, не хотел ставить ради такого cck_link, и так проект не летает)
user_karma
video_filter
views
votingapi
основное впечатление от drupal 6 оставило как ни странно не ядро - а views 2. это уже не инструмент для построения списков нод, это такой немаленький и пугающий новичков своим аяксовым интерфейсом и сложностью sql-конструктор. Если merlinofchaos хотел окончательно отвадить от сложных проектов на друпале неискушенных разработчиков - у него это хорошо получилось для опытных девелоперов - штука реально золотая и оправдания "да я тут сча по-быстрому одним sql запросом из модуля и списочек через echo выведу" как-то уже не очень катят - можно списки юзеров, комментов и нод делать единообразно.
для меня окончательно ясно - drupal 6 готов к употреблению.
http://afrikmotion.com - социалка, посвященная Африке. Мультиязычная, на localizer
http://rvlogis.com - корпоративный сайт
http://gagtag.ru - общество критиков, обсуждение проекта тут: http://drupal.ru/node/15086
http://stvnews.ru/ - Новости для Ставропольского generation next
http://tredjealder.com/
Датский комьюнити-портал, пришлось поковырять SimpleNews, чтобы не надо было для подписки в каждой категории отдельный блок выводить. Выплывающее меню сделал на jQuery. Интеграция с smf форумом.
http://cdi.ru/
В недрах сайта спрятан Ubercart Сыроватый все же магаз (во всяком случае был пару месяцев назад), но приятно написан и ребята разработчики веселые. менюшка - jQuery.
Error handling можно перевести как "работа с ошибками". В этой статье я немного расскажу о том, как это устроено в Друпале, и как этот процесс можно улучшить для облегчения отладки вашего кода.
Почитал http://drupal.ru/node/8542, ужаснулся. Вот моя версия:
Шаг1: качаем пакет утилит http://unxutils.sourceforge.net/ , находим там patch.exe
Шаг2: используем по аналогии с unix версией. Т.е. кидаем патч в корень нашего друпала, запускаем командную строку, и patch -p0 < file.patch (patch.exe должен быть доступен через системные пути, которые можно посмотреть набрав path в командной строке)