Главная » Статьи » Документация
Категории
21 Апр 2015
Админка это то место где вы как администратор сайта будете проводить значительную часть времени. Это то место, которое должно являться цитаделью для всех остальных и доступ в админ панель должен быть только у самых довереных лиц. Не давайте доступ к панели тем в ком не уверены на 100%. 

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

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


Боковое меню состоит из списка модулей и при навидении на один из пунктов раскрываетс
24 Ноя 2014
Бесплатная CMS AtomX является opensource проектом. По-этому каждый желающий разработчик может помогать в развитии проекта. Более того - мы будем этому очень рады). Помощь может выражаться по-разному, будь то написание кода, тестирование или материальная помощь проекту. Тут Вы найдете информацию о репозиториях AtomX CMS и их назначении, а так же дополнительную информацию о контактах основных разработчиков.

Code-style

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

Версионирование

В шапке каждого файла указана мета информация, среди которой, версия файла(класса или библиотеки), а так же дата последнего изменения. Эти значения необходимо менять каждый раз при изменении файла. Версионность ведется по принципу мажорной и ми
3 Мая 2014
С недавних пор в AtomX реализована возможность мультиязычности и так как я принимал некоторое участие в переводе шаблона для очередной сборки то вкурил как это работает и хочу поделиться этим с нашими пользователями.
Перевод шаблона дело совсем не трудное даже для тех кто совсем не знаком ни с языками программирования ни с гипертекстовыми разметками , короче любой чайник при желании может перевести свой шаблон на любые языки.
Итак для начала находим папку template/ваш_шаблон/languages    там мы видим по умолчанию два языка Русский rus.php и Английский eng.php 
Это и есть переводы шаблона (не админки а именно шаблона)
открываем файл русского перевода
вот например:
Code:
'News'                   => 'Новости',
Слева это ключ справа соответственно сам перевод

Для того что бы этот перевод работал и для английского вставляем опять же ключ News и перевод в данном случае будет тоже News
Code:
'News'                   => 'News',
Теперь у нас есть п
30 Апр 2014
Теперь мы знаем как выводить переменные, но переменные бывают разные и выводиться они тоже могут в разных местах. Зачастую необходимо эти переменные экранировать, точнее экранировать HTML сущности в них, чтобы пользователи увидели текст, как текст, а не как HTML код. Это кстати спасает от такой плохой штуки как XSS. И вот тут нам на помощь приходят фильтры. Использовать фильтры очень просто:
1
2
3
4
<!-- Переводим HTML в простой текст в заголовке(используем фильтр escape) -->
<title>{{ title|escape }}</title>
<!-- Пример фильтра с параметром -->
<title>{{ title|match('#regexp#') }}</title>
Как видите, все предельно просто.

Доступные фильтры

версия >= 2.6 rc1

bbcode - парсинг бб-кодов в строке.
escape - аналог htmlspecialchars в PHP(преобразование HTML сущностей).
lang - перевод.
Начиная с версии 2.7.0 принимает один параметр(string) - контекст(lang('shop')).
urldecode - URL декодирование строки.
[b][/b]
28 Апр 2014
Самыми важными являются первые настройки и к этому надо отнестись серьезно. Прежде всего следует проследовать в Админка->Пользователи->Настройка прав и настроить права для различных групп. Вы также можете добавлять группы пройдя в Админка->Пользователи->Управление группами. Это важно для того, чтобы пока вы будете приводить в порядок все остальное, никто не занимался самодеятельностью на вашем сайте. Хотя по-умолчанию и настроены оптимальные права.

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

Далее полезным будет посетить Админка->Безопасность->Настройки и настроить уровень безопасности, но помните, что слишком строгие настройки могут приводить к банам пользователей, которые просто нечаянно сов
28 Апр 2014
Установка

Бесплатная CMS Atom-X создаётся по принципу непрерывной разработки. Существует, по крайней мере сейчас, один поток разработки, в котором ведётся создание движка, со временем меняя свой характер: от множественных изменений до подготовки к релизу.

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

Получить последнюю версию можно в нашем репозитории.

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

Скачать релизную версию.

[h2]Установка[[/b]
23 Апр 2014
Составление запросов

ORM - это програмнная прослойка между базой данных и контроллерами(модулями). ORM позволяет оперировать данными в виде объектов, а не в виде табличных данных, как они храняться в БД. Зачем это нужно? Ответ очень прост - объектами проще манипулировать на уровне ООП приложения(программы).

Основными частями ORM являются:

- Models
- Entities
- DB Driver

Рассмотрим каждую из этих частей подробнее:


Models

/sys/inc/ORM/Models/
Модели служат для описания связей между собой, а так же для описания функций выборки. Каждой таблице в БД должна соответствовать одна модель. Модель представляет из себя класс унаследованный от класса FpsModel. Для того, чтобы стало понятно как должна называться сама модель(класс модели), проще всего привести несколько примеров(имя_таблицы БД = Модель):
news = NewsModel
news_add_fields = NewsAddFieldsModel

[
23 Апр 2014
Для манипулирования данными, в основном, используется всего несколько методов. Сейчас я постараюсь дать максимально исчерпывающую информацию о них.

getCollection

FpsModel::getCollection([array $conditions[, array $additional_params]])
Возвращает массив записей из БД. Так как все модели наследуются от FpsModel, значит метод getCollection доступен в любой моделе. Метод возвращает массив объектов при удачном выполнении и false при неудаче.
$conditions - условия выборки
$additional_params - дополнительные параметры(page, limit, order, group)


getById

FpsModel::getById(integer $id)
Возвращает одну запись из БД по ее ID. Так как все модели наследуются от FpsModel, значит метод getById доступен в любой моделе. Метод возвращает объект при удачном выполнении и false при неудаче.
$id - ID нужной записи


bindModel

FpsModel::bindModel(string $model[, array $params])
Используется для связывания моделей. Наприме[/b]
31 Мар 2014
В AtomX есть система плагинов, которая позволяет расширять стандартный функционал системы. В этой статье я расскажу как использовать эту возможность.

Обязательные условия

  • Каждый плагин должен находиться в папке /sys/plugins/
  • Каждый плагин должен представлять из себя дирректорию, чье имя состоит из бук, цифр или знака подчеркивания "_". Буквенные символы могут быть в любом регистре.
  • Плагин должен содержать конфиг в формате JSON config.dat.
  • В конфиге должны быть следующие значения:
    className - Имя основного класса(ниже будет рассказанно что это)
    title - Название плагина
    active - Включен ли плагин(1|0)
    points - На какие хуки подписывается плагин(массив)
  • Плагин должен содержать файл index.php, в котором будет находится основной класс.

Список хуков

Как это работает?

Плагин подписывается на хуки, перечисленные в points. Когда система "до
31 Мар 2014
Как делать плагины используя эти самые хуки.

before_pather - Перед разбором URL, параметров нет.

after_pather - После разбора URL, параметров нет.

before_call_module - После разбора URL, параметры - массив параметров из URL(array(0 => 'news', 1 => 'view', 2 => 27)).

new_entity - После создания нового материала, принимает массив с новым материалом и названием модуля(array('entity' => EntityObject, 'module' => 'module_title')). Данный хук новый и пока реагирует не на любые материалы. На данный момент поддерживаются новости, фото, загрузки и статьи.

view_category - Просмотр категории. Хотя слово "просмотр" тут не совсем подходит. Этот хук вызывается при любом действии, затрагивающем категории. Например при просмотре материала вызовется этот хук с категорией, в которую данный материал входит. То же самое при редактировании комментария(например), хук вызовется с категорией, в которую входит матери
1 2