Кто же такой Сисадмин? Связка из модулей Panels, Views и Bootstrap Framework.

Всем привет. Решил реализовать каталог на Drupal 7. Целью было создать его без модулей Ubercart и Commerce. Конечно, я понимаю что из них тоже можно сделать каталог, но зачем за собой тянуть столько левого функционала, я не понимаю.

Конечно я полез в гугл и нарыл инфу. Как оказалось, на англоязычных сайтах все решения которые были предложены, так или иначе использовали Ubercart и Commerce. Среди русскоязычных попался всего лишь один достойный: «Продвинутый каталог на Drupal 7 ». Я его попробовал, мне понравилось, но у него есть недостатки:

  1. Самый главный - невозможность задания алиасов для адресов. Т.е. Разделы каталога имеют жесткий адрес catalog/%TID.
  2. Необходимость включения фильтра PHP. Я стараюсь избегать включения данного модуля, ведь если сайтом будут управлять криворукие - то этот фильтр просто яма в безопасности.
  3. Плодятся типы материалов (для фильтров). Не пробовал, точно о проблеме сказать не могу. Мне хватило первых двух чтобы отказаться от него.

Перепробовал уйму вариантов на одном лишь Views. Были даже рабочие, но их гибкость вызывала сомнения. В итоге решением всех проблем стала связка Views & Panels. Именно об этом я и расскажу.

P.s. То что замазано на скринах - настройки по умолчанию (не менялись).

Подготовка

Не удивительно, но для создания каталога понадобится Views , Panels и конечно же Ctools . Включаем:

  • Chaos tools
  • Page manager
  • Views content panes
  • Panels
  • Views & Views UI

Для начала создайте словарь таксономии с названием «Категории каталога» (или же как вам нравится). Добавьте необходимые категории.

Теперь создайте новый тип материала (например «товар») который будет добавляться в каталог, и добавьте ему поле «Term reference» которое ссылается на ваш словарь «Категории каталога». Также добавьте парочку товаров, чтобы видеть результаты.

Создание представлений (Views)

Создание главной каталога

Тут проще простого.

  • Жмем «Add new view»
  • Указываем название «Каталог»
  • Show: Taxonomy terms of type «Категории каталога»
  • Ставим галочку «Create a page» и заполняем.
  • Page title: Каталог
  • Path: catalog
  • Жмем кнопку «Continue & edit»
  • Делаем необходимый Format. Например «Table».
  • В разделе Filter criteria жмем «add».
  • Выбираем «Taxonomy term: Parent term» и жмем «Apply», затем сного «Apply». Тем самым мы сделали чтобы выводились только родительские категории.
  • Сохраняем вьюху.

Этими действиями мы создали страницу по адресу site/catalog на которой будут отображаться только родительские термины.

Сисадмин (он же на английском языке sysadmin , system administrator ) - сокращенное наименование профессии, полное название которой на русском языке звучит как системный администратор . Данная профессия в последнее время стала очень популярной для большинства молодых, и не очень, людей, ей обучают, по ней работают, за неё получают хорошие деньги. Связано это с бурным развитием различных компьютерных технологий и их проникновением во все сферы человеческой жизни. Слово сисадмин часто используется в разговорной речи, в вакансиях и резюме при поиске работы, одним словом - везде. Ниже пойдет речь о том, что же представляет из себя профессия системного администратора.

В современных реалиях, системным администратором может называться фактически любой человек, который занимается обслуживанием и поддержанием работы определенной компьютерной сети, включая все её аппаратные и/или программные компоненты, в которую могут входить:

  • Персональные компьютеры, как рабочие станции, так и сервера;
  • Сетевое оборудование, такое как коммутаторы, маршрутизаторы, фаерволлы и многое другое;
  • Веб-сервера, почтовые сервера, сервера баз данных, и прочие.

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

В зависимости от своей специализации, системный администратор может заниматься следующими видами деятельности:

  • Администратор рабочих станций и серверов чаще всего занимается починкой как аппаратных (вышедшие из строя материнские платы, погоревшие блоки питания), так и программных (не загружается Windows, не печатаются запятые в Word"e...).
  • Администратор корпоративной сети на основе домена Active Directory. Очень популярное занятие, учитывая распространенность операционных систем Windows, а так же необходимость их как-то централизованно контролировать. Такой специалист должен уметь создавать, распределять по группам, редактировать пользователей, выдавать им соответствующие права в домене AD, а так же уметь управлять групповыми политиками для пользователей, их компьютеров и групп, в которых они все состоят.
  • Администрирование сетей и сетевого оборудования. В его обязанности входит знание топологии сетей, умение работать как с не настраиваемым, так и с настраиваемым сетевым оборудованием, планирование локальной вычислительной сети, а так же возможность объединения в одну сеть нескольких отдаленных друг от друга рабочих мест, путем настройки NAT"ов и VPN"ов. Не стоит так же забывать и контроле доступа в рамках этой сети, и за её пределами - настройка прокси.
  • Администратор веб-сервера, который должен как минимум уметь устанавливать, настраивать и обслуживать один из следующих веб-серверов - Apache, IIS, Nginx, следить за хостингом (который может располагаться как внутри сети организации, так и вне её). Кроме того, хороший администратор должен уметь настроить нормальное распределение ресурсов при высоких нагрузках, кластеризацию и много других специфичных вещей.
  • Администрирование почтового сервера так-же является распространенной задачей для сисадмина, в его задачи входит работа с такими популярными решениями как Exim, Microsoft Exchange, Postfix, Sendmail, или корпоративными почтовыми решениями от Google или, например, Yandex. Кроме очевидного контроля за учетными записями (создание, удаление, настройка), так же обязательно уметь настроить антиспам систему и прочее.
  • Администратор сайта. В эти обязанности может входить как просто какое-то наполнение содержимым сайта, но раз речь идет о системном администраторе, то по идее он должен уметь и настроить хостинг (в том числе и веб-сервер, о чем уже говорилось выше), установить и настроить нужный сайт, например какую-либо систему управления содержимым (CMS).
  • Совсем редко под обязанности системного администратора может попасть задача создания или обслуживания системы видеонаблюдления. В задачах установка и настройка камер, реагирования на различные события, сохранение и воспроизведение записей. Относится к системному администрированию слабо, и часто попадает в его обязанности по совместительству к каким-нибудь другим обязанностям.

За бортом описанных выше занятий системного администратора остались такие возможные вещи, как администрирование баз данных (Microsoft SQL, MySQL и его множественные ответвления, Oracle и т. д.), администрирование 1C (не путать с "программист 1C"), АТС и многое другое.

Что умеют Панели

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

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

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

Части расширения взаимосвязаны, поэтому активируйте их все. После этого в разделе «Структура» у вас должны появиться новые элементы.

Создаем mini

Перейдем в административной панели Drupal 7 в пункт «Panels». Здесь выбираем тип блока «Mini-panel» и создаем ее. Заполняем поля: заголовок, описание, категорию.

Теперь добавляем контекст. Затем задаем нужный нам шаблон.

В отобразившемся шаблоне нужно заполнить каждый блок. Для примера я наполню только одну часть панели. Нажмите на значок настроек и в списке выберите «Добавить материал».

04.07.2012

Многие из вас, на различных сайтах хоть раз видели выезжающие панели, в которых находится какая-то информация, либо форма заполнения, либо связь с консультантом, обратный звонок и так далее. Например выглядеть он могут вот так:

Выглядят они довольно эффектно. В принципе для небольшого сайта необходимость в них отпадает, а вот если ваш ресурс разросся и вам просто не хватаем места на странице для размещения информации, то вам такие панели будут в самый раз. Строятся такие панели на JS и Jquery, плюс CSS (куда же без него). Сейчас я вам пошагово попытаюсь объяснить как такую панель разместить у себя на сайте под Drupal 7 и для удобства выведем этот блок в качестве региона, что бы мы не залазили каждый раз в код, а просто размещали в данной панели именно тот блок, который нам необходим. Итак приступим:

1.Для начала нам нужен сам скрипт этой панели (написать можно и самому), но я возьму уже готовый, что бы зря не тратить время да и к тому же он мне тоже нравится. Скачать мой вариант панели из статьи можно . (Это не мой скрипт, я лишь почистил его от мусора).

2.Распаковываем и смотрим, что внутри у нас находится папка с изображениями, стили, и индексный файл. Откроем файл «index.html» и видим, что к ней у нас подключаются следующие элементы:

  1. Стили – файл style.css
  2. Библиотека Jquery – с url откуда подкачать файл библиотеки
  3. И перед закрывающим тегом head - вставлен выполняющий скрипт.

Пример подключения я проведу в drupe 7 на шаблоне «Crisp».

3.Первоначально создадим дополнительный регион в шаблоне «Crisp» (про установку данного шаблона я писал ). Для этого идём в файл

    crisp. info

и пишем новый регион:

    regions[ newRegionDrupalfly] = drupalfly


    page. tpl. php

и пишем код вывода данного региона. Замечу, что блок я возьму из разметки индексного файла в скрипте нашей панели, а именно создам блок с классом «panel» в любом месте контента страницы (так как блок абсолютно позиционирован).


    print render($page [ "newRegionDrupalfly" ] ) ;


5. Проверим появился ли у нас новый регион в админке сайта, а именно в структура->блоки


Если вы всё сделали правильно, то регион должен у вас появиться. (Замечу, что после изменений в шаблоне Drupal – шаблон нужно пересохранить, что бы подцепились новые элементы).

6. Далее нам необходимо применить стили, а именно подцепить стилевый таблицы нашего скрипта к нашей странице. Есть два варианта, либо дописать существующий файл шаблона style.css, либо подключить отдельный файл. Я выбираю второй вариант, поэтому – переименую файл скрипта из style.css в panel.css и скопирую его в папку со стилями в нашем шаблоне.


Теперь пропишем в файле

    crisp. info

подключение к странице нашего нового стиля:

    stylesheets[ all] = css/ panel. css


А так же скопирую все изображения из папки «images» нашего скрипта в папку «images» - нашего шаблона. Думаю с этим вы без труда справитесь. Не забудьте только переписать url с картинками в стилях.

7.Теперь нам необходимо подключить скрипты, это библиотека Jquery и выполняющий скрипт. Данный скрипт работает только с библиотекой 1.3.2 –поэтому я подключать буду её. (Хотя в Drupal JQuery библиотека идёт из коробки, но в любом случае в Drupal 7 присутствует новая версия библиотеки). Поэтому открываем файл «html.tpl» (структура этого шаблона не совсем обычная, контент страницы и head разнесены в разные файлы. Но в этом нет ничего страшного.) И вписываем туда подключение нашей старой библиотеки и выполняющего скрипта, а именно копируем это всё из файла index.html.


Замечу, что по правилам API Drupal все скрипты нужно выносить в отдельный файл и подключать через файл

    Название_темы. info

подробнее об этом можно почитать вот Теперь пересохраняем весь наш шаблон. Идём в пункт Cтруктура->Блоки. Создадим новый блок, внутри блока может быть всё что угодно, в моём случае это просто текст и поместим его в регион «drupalfly»

Сохраняем и переходим на сайт и видими язычок нашего региона.


При клике по которому у нас открывается содержимое нашего нового блока.


На этом всё. Надеюсь это кому ни-будь пригодиться.

«Здравствуйте, я говорю вам – здравствуйте!» В прошлый раз я писал о том, как установить Bootstrap тему на Drupal и настроить Sass . Сегодня же я расскажу, что необходимо для того, чтобы подружить Bootstrap с Panels и Views, а также сделаю обзор уже готовых модулей для решения данных задач.

Первым вопросом после того, как я услышал про связку Bootstrap и Drupal , у меня был «а как это все будет работать с панелями?» . Для меня любой серьезный проект начинается именно с установки модуля Panels – к нему действительно быстро привыкаешь, хотя на первых парах он и кажется сложным. Поэтому сразу же, как только наигрался с Bootstrap и Sass, я поставил Panels , Views и попытался сымитировать страницу сложного проекта с большим числом блоков, списков, таблиц и прочих элементов. Разумеется, без дополнительных модулей и настроек адаптивности страница выглядело убого. Поэтому вот мой небольшой список модулей, которые можете сразу устанавливать вместе с темой Bootstrap:

  • Panels Bootstrap Layouts
  • Panels Bootstrap Styles
  • Views Bootstrap

Panels Bootstrap Layouts

Весьма негромоздкий модуль, который предоставляет 2 шаблона с необходимой для Bootstrap структурой и возможность задавать стили регионам панелей. Вообще это такой хороший example-модуль, код которого можно взять за основу, если потребуется писать какое-то решение под свой проект.

Использовать его довольно просто:

  • при создании варианта страницы на этапе Layouts выберите категорию “Bootstrap” и один из двух шаблонов на выбор: Three Columns Stacked или Two Columns Stacked ;
  • при добавлении Panel Panes на этапе Content изменяйте стиль региона на “Bootstrap” и указывайте его ширину согласно 12 Grid System .

Однако, если вы захотите добавить несколько классов к одному блоку (например, «.col-xs-6 .col-sm-3» ), то уже придется писать свое решение. У меня же возникла другая ситуация: я использовал модуль Panels Everywhere , поэтому выбрал шаблон Three Columns Stacked в качестве шаблона для всего сайта и страницы отдельной ноды. Проблема оказалась в том, что у меня отсутствовал в коде страницы класс “. container” . Я пошел на принцип не изменять никаких шаблонов, а попытаться добавить в массив $classes (см. файл "bootstrap-threecol-stacked.tpl.php" ) необходимый класс. Чтобы отличить на преропроцессинге шаблон сайта от шаблона страницы, я попробовал привязаться к аргументам. Правда, не знаю на сколько это правильно, но тем не менее оно работает. Код можно добавить в "template.php" файл вашей темы.

    * Implements hook_preprocess_HOOK().

    function MY_THEME_preprocess_bootstrap_threecol_stacked(& $variables ) {

    $args = isset ($variables [ "display" ] -> args [ 0 ] ) ? $variables [ "display" ] -> args [ 0 ] : NULL ;

    if (! empty ($args -> type ) && $args -> type == "page_content" ) {

    $variables [ "classes_array" ] = "container" ;

Panels Bootstrap Styles

Модуль, чем-то похожий на предыдущий, позволяет через изменение стилей регионов и Panel pane’ов навешивать необходимые Bootstrap классы . Данный модуль позволяет стилизовать элементы, однако с помощью него вы не можете управлять шириной блоков. Какой-то особой пользы от этого модуля я пока для себя не нашел, ну а кому-то может и пригодится.

Views Bootstrap

Вот это шикарный модуль! Модуль предоставляет новые форматы вывода для Views , т.е. расширяет стандартный набор (Unformatted list , Grid , HTML list ) всякими «приколюхами» Bootstrap: Bootstrap Accordion , Bootstrap Carousel , Bootstrap Tab и т.д. Вы можете создавать действительно красивый вывод данных лишь при помощи кликов мышкой.


Как только я переключился со стандартного шаблона темы Bootstrap на Panels, у меня слетело меню: пропали и стили, и адаптивность. Причиной стало то, что потерялась необходимая HTML-структура для Bootstrap стилей. Решил я эту проблему следующим образом опять же через "template.php" :

    * Overrides theme_menu_tree().

    function MY_THEME_menu_tree__main_menu(& $variables ) {

    $output =