PHPackages                             lowbase/yii2-document - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [PDF &amp; Document Generation](/categories/documents)
4. /
5. lowbase/yii2-document

ActiveYii2-extension[PDF &amp; Document Generation](/categories/documents)

lowbase/yii2-document
=====================

Yii2 document module

1.0.0(10y ago)52.4k12BSD-3-ClausePHP

Since May 8Pushed 10y ago2 watchersCompare

[ Source](https://github.com/lowbase/yii2-document)[ Packagist](https://packagist.org/packages/lowbase/yii2-document)[ RSS](/packages/lowbase-yii2-document/feed)WikiDiscussions master Synced 2mo ago

READMEChangelog (1)Dependencies (8)Versions (2)Used By (2)

Модуль документов
=================

[](#модуль-документов)

Yii2-document - независимый модуль из комплекта lowBase с панелью администрирования и полным функционалом возможностей для организации статей, новостей и прочих сущностей контентного содержания.

- Древовидная иерархия документов (категории, разделы являются самими документами)
- WYSIWYG редактор с загрузкой файлов на сервер
- Дополнительные поля документов и мультиполя документов
- Настраиваемые шаблоны отображения
- Ведение статистики посещений
- Лайки докментов
- Удобный Tree-виджет с поддержкой Drag n Drop
- Расширенный поиск по документам и их дополнительным полям

Установка
---------

[](#установка)

```
php composer.phar require --prefer-dist lowbase/yii2-document "*"

```

или

```
"lowbase/yii2-document": "*"

```

Настройка конфигурационного файла
---------------------------------

[](#настройка-конфигурационного-файла)

```
//-------------------------------------------------
// Прописываем правила роутинга для соответствующих
// действий с модулем в приложении.
//-------------------------------------------------

'urlManager' => [
   'enablePrettyUrl' => true,
   'showScriptName' => false,
   'rules' => [
       //Взаимодействия с шаблонами в панели администрирования
       'admin/template/' => 'lowbase-document/template/',
       //Взаимодействия с документами в панели администрирования
       //Правила для документов лучше не менять, т.к. на них завязан js скрипт компонента дерево документов
       'admin/document/' => 'lowbase-document/document/',
        //Взаимодействия с файловым менеджеромч
       'elfinder/' => 'lowbase-document/path/',
       // Лайк документа
       'like/' => 'lowbase-document/document/like',
        //Отображение документов
       '' => 'lowbase-document/document/show',
       //Взаимодействия с дополнительными полями шаблонов
       'admin/field/' => 'lowbase-document/field/',
   ],
],

//-----------------------
// Подключаем сами модули
//-----------------------

'modules' => [
   'gridview' =>  [
       'class' => '\kartik\grid\Module'
   ],
   'lowbase-document' => [
       'class' => '\lowbase\document\Module',
   ],
],

```

Внимание!!!
-----------

[](#внимание)

Рекомендуем не изменять название модуля lowbase-document в конфигурационном файле. А также не изменять роуты на создание, удаление, редактирование, просмотр и перемещение документов. В компоненте JStree (виджет вывода документов в виде дерева) указаны абсолютные пути.

Создание таблиц БД
------------------

[](#создание-таблиц-бд)

Запускаем миграции командой:

```
php yii migrate/up --migrationPath=@vendor/lowbase/yii2-document/migrations

```

Работа с документами
--------------------

[](#работа-с-документами)

Значения дополнительных полей документа хранятся в массиве `$document->fields`

После получения самого документа массив не заполняется:

```
$document = app\models\Document::findOne($id);
print_r($document->fields);     //Array() - массив пуст

```

Для заполнения дополнительных полей документа используйте метод `fillFields()`

```
$document = app\models\Document::findOne($id);
$document->fillFields();
print_r($document->fields);     //Array([1] => ['name' => 'Теги', 'type' => 4, 'param' => '', 'min' => 0, 'max' => 2, 'data' => [[1] => ['value' => 'Тег_1', 'position' => ''], [2] => ...]], [2] => ...)

    /**
     * Значения дополнительных полей
     * Массив должен иметь следующую структуру:
     *
     * [$field_id] => [
     *                  'name' => 'Название дополнительного поля',
     *                  'type' => 'Тип дополнительного поля',
     *                  'param' => 'Параметр дополнительного поля',
     *                  'min' => 'Минимум значений',
     *                  'max' => 'Максимум значений',
     *                  'data' => [ $data_id => [
     *                                            'value' => 'Значение дополнительного поля'
     *                                            'position' => 'Позиция дополнительного поля'
     *                                             ],
     *                                           ...
     *                          ]
     *              ],
     * ...
     *
     * $field_id - ID дополнительного поля из БД, $data_id - ID записи значения дополнительного поля из БД
     * Если необходимо прикрепить новое значение 'data' к документу, то в качестве ключа используем 'new_'.$i, где
     * $i - идентификатор нового значения
     */

```

После сохранения документа

```
$document->save();

```

значения дополнительных полей будут сохранены в соответствующие таблицы.

Можно также получить значения дополнительных полей запросами к соответствующим таблицам (в зависимости от типа поля) БД напрямую

```
// Получение значений дополнительного поля $field_id строкового типа
$data_values = \lowbase\document\models\ValueString::find()->where(['field_id' => $field_id, 'document_id' => $document_id])->all();
// Получение значений дополнительного поля $field_id числового типа
$data_values = \lowbase\document\models\ValueNumeric::find()->where(['field_id' => $field_id, 'document_id' => $document_id])->all();
// Получение значений дополнительного поля $field_id типа Текст
$data_values = \lowbase\document\models\ValueText::find()->where(['field_id' => $field_id, 'document_id' => $document_id])->all();
// Получение значений дополнительного поля $field_id типа Дата
$data_values = \lowbase\document\models\ValueDate::find()->where(['field_id' => $field_id, 'document_id' => $document_id])->all();

```

Запуск виджетов
---------------

[](#запуск-виджетов)

```
use lowbase\document\components\TreeWidget;

// Виджет отображения документов в виде деревва (используется компонент jstree)

```

###  Health Score

32

—

LowBetter than 72% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity21

Limited adoption so far

Community15

Small or concentrated contributor base

Maturity63

Established project with proven stability

 Bus Factor1

Top contributor holds 98.2% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

3658d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/aef1ec98729662d0e7bead842906c95d6a7559b720b582e406a46605522fffe7?d=identicon)[lowbase](/maintainers/lowbase)

---

Top Contributors

[![lowbase](https://avatars.githubusercontent.com/u/15556461?v=4)](https://github.com/lowbase "lowbase (217 commits)")[![Shekhovtsovy](https://avatars.githubusercontent.com/u/11638272?v=4)](https://github.com/Shekhovtsovy "Shekhovtsovy (4 commits)")

---

Tags

yii2extensionmoduledocument

### Embed Badge

![Health badge](/badges/lowbase-yii2-document/health.svg)

```
[![Health](https://phpackages.com/badges/lowbase-yii2-document/health.svg)](https://phpackages.com/packages/lowbase-yii2-document)
```

###  Alternatives

[skeeks/cms

SkeekS CMS — control panel and tools based on php framework Yii2

13825.6k47](/packages/skeeks-cms)[lowbase/yii2-user

Yii2 user module

131.5k2](/packages/lowbase-yii2-user)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
