imagina / ibanners-module
Requires
- php: >=7.0.0
- composer/installers: ~1.0
- idavoll/core-module: ~3.0
Requires (Dev)
- orchestra/testbench: ~3.2
- phpunit/phpunit: ~4.0
README
特别感谢
Nicolas Widart 为 AsgardCMS 及其菜单模块所作的贡献,该模块被用作横幅广告模块的基础。
安装
您可以使用 composer 安装横幅广告模块:composer require imagina/ibanners-module
模块安装后,您需要在 AsgardCMS 中(使用角色/权限)为自己设置访问权限。新的横幅广告项将出现在侧边栏中
用法
先决条件
默认情况下,Ibanners 模块使用 Bootstrap Carousel https://bootstrap.ac.cn/javascript/#carousel 创建,因此请确保您已加载所有标准 Bootstrap Carousel 的先决条件(Bootstrap Carousel CSS 和 JS)
基本用法
您可以使用 AsgardCMS 管理界面创建基本的横幅广告 - 您可以创建并命名您的滑块(请注意这里的 系统名称 字段,它将用于后续渲染),并创建单个幻灯片。幻灯片可以链接到媒体模块中的图像,或指向外部图像的 URL。它们还可以包含指向网站上的任何页面的超链接、固定 URI 或 URL。
创建滑块后,您可以使用 {!! BannerAds::render('slider_system_name') !}}
在模板中渲染它
高级用法
使用您自己的滑块模板
如果您想更改滑块的渲染方式,使用自定义 HTML、CSS 类等,您可以将 Blade 模板名称作为 render()
方法的第二个参数传递,例如 !! BannerAds::render('position_system_name', 'position/my-own-banner') !!}
模板可能看起来像这样
{-- Themes/MyTheme/views/banners/my-own-banner.blade.php --} <div id="{{ $position->system_name }}" class="my-own-slider-class"> @foreach($position->sbanner as $index => $banner) <div class="banner"> <a href="{{ $banner->getLinkUrl() }}"> <img src="{{ $banner->getImageUrl() }}" /> </a> </div> @endforeach </div>
您将在 $position
变量中拥有 Modules\Ibanners\Entities\Position
实例
提供您自己的位置实例
您也可以将 Modules\BannerAds\Entities\Position
实例作为第一个参数传递,而不是滑块的 system_name
,以渲染动态创建的滑块。
首先,在控制器中创建滑块实例并添加幻灯片,然后将它传递给视图
<?php ... // import classes needed to create your own instance use Modules\Ibanners\Entities\Position; use Modules\Ibanners\Entities\Banner; class HomepageController { ... /** * controller method */ public function displayHomepage() { // make a new Slider instance $bannerAds = new Position; $bannerAds->system_name = 'custom_slider'; // create slide 1 $banner = new Slide; $banner->title = 'First Slide'; $banner->caption = 'First banner text'; $banner->external_image_url = 'https://placeholdit.imgix.net/~text?txtsize=33&txt=Slide1&w=800&h=300'; // create banner 2 $banner2 = new Slide; $banner2->title = 'Second Slide'; $banner2->caption = 'Second banner text'; $banner2->external_image_url = 'https://placeholdit.imgix.net/~text?txtsize=33&txt=Slide2&w=800&h=300'; // add banners to bannerr $bannerAds->banners->add($banner); $bannerAds->banners->add($banner2); // render view return View::make('homepage') ->with('mySlider', $bannerAds); }
然后,在 homepage.blade.php
模板内部,您可以使用 !! BannderAds::render($myBannerAds) !!}
来渲染横幅