Инструкции по JohnCMS 7

2.33K
.
PaRtiZzaN
¯\_(ツ)_/¯
Давайте соберем готовые ответы на вопросы с разных тем, что бы люди не спрашивали по сто раз одно и тоже.

Как создать новую страницу
Подключаем модули контейнера
.
¯\_(ツ)_/¯
Создание новой страницы

<?php define('_IN_JOHNCMS', 1);
require($_SERVER['DOCUMENT_ROOT'].'/system/bootstrap.php');
require($_SERVER['DOCUMENT_ROOT'].'/system/head.php');
?>
Тело страницы
<?
require($_SERVER['DOCUMENT_ROOT'].'/system/end.php');
.
Там ещё надо кое какие штуки подключать
.
¯\_(ツ)_/¯
intelligent, Например?
.
контейнер видимо
.
PaRtiZzaN
¯\_(ツ)_/¯
Подключаем контейнер
/** @var Interop\Container\ContainerInterface $container */
$container = App::getContainer();


Если нужны счетчики то добавляем перед инклудами

/** @var Johncms\Counters $counters */
$counters = App::getContainer()->get('counters');


Если нужны настройки
/** @var Johncms\Config $config */
$config = $container->get(Johncms\Config::class);
.
PaRtiZzaN, правильно
.
╭∩╮ (`-`) ╭∩╮
Молодцы, правильное и полезное дело.
Только вот с данными из контейнера будут изменения.

Я в данный момент пишу (уже почти написал) внутренний API, который представляет из себя набор интерфейсов, описывающих все те данные, которые мы можем затребовать из контейнера.
https://github.com/john-cms/jo ... s/Api

В JohnCMS 7.1.0 который ожидается в следующем месяце это уже будет.

Для совместимости с версией 7.0.0 я временно создал алиасы сервисов: https://github.com/john-cms/jo ... p#L19
Но в новых разработках, при запросах объектов из контейнера, рекомендую ориентироваться только ена интерфейсы, ибо реализация может меняться. А так вы будете иметь гарантированную (в пределах мажорной версии) совместимость с ядром.
.
AlkatraZ, alias + deprecated спасут ситуацию
.
AlkatraZ
╭∩╮ (`-`) ╭∩╮
Вот то, что СЕЙЧАС (JohnCMS 7.0.0) можно требовать из контейнера
/** @var Interop\Container\ContainerInterface $container */
$container = App::getContainer();

/** @var PDO $db */
$db = $container->get(PDO::class);

/** @var Johncms\User $systemUser */
$systemUser = $container->get(Johncms\User::class);

/** @var Johncms\Tools $tools */
$tools = $container->get('tools');

/** @var Johncms\Environment $env */
$env = App::getContainer()->get('env');

/** @var Johncms\Bbcode $bbcode */
$bbcode = $container->get('bbcode');

/** @var Johncms\Config $config */
$config = $container->get(Johncms\Config::class);

/** @var Zend\I18n\Translator\Translator $translator */
$translator = $container->get(Zend\I18n\Translator\Translator::class);
Всего: 42