flyo/nitro-yii2

Flyo Nitro Yii2 框架模块

安装次数: 1,335

依赖项: 0

建议者: 0

安全性: 0

星标: 0

关注者: 1

分支: 0

公开问题: 0

类型:yii2-extension

1.0.0 2024-04-30 06:52 UTC

This package is auto-updated.

Last update: 2024-08-30 07:34:32 UTC


README

PHPUnit

composer require flyo/nitro-yii2

将模块添加到您的配置中

'modules' => [
    'flyo' => [
        'class' => \Flyo\Yii\Module::class,
        'token' => 'YOUR_TOKEN',
    ]
]

/views/nitro.php 文件夹中添加 CMS 页面解析,flyo nitro 的所有路由现在都将解析到这个视图文件

<?php
use Flyo\Yii\Widgets\PageWidget;
/** @var \Flyo\Model\Page $page */
?>
<h1><?= $page->getTitle(); ?>
<?= PageWidget::widget(['page' => $page]); ?>

为了渲染这些块,请使用 Flyo\Yii\Widgets\PageWidget,它将在 /views/flyo/* 文件夹内查找所有块,例如,如果您在 flyo 中定义了一个 HeroTeaser 组件,则视图文件存储在 /views/flyo/HeroTeaser.php 中,并包含示例内容

/** @var \Flyo\Model\Block $block */
print_r($block->getContent());
print_r($block->getConfig());
print_r($block->getItems());
print_r($block->getSlots());

布局

在布局文件中生成导航,使用 NavWidget

<?php $nav = ContainerWidget::begin(['identifier' => 'main']) ?>
    <ul>
        <?php foreach ($nav->getItems() as $item): ?>
            <li><?= Html::a($item->getLabel(), $item->getHref()); ?></li>
        <?php endforeach; ?>
    </ul>
<?php $nav::end(); ?>

具有子块的布局块

一个示例,其中包含子块的块,定义在 content 插槽中

<?php
use Flyo\Yii\Widgets\BlockWidget;
/** @var \Flyo\Model\Block $block */
$config = $block->getConfig();
?>
<div class="container">
    <?php foreach ($block->getSlots()['content']->getContent() as $childBlock): ?>
        <div class="w-full">
            <?= BlockWidget::widget([
                'block' => $childBlock,
            ]); ?>
        </div>
    <?php endforeach; ?>
</div>
<?php SectionWidget::end(); ?>

扩展现有路由

可以扩展现有页面的路由系统。这在构建需要确保您仍然在同一个 CMS 页面(而不是实体详情)的动态子页面时非常有用。为此,请将以下 URL 规则在 URLManager 部分添加

'<path:(the-requested-slug)>/<slug:[a-z\-]+>' => 'flyo/nitro/index',

要链接到扩展路由,由于这是路由中的固定规则,因此无法使用 Url::toRoute,您必须使用

<a href="/the-requested-slug/<?= ...; ?>">Detail</a>

文档

了解 Flyo Nitro 的一般信息更多内容