sunlab/wn-updown-plugin

WinterCMS 插件,允许用户对任何模型进行上下投票

安装: 2

依赖项: 0

建议者: 0

安全: 0

星星: 2

关注者: 1

分支: 1

类型:winter-plugin

dev-main 2021-07-02 22:18 UTC

This package is auto-updated.

Last update: 2024-09-29 05:56:42 UTC


README

在任何模型上实现上下投票功能。简单易用。

一个小型示例,基于两个不同的模型: Winter\Forum\Models\Post 和自定义插件的评论模型。

UpDown.-.demo.mp4

Composer 安装

composer require sunlab/wn-updown-plugin

要求

此插件需要 Winter.User 插件。

使用指南 - 以 Winter.Blog Post 模型为例

1. 第一步,扩展模型

要在模型上使用上下投票功能,您需要将 Votable 行为添加到您想要的模型中

class Plugin extends PluginBase
{
    public function boot()
    {
        \Winter\Blog\Models\Post::extend(static function ($post) {
            $post->implement[] = \SunLab\UpDown\Behaviors\Votable::class;
        });
    }
}

2. 第二步,将组件添加到页面

然后,您需要在博客文章页面或博客文章列表页面添加 upDown 组件

title = "Blog"
url = "/blog/:page?"
layout = "default"
description = "The main blog page, with all posts."
hidden = "0"

[blogPosts]
pageNumber = "{{ :page }}"
postsPerPage = "10"
noPostsMessage = "No posts found"
sortOrder = "published_at desc"
categoryPage = "blog/category"
postPage = "blog/post"

[upDown]
==
{% component 'blogPosts' %}

3. 第三步,多次添加相同组件

然后,在 blogPosts 部分的覆盖中,将 upDown 组件添加到 循环内部,并使用 组件的动态属性 以当前文章初始化组件

{# Loop over the blog posts #}
{% for post in posts %}

    {# For each post, displays the upDown component #}
    {% component 'upDown' votable=post %}

    {% partial "blog/post" post=post %}

{% endfor %}