【问题标题】:i want to change Status column - with color in CMS october in columns.yaml我想更改状态列 - 在 columns.yaml 中的 CMS 10 月中使用颜色
【发布时间】:2021-01-07 22:11:48
【问题描述】:

我想更改 Status 列 - 在 CMS 10 月的 columns.yaml 中使用颜色 ...

我如何添加这个:

<div class="control-list">
    <table class="table data">
        <thead>
            <tr>
                <th style="width: 150px"><span>Status</span></th>
                <th class="active sort-asc"><a href="/">Title</a></th>
            </tr>
        </thead>
        <tbody> 
            <tr>
                <td>
                    <span class="oc-icon-circle text-success">
                        Approved
                    </span>
                </td>
                <td>The sun is shining</td>
            </tr>
            <tr>
                <td>
                    <span class="oc-icon-circle text-danger">
                        Cancelled
                    </span>
                </td>
                <td>The weather is sweet here</td>
            </tr>
        </tbody>
    </table>
</div>

如何将这样的东西添加到我的系统模型中?

【问题讨论】:

  • 你能分享一下你做了什么努力,我们可以指导你
  • octobercms.com/docs/ui/list - 就像 CMS 十月 - 状态栏
  • 我看到它看起来不错,但是我怎么能做到这一点,我在数据库状态上看不到:标签:状态类型:组条件:状态(:过滤)选项:待定:待定活动:活动关闭:关闭
  • 将模型中的状态值定义为硬编码的静态变量,因为它们可能就像 4-5 状态一样,并部分使用它们进行检查

标签: octobercms octobercms-plugins octobercms-backend october-form-controller october-partial


【解决方案1】:

整行(更简单)

您可以在控制器中将一个类应用于覆盖listInjectRowClass 的整行,并返回其中一个类的名称listed in the docs,例如:

public function listInjectRowClass($model, $definition)
{
    switch ($model->status) {
        case Order::STATUS_NEW:
            return 'new';
            break;

        case Order::STATUS_PREPARING:
            return 'processing';
            break;

        case Order::STATUS_PREPARED:
            return 'processing';
            break;

        case Order::STATUS_SHIPPED:
            return 'frozen';
            break;

        case Order::STATUS_DELIVERED:
            return 'positive';
            break;

        case Order::STATUS_WITHDRAWN:
            return 'positive';
            break;
    }
}

这将导致如下结果:

只有一行的一列

这有点棘手,基本上你必须use a partial来渲染列。

在你的columns.yaml

content:
    type: partial
    path: ~/plugins/acme/blog/models/comments/_content_column.htm

在部分文件_content_column.htm 中你需要有这样的东西:

<span class="<?= $record->column_status_class ?>">
   <?= $value ?>
</span>

在哪里,正如文档所说:

$value 是默认单元格值

$record 是用于单元格的模型

因此,对于本示例,模型需要一个名为 getColumnStatusClassAttribute 的函数,该函数将返回正确的类名。

【讨论】:

    猜你喜欢
    • 2018-11-12
    • 2016-09-08
    • 1970-01-01
    • 1970-01-01
    • 2016-11-05
    • 2020-02-04
    • 1970-01-01
    • 2021-07-31
    • 2021-08-31
    相关资源
    最近更新 更多