【问题标题】:Filter and show only SVG images in ApostropheCMS在 ApostropheCMS 中过滤并仅显示 SVG 图像
【发布时间】:2020-12-22 07:16:59
【问题描述】:

我创建了一个名为 svg 的新过滤器来仅显示 svg 图像或非 svg 图像。

但我不明白在哪里可以将过滤器值设置为truefalse

代码如下所示。

小部件索引文件:

module.exports = {
  label: 'Section SVG Images',
  addFields: [
    {
      name: 'svg-images',
      label: 'SVG Images',
      type: 'singleton',
      widgetType: 'apostrophe-images',
      filters: {
        svg: true
      },
      required: true
    },
  ]
};

自定义光标过滤器:

module.exports = {
  construct: function(self, options) {
    self.addFilter('svg', {
      finalize: function() {
        var svg = self.get('svg'); // <--- HARE svg is olways 'undefined' 

        if (typeof svg == 'undefined') {
          return;
        }

        if (svg) {
          var criteria = {
            'attachment.extension': 'svg'
          };
        } else {
          var criteria = {
            'attachment.extension': { $ne: 'svg' }
          };
        }

        self.and(criteria);
      },

      safeFor: 'public',
      launder: function(a) {
        return self.apos.launder.boolean(a);
      }
    });
  }
};

【问题讨论】:

    标签: svg apostrophe-cms


    【解决方案1】:

    filter 不是 Apostrophe 中 singleton 字段的顶级选项。这是join-type 字段所独有的。您可以让这个小部件扩展apostrophe-pieces-widgets,然后您可以直接在新的小部件上设置相同的filters 对象。至少应该注册游标过滤器。

    值得注意的是,有currently a PR in progress为撇号核心添加文件类型和方向的过滤!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-08-20
      • 2017-05-18
      • 2012-10-07
      • 2019-02-17
      • 2011-08-17
      • 1970-01-01
      • 1970-01-01
      • 2013-07-16
      相关资源
      最近更新 更多