#svg #apostrophe-cms
#svg #apostrophe-cms
Вопрос:
Я создал новый фильтр с именем svg
для отображения только svg-изображений или изображений, отличных от svg.
Но я не понимаю, где я могу установить значение фильтра в true
или false
?
Код показан ниже.
Индексный файл виджета:
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);
}
});
}
};
Ответ №1:
filter
не является опцией верхнего уровня для singleton
полей в апострофе. Это уникально для join
полей типа. Вы могли бы расширить этот виджет apostrophe-pieces-widgets
, тогда вы, вероятно, могли бы установить тот же filters
объект непосредственно в виджете new pieces. Это должно зарегистрировать фильтр курсора, по крайней мере.
Стоит отметить, что в настоящее время ведется работа по добавлению фильтрации как по типу файла, так и по ориентации в Apostrophe core!