floor12/yii2-module-banner

高级yii2模块,用于管理网站上的横幅和弹出广告。

1.8.1 2024-02-01 10:10 UTC

README

Latest Stable Version Latest Unstable Version Total Downloads License

网站横幅和弹出广告放置及管理模块。

目前支持以下实体

  • 广告位(网站上的横幅放置位置),
  • 弹出广告位
  • 直接横幅
  • 弹出横幅。

安装

将模块添加到项目中

要添加模块,请执行以下命令

$ composer require floor12/yii2-module-banner

或者将以下行添加到您的 composer.json 文件中的 "required" 部分

"floor12/yii2-module-banner": "dev-master"

注意,为了使模块工作,需要支持WEBP格式的PHP-GD库,该格式具有一些优点,并被模块用于显示支持该格式的浏览器上的横幅。有关更多信息,请参阅 PHP-GD,并确保其支持WEBP格式。

执行迁移

由于该模块使用 floor12/yii2-module-files 模块来处理文件,因此需要同时应用两个模块的迁移。建议使用额外的组件,例如 fishvision/yii2-migrate来自动应用迁移。

执行迁移

$ ./yii migrate --migrationPath=@vendor/floor12/yii2-module-banner/src/migrations
$ ./yii migrate --migrationPath=@vendor/floor12/yii2-module-files/src/migrations

注册和配置模块

为了继续工作,需要在应用程序的配置中注册该模块及其依赖模块,在 modules 部分中。在最小配置中,模块注册如下所示

'modules' => [
    'modules' => [
        'banner' => [
            'class' => 'floor12\banner\Module',
        ],
        'files' => [
            'class' => 'floor12\files\Module',
        ],
    ],
    ]
    ...

在此示例中,floor12\banner\Module 还有一些用于配置的额外参数

  1. administratorRole - 具有管理权限的用户角色,默认包含 @,为所有授权用户提供权限;
  2. adminLayout - 管理控制器布局的别名,默认为 @app/views/layouts/main
  3. adaptiveBreakpoint - 在像素宽度上切换横幅在移动和桌面版本之间的切换,默认为 700
  4. bannersWebPath - 用于从浏览器访问HTML横幅的路径别名,默认为 @web/banners
  5. bannersWebRootPath - 用于HTML横幅的文件系统根目录路径别名,默认为 @webroot/banners

后两个参数仅在使用Rich HTML横幅时需要,这些横幅以zip存档的形式加载。

工作所需的模块 floor12/yii2-module-files 有一系列参数,在它的文档中进行了描述 在此

使用方法

要将横幅嵌入到视图文件中,调用 BannerWidget 视图,它将预先创建的广告位放置在指定位置。横幅需要传递 place_id - 这是放置广告位的ID。

<?= floor12\banner\widgets\BannerWidget::widget(['place_id' => 1]) ?>

如果找不到广告位,或者其中没有相关的广告,则视图不会显示任何内容。

如果同一个广告位添加了多个活动横幅,则存在两种行为模式。默认情况下,横幅将在页面重新加载时随机切换。但是,如果选择广告位的“幻灯片”选项,则该广告位的所有活动横幅将滚动,形成幻灯片。在横幅设置中存在一个属性,称为“权重”。如果广告位启用了幻灯片模式,则该属性决定了横幅在幻灯片中的显示顺序。

为了显示弹出式横幅,需要在主布局中输出 PopupWidget,并将 pop-up 横幅的 ID(即 place_id)传递给它

<?php
    $this->beginBody();
    echo PopupWidget::widget(['place_id' => 1]);
?>

管理员

默认情况下,管理员控制器可通过以下地址访问

http://your-domain.com/banner/admin