KorniloFF-ScriptS ©

Здравствуйте, Гость!
 
Page
Menu

Структура CMS

Состав CMS:

В последующих версиях CMSimple&KFF эта структура может незначительно меняться, подстраиваясь к изменениям, вносимым в код движка. Но основа будет оставаться ещё долго неизменной.

  • 2lang - образец директории для размещения версии сайта на другом языке.
  • 2site - образец директории для размещения подсайта.
  • cmsimple - директория с движком CMS. Не рекомендуется туда заглядывать без крайней необходимости
  • content - директория контента сайта. Основная директория, с которой вам предстоит работать
  • content_images - директория для хранения пользовательских изображений. Например, изображений из статей.
  • css - директория стилей CSS и файлов нестандартных шрифтов (fonts).
  • errorpages - директория с шаблонами страниц ошибок. Можете их редактировать на своё усмотрение.
  • images - директория изображений движка. Не рекомендуется там хранить пользовательские изображения, для этих целей есть директория content_images.
  • js - директория для хранения файлов javascript.
  • PHP - директория для хранения PHP-файлов.
  • plugins - директория для хранения как встроенных плагинов движка, так и внешних, которые вы можете скачать с официального сайта CMSimple и разместить в ней.
  • templates - директория шаблонов сайта.
  • userfiles - директория пользовательских файлов. В релизе CMSimple&KFF - рудиментарна и практически не используется. Единственно, если переименовать / удалить файл userfiles/downloads/_CMSimpleDebug.txt - будет отключён Debug-Mode. А если открыть его и изменить единственную цифру внутри него - будет изменён параметр error_reporting. 6- вывод всех сообщений об ошибках, включая предупреждения и strict mode. В дальнейшем, при необходимости, эту директорию можно будет использовать для загрузки пользовательских файлов.
  • demo.txt - файл-маркер демо режима. Достаточно его переименовать / удалить, как движок заработает в рабочем режиме.
  • disabled_plugins.txt - файл создаётся / редактируется автоматически в результате работы встроенного менеджера плагинов (Панель управления -> plugins). Но можно его редактировать и вручную. Синтаксис - |||enabled_plugin||| §disabled_plugin§.
  • index.php - индексный файл корневой директории. Не трогать!
  • license.txt - файл лицензии от немецких разработчиков.
  • readme.php - Файл с подсказкой по восстановлению забытого пароля от Панели управления
  • sitemap.xml - файл автоматически генерируемой XML-карты сайта.

Директория content

В данной директории располагается весь контент сайта, включая файл структуры сайта. Поэтому её мы рассмотрим отдельно.

Состав директории:

  • articles - директория подключаемого контента.
  • backup - директория заархивированных резервных копий контента, комментариев пользователей, а также файла структуры сайта.
  • comments - директория комментариев пользователей.
  • plugins - директория для использования установленными родными плагинами CMSimple.
  • content.php - файл структуры сайта. Отвечает за подключение к страницам внешнего контента, за формирование основного меню сайта, за видимость страниц для пользователей и мн.др.
  • pagedata.php - файл автоматически создаётся CMS и хранит в себе все индивидуальные настройки страниц, такие как метатеги, отображение в меню, отображение в карте сайта и проч.

Файл content.php

В функции работы этого файла входит формирование структуры всего сайта. Как уже писал в общем обзоре CMSimple, в оригинальной её версии этот файл заключает в себе полностью ВЕСЬ контент сайта. В принципе, в моём ремейке такое тоже возможно. Но это же не удобно, поэтому на этой возможности мы останавливаться не будем.

Ниже я приведу образец файла content.php из ДЕМО-версии CMSimple&KFF и на его примере попробуем разобраться, как сформировать нужную структуру сайта и меню.

Теперь рассмотрим подробнее. Начнем с кода первой страницы сайта "О сайте":

...
О сайте

<?php
// Пример подключения внешней страницы из папки articles:

...

//== Пояснения:
//== Синтаксис подключения соблюдать в точности, включая начальный и заключительный
//== 	комментирующие диезы - #.
//== $description, $keywords - принимают в себя значения одноимённых метатегов.
//== $output - глобальная переменная, содержащая в себе весь обработанный HTML-код, предназначенный для отправки клиенту.
//== $kff['getPHP']() - моя пользовательская функция, позволяющая подключить внешний файл контента к странице
//== 	с возможностью исполнения внутненнего РНР-кода.
//== $cf['folders']['content'] - конфигурационная переменная (определена в файле config.php),
//== 	отвечающая за расположение папки с подключаемым контентом. По умолчанию - папка content/articles
?>

Использование переменных $description и $keywords будет подробнее рассмотрено в статье Управление Мета-данными.

$cf['folders']['content'] - значение этой переменной также можно установить в ПУ, в общих настройках - Folders -> Content. Отвечает за расположение основной директории подключаемого контента. Эта директория может содержать поддиректории.

Тег <ml1...n> - аббревиатура от "menu level" - придуман мной. Но это никак не влияет на валидность сайта, поскольку сам файл content.php не выдаётся клиенту, а парсится движком. Если вы посмотрите исходный код моего сайта, то подобных тегов там не встретите, т.к. они все заменены перед отправкой клиенту на валидные теги заголовков.

Страницей сайта движок считает участок кода между двумя парными <ml1...n>, в которых заключено название страницы. Оно же будет выведено как пункт меню. Цифра в теге означает уровень вложенности страницы в общей структуре сайта.


<ml1> Название 1 страницы </ml1>
	

HTML-код первой страницы. Это страница 1 уровня вложенности в структуре сайта.

<ml1> Название 2 страницы </ml1>

HTML-код второй страницы. Это страница тоже 1 уровня вложенности в структуре сайта.

<ml2> Название 3 страницы </ml2>

HTML-код третьей страницы. Однако эта страница будет уже 2 уровня вложенности в структуре сайта.

В основном меню сайта она появится при переходе на 2 страницу.

Далее количество уровней может продолжаться до значения, определенного в настройках ПУ - Menu->Levels.

<ml1> Название 4 страницы </ml1>

HTML-код четвёртой страницы. Это вновь страница 1 уровня вложенности в структуре сайта.

И т.д., и т.п., etc

Функция $kff['getPHP']()

Функция $kff['getPHP']($pathFile[, $includeComments]) принимает два аргумента: путь к подключаемому файлу (обязательный)) и подключение модуля Комментарии (сравнение с NULL, опциональный). Функция возвращает PHP-код подключаемого контента, а при наличии второго аргимента, и код модуля Комментарии.

$pathFile может содержать как абсолютный путь к подключаемому файлу, так и конкатенированную строку, состоящую из конфигурационной переменной, отвечающей за путь к директории с подключаемым контентом - $cf['folders']['content'] - плюс имя файла. Если файл находится во вложенной директории, он должен содержать её в своём имени. Например: $cf['folders']['content'] . 'О_сайте.htm' или $cf['folders']['content'] . 'news/Тест 2.htm', где news - вложенная директория. Прошу прощения за такие подробности, но случались вопросы...

$includeComments - необязательный аргумент, если не задан - равен NULL. Отвечает за подключение комментариев к выводимой странице. Если отсутствует или равен NULL - комментарии не подключаются. При любом другом значении - подключаются. О модуле Комментариев я напишу подробнее, поскольку он тоже обладает большим количеством настроек.

Очень важен синтаксис использования, он остался родной от разработчиков и может оказаться не понятным. Постараюсь пояснить. Решётки (диезы) в данном контексте не являются комментариями(!), а обрамляют исполняемый PHP-код в файле content.php. Это поведение можно изменить в Settings Панели управления (Settings -> CMS&&KorniloFF), однако, я настоятельно не рекомендую этого делать, поскольку можно полностью сломать логику движка. Далее, переменная $output, в соответствии со своим именем, принимает в себя выводимый контент страницы.

Запись просто добавит содержимое файла О_сайте.htm на страницу. Если в нём есть PHP-скрипты - они будут исполнены.

А запись уже добавит содержимое как файла О_сайте.htm, так и блок комментариев внизу страницы.

Скрытие страниц из меню и/или карты сайта

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

Такая возможность есть. Достаточно разместить под заголовком страницы маркер <p class=warning>Скрытая страница</p>, как страница исчезнет из общего меню и будет доступна лишь администратору в режиме Edit Mode.

Панель управления - Edit Mode"

Можно изменить маркер невидимости в ПУ: Hidden -> Marker при необходимости. Схематический пример использования скрытой страницы:

...
<ml1> Видимая страница </ml1>
	

Эта страница будет отображена в общем меню сайта и в sitemap.

<ml1> Невидимая страница </ml1> <p class=warning>Скрытая страница</p>

HTML-код второй страницы. Это страница тоже 1 уровня вложенности в структуре сайта.

...

Позже, при удалении строки <p class=warning>Скрытая страница</p>, страница сразу станет доступной для всех пользователей сайта.

Общие настройки видимости страниц

Рассмотрим все предусмотренные настройки отображения / скрытия страниц, предусмотренные в Панели управления (Settings -> CMS&&KorniloFF). Все они расположены в разделе Hidden и отвечают за видимость всех страниц, помеченных маркером <p class=warning>Скрытая страница</p>. Все они, кроме последней, принимают булевы значения (true или 1 - включено, "" (пустая строка) или 0 - выключено). Рекомендую использовать 1 и пустую строку.

  • Pages_toc - пока сам не разобрался, можете эксперементировать.
  • Pages_search - при 1 страницы будут показаны в результатах внутреннего поиска.
  • Pages_sitemap - при 1 страницы будут показаны как в основной, так и в XML- карте сайта.
  • Path_locator - при 1 страницы будут показаны в меню навигации локатора (breadcrumbs).
  • Pages_submenu - при 1 страницы будут показаны в подменю разделов.
  • Marker - строковое значение маркера, при наличии которого страница будет считаться скрытой.

Скрытие всего сайта

CMS позволяет в одно движение закрыть доступ к сайту всем пользователям.

Например, идут длительные технические работы, и вы не хотите, чтобы неработающий сайт видели посетители, достаточно зайти в Панель управления (Settings -> CMS&&KorniloFF) и в настройке Site -> Content_visible удалить значение true.

После сохранения настроек при попытке зайти на сайт пользователь увидит следующую заглушку:

Технические работы на сайте"

А администратор, работающий в таком режиме, будет видеть напоминание:

Сайт в режиме обслуживания"

Комментарии к теме (0)

Комментариев пока нет.

Дабавить комментарий

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

Здесь вы сможете заказать любой скрипт, повышающий динамичность Вашего сайта.

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

  • Версия сайта для слабовидящей аудитории (имеются бесплатная, LITE и PRO-версии);
  • Защита форумов от спама, мата и чужих реферальных ссылок - Антимат, Антиспам и Антиреф - все в одном скрипте;
  • Изображение, появляющееся при наведении на слово или фразу, способное оживить вашу страницу;
  • Интерактивный сайт с перетаскиваемыми блоками сможет дольше задерживать внимание пользователя;
  • Смена текста - позволит вам выводить на вашей странице разные текстовые блоки, к примеру, анекдоты через определенное время, либо при каждой новой загрузке страницы пользователем;
  • Увеличение изображения - удачная и при этом компактная реализация увеличения изображений, загруженных пользователями, например, на форуме. Скрипт умеет как увеличивать, так и перелистывать изображения: и по клику на стрелках, и автоматически;
  • Установка собственного видео в статичную страницу и многое другое.

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

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

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

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

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

Желаем Вам порадоваться от приобретения для своего сайта, сделать его привлекательным и функциональным. Ваши пользователи останутся Вам благодарны.