Блог хеллоуворлдщика

Модуль статичных страниц для Yii2


Разработкой данного расширения послужило его отсутсвтие. :D Интересовался у программистов в Gitter, на что мне отвечали, что данное расширение написать не составляет труда. Да базару ноль, посоны! Только на...зачем мне его писать, когда я хочу готовое, взял и пользуйся?

Данное расширение очень полезно для создания информационных страниц. Всё содержимое хранится в БД. Да по сути ничего плохого в том, чтобы использовать хранение в файлах, но, тому же админу не обязательно знать, что такое "<?php" и как этим пользоваться. Да и вставку картинок через <img> ему тоже как-то не алё. А посему, я сделал такое очень полезное расширение.

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

Вся информация по установке и использования в репозитории расширения.

Отдельное спасибо хочу выразить vova07 за великолепную обертку для Imperavi Redactor.

Страница расширения: https://github.com/bupy7/yii2-pages

share via vkontakte share via facebook share via mailru share via odnoklassniki share via twitter

Комментарии [7]

[Вячеслав] 19 мая 2015 г., 22:25:42

Вот спасибо :) Я тоже гуглил - не нагуглил, пришлось самому писать

Администратор [BUPY7] 20 мая 2015 г., 0:48:14

Пожалуйста =) Расширение нужное, но на удивление его нет нигде.

Еще, забыл добавить в инструкцию, в таблице используется TIMESTAMP в полях даты и времени. Необходимо вытаскивать записи с сбросом часового пояса в БД. Для этого добавьте в конфигурацию \yii\db\Connection событие:

'on afterOpen' => function($event) {
    $event->sender->createCommand("SET time_zone = '+00:00'")->execute();
}
[Юрец] 26 июля 2016 г., 9:22:20

Вася, подскажи пожалйста, что не так делаю. При запуске миграции таблица вместо имени {{%page}} создается с пустым именем, вылазит ошибка. Если в сценарии миграции прописать

public function init()
    {
        parent::init();
       // $this->_tableName = Yii::$app->getModule('pages')->tableName;
       $this->_tableName = {{%page}} ;
    }

Таблица замечательно создается. Все предварительные действия проделал

Installation

 add

"bupy7/yii2-pages": "*"

to the require section of your composer.json file.
Installation

Add module to your config file:

'modules' => [
    ...

    'pages' => [
        'class' => 'bupy7\pages\Module',
    ],
]

В папке vendor папки bupy7, vova* появились

Администратор [BUPY7] 26 июля 2016 г., 12:05:58

Хм...Если честно, то не знаю в чем проблема. Можешь прислать сюда часть файла конфигурации, где модулю подключаешь и написать какая версия Yii2?

[Юрец] 26 июля 2016 г., 12:38:54

yii v.2.0.9 конфиг файл /config/web.php

<?php
...
$config = [
    ...
    'modules' => [
        'pages' => [
            'class' => 'bupy7\pages\Module',
            ],
    ],
];
...

После запуска миграции

Ogurezz@ACER c:\OpenServer\domains\sitedev
> yii migrate/up --migrationPath=@bupy7/pages/migrations
Yii Migration Tool (based on Yii v2.0.9)

Total 1 new migration to be applied:
        m150429_155009_create_page_table

Apply the above migration? (yes|no) [no]:y
*** applying m150429_155009_create_page_table
    > create table  ...Exception 'yii\db\Exception' with message 'SQLSTATE[42000]: Syntax error or access violation: 1103 Incorrect table name ''
The SQL being executed was: CREATE TABLE `` (
        `id` int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
        `title` varchar(255) NOT NULL,
        `alias` varchar(255) NOT NULL,
        `published` tinyint(1) DEFAULT 1,
        `content` text,
        `title_browser` varchar(255),
        `meta_keywords` varchar(200),
        `meta_description` varchar(160),
        `created_at` timestamp NOT NULL DEFAULT "0000-00-00 00:00:00",
        `updated_at` timestamp NOT NULL DEFAULT "0000-00-00 00:00:00"
)'

in C:\OpenServer\domains\sitedev\vendor\yiisoft\yii2\db\Schema.php:633

Error Info:
Array
(
    [0] => 42000
    [1] => 1103
    [2] => Incorrect table name ''
)

Stack trace:
#0 C:\OpenServer\domains\sitedev\vendor\yiisoft\yii2\db\Command.php(854): yii\db\Schema->convertException(Object(PDOException), 'CREATE TABLE ``...')
#1 C:\OpenServer\domains\sitedev\vendor\yiisoft\yii2\db\Migration.php(260): yii\db\Command->execute()
#2 C:\OpenServer\domains\sitedev\vendor\bupy7\yii2-pages\migrations\m150429_155009_create_page_table.php(37): yii\db\Migration->createTable(NULL, Array)
#3 C:\OpenServer\domains\sitedev\vendor\yiisoft\yii2\console\controllers\BaseMigrateController.php(509): m150429_155009_create_page_table->up()
#4 C:\OpenServer\domains\sitedev\vendor\yiisoft\yii2\console\controllers\BaseMigrateController.php(130): yii\console\controllers\BaseMigrateController->migrateUp('m150429_155009_...')
#5 [internal function]: yii\console\controllers\BaseMigrateController->actionUp(0)
#6 C:\OpenServer\domains\sitedev\vendor\yiisoft\yii2\base\InlineAction.php(55): call_user_func_array(Array, Array)
#7 C:\OpenServer\domains\sitedev\vendor\yiisoft\yii2\base\Controller.php(154): yii\base\InlineAction->runWithParams(Array)
#8 C:\OpenServer\domains\sitedev\vendor\yiisoft\yii2\console\Controller.php(119): yii\base\Controller->runAction('up', Array)
#9 C:\OpenServer\domains\sitedev\vendor\yiisoft\yii2\base\Module.php(454): yii\console\Controller->runAction('up', Array)
#10 C:\OpenServer\domains\sitedev\vendor\yiisoft\yii2\console\Application.php(180): yii\base\Module->runAction('migrate/up', Array)
#11 C:\OpenServer\domains\sitedev\vendor\yiisoft\yii2\console\Application.php(147): yii\console\Application->runAction('migrate/up', Array)
#12 C:\OpenServer\domains\sitedev\vendor\yiisoft\yii2\base\Application.php(375): yii\console\Application->handleRequest(Object(yii\console\Request))
#13 C:\OpenServer\domains\sitedev\yii(20): yii\base\Application->run()
#14 {main}

Администратор [BUPY7] 26 июля 2016 г., 16:48:32

У вас advanced шаблон? Модуль надо пихать в общий конфиг для web и console.

[Юрец] 27 июля 2016 г., 9:03:16

Шаблон basic. Но ход мыслей уловил, впихнул модуль еще и в файл /config/console.php. Работает. Спасибо.