Articles

 

Category: Docs

Шаблонизатор

Система имеет собственный шаблонизатор. Шаблоны сайта находятся в файлах с расширением .tpl.

Это позволяет не зависеть от сторонних разработок. Основное преимущество шаблонизатора — это возможность использования в шаблонах макросов, подшаблонов и условных выражений с применением операторов {if} ... {else} ... {/if}.

Полная локализация

Сайт имеет полную локализацию для русского и английского языка. Все языковые переменные собраны в 1 файле для каждого языка.

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

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

article_en

Тогда в шаблоне достаточно указать названия полей следующим образом:

{title}_{lang_code}
{article}_{lang_code}
{article_extended}_{lang_code}

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

Таким образом можно просто создавать многоязычные сайты.

  Хотя этого можно добиться и другим способом, создав директории для каждого языка (например, /ru/ и /en/) и разместив в каждой директории свой файл index.php. То есть использовав функцию мультисайтинга системы. Тогда будет несколько сайтов с единой панелью управления. Каждый сайт будет иметь также и свой форум и прочее.

Скины

Система позволяет использовать скины, что упрощает смену дизайна.

При этом каждый сайт-сателлит может иметь свой собственный дизайн.

API для модулей, расширений и виджетов

Предельно простое создание 1) модулей, 2) расширений и 3) виджетов.

Модули обычно добавляют таблицы в БД и автоматически страницы в Панели управления администратора для управления контентом и функциями этих модулей.

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

Это достигается вынесением функции в расширение и регистрацией его в БД. А в скинах используются hook'и, которые опрашивают БД (всего лишь 1 простой запрос к БД для получения списка подключенных расширений).

Как правило, hook'и добавляются по обоснованным пожеланиям пользователей.

Виджеты обычно не создают таблицы в БД, а используют данные уже существующих таблиц.

Фреймворк

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

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

Гибкая система категорий

Гибкая система категорий в статьях блога – выбор в виде выпадающего меню (1 категория или 1 категория с родительскими) или чекбоксов (выбор любых категорий – одной или нескольких, независимо от их взаимоотношения)

Создание собственных полей

Обычно статьи размещают в 2 текстовых полях:

  1. начало статьи
  2. продолжение статьи

SparkFrame позволяет создавать дополнительные поля 3 типов:

  • строчные поля
  • текстовые поля
  • поля со списком

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

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

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

Число таких пользовательских полей и их сочетание не имеют ограничений.

Чтобы не забывать заполнить какое-либо поле, любое поле может быть сделано обязательным для заполнения (при этом оно отмечается звездочкой *).