Cтруктура сайта Composr

Автор Крис Грэм (ocProducts)
 Composr имеет ряд взаимодействующих систем, которые вместе формируют структуру и парадигму навигации вашего сайта. В этом руководстве подробно описаны эти системы и показано, как они сочетаются друг с другом. Пользователям, которые просто хотят получать контент, не нужно понимать все детали структуры Composr, но пользователям, которым требуется сложная навигация, это необходимо.

   Чтобы просмотреть структурное содержимое веб-сайта, перейдите в Зону администратора> Структура> Редактор карты сайтаРедактор карты сайта - это очень мощный инструмент для просмотра зон, страниц и категорий на вашем веб-сайте, который поможет вам создать мысленную картину того, как все взаимосвязано.
 
Оглавление
  1. Учебное пособие по Composr: структура сайта Composr
    1. Зоны (подсайты)
    2. страницы
      1. Модули
      2. Точки входа / Ссылки на страницы
      3. Панели (и блоки)
        1. Правила отображения
        2. Поддержка панели темы по умолчанию
        3. Панели по умолчанию
        4. Высочайшая гибкость
        5. Ящики
        6. Редактор зоны
      4. Шаблоны
        1. Упаковка
        2. Прикрепление
        3. HTML
    3. Философия карты сайта
      1. Другие виды структуры сайта
        1. Панировочные сухари (продвинутый)
          1. Детали реализации (более сложные)
        2. URL-адрес
        3. Репозиторий
        4. Структура диска и база данных
      2. Обзор механизма навигации
    4. Редиректы и виртуальные корни
    5. Смотрите также
 

Зоны (подсайты)

  Зоны - это метод Composr для поддержки подсайтов. Структура каталогов веб-сайта может быть значительно упрощена с точки зрения пользователя и выглядит следующим образом:
  • (корневая директория)
    • adminzone
    • forum
    • cms
    • site
  Каждая запись в этом списке, включая корневой каталог, является «зоной». Зона группирует страницы в каталоги с разделением по URL-адресам и может быть настроена индивидуально. Можно добавлять новые зоны, удалять существующие зоны, а также создавать страницы и перемещать между ними.

Зоны по умолчанию в Composr используются для следующих целей:
  • Зона приветствия : эта зона дает пользователям возможность присоединиться или войти в систему. Его можно изменить так, чтобы он больше походил на «заставку», если хотите.
  • Сайт : это ваш основной сайт; он включает просмотр основного содержимого, а также функции отправки, редактирования и удаления на основе разрешений. Содержимое этой зоны может быть автоматически объединено с зоной приветствия с помощью опции «Единая общедоступная зона», что упростит вам задачу.
  • Зона сотрудничества : это раздел для пользователей, которым доверяют больше, и инструменты
  • Зона администратора : это раздел, в котором сотрудники сайта могут управлять сайтом.
  • Управление контентом : здесь контент добавляется, редактируется и удаляется.
А если вы используете Conversr, можно использовать следующие дополнительные зоны:
  • Форум : здесь находится форум

Дополнительная информация о зонах содержится в руководстве Инструменты для дочерних сайтов и подсообществ.
 

Cтраницы

Существует несколько различных типов страниц Composr:
  • Страницы Comcode - это текстовые страницы, написанные на Comcode (описаны в другом руководстве).
  • Модули - это формальные кодовые страницы.
  • HTML-страницы - это страницы, написанные в HTML и редко используемые, за исключением целей кеширования.
  • Мини-модули - они похожи на модули, только намного проще писать; разработчики не используют их для основного кода Composr, поскольку вокруг них нет того же «вздора», которое нам необходимо для поддержания нашей чистой архитектуры, но большинству технических пользователей лучше написать их (если вообще будут какие-то новые модули!) чем полные модули.

Доступ к комбинации страница / зона осуществляется по URL-адресу, и пользователю и большинству элементов самого Composr не видно, какие страницы используются для любого данного URL.

Фактическая загруженная страница основана на поиске в каталоге зоны диска файлов, соответствующих имени страницы (выше в списке = более высокий приоритет):
  • индивидуальный модуль
  • модуль
  • настроенная страница Comcode (язык пользователя)
  • Страница Comcode (язык пользователя)
  • настроенная HTML-страница (язык пользователя)
  • HTML-страница (язык пользователя)
  • индивидуальный мини-модуль
  • мини-модуль
  • настроенная страница Comcode (язык сайта по умолчанию)
  • Страница Comcode (язык сайта по умолчанию)
  • настроенная HTML-страница (язык сайта по умолчанию)
  • HTML-страница (язык сайта по умолчанию)
  • (Страница отмечена как отсутствующая, и есть возможность добавить страницу Comcode)
  • Поэтому страницы Comcode должны быть названы так, чтобы они не конфликтовали с именами модулей.







 

Это подробная аннотированная диаграмма, объясняющая структуру сайта Composr.

Это подробная аннотированная диаграмма, объясняющая структуру сайта Composr.
Нажмите для увеличения
 
HTML страницы
  HTML-страницы можно помещать в pages/html_customк аталог. Предпочтительно, если URL-адреса в файле указываются полностью, а не используются относительные URL-адреса. Это позволит перемещать страницу между зонами без изменений. Если вы используете относительные URL-адреса, они будут размещены относительно URL-адреса зоны Composr, а не каталога, в котором находится HTML-файл.

Если вы исследуете структуру каталогов Composr, вы найдете подкаталоги для этих типов страниц в pages каталоге в каждой зоне. Некоторые из подкаталогов внутренне организованы в соответствии с языком, в то время как другие различают языки внутри самих страниц.

_custom каталоги

  Вы также заметите, что все подкаталоги типов страниц имеют эквивалентную _custom версию с суффиксом.
  Composr придерживается соглашения о том, что любая страница, не предоставленная или не отредактированная из официального источника зоны, должна быть помещена в _custom каталог: они имеют приоритет над обычными каталогами, образуя систему переопределения.

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

Модули

Composr в стандартной комплектации поставляется с десятками модулей. Большинство страниц Composr на самом деле являются модулями, а большинство таблиц базы данных Composr создаются кодом самоустановки модуля.

Информация только для программистов…
Незаблокированные модули / блоки можно удалить и переустановить со страницы управления модулями, которая скрыта под страницей управления надстройками. Мы не рекомендуем работать на уровне модулей, но, если вы программист, иногда полезно иметь возможность удалить / переустановить свои собственные модули во время тестирования.
 
Заметка

При переустановке или удалении модуля, как правило, удаляются все связанные с ним данные, включая загрузки и записи.

 
Если модуль был обновлен (т.е. файл на диске был заменен более новой версией), вы можете обновить его (для обновления / создания данных на диске и в базе данных) тремя способами:
  1. Просто используйте модуль, и он обновится сам.
  2. Запустите http://yourbaseurl/upgrader.php скрипт, который обновит все модули на вашем сайте, которые в нем нуждаются, а также очистит кеши.
  3. Используйте экран управления модулем для обновления модуля.
Существует также концепция «взломанного» модуля (модуля, измененного как часть неофициального дополнения): процесс выполнения любых обновлений, необходимых для файла на диске, такой же, как и для обычного обновления модуля.
 

Точки входа / Ссылки на страницы

В Composr есть простой стандарт для идентификации страницы, доступ к которой осуществляется по URL-адресу, не привязанным к установочному домену и каталогу, как URL-адрес. Этот стандарт иногда называют «точкой входа», а иногда - «ссылкой на страницу»; Как правило, «точка входа» - это предсказуемая «ссылка на страницу», которая будет работать на любой установке Composr с тем же набором / конфигурацией зон и страниц. С другой стороны, «ссылка на страницу» может зависеть от фактического содержания сайта.

Ссылки на страницы обычно встречаются в их наиболее простой форме в списке страниц редактора страниц Comcode. В этом случае страница просто<zone-name>:<page-name>Это простейший случай, так как странице Comcode никогда не потребуются какие-либо параметры (хотя они могут их принимать и использовать, если они содержат блоки, которые есть, поскольку параметр относится к Composr, а не к самой странице). Обратите внимание, что Зона приветствия указывается с пробелом и, следовательно, указывается только :<page-name>для страницы в Зоне приветствия.

Более сложный случай используется в редакторе меню, который имеет возможность вставлять любую «точку входа» Composr как элемент меню. Пример точки входа site:downloads:type=browseЭто указывает на downloadsмодуль в зоне сайта и указывает typeпараметр, который должен иметь значение browseURL-адрес окажется похожим http://yourbaseurl/site/index.php?page=downloads&type=browse(или что-то еще, например, http://yourbaseurl/site/pg/downloads/browseесли включены короткие URL-адреса). Обратите внимание, чтоtype- стандартное имя параметра в Composr, используемое почти всеми модулями для разделения внутренней команды (например, browseв этом случае указывает функциональность списка категорий, а не просмотр фактической загрузки); синтаксис ссылки на страницу не обрабатывает его иначе, но синтаксис схемы URL-адреса.

Более сложный случай - это полноценная «ссылка на страницу», которую нельзя назвать просто стандартной «точкой входа» (как объяснялось выше, ссылки на страницы могут зависеть от состояния контента, а точки входа - нет). Примером этого может быть site:downloads:type=browse:id=10ссылка для просмотра категории загрузки ID # 10.

Также стоит понимать, что ссылки на страницы имеют длинный и короткий синтаксис. Для простоты я использовал приведенный выше длинный синтаксис. Синтаксис краткой формы позволяет удалитьtype=и id=, пока параметры соответствуют ожидаемому порядку. Вы можете удалить type=как третий компонент, так и id=четвертый компонент. Так site:downloads:type=browse:id=10сократим до site:downloads:browse:10.

Если вы не хотите жестко указывать, какую зону использовать, вы можете указать либо _SEARCHили в _SELFкачестве имени зоны в ссылке на страницу. _SEARCHзаставит Composr динамически находить задействованный модуль, в то время как _SELFбудет использовать ту же зону, в которой динамически интерпретируется ссылка на страницу (например, если она используется в меню в зоне сайта, _SELFбудет эквивалентно site).

Если у вас включена схема URL-адресов, может быть трудно узнать, каковы параметры URL-адреса для экрана. Если вы пойдете вhttp://yourbaseurl/index.php?keep_no_url_scheme=1тогда все показанные URL-адреса будут отображать необработанные значения параметров (это просто происходит для вас, через keep_no_url_scheme=1временно установленный вами в адресной строке).

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

Панели (и блоки)

Страницы панелей располагаются вокруг вашей главной страницы. Это не что иное, как страницы с особыми именами в той же зоне, что и окружающие их страницы.

Панели обычно представляют собой страницы Comcode и используются для упорядочивания блоков. Блоки добавляют динамическую функциональность (например, меню, поле входа, окно поиска и т. Д.): Composr имеет большой выбор на выбор. Блоки описаны в руководстве " Использование блоков" .

Правила отображения

Страницы панели не отображаются, если:
  1. они не существуют
  2. они пусты
  3. они слева / справа и &keep_wide=1&wide=1прикреплены к URL (т.е. эти параметры URL отключают панели)
  4. &keep_wide_high=1&wide_high=1прикреплен к URL-адресу (в этом случае верхний и нижний колонтитулы также не отображаются)

Владельцы сайтов часто хотят, чтобы панели были отключены только на определенных страницах. Это можно сделать, заключив содержимое панели в Tempcode, например…

Код





В этом случае панель не будет отображаться ни на одной из этих трех страниц в качестве примера.

Поддержка панели темы по умолчанию

Специальные имена, идентифицирующие панели, поддерживаемые темой по умолчанию:
  • panel_left
  • panel_right
  • panel_top
  • panel_bottom

В GLOBAL_HTML_WRAP.tplопределяет шаблон , как эти панели совмещаются вместе с главной страницей, т.е. клеит их в. Шаблоны описаны в следующем разделе.

Панели по умолчанию

Установка Composr по умолчанию содержит следующие страницы панели:
  • :panel_left
  • :panel_right
  • :panel_top
  • :panel_bottom
  • site:panel_left (применимо, только если опция конфигурации «Единая общественная зона» отключена)
  • site:panel_right (применимо, только если опция конфигурации «Единая общественная зона» отключена)
  • forum:panel_right
  • collaboration:panel_right

Все зоны настроены для совместного использования :panel_topи :panel_bottomиз-за некоторых прозрачных перенаправлений по умолчанию, настроенных в разделе «Зона администратора»> «Структура»> «Перенаправления».

:panel_topпо умолчанию пусто. Верхнее меню и т. Д. Фактически поступают напрямую через блоки, указанные в GLOBAL_HTML_WRAP.tplшаблоне, потому что мы хотели четко определить макет для верхних блоков по умолчанию.

:panel_bottomразмещает нижнюю панель, но только на определенных страницах (логика для этого закодирована внутри панели, поэтому ее можно настроить).

Высочайшая гибкость

Еще раз хочу сказать, что использование панелей полностью настраивается. Composr просто ищет страницы, учитывая также все настроенные перенаправления.

Вы можете добавлять не связанные панели, например, forum:panel_leftпросто добавляя такую страницу Comcode в систему.

Вы можете добавлять совершенно новые панели, редактируя их GLOBAL_HTML_WRAP.tplдля ссылки.

Если вы программист, обратите внимание, что они даже не обязательно должны быть страницами Comcode: вы можете написать модуль PHP, если хотите.

Ящики

Образ

Коробка (в данном случае создана с помощью Comcode, но вы не можете сказать)


Коробка (в данном случае создана с помощью Comcode, но вы не можете сказать)

(Нажмите, чтобы увеличить)


Большинство шаблонов блоков по умолчанию помещают рамку вокруг блока, чтобы все выглядело четким / регулярным. Однако большинству дизайнеров не нравится "квадратный" вид.

Если вы хотите сделать вещи более тонкими, с заголовками и разделителями, обертывание этого Comcode вокруг блока (ов) автоматически активирует некоторые переопределяющие стили:

Код




Стили с рамкой и без упаковки сами по себе не являются «особенностями» Composr, это просто часть CSS / шаблонов нашей темы по умолчанию, и в них заложено соглашение. В конечном итоге веб-дизайнер имеет полный контроль над Composr, редактируя CSS / шаблоны.

Редактор зоны

Образ

Редактор зоны


Редактор зоны

(Нажмите, чтобы увеличить)


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

В редакторе зон используются специальные вкладки, чтобы объединить все вместе, причем каждая панель / страница получает свой собственный набор вкладок. Предусмотрены следующие вкладки: просмотр, редактирование, детали и настройки (кроме панелей).

Доступ к редактору зон можно получить из:
Зона администратора> Структура> Структура блока / панели (Редактор зон).

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

Шаблоны

Образ

Это подробная аннотированная диаграмма, объясняющая базовую структуру шаблона Composr.


Это подробная аннотированная диаграмма, объясняющая базовую структуру шаблона Composr.

(Нажмите, чтобы увеличить)


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

Другой взгляд на структуру веб-сайта, управляемого Composr, - это состав шаблонов. Шаблоны - это разделы HTML, которые используются (в основном) для структурирования визуального вывода вашего сайта. Блоки, модули и система компоновки Composr, которая связывает меню, напрямую используют шаблоны, чтобы структурировать данные, которые они хотят вывести; например, блок входа в систему должен содержать имя пользователя, вошедшего в систему в данный момент: это, наряду с множеством других данных, передается в различные шаблоны. Шаблоны прикреплены друг к другу, так что один шаблон может следовать за другим или фактически быть встроен один в другой. Страницы Comcode также в некотором смысле используют шаблоны, но Composr сам решает, какие шаблоны использовать для отображения задействованного Comcode. И Composr использует шаблоны во всем своем внутреннем коде для бесчисленных ситуаций,

Как упоминалось ранее, два распространенных способа объединения шаблонов:
  1. присоединение / добавление одного к другому: это называется присоединением
  2. встраивание одного (или нескольких, соединенных вместе) в другое: это называется обертыванием
Используются оба: хотя, если бы мы хотели, мы могли бы избежать встроенного, сочетание обоих методов дает наиболее привлекательное решение.

Упрощенный вид части дерева шаблонов Composr, общей для всех страниц, выглядит так:
  • GLOBAL_HTML_WRAP
    • PANEL_TOP (необязательно)
    • PANEL_LEFT (необязательно)
    • (Главная страница)
      • SCREEN_TITLE
      • (шаблон упаковки основных страниц и многое другое)
      • PANEL_RIGHT (необязательно)
      • PANEL_BOTTOM (необязательно)
Когда что-то появляется внизу, на том же уровне, это значит, что оно было прикреплено. Когда одна или несколько вещей появляются на уровень глубже, они закрываются. Как древовидная структура, она строится из самых глубоких частей дерева и оборачивается / прикрепляется до тех пор, пока не будет создана окончательная композиция: а затем она выводится.

Упаковка

Хороший пример шаблона "обертывания" GLOBAL_HTML_WRAP.tplон встраивает полное меню и центральные страницы, а также общий верхний и нижний колонтитулы определенным образом, чтобы они были правильно расположены.

Если мы заглянем в GLOBAL_HTML_WRAP.tplшаблон, то увидим, что он содержит:

Код

{MIDDLE}

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

Прикрепление

Хорошим примером шаблона, предназначенного для прикрепления, является ситуация, когда один шаблон повторяется много раз: шаблон, который показывает один элемент в списке вещей, вероятно, будет использоваться таким образом.

Присоединение почти всегда выполняется в PHP-коде, поэтому я не буду показывать пример этого в действии.

HTML

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

Философия карты сайта

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

Недостатком модульной CMS является то, что она навязывает вам структуру, которая может не соответствовать тому, что вы в идеале хотите. Вот почему вы можете:
  1. выберите определение навигации и хлебных крошек вашего веб-сайта отдельно от Sitemap, включая части Sitemap в вашу собственную структуру по мере необходимости
  2. использовать функции виртуализации, чтобы контент отображался в местах, отличных от основной позиции файла Sitemap (прозрачные перенаправления и виртуальные корни)

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

Другие виды структуры сайта

Не все в Composr берется из Sitemap, хотя в большинстве случаев данные, используемые для создания Sitemap, также используются для создания этих альтернативных видов структуры веб-сайта.

Хорошая идея - иметь некоторое представление о различных типах структур, которые Composr будет использовать.

Панировочные сухари (продвинутый)

Образ

Редактирование XML хлебных крошек


Редактирование XML хлебных крошек

(Нажмите, чтобы увеличить)

Образ

Образцы панировочных сухарей


Образцы панировочных сухарей

(Нажмите, чтобы увеличить)


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

Composr имеет полностью настраиваемую систему навигации по хлебным крошкам. Это делается с помощью редактора хлебных крошек, который включает редактирование файла XML. Веб-мастера могут редактировать XML-файл из:
Зона администратора> Структура> Переопределения

хлебных крошек. Он позволяет вам расширять / изменять цепочки навигации для экрана, добавляя новую запись в XML-файл с мощным сопоставлением подстановочных знаков (регулярные выражения PHP). Однако это расширенная функциональность, которая требует элементарного понимания XML и сильного понимания ссылок на страницы Composr.

Например…

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

Код ( XML)

 <substitution label = "Искаженная галерея" match_key = "site: galleries: browse: example_distorted_gallery" >
     <link label = "Наша страница" > site: page_for_distorted_gallery </ link >
  </ substitution >
 
Образ

Панировочные сухари после смены


Панировочные сухари после смены

(Нажмите, чтобы увеличить)

Образ

Панировочные сухари перед сменой


Панировочные сухари перед сменой

(Нажмите, чтобы увеличить)


Что означает XML:
  • match_keyАтрибут представляет собой страницу-ссылку , чтобы соответствовать против. Именно здесь мы нацелены на наш новый набор родительских ссылок, заменяя старый набор родительских ссылок.
  • labelАтрибут в «замещения» метки представляет собой метку , чтобы дать совпадающую страницу в сухарях ( substitutionтэг) или вставленную ссылку ( linkтэг).
  • skip_if_single_public_zoneАтрибут в «подстановки» тега делает правило применяется только в том случае единственный вариант общественной зоны выключен, если он установлен на «истинно». По умолчанию "ложь".
  • include_selfАтрибут в «подстановки» тега делает правило включать узел замещено, если он установлен на «истинно». По умолчанию "истина".
  • finalАтрибут в «подстановки» тега делает правило последнего правила , которые будут применяться, если он установлен на «истинно». По умолчанию "ложь".
  • linkТег используется , чтобы указать все различные ссылки , которые будут показывать выше согласованной страницу (родительские ссылки). Веб-мастер может дать столько ссылок, сколько им нужно, но мы только что привели здесь одну.

После сохранения настройки панировочных сухарей будут применены обновленные панировочные сухари. Смотрите скриншоты до и после.

Детали реализации (более сложные)
Система Sitemap фактически не используется для хлебных крошек, но в большинстве случаев данные берутся из одних и тех же мест. Он может отличаться из-за:
  • настройки панировочных сухарей
  • добавленная глубина процесса (например, при запуске мастера хлебные крошки могут отражать вашу глубину в этом мастере)

Мы не используем Sitemap для создания хлебных крошек, потому что он создается путем перехода назад, а не вперед.

URL-адрес

URL-адреса образуют другую структуру веб-сайта.

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

Существует несколько различных схем генерации URL-структур.

Репозиторий

Репозиторий в основном не обсуждается в этом руководстве, но имеет свою собственную структуру. Репозиторий - это каталог / файл веб-сайта Composr. Это своего рода сочетание структуры Sitemap и структуры каталогов Unix.

Структура диска и база данных

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