PURL и / или пробелы? - PullRequest
       1

PURL и / или пробелы?

8 голосов
/ 18 августа 2010

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

Я мог бы, вероятно, выполнить то, что мне нужно, используя многопользовательские сайты Drupal, общую базу данных и используя settings.php для переопределения переменных, которые мне нужны (например, menu_primary_links_source).Однако, чтобы сделать вещи более управляемыми с эксплуатационной точки зрения и приобрести гибкость, я рассматриваю возможность использования PURL API (purl.module) для добавления префиксов URL для определенных разделов сайта, и чтобы моя тема и пользовательские модули реагировали в соответствии ск текущему префиксу PURL.

Прежде чем я начну, я хочу убедиться, что я не дисконтирую Spaces.module.В Spaces используются PURL, Features и Context (которые я сейчас также использую для своего сайта).Я не совсем понимаю, как именно Spaces вписывается в картину.Поможет ли мне сделать разные разделы сайта, каждый с определенной конфигурацией и поведением?Или мне лучше зависеть напрямую от PURL API?

Ответы [ 3 ]

7 голосов
/ 18 августа 2010

Загадка Spaces-PURL-Context.Веселье.Я собирался написать это в длинном стиле, чтобы закончить свою работу.

Что такое пробелы?

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

При использовании пробелов вам необходимо решить, какой тип«корзины», которые вы хотите использовать. Open Atrium использует OG и пользовательские корзины, вам нужен новый тип корзины, основанный на роли пользователя. Для здравомыслия вам может даже понадобиться создать отдельный модуль, чтобы определитьпользовательские роли как более конкретная вещь в Drupal, вроде того, как Spaces OG нужно опираться на органические группы для ряда концепций.

Что такое контекст?

Контекст - это, в конечном счете, украшение страницы.механизм. Вы рассказываете ему кое-что о странице, она соответствующим образом изменяет страницу. Контекст не может изменить URL, это наоборот. Функции определяют контексты, чтобы сообщить сайту, как визуализировать данную страницу уникально для этой функции, нетпрямая связь между контекстом и пробелами или контекстом и PURL.

Что такое PURL?

PURL - это метод прикрепления объектов в URL и их хранения до тех пор, пока вы с ними не закончите.

Как это склеивает

Пробелы с интеграцией PURL запускаются на основе одного из двухвещи: URL или что-то о содержании на странице.Чтобы объяснить это, я буду использовать Spaces OG в качестве примера.

  1. Вы нажимаете на ссылку.Ссылка была предварительно скомпонована с компонентом PURL, который Spaces OG ищет для подсказок.Если этот фрагмент URL имеет смысл для пробелов, пробел срабатывает.
  2. Все ссылки, кроме тех, которые отказываются от модификации PURL, сохраняют элемент URL PURL, что означает пробел, и повторные триггерыс каждой загрузкой страницы.
  3. Пробелы OG знает, как проверять узлы на их групповую принадлежность.Если пробелы могут взломать узел и найти группу, он запустит пробел этого узла, используя измененную версию PURL drupal_goto(), чтобы перенаправить всю страницу для согласованности URL.Это превзойдет любую существующую структуру URL.
  4. Если нет компонента URL, а у узла нет групповой принадлежности, пробел не запускается.

После запуска пробела всеиз этого значения конфигурации пространств втягиваются в игру.Это будет означать, что предустановки пространства по умолчанию (вы можете иметь несколько конфигураций пространства по умолчанию для каждого типа пространства) перекрывают значения по умолчанию в Drupal, которые, в свою очередь, переопределяются любой конфигурацией, сохраненной специально для пространства.В случае Open Atrium это включает в себя такие приятные вещи, как цвет группы, блоки на приборной панели и включенные функции.

Если пользователь посещает что-то, предоставляемое компонентом - узел, представление,и т. д. любые контексты, связанные с этим узлом, этим представлением, этот URL-адрес, предоставляемый любым модулем, может быть просто запущен, и он может начать работу с блоками и темами, чтобы настроить страницу для содержимого компонента.

Следующие шаги

Как я упоминал выше, мне кажется, что ваш первый шаг - попытаться взглянуть на Spaces OG и переписать его так, чтобы он был сосредоточен вокруг роли пользователя, а не на органических группах.Вам не нужно делать много с PURL напрямую, кроме небольшого копирования и вставки из Spaces OG.Возможно, вы захотите опубликовать в очереди выпусков Spaces информацию, чтобы сопровождающие могли ее увидеть и дать указатели.

1 голос
/ 18 августа 2010

Как я понимаю, модуль "Пробелы" таков:

Он предоставляет способ для модуля функций (и ваших «функций», созданных из него) интегрироваться и быть доступным в определенных областях вашего сайта. Из коробки это включает в себя: Органические группы, Таксономия и Пользователи. Существует API для определения большего количества «пробелов», чем это.

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

Со страницы органических групп:

Группы получают собственную тему, язык, таксономию и т. Д. Хорошо интегрируется и зависит от модуля Views

Так что в вашей ситуации вы могли бы думать о пространствах как о способе сделать органические группы более гибкими. Как сказал NoParrots, OpenAtrium (http://openatrium.com/) в значительной степени опирается на модули функций / пробелов / контекстов, так что это может быть хорошим местом для рассмотрения того, как эти модули работают вместе.

EDIT:

Я нашел отличное видео, которое могло бы объяснить более ясно: http://www.archive.org/details/TheHeartOfOpenAtriumContextPurlAndSpaces_782. Примерно в 16:00 он начинает говорить о PURL.

На этой странице (под видео) есть также объяснение PURL / Context / Spaces, которое я считаю довольно хорошим:

  • Context - это модуль для запуска реактивного поведения при загрузке страницы. Управление видимостью блока, меню трассы, классы страниц и страницы макеты шаблонов являются примерами вещи, которые попадают в его юрисдикции.
  • PURL - это библиотека для сбора и абстрагирования обработки запросов, которая идет за то, что основное меню Drupal система обеспечивает ($ _GET ['q']). Обнаружение компонентов запроса, таких как субдомен, префикс пути, пользовательский агент или расширение файла, и поддерживая их Присутствие - его главная роль.
  • Пробелы - это обобщенная структура переопределения конфигурации. В Теория позволяет "настроить все, для чего угодно. "На практике это позволяет такие вещи, как пользовательская группа цвета и особенности, для каждого пользователя информационные панели и многосайтовое использование одной установки Drupal.
0 голосов
/ 18 августа 2010

Я бы предложил использовать пробелы или органические группы. Пространства были широко использованы в Open Atrium ... пакет интранета «Семя разработки». Интранет действительно требует концепции контроля доступа и видимости функций в зависимости от того, какой отдел или роль у вас есть, поэтому я уверен, что Spaces вам очень пригодятся.

Конечно, есть и почтенные органические группы. Spaces - это концепция более высокого уровня, чем PURL. Spaces использует контекстные и PURL модули BTW. Мой инстинкт инстинкта - использовать пробелы или органические группы.

В сети есть несколько видео, в которых рассказывается о Spaces. Проверьте их.

...