masterflash-ru / stream
不同的流,例如新闻流
1.1.13
2020-02-09 07:32 UTC
Requires
- php: ^7.2
- laminas/laminas-cache: ^2.7
- laminas/laminas-paginator: ^2.7
- masterflash-ru/ado: ^2.2
- masterflash-ru/imglib: *
- masterflash-ru/navigation: *
- masterflash-ru/seolist: *
- masterflash-ru/storage: ^1.0
README
文章、新闻等流的工作模块。安装后,请从data文件夹中导入数据库备份,并将public文件夹中的css样式复制到应用样式文件中。如需删除模块,请导入deinstall.sql,它会删除数据库中的所有内容。
安装 composer require masterflash-ru/stream
在应用配置中添加
//определение вначале файла, для указания в маршруте use Mf\Stream\Controller\IndexController as Stream; .... 'streams'=>[ "config"=>[ /*если имена базы и кеша отличны от значения по умолчанию:*/ "database" => "DefaultSystemDb", /*Имя базы данных с которой работаем*/ "cache" => "DefaultSystemCache", /*имя кеша с которым работаем*/ ], "categories"=>[ 'news'=>[ /*раздел ленты*/ 'description'=>'Новости', /*ОБЯЗАТЕЛЬНО Имя ленты*/ 'pagination'=> [ /*параметры вывода страниц, здесь указаны параметры по умолчанию*/ 'paginationControl'=> [ 'tpl'=>'simba', /*шаблон вывода номеров страниц, по умолчанию внутренний, можно bootstrap4, см. пакет masterflash-ru/navigation*/ 'ScrollingStyle'=> 'Sliding', /*стиль прокрутки номеров, допускается All, Elastic, Jumping, Sliding - по умолчанию*/ ], 'ItemCountPerPage' => 10, /*кол-во элементов при просмотре анонсов*/ 'PageRange' => 10 /*кол-во ссылок для перехода на другие страницы списка*/ ], 'tpl' => [ /*НЕ обязательно, указаны параметры по умолчанию*/ 'index' => 'stream/index/index', /*шаблон вывода списка статей*/ 'detal' => 'stream/index/detal', /*шаблон вывода подробностей статьи*/ ], 'layout' => null, /*имя макета в котором выводится, по умолчанию текущий*/ ], ], ],
由于使用 masterflash-ru/storage 存储图像,因此需要在应用配置中添加类似以下片段
/*хранилище и обработка (ресайз) фото и других файлов*/ "storage"=>[ 'data_folder'=>"data/datastorage", 'file_storage'=>[ 'default'=>[ 'base_url'=>"media/pics/", ], ], 'items'=>[ /*хранилище для ленты новостей, ключ это имя секции, которая используется для работы он же является именем раздела, под которым записываются и считываются файлы*/ "news"=>[ "description"=>"Хранение фото новостей", 'file_storage'=>'default', 'file_rules'=>[ 'admin_img'=>[ 'filters'=>[ CopyToStorage::class => [ 'folder_level'=>0, 'folder_name_size'=>3, 'strategy_new_name'=>'md5' ], ImgResize::class=>[ "method"=>2, "width"=>250, "height"=>150, 'adapter'=>Gd::class, ], ], 'validators' => [ IsImage::class=>[], ImageSize::class => [ 'minWidth' => 222, 'minHeight' => 166, ], ], ], 'anons'=>[ 'filters'=>[ CopyToStorage::class => [ 'folder_level'=>0, 'folder_name_size'=>3, 'strategy_new_name'=>'md5' ], ImgResize::class=>[ "method"=>1, "width"=>222, "height"=>166, 'adapter'=>'gd', ], ], ], ], ],//news ], ],
在应用配置中添加路由
//маршрут для подробности 'stream_detal_ru_RU' => [ 'type' => Segment::class, 'options' => [ 'route' => '/:stream/:url', 'constraints' => [ 'url' => '[a-zA-Z0-9_\-]+', 'stream' => 'news|articles', ], 'defaults' => [ 'controller' => Stream::class, 'action' => 'detal', 'locale'=>'ru_RU' ], ], ], //список новостей 'stream_ru_RU' => [ 'type' => Segment::class, 'options' => [ 'route' => '/:stream[/page/:page]', 'constraints' => [ 'stream' => 'news|articles', 'page' => '\d+', ], 'defaults' => [ 'controller' => Stream::class, 'action' => 'index', 'page'=>0, /*<= обязательно 0 !!!!*/ 'locale'=>'ru_RU' ], ], ],
模块提供输出最新文章的帮助程序,使用
/*сценарий view Опции в помощник (массив): [ "locale"=>"ru_RU", //имя локали "items"=>3, //кол-во элементов в выводе последних статей "tpl"=>"lastdefault", //сценарий генерации HTML ] */ echo $this->laststream('имя_ленты',[опции]);
应用配置中应包含名为 'DefaultSystemCache' 的缓存设置
'caches' => [ 'DefaultSystemCache' => [ 'adapter' => [ 'name' => Filesystem::class, 'options' => [ 'cache_dir' => './data/cache', 'ttl' => 60*60*2 ], ], 'plugins' => [ [ 'name' => Serializer::class, 'options' => [ ], ], ], ], ],
在应用配置中应声明 DefaultSystemDb 以与数据库交互
...... "databases"=>[ //соединение с базой + имя драйвера 'DefaultSystemDb' => [ 'driver'=>'MysqlPdo', //"unix_socket"=>"/tmp/mysql.sock", "host"=>"localhost", 'login'=>"root", "password"=>"**********", "database"=>"simba4", "locale"=>"ru_RU", "character"=>"utf8" ], ], .....