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

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

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

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

8
задан rcourtna 18 August 2010 в 05:05
поделиться

3 ответа

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

Что такое Spaces?

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

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

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

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

Что такое PURL?

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

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

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

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

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

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

Дальнейшие действия

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

7
ответ дан 5 December 2019 в 20:11
поделиться

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

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

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

0
ответ дан 5 December 2019 в 20:11
поделиться

Как я понимаю, модуль пробелов заключается в следующем:

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

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

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

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

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

РЕДАКТИРОВАТЬ:

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

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

  • Контекст - это модуль для запуска реактивного поведения при загрузке страницы. Управление видимостью блока, меню следы, классы страниц и страницы макеты шаблонов являются примерами вещи, которые попадают в его юрисдикция.
  • PURL - это библиотека для сбора и абстрагирования обработки запросов, которые помимо основного меню Drupal система предоставляет ($ _GET ['q']). Обнаружение компонентов запроса, например субдомен, префикс пути, пользовательский агент или расширение файла, и поддерживая их присутствие - его основная роль.
  • Пробелы - это обобщенная структура переопределения конфигурации. В теория позволяет вам "настроить все, ни за что ". На практике он позволяет такие вещи, как настраиваемая группа цвета и особенности, для каждого пользователя дашборды и многосайтовое использование одной установки Drupal.
1
ответ дан 5 December 2019 в 20:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: