superbig/craft3-collections

此包已被弃用且不再维护。作者建议使用 craftcms/cms 包。

在Craft中使用Laravel Collections

安装次数: 29,093

依赖: 0

建议者: 0

安全: 0

星标: 23

关注者: 2

分叉: 3

公开问题: 0

类型:craft插件

3.0.0 2022-05-10 07:51 UTC

This package is auto-updated.

Last update: 2022-07-14 19:24:33 UTC


README

注意:此插件已被弃用,因为Craft 4已包含Collections支持。

Craft CMS 3.x版本的Collections插件

在Craft中使用Laravel Collections

Screenshot

要求

此插件需要Craft CMS 3.0.0-beta.23或更高版本。

安装

要安装此插件,请按照以下说明操作。

  1. 打开您的终端并转到您的Craft项目目录

     cd /path/to/project
    
  2. 然后告诉Composer加载插件

     composer require superbig/craft3-collections
    
  3. 在控制面板中,转到设置 → 插件,并点击Collections的“安装”按钮。

Collections概览

这里有一些关于如何使用Collections的好灵感

配置Collections

将您的宏添加到配置文件中

<?php
return [

    /** Add your macros here
     * "macros" => [
     *     'toUpper' => function () {
     *         return $this->map(function ($value) {
     *             return strtoupper($value);
     *         });
     *     },
     * ],
     *
     */

    "macros" => [

    ],

];

使用Collections

按字母分组标签

将此宏添加到您的配置中

<?php
return [
    'macros' => [
        'tagGroups' => function () {
            return $this->groupBy(function ($tag) {
                return substr($tag->title, 0, 1);
            });
        }
    ],
];
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.1.2/css/bulma.css">
</head>
<body>

<div class="section hero is-primary">
    <div class="hero-body">
        <div class="container">
            <h1 class="title">Tags</h1>
            <p class="subtitle">
                Every tag on the site.
            </p>
        </div>
    </div>
</div>


<h2>Tag groups</h2>

<div class="section">
    <div class="container">
        <ul class="has-columns has-text-centered">
            {% set collection = craft.tags.group('media') | collect %}
            {% for letter, tags in collection.tagGroups() %}
                <div class="letter-group">
                    <h3 class="title is-1 letter">{{ letter }}</h3>

                    <ul>
                        {% for tag in tags %}
                            <li class="title is-5">
                                <a href="/tags/{{ tag.slug }}">{{ tag.title }}</a>
                            </li>
                        {% endfor %}
                    </ul>
                </div>
            {% endfor %}
        </ul>
    </div>
</div>

</body>
</html>

Superbig 提供