Skip to content

Commit 5b8177c

Browse files
simba77gitbook-bot
authored andcommitted
GitBook: [master] 7 pages modified
1 parent d6328e4 commit 5b8177c

7 files changed

+262
-5
lines changed

README.md

+5-1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,6 @@
1-
# Initial page
1+
# Введение
2+
3+
В данной документации мы постараемся описать все ключевые моменты, с которыми вы столкнетесь при работе с системой.
4+
5+
Если документация не смогла помочь Вам в решении Вашего вопроса, Вы всегда можете обратиться за помощью на [наш форум](https://johncms.com/forum/)
26

SUMMARY.md

+11-4
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,15 @@
11
# Table of contents
22

33
* [Введение](README.md)
4-
* [Начало работы](getting-started/README.md)
5-
* [Установка и системные требования](getting-started/ustanovka-i-sistemnye-trebovaniya.md)
6-
* [Настройка](getting-started/nastroika.md)
7-
* [Структура файлов/папок](getting-started/struktura-failov-papok.md)
4+
5+
## Начало работы
6+
7+
* [Установка и системные требования](nachalo-raboty/ustanovka-i-sistemnye-trebovaniya.md)
8+
* [Настройка](nachalo-raboty/nastroika.md)
9+
* [Структура файлов/папок](nachalo-raboty/struktura-failov-papok.md)
10+
11+
## Модули
12+
13+
* [Структура модуля](moduli/struktura-modulya.md)
14+
* [Создание модуля](moduli/sozdanie-modulya.md)
815

moduli/sozdanie-modulya.md

+120
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,120 @@
1+
# Создание модуля
2+
3+
Давайте создадим свой первый простой модуль.
4+
Это будет обычная простая страница контактов для связи с администрацией сайта.
5+
6+
Как нам уже известно, модули располагаются в папке **modules**
7+
8+
Сначала давайте создадим папку с модулем и назовем её **contacts** путь к папке получится такой: **modules/contacts**
9+
10+
Пока создадим простой модуль без мультиязычности.
11+
12+
Внутри папки **modules/contacts** создадим подпапку **templates** для шаблона нашей страницы.
13+
Дополнительные папки нам больше не понадобятся т.к. модуль у нас будет содержать всего лишь одну страницу.
14+
Создадим точку входа в модуль, которая будет открываться при запросе страницы контактов и в которой будет подключен наш шаблон. Для этого создадим файл **index.php**
15+
16+
В этом файле поместим следующий код:
17+
18+
```php
19+
<?php
20+
21+
// Запрещаем прямой запрос к файлу модуля без подключенного ядра
22+
defined('_IN_JOHNCMS') || die('Error: restricted access');
23+
24+
// Инициализируем шаблонизатор
25+
$view = di(Johncms\System\View\Render::class);
26+
27+
// Инициализируем хлебные крошки (цепочка навигации вверху всех страниц)
28+
$nav_chain = di(Johncms\NavChain::class);
29+
30+
// Указываем шаблонизатору папку, из которой нужно загружать шаблоны нашего модуля
31+
$view->addFolder('contacts', __DIR__ . '/templates/');
32+
33+
// Добавляем ссылку Контакты в хлебные крошки
34+
$nav_chain->add('Контакты', '/contacts/');
35+
36+
// Собираем массив данных, который будет передан в шаблон
37+
$data = [
38+
'title' => 'Контакты',
39+
'page_title' => 'Наши контакты',
40+
];
41+
42+
// Дополним массив $data нашими контактными данными, которые выведем дальше в шаблоне
43+
$data['contacts'] = [
44+
[
45+
'name' => 'E-mail', // Название контакта
46+
'value' => '[email protected]', // Значение, которое будет отображаться
47+
],
48+
[
49+
'name' => 'Номер телефона',
50+
'value' => '+7 (999) 121-12-21',
51+
],
52+
[
53+
'name' => 'Telegram',
54+
'value' => '@johncms_official',
55+
],
56+
];
57+
58+
// Подключаем шаблон index.phtml и передаем в него собранные выше данные
59+
echo $view->render('contacts::index', ['data' => $data]);
60+
```
61+
62+
В комментариях к каждой строке кода даны пояснения для чего она.
63+
64+
Далее давайте создадим наш шаблон. Шаблон будет располагаться в папке **templates** и т.к. это основная страница контактов, назовем шаблон **index.phtml**
65+
В этом файле разместим следующий код:
66+
67+
```php
68+
<?php
69+
70+
// Подключаем основной шаблон сайта
71+
$this->layout(
72+
'system::layout/default',
73+
[
74+
'title' => $data['title'], // Передаем заголовок страницы в тег title
75+
'page_title' => $data['page_title'], // Передаем заголовок страницы в тег h1
76+
]
77+
);
78+
?>
79+
80+
<div>
81+
Вы можете связаться с нами по любому из нижеперечисленных контактов:
82+
</div>
83+
84+
<ul>
85+
<!-- Тут мы перебираем наш массив контактов и выводим название контакта и значение, разделяя их двоеточием -->
86+
<?php foreach ($data['contacts'] as $contact): ?>
87+
<li><?= $contact['name'] ?>: <b><?= $contact['value'] ?></b></li>
88+
<?php endforeach; ?>
89+
</ul>
90+
```
91+
92+
Наш модуль готов, но пока ещё не доступен в браузере. Давайте это исправим.
93+
Чтобы модуль стал доступен, нужно сообщить системе, что у нас есть такой модуль и мы хотим чтобы он был доступен по определенному адресу.
94+
Для этого давайте перейдем в папку **config** и в ней создадим файл **routes.local.php** если его ещё нет. Если есть, то откроем его и добавим маршрут для нашего модуля.
95+
96+
```php
97+
<?php
98+
99+
/**
100+
* /contacts/ - Это адрес страницы по которому будет доступен наш модуль
101+
* modules/contacts/index.php - Это путь к точке входа в наш модуль
102+
*/
103+
$map->addRoute(['GET', 'POST'], '/contacts/', 'modules/contacts/index.php');
104+
```
105+
106+
Теперь наш модуль доступен по адресу ваш.сайт/contacts/
107+
108+
Теперь давайте сообщим модулю online, что у нас появился модуль контактов и нужно в списке пользователей онлайн отображать тех, кто смотрит контакты.
109+
Для этого давайте перейдем в папку **config** и в ней создадим файл **places.local.php** если его ещё нет.
110+
111+
```php
112+
<?php
113+
114+
return [
115+
'/contacts' => '<a href="/contacts/">Смотрит контакты</a>',
116+
];
117+
```
118+
119+
Отлично, наш модуль теперь полностью работоспособен, вам останется только добавить на него ссылку в основном шаблоне или на любой другой странице на ваше усмотрение.
120+

moduli/struktura-modulya.md

+24
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# Структура модуля
2+
3+
Модули располагаются в папке **modules**
4+
Обычно модуль для JohnCMS имеет следующую структуру:
5+
6+
* modules
7+
* * module\_name
8+
* * includes
9+
* locale
10+
* templates
11+
* index.php
12+
13+
Данная структура носит лишь рекомендательный характер и не является обязательной.
14+
Система не накладывает ограничений на разработчика и разработчик вправе использовать свою структуру модуля, которая для него будет удобнее.
15+
16+
Давайте подробнее посмотрим на структуру и разберемся что и для чего предназначено.
17+
18+
**modules** - это обычная системная папка с модулями.
19+
**module\_name** - это папка с названием модуля \(например forum, community и т.п.\)
20+
**includes** - папка для дополнительных страниц. Её может и не быть если модуль достаточно простой и не содержит большого количества страниц.
21+
**locale** - это папка в которой хранятся файлы локализации модуля. Если модуль мультиязычный, то эта папка обычно есть.
22+
**templates** - в этой папке хранятся шаблоны модуля.
23+
**index.php** - Этот файл обычно служит точкой входа в модуль и содержит программный код или часть кода всего модуля.
24+

nachalo-raboty/nastroika.md

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# Настройка
2+
3+
После установки JohnCMS перейдите в панель администратора.
4+
5+
1. **Выберите пункт Система &gt; Обновить смайлы.** Это обновит кэш смайлов и после этой операции смайлы в сообщениях будут работать
6+
2. **Выберите пункт Система &gt; Настройки языка.** Далее нажмите **Обновить список** после этого выберите язык по умолчанию, на котором будет работать Ваш сайт.
7+
8+
{% hint style="info" %}
9+
Далее по желанию Вы можете проверить и изменить все остальные параметры системы. Для этого просто переходите в другие разделы панели администратора и меняйте настройки так, как Вам необходимо.
10+
{% endhint %}
11+
+58
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
# Структура файлов/папок
2+
3+
JohnCMS имеет следующую структуру папок:
4+
5+
* assets
6+
* config
7+
* data
8+
* install
9+
* modules
10+
* system
11+
* themes
12+
* upload
13+
14+
### assets
15+
16+
В папке хранятся аватары \(**avatars**\), смайлы \(**emoticons**\) и некоторые системные скрипты \(**modules**\) для генерации картинок предпросмотра.
17+
18+
{% hint style="info" %}
19+
Подпапка **modules** будет удалена в следующих версиях.
20+
{% endhint %}
21+
22+
### config
23+
24+
В папке хранятся различные конфигурационные файлы необходимые для работы системы.
25+
Файл **routes.php** отвечает за настройку адресов страниц.
26+
Файл **constants.php** содержит константы необходимые для работы системы.
27+
В подпапке **autoload** хранятся файлы, которые автоматически загружаются системой. Работа с конфигурационными файлами подробно описана здесь: [Конфигурационные файлы](https://johncms.com/documentation/configs/).
28+
29+
### data
30+
31+
В папке data хранятся различные системные данные, такие как кэш и логи
32+
33+
### install
34+
35+
В папке install хранятся скрипты и прочие данные необходимые для установки системы.
36+
Данную папку необходимо удалять после установки JohnCMS
37+
38+
### modules
39+
40+
Папка modules содержит все модули системы
41+
Подробно про структуру папки модуля будет описано отдельно.
42+
43+
### system
44+
45+
Папка system содержит все системные библиотеки
46+
В этой папке не рекомендуется ничего менять и добавлять в целях сохранения возможности простого обновления на следующие версии JohnCMS
47+
48+
### themes
49+
50+
Папка themes содержит шаблоны сайта
51+
В этой папке расположен шаблон **default** в папке с этим шаблоном **не рекомендуется ничего менять** для сохранения возможности простого обновления на следующие версии JohnCMS
52+
Для кастомизации шаблона создайте отдельную папку и скопируйте в неё содержимое папки default.
53+
Более подробно про работу с шаблонами читайте в соответствующем разделе документации
54+
55+
### upload
56+
57+
Папка upload содержит файлы модулей, такие как загрузки, прикрепленные файлы форума, библиотеки, альбомы, аватары и файлы личных сообщений.
58+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
# Установка и системные требования
2+
3+
### Системные требования
4+
5+
Для корректной работы JohnCMS, на хостинге, который вы используете, должно быть установлено следующее программное обеспечение
6+
7+
* Web сервер Apache
8+
* PHP 7.3 и выше
9+
* MySQL 5.6.4 и выше
10+
* Для работы с MуSQL должен использоваться встроенный драйвер [MySQL Native Driver \(mysqlnd\)](https://www.php.net/manual/ru/book.mysqlnd.php)
11+
12+
Для работы системы требуются следующие расширения php:
13+
14+
* imagick или gd
15+
* mbstring
16+
* pdo
17+
* simplexml
18+
19+
### Установка
20+
21+
* Скачиваем архив
22+
* Распаковываем в корневую папку на хостинге \(обычно это папка с названием вашего сайта или public\_html\)
23+
* Переходим по адресу **ваш.сайт/install**
24+
* Следуйте инструкциям описанным на странице установки
25+
26+
{% hint style="info" %}
27+
Обязательно указывайте существующий e-mail адрес при установке т.к. он будет использоваться для отправки e-mail.
28+
{% endhint %}
29+
30+
{% hint style="danger" %}
31+
**После установки обязательно удалите папку install**
32+
{% endhint %}
33+

0 commit comments

Comments
 (0)