Видеокурс "Разработка сайтов на CMS Drupal 8". Друпал уроки
Уроки Drupal`огии: Шестнадцать советов начинающему друпальщику
Содержание статьи
Про него говорят: гибкий и сложный, безопасный и быстрый. Им многие восхищаются, но не все решаются применять в своих проектах. Да, он такой, этот Drupal. Умеет многое, но чтобы получить от него максимальную отдачу, разработчику придется как следует попотеть и разобраться в многочисленных тонкостях. Этот путь тернист и труден, но цель однозначно того стоит. Я начал применять Drupal в своем большом проекте не так давно, но уже успел набить несколько шишек и хочу уберечь от этого тебя. Заинтригован? Тогда приготовься выслушать советы от уже не совсем начинающего Drupal’ера.
Совет №1: Каждому проекту — свой Drupal
Drupal пригоден не только для строительства web-сайтов, но и для разработки web-приложений. Зачастую подобные приложения разрабатываются для внутрикорпоративных нужд. К таким проектам предъявляются совсем другие требования, и типичной сборки Drupal может оказаться мало. Да, все легко допилить и настроить, но иногда беспокоиться об этом не нужно, так как любители Drupal’а уже все сделали.
Из альтернативных «версий» Drupal я могу посоветовать BrainstormBlogger (brainstormblogger.org) и Open Atrium (openatrium.com). Первый проект — это сборка Drupal’а, специально разработанная для быстрого создания блогов. Использовать чистый Drupal для строительства блога — процесс трудоемкий, и не каждый новичок с ним справится. Специально для таких случаев и людей наш соотечественник сделал альтернативную сборку Drupal. Rainstorm Blogger готов к работе прямо из коробки и содержит в себе все необходимые модули (облако тегов и прочее) для развертывания полноценного блога. В случаях, когда нужен простой блог, это идеальный вариант.
Также хочу отметить, что применение Brainstorm blogger не накладывает никаких ограничений. Ты можешь устанавливать дополнительные модули, выполнять автоматическое обновление движка и так далее.
Второй проект, о котором я хочу тебе рассказать — Open Atrium. Он позволяет в кратчайшие сроки поднять систему для совместной работы. Если ты руководишь отделом, то однозначно знаком с подобными проектами. Они позволяют закреплять задачи за определенным сотрудником, планировать время их выполнения, отслеживать процесс завершения, формировать отчеты и прочее.
Большинство таких программ — платные, но в функциональном плане они не сильно выигрывают (или вовсе проигрывают) Open Atrium. Если перед тобой встала задача найти и развернуть подобный софт, то обязательно присмотрись к этому продукту. Он быстрый, функциональный, бесплатный, и при острой необходимости его можно допилить под себя. Набор ключевых функций привожу ниже:
- Система тикетов;
- Блоги;
- Календарь;
- Документы wiki;
- Доска для групповой работы.
Совет №2: Рулим Drupal’ом из командной строки
Удобный web-интерфейс панели администрирования Drupal — это хорошо, но отнюдь не всегда удобно. Как было бы здорово иметь возможность выполнять административные операции прямо из командной строки… А ведь это возможно! Достаточно загрузить и установить пакет drush (http://drupal.org/project/drush). С его помощью администратор drupal’а может выполнять разнообразные действия прямо из консоли:
- Получать информацию о настройках сайта;
- Устанавливать/удалять модули;
- Выполнять обновление движка и так далее.
Из всех возможностей drush я чаще всего пользуюсь функцией обновления модулей. Стандартный процесс загрузки апдейтов славится своей занудностью. Изначально требуется составить список обновившихся модулей, затем зайти на официальный сайт Drupal и перейти на страницу конкретного модуля. Потом загрузить его, переместить в нужную директорию, выполнить скрипт обновления и прочее. Ладно еще, если нужно обновить один модуль, а если их десять, двадцать? Запросто можно сойти с ума! Куда веселее выполнять эту процедуру при помощи drush. В этом случае достаточно воспользоваться командами up и upc. Удаление/отключение новых модулей выполняется аналогичным образом. Например, для удаления модуля предусмотрена команда:
$ ./drush uninstall <модуль или список модулей>
Примерно так же происходит отключение и включение модулей:
$ ./drush en blog //включаем модуль blog$ ./drush dis blog //отключаем модуль blog
Кроме перечисленных вкусностей, drush сослужит хорошую службу, если ты умудришься установить глючный модуль и положишь отображение панели администрирования. Как в такой нелегкой ситуации корректно удалить виновный модуль? Drush сможет оказать первую помощь и посредством одной команды удалит капризный модуль.
Совет №3: Авторизация по OpenID
Сайты с собственной системой авторизации отходят на второй план. Жизненно-необходимых web-сервисов с каждым днем становится все больше и хранить в голове десятки связок из логинов/паролей — задача не из легких. Чтобы как-то ее решить, в свое время и был создан OpenID — открытая централизованная система, позволяющая пользователю использовать единый логин/пароль для выполнения авторизации на различных сайтах. Последнее актуально, если они поддерживают OpenID.
Начиная с шестой версии, в составе Drupal идет модуль, обеспечивающий возможность авторизации по OpenID. Однако, чтобы начать использовать на сайте OpenID, необходимо подключить еще один модуль, содержащий настройки для различных поставщиков OpenID.
Таких поставщиков много, но наиболее популярными (для российских пользователей) являются Yandex, Rambler, Google, LiveJournal, VKontakte, Facebook и некоторые другие. Для зарубежных сервисов (Google, LiveJournal, Facebook) в репозиториях Drupal есть соответствующие модули, а вот для российских — нет. Когда передо мной встала задача прикрутить OpenID-авторизацию, то мне пришлось основательно прошерстить интернет с целью поиска решения. И оно нашлось! Чтобы все было тип-топ, нужно воспользоваться модулем OpenID Extension (http://drupal.org/files/issues/openid_ext_1.zip) от нашего соотечественника. Обрати внимание, данный модуль — не очередной вариант взаимодействия с OpenID. Это просто удобный блок для выполнения авторизации, а также возможность выбора поставщика ID-параметров в нашей стране.
Совет №4: Drupal + «ВКонтакте»
Включить на сайте авторизацию по OpenID, несомненно, полезно, но что если нам потребуется всего лишь обеспечить более простой вход на сайт (без регистрации) пользователям, имеющим аккаунт в социальной сети «ВКонтакте»? Да, можно просто отключить лишних поставщиков в External Form Login, но это не решит проблему. Выполняя вход по VKontakteID, пользователю фактически придется создать новую учетную запись на сайте. При входе он увидит стандартную регистрационную форму, ожидающую заполнения. Да, даже пароль придется придумывать. И лишь после создания аккаунта к нему будет привязан OpenID-идентификатор (в данном случае VKontakteID), и пользователь сможет выполнять вход по нему. Сам понимаешь, такой подход не очень удобен, и воспользоваться им можно не всегда.
Иногда требуется реализовать что-то более простое. Представь, как было бы здорово, если бы пользователь, имеющий аккаунт «ВКонтакте », мог сразу войти на твой сайт. Другими словами, Drupal должен создавать новую учетную запись автоматически на основании полученных данных от «В Контакте». К счастью, добиться такого эффекта не так-то сложно. Примерно полгода назад разработчики популярной социальной сети открыли доступ к OpenAPI-интерфейсу. Благодаря этому пользователи получают возможность выполнять авторизацию на сторонних сайтах, используя учетную запись «ВКонтакте».
Добавить в Drupal поддержку «ВКонтакте OpenAPI» позволяет модуль VK OpenAPI (http://drupal.org/project/vk_openapi). Модуль прост в использовании, и с его помощью легко настроить новую систему авторизации. Помимо авторизации VK OpenAPI может добавить к материалам кнопку «Share», позволяющую пользователям делиться понравившимся материалом.
Совет №5: Выбираем продвинутый шаблонизатор
Одним из самых удачных шаблонизаторов для PHP считается Smarty (www.smarty.net). Во многих современных CMS используется именно он, и на это есть причины. Главные из них — гибкость, удобство и большие возможности. Увы, по умолчанию в Drupal применяется собственный шаблонизатор, но при желании легко можно подключить и smarty. Для этого необходимо загрузить smarty theme engine для Drupal (http://drupal.org/project/smarty) и, собственно, сам Smarty (ссылку ищи выше). После этих нехитрых операций ты получишь возможность создавать темы на базе Smarty. Кстати, почемуто готовых тем не так много, поэтому у тебя есть все шансы стать автором самой красивой и удобной Smarty-темы, на которой будут учиться тысячи пользователей.
Совет №6: С чего начинать создание первой собственной темы для Drupal?
Рано или поздно перед Drupal’ером встает задача по разработке собственной темы оформления. Я бы сказал, что именно на этом этапе 90% новичков принимают фатальное решение: «Drupal не для меня». Отчасти их можно понять, поскольку темизация — одна из самых сложных и непонятных вещей. Нужно приложить усилия, чтобы хорошо освоить данный процесс и применять его в дальнейшем без сучка и задоринки. Чтобы освоение проходило более гладко и понятно, я бы рекомендовал тебе выполнить несколько простых шагов.
- Чтение мануалов. Если уровень английского позволяет, то знакомиться с темизацией стоит после чтения официальной документации (http://drupal.org/documentation/theme). В ней содержится куча как полезного, так и бесполезного материала. В любом случае, изучив его, ты однозначно поймешь, как работают темы в Drupal и познакомишься с другими нюансами этой области. Вторым обязательным для чтения пунктом будет цикл статей от Романа Архарова, профессионального Drupal-разработчика. Роман написал несколько замечательных статей по Drupal (http://pcmag.ru/solutions/detail.php?ID=37518). Среди них есть и статья про темизацию.
- Изучение темы Zen. Начать разрабатывать новую тему для Drupal с чистого листа — довольно сложный процесс. Новичку вряд ли хватит сил и терпения завершить его до конца. Для облегчения жизни лучше взять за основу тему Zen (http://drupal.org/project/zen). Весь код темы хорошо прокомментирован и работать с ним — одно удовольствие.
Совет №7: Shared хостинг или VPS?
Сам по себе Drupal достаточно шустрый, но стоит обвешать его дополнительными модулями и вывести в свободное плавание, как начинаются проблемы с производительностью. Чтобы Drupal «летал», нужно позаботиться о правильной настройке окружающей его среды. Речь идет, конечно, о web-сервере, СУБД, PHP и так далее. Максимальная производительность возможна лишь при тщательной настройке всех компонентов. К несчастью, получить доступ ко многим настройкам перечисленного ПО на обычном хостинге нельзя.
Приходится довольствоваться тем, что предлагает хостер. Чтобы посетители твоего проекта не наблюдали белый экран смерти вместо искомого сайта, я советую тебе не использовать shared-хостинг для размещения более-менее посещаемого ресурса. Лучше потратить немного денег и приобрести VPS, на котором ты будешь хозяином и сможешь сам определять настройки всех серверных компонентов (включая ОС).
Совет №8: Начальная оптимизация
Сразу после установки Drupal нужно приступить к базовой оптимизации. Drupal быстр, но если есть возможность что-то ускорить, ей надо пользоваться. Процесс оптимизации Drupal условно можно разделить на три группы:
- Базовая.Реализуется средствами движка. Самостоятельно рулить этими параметрами из панели администрирования ты можешь сразу после завершения инсталляции системы.
- Расширенная.Для Drupal разработаны специальные модули, позволяющие повысить общую производительность системы (например, посредством продвинутого кэширования).
- Серверная.Под серверной оптимизацией подразумевается настройка серверных компонентов, взаимодействующих с Drupal.
Итак, вначале посмотрим на базовую оптимизацию. В настройках производительности системы (admin/settings/performance) доступно несколько опций, влияющих на быстродействие. Первое, с чего стоит начать оптимизацию, — включение кэша. По умолчанию он отключен и администратору доступно два варианта кэширования: «нормальный» и «агрессивный». Самую большую производительность дает «агрессивный» режим, но не стоит обольщаться.
Лучше выбрать «нормальный». Это оптимальный режим для сайта с большим числом зарегистрированных пользователей. Если же сайт малопосещаем, то в таком случае хорошим выбором станет «агрессивный» режим.
Советую обратить внимание на группу настроек «Оптимизация пропускной способности». Она позволяет активировать объединение CSS и JavaScript в единые файлы. Зачем? Дело в том, что многие дополнительные модули тянут с собой css/js файлы. При загрузке очередной страницы происходит обращение к нескольким файлам на сервере. А это, в свою очередь, лишние соединения. Чтобы минимизировать затраты, можно выполнить объединение. В этом случае Drupal создаст единый файл с css/js, который и будет загружаться браузером пользователя.
Совет №9: Серверные компоненты
С самого начала важно понять, что быстродействие Drupal напрямую зависит от настройки компонентов внешней среды. К таковым относятся web-сервер, СУБД и PHP. Если что-то из этого списка работает неэффективно, то ни о какой хорошей производительности не может быть и речи. Настраивать все компоненты можно долго, но я хотел бы обратить твое внимание на самые важные настройки — настройки PHP. Весь Drupal написан сугубо на PHP, поэтому крайне важно позаботиться о настройке этого интерпретатора. В конфигурационном файле PHP есть куча директив, но для Drupal особенно важной будет php_value memory_ limit. Как видно из названия, директива отвечает за объем памяти, выделяемой для выполнения сценария.
Понятное дело, что чем ее больше, тем лучше. Если говорить конкретно в цифрах, то крайне желательно установить значение больше 32M (то есть больше 32-х мегабайт). Помимо установки объема памяти, не менее важной опцией является max_excecution_time (максимальное время выполнения сценария). Обычно здесь выставляют значение от 30 и выше. Чем больше будет время исполнения сценария, тем меньше ты будешь видеть белый экран смерти.
- Акселератор для PHP
Как бы в народе не хвалили PHP за простоту и быстродействие, трудно не согласиться с тем, что этот интерпретатор все равно медленный. Для выполнения каждого сценария интерпретатору PHP необходимо сначала считать и разобрать весь код сценария, затем выполнить его и вернуть результаты. Эта операция проводится постоянно, и на нее тратится самый драгоценный ресурс — время. Для решения этой проблемы были придуманы так называемые php-акселераторы — программы, ускоряющие выполнение php-сценариев.
Ускорение достигается за счет кэширования байт-кода каждого сценария. Для достижения максимальной производительности желательно установить какойнибудь акселератор. Один из наиболее удачных представителей этого типа программ — eAccelerator (http://www.eaccelerator.net). Он прост в установке и настройке, а также существенно ускоряет реакцию интерпретатора.
Чаще всего в качестве СУБД для web-проектов выступает MySQL. Он быстрый, бесплатный, кроссплатформенный и обладает всеми необходимыми функциями. Но по настройке и оптимизации MySQL пишут целые книги, так что я не буду лезть в дебри, а сразу посоветую включить кэширование (в mysql).
Совет №10: Альтернативное кэширование
В вопросе оптимизации пределов не существует. Но в Drupal таких ограничений более, чем достаточно. И одним из таких тормозов является встроенная система кэширования. Она работает хорошо, но для больших проектов ее не хватает. Именно поэтому членами сообщества Drupal была разработана альтернативная система кэширования.
Решений подобного рода несколько, но лучшим из них я считаю cacherouter (http://drupal.org/project/cacherouter). Проект CR представляет собой модуль для Drupal и реализует хранение кэша в памяти посредством возможностей демона memcached или акселераторов (APC, eAccelerator, XCache). В общем, рекомендовано для больших проектов.
Совет №11: Views вместо своих запросов
Как-то раз мне попался сайт на базе Drupal. В нем во множестве мест были понатыканы sql-запросы. Разработчик использовал их для вывода в блоки различной информации: последние статьи, последние новости и прочее. Способ имеет право на существование, но пользоваться им все же не рекомендуется. Правильнее будет воспользоваться модулем Views (http://drupal.org/project/views).
Он позволяет создавать различные представления, и, самое главное, делает их эффективно. Тебе не нужно разбираться в структуре БД — даже сложные выборки реально сделать путем применения визуального конструктора.
Кроме того, есть возможность управлять кэшированием, создавая очередное представление. При реализации вьюшек для редко изменяемой информации эта возможность будет кстати.
Совет №12: Drupal.API
Существует заблуждение, что вместо использования API можно отдать предпочтение дедовскому способу — прямому выполнению SQL запросов. Конечно, есть ряд задач, решать которые лучше именно таким способом. Но это скорее исключение. Во всех остальных ситуациях правильнее будет пользоваться Drupal.API. Вызывая документированные функции, разработчик может быть уверен, что его действия не повлекут за собой негативные последствия. К примеру, если для добавления нового пользователя существует специальная функция, то ни в коем случае не стоит показывать понты и делать это запросом. В случаях, когда функции мало, желательно все же сначала посмотреть ее исходник, изучить выполняемые запросы и только затем на их основе составлять собственные.
Совет №13: Нагрузочное тестирование
Вновь созданный проект лучше сразу подвергнуть жесткому тестированию. Хоть трижды закрути все болты и гайки, но шанс, что сайт не выдержит шквала посетителей, есть всегда. Желательно сразу потратить время на нагрузочное тестирование и уже на ранних этапах исключить возможные провалы. Для проведения подобных тестов хорошо себя зарекомендовал сервис http://loadimpact.com. Он предлагает различные тесты для проверки web-проекта на устойчивость к нагрузкам. Тесты есть на любой вкус и кошелек. Для серьезного анализа имеется pro-версия. Она, конечно, стоит денег, но тестов в ней больше, а значит и польза — ощутимей. Не пугайся: если проект поднимается на общественных началах, то хватит и бесплатного варианта. Во всяком случае, ты будешь точно знать, что твой сайт уверенно себя чувствует при заходе на него пятидесяти человек.
Совет №14: Хороший индеец — мертвый индеец
Ни для кого не секрет, что олимп web-серверов уже много лет возглавляет Apache. Это действительно хорошее и качественное ПО, хотя и не слишком быстрое. Apache в связке с Drupal показывает не лучшие результаты и при большом наплыве посетителей становится самым узким местом. Частично победить тормоза позволяет хардкорный тюнинг, но превратить его в гепарда все равно не удастся. Лучше сразу от него отказаться и забыть, как о страшном сне. А чем же тогда пользоваться? Конечно же nginx (http://sysoev.ru/nginx)! В настоящее время nginx, пожалуй, самый быстрый web-сервер. Тот же Apache он обходит уже на старте и практически ничем ему не уступает (за исключением количества модулей, которое у nginx пока невелико). Недавно на нашем проекте (http://vr-online.ru) мы решили отказаться от Apache и полностью перешли на nginx. Производительность возросла даже визуально: при открытии страниц создается впечатление, что на генерирование вообще не требуется времени. При использовании Apache об этом можно было только мечтать.
Совет №15: Приручаем nginx
Nginx превосходно подходит для Drupal’овских проектов, но чтобы все четко и правильно работало, нужно уделить время настройке. Тут методом научного тыка не обойтись. Придется пересилить себя и прочитать объемную документацию, а также повторить все полученные знания на практике. Чтобы как-то облегчить себе жизнь, рекомендую скачать конфиг (https://github.com/yhager/nginx_drupal) для nginx, специально созданный для Drupal. Предложенный конфигурационный файл содержит все необходимое для того чтобы Drupal корректно заработал с nginx. Если перечислить возможности, которые отражены в конфигурационном файле, то получится:
- чистые url;
- мультисайтинг;
- повышенное время выполнения fastcgi;
- поддержка boost и так далее.
Совет №16: Готовься к Drupal 7
Не забывай, что разработчики уже давненько трудятся над созданием седьмой версии этого замечательного фреймворка. Совсем недавно вышел первый (на момент написания этих строк) релиз-кандидат, и я бы рекомендовал тебе его потестировать при возможности. В новой ветке реализованы интересные фичи, которых так давно не хватало Drupal’у.
Заключение
Drupal — не самая простая CMS, которую легко настроить в несколько кликов мышкой. Чтобы выжать из него максимум и поднять нетипичный проект, придется повозиться. Точнее — как следует повозиться. Однако после первого успешного проекта Drupal уже не будет казаться таким страшным и странным. Не отступай и не сдавайся! Пробуй, экспериментируй и, я надеюсь, мои drupal’ные советы тебе помогут.
Удачи!
Links
- drupal.org — официальный сайт сообщества Drupal: здесь тебя всегда ждет последняя версия CMF, актуальная документация, обширный репозиторий модулей;
- www.drupal.ru — русскоязычное сообщество Drupal: пожалуй, старейший ресурс о Drupal в рунете. Есть активный форум, свежие новости, большое количество людей, готовых оказать первую помощь;
- http://contentmanagementsystems.info/ — отличный русскоязычный ресурс о Drupal: сниппеты, FAQ, статьи о CMF Drupal;
- vr-online.ru — бесплатный электронный журнал для программистов и всех тех, кто интересуется околокомпьютерными вопросами.
С недавнего времени на сайте появился раздел, посвященный Drupal. Пока статей немного, но уже есть, что почитать.
xakep.ru
Drupal: Видео уроки от Lullabot.com
Очень качественные и полезные видео-уроки по Drupal от Lullabot.com. Советую к просмотру всем, кто занимается разработкой на этой CMF.
Всё видео на английском, но суть понятна и без знаний языка. Качество видео — DVD.
Введение в Drupal.
- Добавление контента и управление им
- Пользователи, управление ими и их правами
- Что такое блоки и что они могут
- Концепция и возможности модульной системы Drupal
- Навигация и система меню
- Дизайн сайта, темы
- Настройка сайта
Создание сайта на Drupal.
- Установка Drupal
- Установка модулей
- Создание различных типов содержимого
- Создание пользовательских ролей и прав доступа
- Использование таксономии
- Установка новых тем
- Настройка блоков
- Стратегия по поиску модулей
- Настройка WYSIWYG и форматов ввода
- Настройка cron и поиска
- Подготовка к запуску
- Обновление ядра и модулей
Администрирование Drupal сайта.
- Создание контента
- Что такой типы контента
- Управление пользователями
- Управление таксономией
- Управление контентом
- Управление меню
- Управление блоками
- Обзор модулей
- Управление темами
- Изображения и форматы ввода
- Настройки сайта и отчёты
- Получение помощи
Основы темизации. В этом видео будет показан процесс создания, с нуля, темы для Drupal.
- Введение в темизацию Drupal
- Описание файла .info
- Создание темы и применении к ней CSS стилей
- Описание файлов темы
- Создание основного шаблона
- Работа с регионами
- Работа с шаблоном ноды
- Использование инструментов разработчика
- Добавление Javascript
- Обзор переменных темы
Имеется версия для Drupal 7.
Продвинутая темизация. В видео рассмотрен процесс темизация на уровне php кода.
- Обзор template.php
- PHP в темах и шаблонах
- Зачем нужно использовать template.php
- Добавление новых переменных в шаблон
- Изменение переменных в шаблоне
- Переопределение функций темизации
- Темизация форм
- Изменение форм
- Советы по безопасности
- Добавление настроек темы
Имеется версия для Drupal 7.
Всё о модуле CCK (Content Construction Kit).
- Типы контента в ядре Drupal
- Возможности Content Construction Kit
- Добавление нового CCK поля
- Текстовые поля
- CCK Formatters
- Как CCK хранит данные
- Поля типа FileField и Node References
- Множественные значения в полях
- Функции, которые изменяют базу данных
- Дополнительные модули для CCK
- Права доступа на уровне полей
- Дефолтные значения
- CCK vs. Таксономия
- Темизация CCK
Всё о модуле Views.
- Описание Views
- Интерфейс управления представлениями
- Создание представления
- Условия
- Взаимосвязи
- Фильтры и поиск
- Объединение видов
- Управление доступом
- Экспорт представления
- Темизация представления
- Создание представления "Пользователи"
- Дополнительные модуля для Views
- Методы повышения эффективности Views
Разработка модулей.
- Инструменты для разработки
- Модуль Devel
- Описание api.drupal.org
- Описание системных файлов
- Хуки и права доступа
- Использование хука hook_user()
- Принципы темизации в модулях
- Система меню
- Динамические аргументы в меню
- Введение в функции работы с базой данной
- Добавление данных в БД
- Описание Forms API
- Создание формы
- Изменение формы
- Основы написания безопасного кода
- Стандарты кодирования
Ссылки на файлопомойки есть в гугле.
Введение в jQuery.
- Что такое jQuery
- Введение в Firebug
- Концепция jQuery
- Использование jQuery селекторов
- Эффекты и анимация
- События
- Манипуляции с DOM
- Реализация AJAX
- Использование плагинов
Работа с jQuery и JavaScript в Drupal.
- Введение в jQuery
- Добавление Javascript кода через тему оформления
- Добавление Javascript кода и переменных из своего модуля
- Что такое Drupal.behaviors
- Создание таблицы с возможностью сортировки
- Javascript в Form API
- Динамические формы в Drupal 6: AHAH framework
- Ajax framework в Drupal 7
- Пример создание Ajax ссылок в Drupal 7
- Дополнительные модули для работы с Javascript
Поисковая оптимизация Drupal.
- Модуль SEO Checklist
- Установка и настройка Google Analytics
- Использование сервиса Google Webmaster tools
- Исследование ключевых слов
- Оптимизация страниц
- Настройка заголовков страниц
- Настройка адресов страниц
- Редиректы
- Добавление мета-тегов
- Правильное использование меню
- Создание и отправка карты сайта
- Работа с robots.txt
- Настройка правил в .htaccess
- Проверка на соответствие стандартам
Производительность и масштабируемость Drupal.
- Обзор методов оптимизации производительности
- Установка LAMP
- Установка Pressflow (pressflow.org)
- Использование утилиты Apache benchmark (ab)
- Установка оп-код кэшера APC
- Установка Varnish
- Установка Memecached
- Оптимизация Apache, MySQL и PHP
- Грамотная настройка php.ini
- Тюнинг базы данных
- Что такое CDN
- Удаление узких мест в системе
- Оборудование для масштабирования
- Изменения в Drupal 7
xandeadx.ru
Анонс серии уроков по Drupal 8
На момент написания данной статьи Drupal 8 имеет релиз 8.2.3[1]. Сегодня мало кто разрабатывает серьезные (под серьезными я понимаю сайты, с кучей кастомной логики, модулей, сложным воркфлоу и имеющими интеграции со сторонними сервисами) сайты на восьмерке ввиду наличия небольшого количества контрибных модулей и относительно приличного перечня мажорных багов. Но тем не менее, момент массового перехода на 8 версию все же наступит и нам (разработчикам) нужно быть к нему готовым, потому как порог входа в восьмерку не такой уж и простой (если, конечно, вы до этого не были знакомы с симфони или другими ООП-ми фреймворками). И даже в этом случае полно нюансов, связанных с особенностью Drupal 8.
Содержание
Введение
В данной статье я хочу анонсировать старт серии уроков по D8. В ходе уроков будет разобрана каждая тема из ниже перечисленной и почти к каждой будет написано домашнее задание для закрепления практических знаний. Я, как и Вы буду точно также учиться, разбираться и практиковаться. Но, чтобы было немного интереснее, в конце каждой темы будет домашнее задание, а ответ (решение) на него будет приведен в следующем за теорией выпуском. Таким образом, те, кому будет интересно смогут сравнить свой код с моим. К слову, мой вариант не может претендовать на истину в последней инстанции:)
Темы уроков
Урок 1. Введение.
- Введение
- Что нового в Drupal 8
- Серверные и браузерные требования
- Структура папок
- Домашнее задание
Урок 2. Компоненты Symfony
- Компоненты Symfony
- Домашнее задание
Урок 3. Requests и responses, роутинг и контроллеры
- Requests и responses
- Роутинг и контроллеры
- Создание кастомного модуля
- Домашнее задание
Урок 4. Плагины
- Введение
- Создание плагина на примере блока
- Домашнее задание
Урок 5. Сервисы
- Структура файла services.yml
- Parameters файла services.yml
- Альтер сервиса
- Создание кастомного сервиса
- Домашнее задание
Урок 6. Menu API
- Ссылки Menu
- Табы
- Actions ссылки
- Контекстные ссылки
- Домашнее задание
Урок 7. Form API
- Базовые классы
- Новые элементы форм
- Создание кастомного элемента формы
- Создание кастомной формы, валидация и сабмит
- Альтер форм
- Получение формы
- Домашнее задание
Урок 8. Работа с базой данных
- Устаревшие функции
- Статические запросы
- Работа с сущностями
- Динамические запросы
- Транзакции
- Внешние ключи (foreign keys)
- Хуки установки, деинсталляции, обновления
- Домашнее задание
Урок 9. Темизация
- Render API
- Twig
- Добавление CSS & JS файлов
- Libraries API
- Шаблоны
- Брейкпоинты
- Текстовый редактор CKEditor
- Разработка собственной темы
Урок 10. Сущности
- Typed Data API
- Entities API
- Контент entities
- Конфигурационные Entities
- Создание кастомной энтити
Урок 11. Composer, Drush и Drupal console
- Composer
- Drush
- Drupal console
- Управление конфигурациями: импорт и экспорт
Урок 12. Кэширование
Урок 13. Логирование
Урок 14. Миграция
- Миграция D6, D7 на D8
Урок 15. State API
Урок 16. RESTful Web Services API
Урок 17. Тестирование
- PHPUnit
- Написание собственных тестов
Урок 18. Мультиязычность в D8
- Мультиязычность в D8
- Локализация и транслитерация, переводы
Урок 19. Мультисайтинг
По мере написания статей для каждого урока, в программу анонса могут вноситься изменения, касающиеся как названия тем и их количества, так и подпунктов. Кроме того, изменения также могут касаться и домашнего задания. Идея домашнего задания — кастомный модуль, который будет затрагивать практически все темы курса. Таким образом, модуль необходимо писать последовательно с освоением уроков.
- https://www.drupal.org/project/drupal/releases/8.2.3 - страница релиза Друпала версии 8.2.3
nightdevel.ru
Видеокурс "Разработка сайтов на CMS Drupal 8"
Всем, Привет! Мы группа веб-разработчиков drupalbook.ru. Помимо разработки сайтов мы занимаемся созданием видеоуроков по CMS Drupal, HTML, CSS, Javascript, jQuery, PHP. Свои уроки мы выкладываем на youtube-канале:https://www.youtube.com/user/SiteMadeRuНа rutracker.org:http://rutracker.org/forum/viewtopic.php?t=4039808А также в своей группе вконтакте:https://vk.com/sitemade
Скоро выходит новая версия CMS Drupal 8. Мы хотим подготовить полноценный видеокурс о том, как создавать сайты на Drupal 8. Мы записали уже более 100 видеоуроков по созданию сайтов на Drupal 6 и Drupal 7. На наших наработках сделаны десятки сайтов:drupalbook.ru/project/blogВ этот раз мы хотим, чтобы это были не просто отдельные уроки, а цельный курс, с помощью которого люди могли бы сделать себе сайт компании или интернет магазин посмотрев только этот видеокурс.
Планируемый список уроков:
0. Обзор Drupal 8. Что нового?1. Установка и русификация Drupal 8. Видео1.1. Инсталяционные профайлы. Видео1.2. Установка модулей на Drupal 8. Видео 1.2.1. Обновление модулей и ядра Drupal 8.1.3. Русификация Drupal 8. Видео1.4. Установка темы оформления на Drupal 8. Темы конструкторы. Видео1.5. Выбор хостинга, покупка доменного имени. Перенос сайта на хостинг.2. Базовые возможности Drupal 8.2.1. Материалы сайта, типы материалов, ноды. Видео2.2. Пользователи, роли и разрешения. Видео2.3. Comment - Комментарии. Видео2.4. Blog, CKEditor - блог на Drupal 8. Видео2.5. Taxonomy - Таксономия, словари и термины. Видео2.6. Block - Регионы и блоки. Видео2.7. Field, Entity - работа с полями и сущностями. Видео2.8. Image - Работа с изображениями, пресеты. Видео2.9. Views - конструктор вывода материала. Новостная лента на Drupal 8. Видео2.10. Colorbox - Создание простой фотогалереи на Drupal 8. Видео2.11. Forum - Создание форума на Drupal 8. Видео2.12. Menu. Меню в Друпал 8. Видео
3. Drupal 8 Конфигурация3.1. Настройка учетной записи. Видео3.2. Система. Информация о сайте. Видео3.3. Интерфейс пользователя. Ярлыки. Видео3.4. Работа с содержимым. Текстовые форматы. Видео3.5. Мультимедиа. Стили изображений. Видео 3.6. Поиск и метаданные. ЧПУ для друпал. Видео3.7. Разработка. Логи, Кеш, Режим обслуживания, Управление конфигурацией. Видео3.8. Регион и язык. Перевод Друпал на другой язык. Видео3.9. Веб-службы. Видео
4. Конструкторы Drupal 8.4.1. Contact - Конструктор форм. Форма обратной связи. Видео 4.2. Display Suite - Конструктор вывода нод. Видео4.3. Panels, Page Manager - Конструктор вывода страниц. Создание главной страницы. Видео4.4. Paragraphs - Конструктор landing page. Видео4.5. Views - Конструктор вывода материалов. Вывод блоков и страниц. 4.5.0. Обзор модуля Views. Видео 4.5.1. Views Фильтры и сортировка. Видео 4.5.2. Views exposed фильтры и сортировка. Доска объявлений на Drupal 8. Видео 4.5.3. Views Аргументы (контекстные фильтры). Видео 4.5.4. Views Связи (Relations). Видео 4.5.5. Views slideshow - вывод jQuery-слайдшоу и каруселей через Views. Видео 4.5.5.1. Подключаем jQuery OwlCarousel к Drupal 8 Views. Видео 4.5.6. Дополнительные настройки Views. Видео 4.5.7. Агрегация данных во Views. Видео4.6. Rules - управление бизнес-логикой сайта. 4.7. Webforms - мощный конструктор форм. Видео
5. Drupal Commerce - модуль интернет магазина для Drupal 8.5.1. Загрузка и установка Drupal Commerce.5.2. Базовая настройка Drupal Commerce. Основные сущности Drupal Commerce.5.3. Создание и управление категориями и подкатегориями.5.4. Создание и управление товарами.5.5. Создание и управление заказами.5.6. Создание атрибутов товара.5.7. Настройка корзины.5.8. Настройка оформления заказа.5.9. Настройка доставки.5.10. Интеграция с системами оплаты.5.11. Feeds - Импорт продукции из текстовых файлов.6. Drupal 8 и SEO.6.1. SEO Checklist - записная книжка по SEO.6.1. Metatags quick - Мета-теги для страниц.6.2. XML sitemap, Sitemap - XML карта сайта. HTML карта сайта.6.3. Page Title - Заголовки страницы.6.4. Pathauto - Генерация читаемых URL.6.5. Микроформаты в Drupal 8.7. i18n - Интернационализация на Drupal 8.7.1. Установка одновременно нескольких языков на сайт.7.2. Интернационализация Типов материалов.7.3. Интернационализация Меню.7.4. Интернационализация Таксономии.7.5. Интернационализация Views.8. Темизация Drupal 8.8.1. Темы ядра Drupal 8. 8.1.1. Создание темы на основе Zen Drupal 88.2. Из чего состоит тема Drupal 8. Обзор темы Stark.8.3. Создание своей Drupal 8 темы на основе темы Stable.8.4. Twig - новый шаблонизатор для Drupal.8.5. Работа с CSS в Drupal 8. Breakpoints, responsive настройки в теме Drupal 8.8.6. Работа с шаблонами в Drupal 8. Какие есть шаблоны в ядре Drupal 8.8.7. Работа с регионами и блоками в Drupal 8.8.8. Работа с jQuery в Drupal 8. Что такое behaviors?8.9. Темизация Views Drupal 8. Создаем owl carousel слайдшоу с thumbnails.9. Продвинутая темизация Drupal 8.9.1. Темы конструкторы Drupal 8.9.2. Создание темы на основе Bootstrap. Настраиваем PhpStorm, LESS Compiler для работы с нашей темой. Видео 9.2.1. Создание темы на основе Bootstrap. Компиляция SASS через Gulp. Видео9.3. Отключаем кеш в Drupal 8. Вывод debug информации в шаблоне. Видео9.4. Подготавливаем мобильную версию сайта на теме Bootstrap на Drupal 8. Видео9.5. Верстаем блок services с колонками bootstrap9.6. Галерея Isotope для Drupal 89.7. Блок с youtube видео Drupal 89.8. Блок с twitter в Drupal 89.9. Блок с социальными иконками Drupal 89.10. Слайдшоу для Drupal 89.11. Форма обратной связи Webform Drupal 89.12. Верстаем футер сайта, Pixel Perfect верстка
10. Drupal Ubercart - создание интернет магазина на Drupal 8.10.1. Установка и настройка Drupal Ubercart.10.2. Сравнение Drupal Ubercart и Drupal Commerce.10.3. Каталог Ubercart. Категории и подкатегории.10.4. Управление товарами в Ubercart.10.5. Настройка корзины в Ubercart.10.6. Настройка оформления заказа в Ubercart.10.7. Личный кабинет пользователя и администратора Ubercart.10.5. Атрибуты товаров в Ubercart. 10.8. Настройка доставки в Ubercart.10.9. Настройка оплаты в Ubercart.
11. Социальные сети на Drupal 8.
11.1. Private Messages - Личные сообщения.11.2. Страница профайла пользователя.
11.3. Organic groups - Сообщества пользователей.
11.4. События, календарь событий.
11.5. User Relationships, Flag Friend - Добавление в друзья.
11.6. Фотогалереи пользователей.
11.7. Видеогалереи пользователей.
11.8. Поиск по пользователям, сообществам, событиям.
12. Разработка модулей для Drupal 8.12.1. Установка Drush 8 на Open Server.12.2. Что такое hook в Drupal 8?12.3. Создаем кастомный Drupal 8 модуль 12.4. Роутинг в Drupal 8. Выводим страницу через наш модуль.12.5. Плагины в Drupal 8. Выводим блок.12.6. Работа с формами в Drupal 8. Добавляем форму администрирования.12.7. Работа с полями в Drupal 8. Создаем свои тип поля, widget, formatter для вставки видео с Youtube. 12.8. Что такое services и dependency injection?12.9. Работа с базой данных в Drupal 8.
Приложение.Инструкция как пользоваться консолью.Инструкция как пользоваться Git.Список полезных Drush команд.Composer в Drupal 8. Вывод последних твитов из Twitter.
С Уважением, группа веб-разработчиков drupalbook.ru
drupalbook.ru
Основы Drupal 8 - Видеоуроки
Drupal 8 basics
Duration 01:57:22
Открыть все курсы от leveluptutorialsDrupal 8 basics - Полный список уроков
Развернуть / Свернуть- Урок 1. Series Introduction 00:00:37
- Урок 2. How To Install Drupal 8 on Windows 00:07:33
- Урок 3. How To Install With MAMP OSX 00:07:43
- Урок 4. A Drupal 8 Tour 00:03:41
- Урок 5. The Drupal 8 Admin Toolbar 00:06:13
- Урок 6. Creating Our First Page 00:05:53
- Урок 7. Our First Blog Post 00:03:58
- Урок 8. Editing Our Content 00:05:07
- Урок 9. Revisions In Drupal 00:02:57
- Урок 10. User Management 00:04:20
- Урок 11. Roles & User Permissions 00:08:57
- Урок 12. Blocks Explained 00:05:44
- Урок 13. Conditionally Display Blocks 00:04:54
- Урок 14. Understanding Menus 00:05:11
- Урок 15. How To Create A Menu 00:03:43
- Урок 16. Adding The Menu To Our Pages 00:05:40
- Урок 17. How To Have Nice URLs in Drupal 8 00:03:28
- Урок 18. How To Install A Module 00:05:44
- Урок 19. Automatic Path Aliases 00:06:54
- Урок 20. Customizing Your Contact Form 00:05:11
- Урок 21. Installing A Theme In Drupal 8 00:07:06
- Урок 22. How To Update Drupal 8 00:06:48
Станьте знакомыми и уверенными в работе на Drupal 8. Изучите основы работы, терминологию, необходимую для работы в качестве администратора сайта Drupal в курсе, созданном специально для начинающих. Эта серия содержит 22 видеоурока в HD, посвященных установке и управлению сайтом.
Твоя оценка
Следи за последними обновлениями и новостями в наших пабликах facebook, или вступай в наш канал telegram.Комментарии
Похожие курсы
29-04-2018ru 12 уроковDrupal - CMS с открытым исходным кодом, которая позволяет создавать как простые, так и сложные веб-проекты на этом движке. Большое сообщество Drupal постоянно совершенствует движок с каждым выходом какой то новой технологии или функционала, поэтому вы можете быть уверенны в современности движка. Особенность Drupal - модульная платформа, которую можно относительно легко расширять.
Duration 06:30:32
coursehunters.net