├── pages ├── Темы │ ├── index.md │ ├── include-plugins │ │ └── index.md │ ├── javascript-files │ │ └── index.md │ ├── css-files │ │ └── index.md │ ├── title-and-description │ │ └── index.md │ ├── favicon │ │ └── index.md │ ├── theme-basics │ │ └── index.md │ ├── example-my-first-theme │ │ └── index.md │ ├── include-frameworks │ │ └── index.md │ └── example-my-second-theme │ │ └── index.md ├── Плагины │ ├── index.md │ ├── pages-after-creation │ │ └── index.md │ ├── custom-hooks-for-plugins │ │ └── index.md │ ├── hooks-list │ │ └── index.md │ ├── plugin-basics │ │ └── index.md │ └── admin-panel-controller-and-view │ │ └── index.md ├── Безопасность │ ├── index.md │ ├── custom-admin-panel-url │ │ └── index.md │ ├── disable-admin-user │ │ └── index.md │ ├── brute-force-protection │ │ └── index.md │ └── password-recovery │ │ └── index.md ├── Начало работы │ ├── index.md │ ├── themes │ │ └── index.md │ ├── plugins │ │ └── index.md │ ├── requirements │ │ └── index.md │ ├── introduction │ │ └── index.md │ ├── installation-guide │ │ └── index.md │ └── upgrade-guide │ │ └── index.md ├── Разработчикам │ ├── index.md │ ├── folder-structure │ │ └── index.md │ ├── predefined-variables │ │ └── index.md │ └── developers-basics │ │ └── index.md └── Содержимое сайта │ ├── index.md │ ├── how-to-upload-and-insert-an-image │ └── index.md │ ├── how-to-change-the-editor │ └── index.md │ ├── how-to-create-a-new-content │ └── index.md │ ├── add-a-read-more-link │ └── index.md │ ├── how-to-schedule-content │ └── index.md │ ├── content-basics │ └── index.md │ └── custom-fields │ └── index.md └── README.md /pages/Темы/index.md: -------------------------------------------------------------------------------- 1 | # Темы 2 | -------------------------------------------------------------------------------- /pages/Плагины/index.md: -------------------------------------------------------------------------------- 1 | # Плагины 2 | -------------------------------------------------------------------------------- /pages/Безопасность/index.md: -------------------------------------------------------------------------------- 1 | # Безопасность 2 | -------------------------------------------------------------------------------- /pages/Начало работы/index.md: -------------------------------------------------------------------------------- 1 | # Начало работы 2 | -------------------------------------------------------------------------------- /pages/Разработчикам/index.md: -------------------------------------------------------------------------------- 1 | # Разработчикам 2 | 3 | -------------------------------------------------------------------------------- /pages/Содержимое сайта/index.md: -------------------------------------------------------------------------------- 1 | # Содержимое сайта 2 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Русская документация Bludit. 2 | Здесь вы можете найти документацию Bludit на русском языке. 3 | 4 | Эта документация синхронизирована с официальным сайтом. 5 | - https://docs.bludit.com/ru/ 6 | -------------------------------------------------------------------------------- /pages/Безопасность/custom-admin-panel-url/index.md: -------------------------------------------------------------------------------- 1 | # Пользовательский URL админ панели 2 | 3 | 4 | По умолчанию, админ панель находится в папке `/admin/`. 5 | 6 | Вы можете изменить адрес в переменных - `/bl-kernel/boot/variables.php`. Измените значение`ADMIN_URI_FILTER` на ваш адрес. 7 | 8 |
define('ADMIN_URI_FILTER', 'admin');
-------------------------------------------------------------------------------- /pages/Начало работы/themes/index.md: -------------------------------------------------------------------------------- 1 | # Темы 2 | 3 | 4 | Bludit имеет поддержку темы, чтобы кастомизировать свой сайт или блог. 5 | 6 | Вы мжете скачать темы с официальной страницы [Bludit Themes](https://themes.bludit.com). 7 | 8 | ## Как установить тему? 9 | 1. Скачайте и разархивируйте выбранную тему. 10 | 3. Загрузите разархивированные файлы в папку `/bl-themes/` на вашем сервере. 11 | 4. Перейдите в **Админ-Панель**, и на боковой панели выберите **Настройки > Темы**. 12 | 5. Выбирите вашу тему и нажмите **Активировать**. -------------------------------------------------------------------------------- /pages/Содержимое сайта/how-to-upload-and-insert-an-image/index.md: -------------------------------------------------------------------------------- 1 | # Как загрузить и вставить изображение. 2 | 3 | 4 | Вы можете загрузить изображение и вставить его в содержимое страницы. 5 | 6 | 1. Нажмите кнопку **Изображения**. 7 | 2. Нажмите кнопку **Browser**. 8 | 3. Выберите изображение на вашем устройстве. 9 | 4. После загрузки нжмите кнопку **Вставить** или **Установить как обложку**. 10 | 11 | Видео иллюстрирующее данные действия. 12 |
13 | 14 |
15 | -------------------------------------------------------------------------------- /pages/Содержимое сайта/how-to-change-the-editor/index.md: -------------------------------------------------------------------------------- 1 | # Как изменить редактор 2 | 3 | 4 | По умолчанию, Bludit использует редактор [TinyMCE](https://www.tiny.cloud/) - простой и чистый HTML-редактор. Но вы также можете выбрать SimpleMDE, который поддерживает код Markdown. TinyMCE и SimpleMDE предустановлены в Bludit по умолчанию; оба являются плагинами, и вы можете найти их в разделе плагинов. 5 | 6 | ## Как заменить TinyMCE на SimpleMDE 7 | - Войдите в **Панель управления**. 8 | - Выберите **Плагины** на боковой панели. 9 | - Найдите плагин **TinyMCE** и нажмите **Деактивировать**. 10 | - Найдите плагин **SimpleMDE** и нажмите **Активировать** 11 | - Теперь по умолчанию будет использоваться **SimpleMDE** редактор. 12 | -------------------------------------------------------------------------------- /pages/Начало работы/plugins/index.md: -------------------------------------------------------------------------------- 1 | # Плагины 2 | 3 | 4 | Bludit имеет поддержку плагинов для расширения своей функциональности. 5 | 6 | Bludt поставляется изначально с некоторым количеством плагинов. Но не все они активированы. 7 | 8 | Вы можете скачать плагины с официальной страницы [Bludit Plugins](https://plugins.bludit.com). 9 | 10 | ## Как установить плагин? 11 | 1. Скачайте и разархивируйте архив с плагином. 12 | 2. Загрузите разархивированный плагин в папку `/bl-plugins/` на вашем сервере. 13 | 14 | ## Как включить и настроить плагин? 15 | 1. Перейдите в **Админ-Панель**,на боковой панели выберите **Настройки > Плагины**. 16 | 2. Выберите интересующий вас плагин и нажмите **Активировать**. 17 | 3. Некоторые плагины имеют возможность настройки, выберите интересующий вас плагин и нажмите **Настройки**. -------------------------------------------------------------------------------- /pages/Содержимое сайта/how-to-create-a-new-content/index.md: -------------------------------------------------------------------------------- 1 | # Как добавить новую запись 2 | 3 | 4 | Войдите в **Панель управления** и нажмите **Новая запись**. 5 | 6 | 1. Заполните поле **Название**. 7 | 2. Заполните поле **Содержимое**. 8 | 3. Нажмите кнопку **Опубликовать**. 9 | 4. Готово! 10 | 11 | Видео иллюстрирующее данные действия. 12 |
13 | 14 |
15 | 16 |
17 |
Редактор
18 | По умолчанию, Buldit использует редактор TinyMCE; Но вы всегда можете выбрать любой другой редактор. Как изменить редактор 19 |
20 | -------------------------------------------------------------------------------- /pages/Плагины/pages-after-creation/index.md: -------------------------------------------------------------------------------- 1 | # Страницы после создания 2 | 3 | 4 | После создания страницы, Bludit вызывает Hook `afterPageCreate`. Этот Hook также вызывается для запланированых страниц. 5 | 6 |
7 | Эта функция доступна начиная с Bludit v3.13 8 |
9 | 10 | ## Пример: Добавить строку к заголовку 11 | Следующий плагин добавляет строку в начале страницы после ее создания. 12 | 13 | ```php 14 | title(); 22 | $newTitle = 'Summer: '.$currentTitle; 23 | 24 | global $pages; 25 | $pages->edit(array( 26 | 'key'=>$key, 27 | 'title'=>$newTitle 28 | )); 29 | } 30 | 31 | } 32 | 33 | ?> 34 | ``` 35 | 36 | Вы можете скачать исходный код плагина: 37 | - https://github.com/bludit/examples -------------------------------------------------------------------------------- /pages/Безопасность/disable-admin-user/index.md: -------------------------------------------------------------------------------- 1 | # Отключение пользователя-администратора 2 | 3 | 4 | По стандарту, Bludit создает пользователя с именем `admin` в качестве администратора системы. Bludit использует этого пользователя для восстановления пароля. Если вы хотите удалить другого пользователя, без потери его материалов, вы можете передать все его материалы пользователю `admin`. 5 | 6 | Для большей безопасности, вы можете отключить его. 7 | 8 | ## Как отключить пользователя-администратора. 9 | Если вы хотите отключить пользователя-администратора, то убедитесь есть ли еще пользователь с ролью администратора. 10 | 11 | - Зайдите в Админ Панель 12 | - Управление > Пользователи > admin 13 | - Безопасность > Status > Отключить пользователя 14 | 15 |
16 |
Включение пользователяr
17 | Чтобы снова включить пользователя, просто установите ему новый пароль. 18 |
-------------------------------------------------------------------------------- /pages/Темы/include-plugins/index.md: -------------------------------------------------------------------------------- 1 | # Подключение плагинов 2 | 3 | 4 | Bludit позволяет разработчикам использовать готовые методы и писать код чище, быстрее, красивее. 5 | 6 | Лист с hooks: 7 | - https://docs.bludit.com/en/plugins/hooks-list 8 | 9 | Например, чтобы выполнить все плагины с hook'ом `siteHead`, вы можете использовать метод `Theme::plugins()`. 10 | ``` 11 | 14 | ``` 15 | 16 |

Пример

17 | 18 | Вот полный пример того, как подключить 3 типа hook'ов и выполнить их в правильном месте в теме. 19 | 20 | ``` 21 | 22 | 23 | 24 | Hello 25 | 26 | 29 | 30 | 31 | 32 | 35 | 36 |

This is a Heading

37 |

This is a paragraph.

38 | 39 | 42 | 43 | 44 | 45 | ``` -------------------------------------------------------------------------------- /pages/Плагины/custom-hooks-for-plugins/index.md: -------------------------------------------------------------------------------- 1 | # Пользовательские Hook'и для плагинов 2 | 3 | 4 | Bludit поддерживает пользовательские Hook'и, вы можете создать собственный Hook. 5 | 6 |
7 | Эта функция доступна начиная с Bludit v3.13 8 |
9 | 10 | ## Пример 11 | В следущем примере создаются два пользовательски hook'a `select` и `insert`. 12 | 13 | Чтобы плагин начала работать, не забудьте указать их внутри массива `$this->customHooks` внутри метода `init()`. 14 | 15 | ```php 16 | customHooks = array( 23 | 'select', 24 | 'insert' 25 | ); 26 | } 27 | 28 | public function select() 29 | { 30 | echo 'Custom hook select'; 31 | } 32 | 33 | public function insert() 34 | { 35 | echo 'Custom hook insert'; 36 | } 37 | } 38 | 39 | ?> 40 | ``` 41 | 42 | После активации плагина, вы можете вызывать Hook'и как обычно `Theme::plugins`. 43 | 44 | ```php 45 | 51 | ``` -------------------------------------------------------------------------------- /pages/Содержимое сайта/add-a-read-more-link/index.md: -------------------------------------------------------------------------------- 1 | # Добаваление ссылки "Читать дальше" 2 | 3 | 4 | Вы можете разделить содержимое страницы на две части. Первая часть будет видна на главной странице, а вторая часть будет видна только после нажатия кнопки `Читать дальше`. 5 | 6 | Чтобы разделить содержимое, нажмите на кнопку `Page Break`, которая находится на панели инструментов над главным текстовым редактором. 7 | 8 | Видео иллюстрирующее данные действия. 9 |
10 | 11 |
12 | 13 | --- 14 | 15 | Вы можете сделать то же самое в редакторе Markdown, добавив тег ``. 16 | ``` 17 | Первая часть содержимого 18 | 19 | 20 | 21 | Вторая часть содержимго 22 | ``` 23 | 24 | --- 25 | 26 |
27 |
Note
28 | В некоторых темах Bludit такая функция автоматическая и не требует вмешательства пользователя. 29 |
30 | -------------------------------------------------------------------------------- /pages/Темы/javascript-files/index.md: -------------------------------------------------------------------------------- 1 | # Файлы Javascript 2 | 3 | 4 | Bludit позволяет разработчикам использовать готовые методы и писать код чище, быстрее, красивее. 5 | 6 | В этом уроке мы будем использовать следущие имена: 7 | - Название темы `box` 8 | - Адрес сайта `https://www.example.com` 9 | - Путь к теме `/bl-themes/box/` 10 | - Путь к Javascript файлу `/bl-themes/box/main.js` 11 | 12 | Давайте создадим файл с именем `main.js`. Этот файл будет находится по адресу `/bl-themes/box/main.js`. Вам не нужно будет беспокоиться о пути к JS файлу, если вы используете `Theme::`. 13 | ``` 14 | 17 | ``` 18 | 19 | HTML вывод 20 | ``` 21 | 22 | ``` 23 | 24 |

Пример

25 | 26 | Вот полный пример того, как подключить два файла Javascript в тему. 27 | 28 | ``` 29 | 30 | 31 | 32 | Hello 33 | 34 | 35 | 36 |

This is a Heading

37 |

This is a paragraph.

38 | 39 | 43 | 44 | 45 | 46 | ``` -------------------------------------------------------------------------------- /pages/Содержимое сайта/how-to-schedule-content/index.md: -------------------------------------------------------------------------------- 1 | # Как создать запланированную запись 2 | 3 | 4 | Вы можете подготовить запись и запланировать ее публикацию на вашем сайте в будущем. 5 | 6 | Чтобы запланировать запись для публикации: 7 | 1. Создайте новую запись, выбрав на боковой панели **Новая запись**. 8 | 2. Нажмите на кнопку **Параметры**. 9 | 3. Выберите **Расширенные**. 10 | 4. Выберите желаемую дату публикации. 11 | 5. Заполните все поля. (Название, текст содержимого и т.п.) 12 | 6. Нажмите на кнопку **Опубликовать**. 13 | 7. Вы можете увидеть даную запись в **Записи > Запланированно** 14 | 15 | Видео иллюстрирующее данные действия. 16 |
17 | 18 |
19 | 20 |
21 |
Примечание
22 | Пользователи не могут получить доступ к записи до даты публикации. 23 |
24 | 25 |
26 |
Примечание
27 | Вы можете изменить дату публикации, изменив страницу. 28 |
29 | -------------------------------------------------------------------------------- /pages/Плагины/hooks-list/index.md: -------------------------------------------------------------------------------- 1 | # Hooks лист 2 | 3 | 4 | Это Hook лист поддерживаемый Bludit: 5 | 6 | | Hooks | Execute in | Примечание | 7 | | |--|--| 8 | | siteHead | Theme | | 9 | | siteBodyBegin | Theme | | 10 | | siteBodyEnd | Theme | | 11 | | siteSidebar | Theme | | 12 | | beforeSiteLoad | Theme | | 13 | | afterSiteLoad | Theme | | 14 | | pageBegin | Theme | | 15 | | pageEnd | Theme | | 16 | | adminHead | Admin theme | | 17 | | adminBodyBegin | Admin theme | | 18 | | adminBodyEnd | Admin theme | | 19 | | adminSidebar | Admin theme | | 20 | | dashboard | Admin theme | | 21 | | beforeAdminLoad | Core | | 22 | | afterAdminLoad | Core | | 23 | | beforeRulesLoad | Core | | 24 | | afterFormSave | Core | | 25 | | afterPageCreate | Core | | 26 | | afterPageModify | Core | | 27 | | afterPageDelete | Core | | 28 | | loginHead | Admin theme | | 29 | | loginBodyBegin | Admin theme | | 30 | | loginBodyEnd | Admin theme | | 31 | 32 |
33 |
Note
34 | Не все темы поддерживают данные Hook'и. 35 |
-------------------------------------------------------------------------------- /pages/Темы/css-files/index.md: -------------------------------------------------------------------------------- 1 | # Файлы CSS 2 | 3 | 4 | Bludit позволяет разработчикам использовать готовые методы и писать код чище, быстрее, красивее. 5 | 6 | В этом уроке мы будем использовать следущие имена: 7 | - Название темы `box` 8 | - Адрес сайта `https://www.example.com` 9 | - Путь к теме `/bl-themes/box/` 10 | - Путь к файлу CSS `/bl-themes/box/style.css` 11 | 12 | Давайте создадим файл с именем `style.css`. Этот файл будет находится по адресу `/bl-themes/box/style.css`. Вам не нужно будет беспокоиться о пути к CSS файлу, если вы используете `Theme::`. 13 | ``` 14 | 17 | ``` 18 | 19 | HTML вывод 20 | ``` 21 | 22 | ``` 23 | 24 |

Пример

25 | 26 | Следующий фрагмент HTML и PHP-это полный пример того, как подключить два CSS-файла в тему. 27 | 28 | ``` 29 | 30 | 31 | 32 | Hello 33 | 34 | 38 | 39 | 40 | 41 |

This is a Heading

42 |

This is a paragraph.

43 | 44 | 45 | 46 | ``` -------------------------------------------------------------------------------- /pages/Темы/title-and-description/index.md: -------------------------------------------------------------------------------- 1 | # Название и описание 2 | 3 | 4 | Bludit позволяет разработчикам использовать готовые методы и писать код чище, быстрее, красивее. 5 | 6 |

Заголовок

7 | 8 | Вывести `` тег в head с динамическим текстом, можно воспользовавшись(Заголовок принимает конфигурацию, определенную в настройках Вашего сайта.): 9 | ``` 10 | <?php 11 | echo Theme::metaTags('title'); 12 | ?> 13 | ``` 14 | 15 | HTML Вывод 16 | ``` 17 | <title>Page title | Title site 18 | ``` 19 | 20 |

Описание

21 | Вывести `` тег в head с динамическим текстом, можно воспользовавшись (Описание принимает конфигурацию, определенную в настройках Вашего сайта.): 22 | ``` 23 | 26 | ``` 27 | 28 | HTML Вывод 29 | ``` 30 | 31 | ``` 32 | 33 |

Пример

34 | 35 | Вот полный пример того, как использовать заголовок и описание в теме. 36 | 37 | ``` 38 | 39 | 40 | 41 | 45 | 46 | 47 | 48 |

This is a Heading

49 |

This is a paragraph.

50 | 51 | 52 | 53 | ``` -------------------------------------------------------------------------------- /pages/Начало работы/requirements/index.md: -------------------------------------------------------------------------------- 1 | # Требования 2 | 3 | 4 | Вам нужен лишь сервер с поддержкой PHP. 5 | 6 | - PHP v5.6 и выше. 7 | - PHP [mbstring](https://www.php.net/manual/en/book.mbstring.php) модуль для полной поддержки UTF-8. 8 | - PHP [gd](https://www.php.net/manual/en/book.image.php) модуль для обработки изображений. 9 | - PHP [dom](https://www.php.net/manual/en/book.dom.php) модуль для управление DOM. 10 | - PHP [json](https://www.php.net/manual/en/book.json.php) модуль для управления JSON. 11 | - Bludit поддерживает все попоулярные сервера 12 | * [PHP Built-in web server](https://www.php.net/manual/en/features.commandline.webserver.php) 13 | * Nginx c модулем [ngx_http_rewrite_module](http://nginx.org/en/docs/http/ngx_http_rewrite_module.html) 14 | * Apache с модулем [mod_rewrite](http://httpd.apache.org/docs/current/mod/mod_rewrite.html) 15 | * Lighttpd с модулем [mod_rewrite](https://redmine.lighttpd.net/projects/1/wiki/docs_modrewrite) 16 | * Hiawatha, [rewrite rules](https://www.hiawatha-webserver.org/howto/url_rewrite_rules) 17 | * H2O, см. пост [H2O HTTP/2 web server and Bludit](https://forum.bludit.org/viewtopic.php?f=6&t=1015) на форуме поддержки. 18 | * IIS с модулем[URL Rewrite](https://www.iis.net/downloads/microsoft/url-rewrite), see [this](https://forum.bludit.org/viewtopic.php?f=6&t=1420) post in the Support Forum -------------------------------------------------------------------------------- /pages/Начало работы/introduction/index.md: -------------------------------------------------------------------------------- 1 | # Вступление 2 | 3 | 4 | Bludit - это веб-приложение, позволяющее создать собственный **веб-сайт** или **блог** за считанные секунды. Bludit абсолютно бесплатен и имеет открытый исходный код. Bludit построен на PHP и хранит все данные в файлах формата **JSON**. Это означает то, что вам не потребуется внешняя база данных для создания сайта. 5 | 6 |

Помощь

7 | Возникла проблема? Хотите задать вопрос? 8 | 9 | * [Gitter](https://gitter.im/bludit/support) - Онлайн чат 10 | * [Форум Bludit](https://forum.bludit.org) 11 | 12 |

Подпишись на Bludit

13 | Общайтесь с разработчиками и сообщетсвом Bludit в социальных сетях. 14 | 15 | * [Twitter](https://twitter.com/bludit) **@bludit** 16 | * [Facebook](https://www.facebook.com/bluditcms) 17 | * [YouTube](https://www.youtube.com/c/Bluditcms) 18 | * [GitHub](https://github.com/bludit/bludit) 19 | 20 |

Пожертвования

21 | Пожертвования и поддержка сообщетсва - это то, что помогает проекту развиваться и становиться всегда лучше. 22 | * [Paypal](https://www.paypal.me/bluditpro/5) 23 | * [Patreon](https://www.patreon.com/bludit) - Пожертвование дает возможность использовать Bludit PRO. 24 | 25 |

Лецензия

26 | Bludit это приложение с открытым исходным кодом и распространяющееся под [MIT license.](https://tldrlegal.com/license/mit-license) -------------------------------------------------------------------------------- /pages/Темы/favicon/index.md: -------------------------------------------------------------------------------- 1 | # Favicon 2 | 3 | 4 | Bludit позволяет разработчикам использовать готовые методы и писать код чище, быстрее, красивее. 5 | 6 | В этом уроке мы будем использовать следущие имена: 7 | - Название темы `box` 8 | - Адрес сайта `https://www.example.com` 9 | - Путь к теме `/bl-themes/box/` 10 | - Путь к файлу CSS `/bl-themes/box/favicon.png`` 11 | 12 | Слудущий метод `Theme::` позволяет подключить favicon на сайт, добавляя мета-тег в описании страниц; По умолчанию MIME возвращает тип `image/png`. 13 | ``` 14 | 17 | ``` 18 | 19 | HTML вывод 20 | ``` 21 | 22 | ``` 23 | 24 | Кроме того, вы можете указать тип MIME, если хотите использовать другой тип favicon, например `.ico`. 25 | ``` 26 | 29 | ``` 30 | 31 | HTML вывод 32 | ``` 33 | 34 | ``` 35 | 36 |

Пример

37 | 38 | Пример подключения Favicon на сайт. 39 | 40 | ``` 41 | 42 | 43 | 44 | Hello 45 | 46 | 49 | 50 | 51 | 52 |

This is a Heading

53 |

This is a paragraph.

54 | 55 | 56 | 57 | ``` -------------------------------------------------------------------------------- /pages/Безопасность/brute-force-protection/index.md: -------------------------------------------------------------------------------- 1 | # Защита от Brute Force 2 | 3 | 4 | ## Что такое Brute Forceы? 5 | метод угадывания пароля (или ключа, используемого для шифрования), предполагающий систематический перебор всех возможных комбинаций символов до тех пор, пока не будет найдена правильная комбинация. 6 | 7 | ## Как это работает? 8 | Bludit по стандарту включает данную функцию, она позволяет в какой-то мере обезопасить себя от взлома. 9 | 10 | Для каждой неудачи входа в систему Blue IT добавляет IP пользователя, который не прошел проверку подлинности, в черный список. Когда пользователь терпит неудачу в течение нескольких раз, плюс он блокирует нарушающий IP-адрес на определенный период времени, и пользователь не может войти в систему, пока срок действия блока не истечет. 11 | 12 | ## Классы и объекты 13 | Существует объект, который вызывает переменную `$security`,а класс объекта - `/bl-kernel/security.class.php`. Переменные внутри класса: 14 | 15 |

16 | private $dbFields = array(
17 |     'minutesBlocked'=>5,
18 |     'numberFailuresAllowed'=>10,
19 |     'blackList'=>array()
20 | );
21 | 
22 | 23 | - `minutesBlocked`: Время на сколько блокируется IP адрес. 24 | - `numberFailuresAllowed`: Количество неудачных попыток для блокировок. 25 | - `blackList`: Список заблокированных IP адресов 26 | 27 |
28 |
Примечание
29 | Вы можете изменить знчения этих переменных. 30 |
-------------------------------------------------------------------------------- /pages/Безопасность/password-recovery/index.md: -------------------------------------------------------------------------------- 1 | # Восстановление пароля 2 | 3 | 4 | Вы можете восстановить пароль для пользователя `admin` используя скрипт `recovery.php`. 5 | 6 |

Как изменить пароль

7 | 8 | 1. Скачайте файл[recovery.php](https://raw.githubusercontent.com/bludit/password-recovery-tool/master/recovery.php). 9 | 2. Загрузите файл `recovery.php` в каталог в котором находится Bludit. 10 | 3. Откройте данный скрипт в браузере: https://example.com/recovery.php, замените `example.com` на ваш домен. 11 | 4. Автоматически сгенерируется новый пароль для пользователя `admin` и будет отображен на открытой странице. 12 | 5. Войдите как пользователь `admin` с новым сгенерированным паролем. 13 | 14 | Файл recovery.php должен будет удалиться автоматически, если этого не произошло, то удалите его вручную. 15 | 16 | --- 17 | 18 |

Как восстановить пароль с помощью командной строки

19 | 20 | Вы можете выполнить файл `recovery.php` из командной строки. 21 | 22 | ``` 23 | # Перейдите в директорию с установленным Bludit. 24 | cd /var/html/bludit 25 | 26 | # Скачайте файл 27 | curl -o recovery.php https://raw.githubusercontent.com/bludit/password-recovery-tool/master/recovery.php 28 | 29 | # Выполните команду 30 | php recovery.php 31 | ``` 32 | 33 | ``` 34 | Bludit Password Recovery Tool 35 | 36 | Username: admin 37 | New password: 00bef4566011d2015df2786dbd094003 38 | 39 | >> The file recovery.php was deleted automatically for security reasons. << 40 | ``` -------------------------------------------------------------------------------- /pages/Темы/theme-basics/index.md: -------------------------------------------------------------------------------- 1 | # Основы стилизации 2 | 3 | 4 | Темы в Bludit очень гибкие, при создании вы можете использовать любой framework ([Bootstrap](http://getbootstrap.com/), [Foundation](https://foundation.zurb.com/), [Bulma](https://bulma.io), [UIkit](https://getuikit.com/), [Semantic UI](https://semantic-ui.com), и т.д.), любой JavaScript код. Все, что захотите! 5 | 6 | Все темы находятся в папке `bl-themes` и имею предопределенную структуру. 7 | 8 |

Струкутура папок и файлов

9 | Это простая (и обязательная) структура папок и файлов для тем. 10 | 11 | ``` 12 | /bl-themes/{THEME_NAME}/ 13 | languages/en.json 14 | metadata.json 15 | index.php 16 | ``` 17 | 18 |

Название и описание

19 | Название и описание темы хранится в языковом пакете темы `languages/en.json`. 20 | 21 | ``` 22 | { 23 | "theme-data": 24 | { 25 | "name": "Hello World", 26 | "description": "My new theme" 27 | } 28 | } 29 | ``` 30 | 31 |

Информация

32 | Основаная информация о теме хранится в `metadata.json`. 33 | 34 | ``` 35 | { 36 | "author": "Bludit", 37 | "email": "", 38 | "website": "https://themes.bludit.com", 39 | "version": "1.0", 40 | "releaseDate": "2020-06-01", 41 | "license": "MIT", 42 | "compatible": "3.0", 43 | "notes": "" 44 | } 45 | ``` 46 | 47 |

Примеры тем

48 | У нас есть два примера, один простой, а второй более сложный с файлами CSS и Javascript. 49 | 50 | - [My First Theme](https://docs.bludit.com/en/themes/example-my-first-theme) 51 | - [My Second Theme](https://docs.bludit.com/en/themes/example-my-second-theme) -------------------------------------------------------------------------------- /pages/Плагины/plugin-basics/index.md: -------------------------------------------------------------------------------- 1 | # Основы плагина 2 | 3 | 4 | Плагины в Bludit находятся в папке `bl-plugins`, и они имеют предопределенную структуру. Каждый плагин является объектом в Bludit, с различными hook'ами (методами). 5 | 6 |

Структура папок и файлов

7 | Это обязательная структура папок и файлов для плагина: 8 | 9 | ``` 10 | /bl-plugins/{PLUGIN_NAME}/ 11 | languages/en.json 12 | metadata.json 13 | plugin.php 14 | ``` 15 | 16 |

Название и описание

17 | Название и описание плагина хранится в файле формата JSON, `languages/en.json`. 18 | 19 | ``` 20 | { 21 | "plugin-data": 22 | { 23 | "name": "Hello World", 24 | "description": "Print Hello World in the sidebar" 25 | } 26 | } 27 | ``` 28 | 29 |

Информация

30 | Мета информация плагина хранится в файле формата JSON, `metadata.json`. 31 | 32 | ``` 33 | { 34 | "author": "Bludit", 35 | "email": "", 36 | "website": "https://plugins.bludit.com", 37 | "version": "1.0", 38 | "releaseDate": "2020-06-01", 39 | "license": "MIT", 40 | "compatible": "3.0", 41 | "notes": "" 42 | } 43 | ``` 44 | 45 |

Привет, Мир!

46 | Создадим плагин `Hello, World!` (Привет, Мир!). Приведенный ниже код, должен находится в файле `plugin.php`. 47 | 48 | ``` 49 | 56 | ``` 57 | 58 |
59 |
Примечание
60 | Скачать исходный код плагина Hello World. 61 |
-------------------------------------------------------------------------------- /pages/Содержимое сайта/content-basics/index.md: -------------------------------------------------------------------------------- 1 | # Основы контента 2 | 3 | 4 | В Bludit присутствует 5 видов контента. 5 | 6 |

Страница

7 | Страницы можно рассматривать как обычные `страницы` или как `запись` (запись в блоге). Страницы могут быть отсортированы по `дате` или по `позиции`. 8 | Например, если у вас блог, то вы можете отсортировать страницы по `дате`. Если у вас сайт и вы хотите отображать записи в определенном порядке, то можно отсортировать по `позиции`. 9 | 10 | Bludit изначально сортирует по `дате`, но если вы хотите изменить это, измените это в **Настройки > Основные > Расширеные > Сортировать записи по**. 11 | 12 | --- 13 | 14 |

Статические страницы

15 | Статические страницы не отображаются на главной, они создаются по тому же принципу, что и обычные. Такие страницы, обычно используются для создания страниц: `О нас`, `Правила использования`, `Связаться с нами`. Темы, как правило, показывают ссылки на эти страницы в верхней части вашего сайта. 16 | 17 | Чтобы создать такую страницу, во время создания записи нажмите **Параметры** и выбирите **Расширеные > Тип**. 18 | 19 | --- 20 | 21 |

Прикрепленные страницы

22 | Прикрепленные страницы, это обычные страницы, но при загрузке сайта они всегда отображаются перед всеми другими записями на главной странице. 23 | 24 | --- 25 | 26 |

Черновики

27 | Черновики позволяют пользователю создавать контент, не публикуя его, пока он не будет готов. Черновики доступны только через панель управления. 28 | 29 | --- 30 | 31 |

Запланированные страницы

32 | Запланированные страницы, это страницы которые не публикуются до тех пор, пока не наступит время указаное при создании такой страницы. 33 | 34 | Чтобы выбрать дату, перейдите в **Параметры** и выбирите **Расширеные > Дата**. 35 | -------------------------------------------------------------------------------- /pages/Начало работы/installation-guide/index.md: -------------------------------------------------------------------------------- 1 | # Процесс установки 2 | 3 | 4 |

Установка из zip-архива

5 | 6 | 1. Скачайте последнюю версию Bludit с [официального сайта](https://www.bludit.com). 7 | 2. Распакуйте zip-архив. 8 | 3. Загрузите содержимое папки разархивированного архива к себе на сервер или хостинг. Вы можете загрузить содержимое в корневой каталог или подкаталог, например `/bludit/`. 9 | 4. Для загрузки, вы можете использовать любой FTP клиент. Например, File Zilla. 10 | 4. Зайдите на сайт по своему адресу. Если вы загрузили файлы в корневой католог - `https://www.example.com`, если вы загрузили файлы в подкаталог - `https://www.example.com/bludit/`. 11 | 5. Следуйте инструкции установщика для дальнейшей настройки и установки Bludit. 12 | 13 | --- 14 | 15 |

PHP Built-in web server

16 | 17 | Вы можете быстро установить Bludit с помощью комманд [PHP Built-in web server](https://www.php.net/manual/en/features.commandline.webserver.php). 18 | 19 | ``` 20 | $ git clone https://github.com/bludit/bludit.git 21 | $ cd bludit 22 | $ php -S localhost:8000 23 | ``` 24 | 25 | После выполнения команд перейдите по ссылке `http://localhost:8000` 26 | 27 | --- 28 | 29 |

Docker

30 | Установка из [Docker Image](https://hub.docker.com/r/bludit/docker/). 31 | 32 | ``` 33 | $ docker run --name bludit -p 8000:80 -d bludit/docker:latest 34 | ``` 35 | 36 | После выполнения команды перейдите по ссылке `http://localhost:8000` 37 | 38 | --- 39 | 40 |

Vagrant

41 | Установка из [Vagrant Build](https://pilab.dev/bludit-vagrant). 42 | 43 | ``` 44 | $ git clone https://github.com/mhancoc7/Bludit-Vagrant.git 45 | $ cd Bludit-Vagrant 46 | $ vagrant up 47 | ``` 48 | 49 | После выполнения команд перейдите по ссылке `http://localhost:8080` 50 | -------------------------------------------------------------------------------- /pages/Разработчикам/folder-structure/index.md: -------------------------------------------------------------------------------- 1 | # Структура папок 2 | 3 | 4 | Это базовая структура папок 5 | ``` 6 | /bl-content/ <-- Базы данных и весь загруженный контент на сайт 7 | /bl-kernel/ <-- Ядро Bludit 8 | /bl-languages/ <-- Языковые пакеты/файлы 9 | /bl-plugins/ <-- Плагины 10 | /bl-themes/ <-- Темы 11 | ``` 12 | 13 | ## bl-content 14 | Это одна из важных папок Bludit. Именно в ней хранятся базы данных и весь загруженный контент на сайт. (Статьи, изображения, пользователи и т.п.) 15 | ``` 16 | /bl-content/ 17 | 18 | databases/ 19 | plugins/ <-- База данных плагинов 20 | pages.php <-- База данных страниц 21 | security.php <-- База данных настроек безопасности 22 | site.php <-- База данных настроек сайта 23 | tags.php <-- База данных тегов 24 | users.php <-- База данных пользователей 25 | 26 | pages/ <-- Содержимое: страницы 27 | about/index.txt 28 | food/index.txt 29 | 30 | tmp/ <-- Временные файлы 31 | 32 | uploads/ <-- Загруженные файлы 33 | profiles/ <-- Изображения профилей 34 | thumbnails/ <-- Изображения обложек страниц 35 | photo1.jpg 36 | photo2.png 37 | 38 | workspaces/ <-- Рабочее место для плагинов 39 | ``` 40 | 41 | ## bl-kernel 42 | Эта папка содержит ядро Bludit. 43 | 44 | ## bl-languages 45 | Эта папка содержит языковые пакеты, хранящиеся в формате JSON и имеющие кодировку UTF-8. 46 | 47 | ``` 48 | /bl-languages/ 49 | bg_BG.json 50 | cs_CZ.json 51 | de_CH.json 52 | en.json 53 | es.json 54 | ... 55 | ``` 56 | 57 | ## bl-plugins 58 | Эта папка содержит плагины. В нее загружаются все новые плагины. 59 | 60 | ``` 61 | /bl-plugins/ 62 | about/ 63 | disqus/ 64 | rss/ 65 | sitemap/ 66 | tinymce/ 67 | ... 68 | ``` 69 | 70 | ## bl-themes 71 | Эта папка содержит темы. В нее загружаются темы. 72 | 73 | ``` 74 | /bl-themes/ 75 | alternative/ 76 | blogx/ 77 | ... 78 | ``` 79 | -------------------------------------------------------------------------------- /pages/Темы/example-my-first-theme/index.md: -------------------------------------------------------------------------------- 1 | # Пример: Моя первая тема 2 | 3 | 4 | Давайте создадим новую тему и дадим ей название `Coffee`. 5 | 6 | - Создайте тему в каталоге `/bl-themes/`; Путь должен выглядеть вот так: `/bl-themes/coffee/`. 7 | - Создайте папку с именем `languages`, внутри папки `/bl-themes/coffee/`. 8 | - Создайте файл `en.json` вунтри папки `/bl-themes/coffee/languages/`. 9 | - Создайте файл `metadata.json` вунтри папки `/bl-themes/coffee/`. 10 | - Создайте файл `index.php`, вунтри папки `/bl-themes/coffee/`. 11 | 12 | Когда это будет сделано, у вас должна быть следующая структура папок и файлов: 13 | 14 | ``` 15 | /bl-themes/coffee/ 16 | languages/en.json 17 | metadata.json 18 | index.php 19 | ``` 20 | 21 | Следующим шагом является создание содержимого файлов. Давайте начнем с `index.php` и добавьте следующий HTML и PHP код: 22 | 23 | ``` 24 | 25 | 26 | 27 | 28 | Bludit 29 | 30 | 31 | 32 | 33 |

title(); ?>

34 |
content(); ?>
35 |
36 | 37 | 38 | 39 | 40 | ``` 41 | 42 | Отредактируем файл `languages/en.json` и добавим в него следущий JSON код. 43 | 44 | ``` 45 | { 46 | "theme-data": 47 | { 48 | "name": "Coffee", 49 | "description": "This is my first theme for Bludit." 50 | } 51 | } 52 | ``` 53 | 54 | Отредактируем файл `metadata.json` и напишем подробную информацию о теме. 55 | 56 | ``` 57 | { 58 | "author": "Bludit", 59 | "email": "", 60 | "website": "", 61 | "version": "1.0", 62 | "releaseDate": "2019-01-01", 63 | "license": "MIT", 64 | "compatible": "3.0", 65 | "notes": "" 66 | } 67 | ``` 68 | 69 | Поздравляю! Вы создали первую свою тему для Bludit. Теперь вы можете зайти в настройки и активировать ей. -------------------------------------------------------------------------------- /pages/Разработчикам/predefined-variables/index.md: -------------------------------------------------------------------------------- 1 | # Зарезервированные переменные 2 | 3 | 4 | Bludit имеет несколько зарезервированных переменных. 5 | 6 |

$content

7 | 8 | Переменная `$content` представляет массив, который содержит все опубликованные страницы(кроме статических страниц).Каждая страница в массиве является [объектом страницы](https://github.com/bludit/bludit/blob/master/bl-kernel/pagex.class.php). 9 | 10 | Массив может быть отсортирован по `дате` или по `позиции`, это можно настроитьва в настройках Bludit. 11 | 12 | Взгляните как работать с этой переменной: 13 | - https://docs.bludit.com/en/dev-snippets/content-pages 14 | 15 |

$staticContent

16 | 17 | Переменная `$staticContent` представляет массив, который содержит все опубликованные `статические` страницы. Каждая страница в массиве является [объектом страницы](https://github.com/bludit/bludit/blob/master/bl-kernel/pagex.class.php). 18 | 19 | Массив может быть отсортирован по `позиции` темой Bludit. 20 | 21 | Взгляните как работать с этой переменной: 22 | - https://docs.bludit.com/en/dev-snippets/content-static 23 | 24 |

$page

25 | 26 | Переменная `$page` отображает любую страницу,которую просматривает пользователь. Эта переменная является [объектом страниц](https://github.com/bludit/bludit/blob/master/bl-kernel/pagex.class.php). 27 | 28 | Например, если пользователь просматривает страницу - `https://www.example.com/my-dog-rules`, переменная `$page` передаст ключ, например: `my-dog-rules`. 29 | 30 |

$pages

31 | 32 | Переменная `$pages` является [объектом страниц](https://github.com/bludit/bludit/blob/master/bl-kernel/pages.class.php). Этот объект используется для управления базой данных страниц. 33 | 34 |

$tags

35 | 36 | Переменная `$tags`является [объектом тегов](https://github.com/bludit/bludit/blob/master/bl-kernel/tags.class.php). Этот объект используется для управления базой данных тегов. 37 | 38 |

$categories

39 | 40 | Переменная `$categories` является [объектом категорий](https://github.com/bludit/bludit/blob/master/bl-kernel/categories.class.php). Этот объект используется для управления базой данных категорий. 41 | -------------------------------------------------------------------------------- /pages/Начало работы/upgrade-guide/index.md: -------------------------------------------------------------------------------- 1 | # Процесс обновления 2 | 3 | 4 |

Обновление с основной версии Bludit

5 | 6 | Привиденные действия подходят для обновления основной версии Bludit. Основная версия - первая цифра в версии Bludit, например `Bludit v3.x`. 7 | 8 | 1. Выполните бэкап всей дериктории в которой находится Bludit. 9 | 2. Запомните или сделайте пометку версии установленного Bludit (Для возможного отката действий.) 10 | 3. Скачайте последнюю версию с [официального сайта](https://www.bludit.com). 11 | 4. Разархивируйте архив. 12 | 5. Загрузите разархивированные файлы к себе на хостинг с заменой файлов. 13 | 6. Очистите кэш вашего браузера. (В настройках браузера) 14 | 7. Войдите в админ-панель и проверьте настройки Bludit. 15 | 8. Готово. 16 | 17 | > Примечание: Если ваш сайт кеширует каким-либо сервисом(Например: Cloudflare), то вам нужно очистить кеш в сервисе, который вы используете. 18 | 19 | --- 20 | 21 |

Обновление Bludit с версии v2.3.4 до Bludit v3.0

22 | 23 | Для обновления основных версий, рекомендуем использовать инструмент, созданный - [@anaggh](https://github.com/anaggh). Пожалуйста, ознакомьтесь с инструкций изложенной ниже, а также инструкцией в официальном репозитории инструмента.Если у вас возникли какие-либо трудности, вы можете задать свой вопрос на [форуме](https://forum.bludit.org) или в [онлайн чате](https://gitter.im/bludit/support). 24 | 25 | ### Инструкци до обновления основых версий. 26 | 27 | - Выполните бэкап всей дериктории в которой находится Bludit (Абсолютно всей, а не некоторых папок и файлов). 28 | - Плагины `Backups` и `Timemachine X` будут удалены вместе с содержимым. 29 | - Инструмен обновления создат папку с именем `/migrations/` и внутри папку с именем `bl-content` в которой хранятся все данные совместимые с Bludit v3.0. 30 | - После завершения обновления, вам нужно удалить все папки в каталоге, кроме папки - `/migrations/` и установить новую версию Bludit. 31 | - После обновления, скопируйте папку (`bl-content`), которая находится по адресу`/migrations/bl-content` в ваш каталог, где расположена новая версия Bludit. 32 | 33 | https://github.com/anaggh/bludit-scripts/tree/master/migration-v2-to-v3 -------------------------------------------------------------------------------- /pages/Разработчикам/developers-basics/index.md: -------------------------------------------------------------------------------- 1 | # Основы разработчика 2 | 3 | 4 | Давайте начнем с того, что проверим переменные установленной Bludit. Для этого мы перейдем в зону разработчика, которая находится по адресу `https://www.example.com/admin/developers`; Данный раздел недоступен напрямую из админ панели. 5 | 6 | В этом разделе, вы можете увидеть подробную информацию об установленной Bludit и настройки вашей PHP.Например, глобальная переменная `$_SERVER`, загруженные дополнения, языковые пакет, константы Bludit и некоторые другие свойства объектов. 7 | 8 | ## Порядок загрузки файлов для админ панели 9 | Эти файлы загружаются при входе в админ панель: 10 | 11 | ``` 12 | index.php 13 | bl-kernel/boot/init.php 14 | bl-kernel/boot/admin.php 15 | bl-kernel/boot/rules/60.plugins.php 16 | bl-kernel/boot/rules/69.pages.php 17 | bl-kernel/boot/rules/99.header.php 18 | bl-kernel/boot/rules/99.paginator.php 19 | bl-kernel/boot/rules/99.themes.php 20 | bl-kernel/boot/rules/99.security.php 21 | bl-kernel/admin/themes/default/init.php 22 | bl-kernel/admin/controllers/{CONTROLLER}.php 23 | bl-kernel/admin/themes/default/index.php 24 | bl-kernel/admin/controllers/{VIEW}.php 25 | ``` 26 | 27 | ## Порядок загрузки файлов для сайта 28 | Эти файлы загружаются при заходе на любую страницу сайта: 29 | 30 | ``` 31 | index.php 32 | bl-kernel/boot/init.php 33 | bl-kernel/boot/site.php 34 | bl-kernel/boot/rules/60.plugins.php 35 | bl-kernel/boot/rules/69.pages.php 36 | bl-kernel/boot/rules/99.header.php 37 | bl-kernel/boot/rules/99.paginator.php 38 | bl-kernel/boot/rules/99.themes.php 39 | bl-kernel/boot/rules/99.security.php 40 | bl-themes/{THEME_NAME}/init.php 41 | bl-themes/{THEME_NAME}/index.php 42 | ``` 43 | 44 | ## Переменные и константы среды 45 | Bludit вызывает переменные из заготовленных файлов. 46 | 47 | - [bl-kernel/boot/init.php](https://github.com/bludit/bludit/blob/master/bl-kernel/boot/init.php) 48 | - [bl-kernel/boot/variables.php](https://github.com/bludit/bludit/blob/master/bl-kernel/boot/variables.php) 49 | 50 | Еще одно место, где вы можете посмотреть переменные среды `bl-kernel/boot/rules/`. Например, переменные `content` and `pages` определены и берутся из [bl-kernel/boot/rules/69.pages.php](https://github.com/bludit/bludit/blob/master/bl-kernel/boot/rules/69.pages.php). 51 | -------------------------------------------------------------------------------- /pages/Темы/include-frameworks/index.md: -------------------------------------------------------------------------------- 1 | # Подключение Framework's 2 | 3 | 4 | Темы в Bludit очень гибкие, при создании вы можете использовать любой framework ([Bootstrap](http://getbootstrap.com/), [Foundation](https://foundation.zurb.com/), [Bulma](https://bulma.io), [UIkit](https://getuikit.com/), [Semantic UI](https://semantic-ui.com), и т.д.), любой JavaScript код. Все, что захотите! 5 | 6 | Мы подключим несколько фреймворков в документации, но не стесняйтесь добавлять их больше, редактируя эту страницу. 7 | 8 |

Подключение jQuery

9 | 10 | Bludit по стандарту имеет последнюю версию jQuery в своей сборке. 11 | ``` 12 | 15 | ``` 16 | 17 | HTML вывод 18 | ``` 19 | 20 | ``` 21 | 22 |

Подключение Bootstrap

23 | 24 | Bludit по стандарту имеет последнюю версию Bootstrap в своей сборке.. 25 | 26 | Подключеине JavaScript для Bootstrap. 27 | ``` 28 | 31 | ``` 32 | 33 | HTML вывод 34 | ``` 35 | 36 | ``` 37 | 38 | Подключение CSS для Bootstrap. 39 | ``` 40 | 43 | ``` 44 | 45 | HTML вывод 46 | ``` 47 | 48 | ``` 49 | 50 |

Подключеине UIkit

51 | 52 | Этот framework, к сожалению, не входит в сборку Bludit. Однако, при желании, вы можете подключить, используя методы `Theme::css()` и `Theme::js()`. Можно использовать UIkit CDN или скачать файлы framework'a. 53 | 54 | Слудущий пример подключает UIkit из UIkitCDN. Обратите внимание на `false`, это говорит методу, что мы используем внешний файл. 55 | ``` 56 | 62 | ``` 63 | 64 | HTML вывод 65 | ``` 66 | 67 | 68 | 69 | -------------------------------------------------------------------------------- /pages/Плагины/admin-panel-controller-and-view/index.md: -------------------------------------------------------------------------------- 1 | # Админ Панель: контроллер и просмотр через плагины. 2 | 3 | 4 | Bludit позволяет легко кастоимизировать админ панель с помощью плагинов. 5 | 6 |
7 | Эта функция реализована, начиная с Bludit v3.13 8 |
9 | 10 | ## Notes 11 | - Bludit по умолчанию использует [Bootstrap](https://getbootstrap.com/) для стилизации, вы можете его использовать в админ панели. 12 | - Просмотр плагина для админ панели - `/admin/plugin/` 13 | 14 | ## Пример: Привет, Мир! 15 | Данный плагин изменить тег `` и выведет `Hello world!`. 16 | 17 | После активации плагина, перейдем по адресу `https://www.example.com/admin/plugin/hello`. 18 | 19 | ```php 20 | <?php 21 | 22 | class Hello extends Plugin { 23 | 24 | public function adminController() 25 | { 26 | global $layout; 27 | $layout["title"] = "Hello Plugin | Bludit"; 28 | } 29 | 30 | public function adminView() 31 | { 32 | return 'Hello world!'; 33 | } 34 | 35 | public function adminSidebar() 36 | { 37 | $pluginName = Text::lowercase(__CLASS__); 38 | $url = HTML_PATH_ADMIN_ROOT.'plugin/'.$pluginName; 39 | $html = '<a id="current-version" class="nav-link" href="'.$url.'">Hello world</a>'; 40 | return $html; 41 | } 42 | } 43 | ?> 44 | ``` 45 | 46 | ## Пример: изменение настрое с помощью формы 47 | Следующий плагин имеет возможность изменять настройки Bludit. Визуально отображается форма, а контроллер управляется методом `POST`. 48 | 49 | После активации плагина, перейдем по адресу `https://www.example.com/admin/plugin/settings` 50 | 51 | ```php 52 | <?php 53 | 54 | class CustomAdmin extends Plugin { 55 | 56 | public function adminController() 57 | { 58 | // Check if the form was sent 59 | if ($_SERVER['REQUEST_METHOD'] == 'POST') { 60 | global $site; 61 | $site->set(array('title'=>$_POST['title'])); 62 | } 63 | } 64 | 65 | public function adminView() 66 | { 67 | // Token for send forms in Bludit 68 | global $security; 69 | $tokenCSRF = $security->getTokenCSRF(); 70 | 71 | // Current site title 72 | global $site; 73 | $title = $site->title(); 74 | 75 | // HTML code for the form 76 | $html = ' 77 | <h2>Settings</h2> 78 | <form method="post"> 79 | <input type="hidden" id="jstokenCSRF" name="tokenCSRF" value="'.$tokenCSRF.'"> 80 | <div class="form-group"> 81 | <label for="title">Site title</label> 82 | <input type="text" class="form-control" id="title" name="title" value="'.$title.'"> 83 | </div> 84 | <button type="submit" class="btn btn-primary">Submit</button> 85 | </form> 86 | '; 87 | return $html; 88 | } 89 | 90 | public function adminSidebar() 91 | { 92 | $pluginName = Text::lowercase(__CLASS__); 93 | $url = HTML_PATH_ADMIN_ROOT.'plugin/'.$pluginName; 94 | $html = '<a id="current-version" class="nav-link" href="'.$url.'">Custom Admin Form</a>'; 95 | return $html; 96 | } 97 | } 98 | ``` 99 | 100 | Вы можете скачать исходный код плагина: 101 | - https://github.com/bludit/examples/tree/master/plugins/custom-controller-view-admin-panel -------------------------------------------------------------------------------- /pages/Содержимое сайта/custom-fields/index.md: -------------------------------------------------------------------------------- 1 | # Пользовательские поля 2 | <!-- position: 7 --> 3 | 4 | ## Вступление 5 | Настраиваемые поля позволяют пользователю добавлять поля в базу данных страницы. Настраиваемые поля появляются в интерфейсе панели администратора при создании или редактировании страниц. 6 | 7 | ## Простой пример 8 | Добавим поле **Подзаголовок** 9 | ``` 10 | Админ Панель > Боковая панель > Настройки > Основные > Настраиваемые поля 11 | ``` 12 | 13 | Добавим JSON код и нажмем кнопку "Сохранить". 14 | ``` 15 | { 16 | "subtitle": { 17 | "type": "string", 18 | "placeholder": "Подзаголовок страницы", 19 | "position": "bottom" 20 | } 21 | } 22 | ``` 23 | 24 | Теперь давайте создадим страницу: 25 | ``` 26 | Админ Панель > Управление > Новая запись 27 | ``` 28 | 29 | Как вы можете видеть, в нижней части редактора появилось новое поле, запрашивающее "подзаголовок для страницы". Заполните поля "заголовок", "содержание" и новое поле "субтитры для страницы"и нажмите на кнопку "Сохранить". 30 | 31 | Теперь на любой странице есть переменная, которая хранит текст с поля "подзаголовок". Но обычные пользователи его не будут видеть, т.к. следует добавить эту переменную в настройки темы, чтобы она отображалась. 32 | <div class="note"> 33 | <div class="title">Примечание</div> 34 | Любая тема строится по шаблону, в любой теме есть папка **PHP** в ней находятся эти шаблоны. Если мы хотим вывести "подзаголовок" на странице материала, то выберем файл **page.php** и добавим текст в место где хотим видеть "подзаголовок". 35 | </div> 36 | ``` 37 | <?php 38 | echo "The title of the page is " . $page->title(); 39 | echo "The subtitle of the page is " . $page->custom('subtitle'); 40 | ?> 41 | ``` 42 | 43 | ## Структура поля в JSON. 44 | Поле создается в формате JSON со следующими ключами 45 | - (required) `type`: Тип поля (`string`, `bool`). 46 | - (optional) `label`: Метка поля. 47 | - (optional) `tip`: Описание поля. 48 | - (optional) `default`: Первоначальное значение поля. 49 | - (optional) `placeholder`: Текст внутри поля. 50 | - (optional) `position`: Расположение поля в редакторе, например (`top`, `bottom`). 51 | 52 | ## Добавление пользовательского поля 53 | Чтобы добавить пользовательское поле, перейдите: 54 | ``` 55 | Админ Панель > Боковая панель > Настройки > Основные > Настраиваемые поля 56 | ``` 57 | 58 | Чтобы создать поле, мы должны определить его в системе через JSON стурктуру. Пример: 59 | 60 | Пользовательское поле `string` с именем `youtube`: 61 | ``` 62 | { 63 | "youtube": { 64 | "type": "string", 65 | "label": "YouTube", 66 | "tip": "Write the YouTube URL." 67 | } 68 | } 69 | ``` 70 | 71 | Пользовательское поле `boolean` с именем `inStock`: 72 | ``` 73 | { 74 | "inStock": { 75 | "type": "bool", 76 | "label": "In Stock", 77 | "tip": "Select this field if you have stock." 78 | } 79 | } 80 | ``` 81 | 82 | Два пользовательских поля с разными типа 83 | ``` 84 | { 85 | "product": { 86 | "type": "string", 87 | "label": "Product", 88 | "tip": "Write the product name." 89 | }, 90 | "inStock": { 91 | "type": "bool", 92 | "label": "In Stock", 93 | "tip": "Select this field if you have stock." 94 | } 95 | } 96 | ``` 97 | 98 | Три пользовательских поля с разными типами и разным положением в редакторе. 99 | ``` 100 | { 101 | "product": { 102 | "type": "string", 103 | "placeholder": "Product name", 104 | "position": "top" 105 | }, 106 | "inStock": { 107 | "type": "bool", 108 | "tip": "Select this field if you have stock.", 109 | "position": "top" 110 | }, 111 | "imageURL": { 112 | "type": "string", 113 | "placeholder": "Image URL", 114 | "position": "bottom" 115 | } 116 | } 117 | ``` 118 | 119 | ## Вызов пользовательского поля 120 | Существует класс, который возвращает значения вызываемых полей - `custom()`. 121 | 122 | В следующем примере выводится значение поля `youtube` из приведенного ниже примера. 123 | ``` 124 | <?php 125 | echo $page->custom('youtube'); 126 | ?> 127 | ``` 128 | 129 | Проверка boolean значения в поле `inStock` из приведенного ниже примера. 130 | ``` 131 | <?php 132 | if ($page->custom('inStock')) { 133 | echo "There is stock!"; 134 | } else { 135 | echo "No more products"; 136 | } 137 | ?> 138 | ``` 139 | 140 | ## Удаление пользовательских полей 141 | Чтобы удалить пользовательское поле, вам достаточно убрать его JSON структуру в: 142 | ``` 143 | Админ Панель > Боковая панель > Настройки > Основные > Настраиваемые поля 144 | ``` 145 | Однако, это не удалит полностью поле из базы данных Bludit на вашем сайте, а лишь сделает его неактивным. 146 | ``` 147 | {} 148 | ``` -------------------------------------------------------------------------------- /pages/Темы/example-my-second-theme/index.md: -------------------------------------------------------------------------------- 1 | # Пример: Моя вторая тема 2 | <!-- position: 101 --> 3 | 4 | Сейчас мы создадим тему с поддержкой файлов CSS, JavaScript и плагинов. 5 | 6 | Назовем нашу тему, например - `Mars`. 7 | 8 | Если вы не желаете создавать все постепенно, то вы можете скачать исходные файлы темы <a href="https://github.com/bludit/examples/tree/master/themes/mars">Mars theme</a>. 9 | 10 | <h2 id="folder-structure">Структура папок</h2> 11 | Создадим папку с названием темы в папке `/bl-themes/`; Путь к ней должен выглядеть так: `/bl-themes/mars/`. 12 | 13 | Далее, создадим папки - `languages`, `css`, `js`. 14 | - Создайте папку `languages` внутри папки `/bl-themes/mars/` 15 | - Создайте папку `css` внутри папки `/bl-themes/mars/` 16 | - Создайте папку `js` внутри папки `/bl-themes/mars/` 17 | 18 | ``` 19 | /bl-themes/mars/ 20 | css/ 21 | js/ 22 | language/ 23 | ``` 24 | 25 | <h2 id="name-and-information">Название и информация о теме</h2> 26 | Создадим файл с информацией о теме. Создадим файл `metadata.json` в корневой папке темы с содержимым: 27 | 28 | ``` 29 | { 30 | "author": "Bludit", 31 | "email": "", 32 | "website": "", 33 | "version": "1.0", 34 | "releaseDate": "2019-01-01", 35 | "license": "MIT", 36 | "compatible": "3.0", 37 | "notes": "" 38 | } 39 | ``` 40 | 41 | Создадим файл `en.json`, который будет содержать название и описание темы. Создадим его в папке `/bl-themes/mars/languages/` с содержимым: 42 | 43 | ``` 44 | { 45 | "theme-data": 46 | { 47 | "name": "Mars", 48 | "description": "This is my second theme for Bludit." 49 | } 50 | } 51 | ``` 52 | <h2 id="index">Index.php</h2> 53 | Давайте поработаем над файлом `index.php`; Создайте такой файл в папке `/bl-themes/mars/` с содержимым: 54 | 55 | ``` 56 | <!DOCTYPE html> 57 | <html> 58 | <head> 59 | <meta charset="UTF-8"> 60 | </head> 61 | <body> 62 | 63 | </body> 64 | </html> 65 | ``` 66 | 67 | <h2 id="css-files">CSS файл</h2> 68 | Подключим CSS файл к теме: 69 | - Используя метод `Theme::css()` 70 | - Или используя html tag `<link href="..." rel="stylesheet" type="text/css" />` 71 | 72 | ``` 73 | <!DOCTYPE html> 74 | <html> 75 | <head> 76 | <meta charset="UTF-8"> 77 | 78 | <!-- CSS --> 79 | <?php echo Theme::css('css/style.css') ?> 80 | </head> 81 | <body> 82 | 83 | </body> 84 | </html> 85 | ``` 86 | 87 | <h2 id="javascript-files">Javascript файл</h2> 88 | Подключим JavaScript файл: 89 | - Используя метод `Theme::js()` 90 | - Или используя html tag `<script>...</script>` 91 | 92 | ``` 93 | <!DOCTYPE html> 94 | <html> 95 | <head> 96 | <meta charset="UTF-8"> 97 | 98 | <!-- CSS --> 99 | <?php echo Theme::css('css/style.css') ?> 100 | 101 | <!-- Javascript --> 102 | <?php echo Theme::js('js/mars.js') ?> 103 | </head> 104 | <body> 105 | 106 | </body> 107 | </html> 108 | ``` 109 | 110 | <h2 id="plugin-support">Добавим поддержку плагинов</h2> 111 | Чтобы добавить поддержку плагинов мы будем использовать метод `Theme::plugins()`. 112 | 113 | Hook'и плагинов для сайта таковы: 114 | - `siteHead` взаимодействует с тегами `<head>...</head>` . 115 | - `siteBodyBegin` взаимодйствует с тегами `<body>...</body>`; Вы можете использовать его для приветственного баннера или какой-нибудь панели инструментов в верхней части страницы.. 116 | - `siteBodyEnd` взаимодйствует с тегами `<body>...</body>`; Вы можете использовать для вывода, например, JavaScript кода. 117 | 118 | ``` 119 | <!DOCTYPE html> 120 | <html> 121 | <head> 122 | <meta charset="UTF-8"> 123 | 124 | <!-- CSS --> 125 | <?php echo Theme::css('css/style.css') ?> 126 | 127 | <!-- Javascript --> 128 | <?php echo Theme::js('js/mars.js') ?> 129 | 130 | <!-- Load plugins with the hook siteHead --> 131 | <?php Theme::plugins('siteHead') ?> 132 | </head> 133 | <body> 134 | <!-- Load plugins with the hook siteBodyBegin --> 135 | <?php Theme::plugins('siteBodyBegin') ?> 136 | 137 | <!-- Here all the rest of HTML code --> 138 | 139 | <!-- Load plugins with the hook siteBodyBegin --> 140 | <?php Theme::plugins('siteBodyEnd') ?> 141 | </body> 142 | </html> 143 | ``` 144 | 145 | <h2 id="site-logo-title-and-slogan">Лого заголовок и слоган сайта</h2> 146 | Вы можете вызвать настройки для лого, заголовка, слогана из настроек Bludit. 147 | ``` 148 | <!DOCTYPE html> 149 | <html> 150 | <head> 151 | <meta charset="UTF-8"> 152 | 153 | <!-- CSS --> 154 | <?php echo Theme::css('css/style.css') ?> 155 | 156 | <!-- Javascript --> 157 | <?php echo Theme::js('js/mars.js') ?> 158 | 159 | <!-- Load plugins with the hook siteHead --> 160 | <?php Theme::plugins('siteHead') ?> 161 | </head> 162 | <body> 163 | <!-- Load plugins with the hook siteBodyBegin --> 164 | <?php Theme::plugins('siteBodyBegin') ?> 165 | 166 | <img src="<?php echo $site->logo() ?>" alt="" width="128"> 167 | <h1><?php echo $site->title() ?></h1> 168 | <h2><?php echo $site->slogan() ?></h2> 169 | 170 | <!-- Load plugins with the hook siteBodyBegin --> 171 | <?php Theme::plugins('siteBodyEnd') ?> 172 | </body> 173 | </html> 174 | ``` 175 | 176 | <h2 id="where-am-i">Где я?</h2> 177 | Давайте поработаем над содержимым сайта. 178 | 179 | Чтобы определить, где сейчас находится пользователь, можно вызвать переменную `$WHERE_AM_I`.Например, если пользователь просматривает начальную страницу, то переменная выдаст `home`. Если пользователь просматривает обычную страницу, то переменная выдаст `page`. 180 | 181 | ``` 182 | <!DOCTYPE html> 183 | <html> 184 | <head> 185 | <meta charset="UTF-8"> 186 | 187 | <!-- CSS --> 188 | <?php echo Theme::css('css/style.css') ?> 189 | 190 | <!-- Javascript --> 191 | <?php echo Theme::js('js/mars.js') ?> 192 | 193 | <!-- Load plugins with the hook siteHead --> 194 | <?php Theme::plugins('siteHead') ?> 195 | </head> 196 | <body> 197 | <!-- Load plugins with the hook siteBodyBegin --> 198 | <?php Theme::plugins('siteBodyBegin') ?> 199 | 200 | <h1><?php echo $site->title() ?></h1> 201 | <h2><?php echo $site->slogan() ?></h2> 202 | 203 | <?php if ($WHERE_AM_I=='page'): ?> 204 | <p>The user is watching a particular page</p> 205 | <?php elseif ($WHERE_AM_I=='home'): ?> 206 | <p>The user is watching the homepage</p> 207 | <?php endif ?> 208 | 209 | <!-- Load plugins with the hook siteBodyBegin --> 210 | <?php Theme::plugins('siteBodyEnd') ?> 211 | </body> 212 | </html> 213 | ``` 214 | 215 | <h2 id="main-content">Основное содержимое</h2> 216 | Если пользователь находится на главной странице, Bludit генерирует глобальный массив `$pages` в котором находятся все опубликованные страницы. Каждая страница, это объект главной страницы. 217 | 218 | ``` 219 | <!DOCTYPE html> 220 | <html> 221 | <head> 222 | <meta charset="UTF-8"> 223 | 224 | <!-- CSS --> 225 | <?php echo Theme::css('css/style.css') ?> 226 | 227 | <!-- Javascript --> 228 | <?php echo Theme::js('js/mars.js') ?> 229 | 230 | <!-- Load plugins with the hook siteHead --> 231 | <?php Theme::plugins('siteHead') ?> 232 | </head> 233 | <body> 234 | <!-- Load plugins with the hook siteBodyBegin --> 235 | <?php Theme::plugins('siteBodyBegin') ?> 236 | 237 | <h1><?php echo $site->title() ?></h1> 238 | <h2><?php echo $site->slogan() ?></h2> 239 | 240 | <?php if ($WHERE_AM_I=='page'): ?> 241 | <p>The user is watching a particular page</p> 242 | <?php elseif ($WHERE_AM_I=='home'): ?> 243 | <?php foreach ($content as $page): ?> 244 | <h3><?php echo $page->title(); ?></h3> 245 | <?php endforeach ?> 246 | <?php endif ?> 247 | 248 | <!-- Load plugins with the hook siteBodyBegin --> 249 | <?php Theme::plugins('siteBodyEnd') ?> 250 | </body> 251 | </html> 252 | ``` 253 | В этом примере мы собираемся напечатать заголовок и содержимое. 254 | 255 | ``` 256 | <!DOCTYPE html> 257 | <html> 258 | <head> 259 | <meta charset="UTF-8"> 260 | 261 | <!-- CSS --> 262 | <?php echo Theme::css('css/style.css') ?> 263 | 264 | <!-- Javascript --> 265 | <?php echo Theme::js('js/mars.js') ?> 266 | 267 | <!-- Load plugins with the hook siteHead --> 268 | <?php Theme::plugins('siteHead') ?> 269 | </head> 270 | <body> 271 | <!-- Load plugins with the hook siteBodyBegin --> 272 | <?php Theme::plugins('siteBodyBegin') ?> 273 | 274 | <h1><?php echo $site->title() ?></h1> 275 | <h2><?php echo $site->slogan() ?></h2> 276 | 277 | <?php if ($WHERE_AM_I=='page'): ?> 278 | <h3><?php echo $page->title(); ?></h3> 279 | <?php elseif ($WHERE_AM_I=='home'): ?> 280 | <?php foreach ($pages as $page): ?> 281 | <h3><?php echo $page->title(); ?></h3> 282 | <?php endforeach ?> 283 | <?php endif ?> 284 | 285 | <!-- Load plugins with the hook siteBodyBegin --> 286 | <?php Theme::plugins('siteBodyEnd') ?> 287 | </body> 288 | </html> 289 | ``` 290 | 291 | <div class="note"> 292 | <div class="title">Скачать</div> 293 | Скачать искодный код темы <a href="https://github.com/bludit/examples/tree/master/themes/mars">Mars theme</a>. 294 | </div> --------------------------------------------------------------------------------