heimrichhannot/contao-formhybrid_list

包含一个通用的列表和读取模块。这些模块可以显示和处理所有包含过滤、分页、模态处理等的contao实体。

5.11.0 2023-02-21 09:24 UTC

README

包含一个通用的列表和读取模块。这些模块可以显示和处理所有包含过滤、分页、模态处理等的contao实体。

如果需要额外的功能,只需继承自ModuleList或ModuleReader。

-> 点击 这里 查看模块formhybridformhybrid_listfrontendeditsubmissions 之间交互的图表。

功能

列表模块

  • 显示任何contao实体
  • 按字段或自由文本排序
  • 分页(ajax或同步)
  • 无限滚动
  • 使用heimrichhannot/contao-formhybrid的高级过滤
  • 定义默认过滤器
  • 具有别名支持的详细链接
  • 在模态窗口中打开实例(为此请安装heimrichhannot/contao-modal)
  • 以可排序标题的表格形式显示
  • 在列表中共享实体(在dca之前使用 FormHybridList::addShareFields() 添加必要的字段)

读取模块

  • 显示任何contao实体
  • 支持id或别名
  • 安全处理

技术说明

在列表项模板中访问数据

通常您会希望覆盖formybrid_list_item_default.html5模板。在这个模板内部,您可以使用以下技术访问链接实体的字段

  • $this->someField
  • $this->fields (格式化字段)
  • $this->raw (以数据库中存储的未格式化字段)

用于masonry的示例CSS

.formhybrid-list {
    .items {
        .make-row();

        .item, .stamp-item {
            .make-xs-column(12);
            .make-sm-column(6);
            .make-md-column(4);
            .make-lg-column(4);
            margin-bottom: 40px;
        }
    }
}

自定义列表过滤器处理行为

只需创建ModuleList的子模块,添加以下函数并调整以满足您的需求(同样适用于customizeDefaultFilters(),它是初始过滤器)。

提示:您也可以为单个字段返回多个值作为数组。

protected function customizeFilters(&$strField, &$strColumn, &$varValue, &$blnSkipValue = false)
{
    $arrData = $this->objFilterForm->getDca();

    switch ($strField)
    {
        case 'startDate':
            $strColumn = 'startDate >= ?';
            $varValue = strtotime(str_replace('%', '', $varValue));
            break;
        case 'endDate':
            $strColumn = 'startDate <= ?';
            $varValue = strtotime(str_replace('%', '', $varValue));
            break;
        case 'city':
            $strColumn = 'city = ?';
            $varValue = $arrData['fields'][$strField]['options'][$varValue];
            break;
        case 'fsonly':
            if (\Input::get('fsonly') === '0')
            {
                $strColumn = 'pid != 1';
            }
            else if (\Input::get('fsonly') === '1')
            {
                $strColumn = 'pid = 1';
            }
            break;
    }
}

模块

钩子

插入标签