有谁知道这是否可能以及如何从 ExpressionEngine 的后端(控制面板)限制子类别的深度?
这个想法是允许某人从控制面板添加自己的类别层次结构,但将它们限制为 4 个子类别,例如:
所有 > 5 星 > 娱乐 > 电影 > 动画
但不是这个:
全部 > 5 星 > 娱乐 > 电影 > 动画 > 3D
这只是一个例子。
任何帮助将不胜感激。
有谁知道这是否可能以及如何从 ExpressionEngine 的后端(控制面板)限制子类别的深度?
这个想法是允许某人从控制面板添加自己的类别层次结构,但将它们限制为 4 个子类别,例如:
所有 > 5 星 > 娱乐 > 电影 > 动画
但不是这个:
全部 > 5 星 > 娱乐 > 电影 > 动画 > 3D
这只是一个例子。
任何帮助将不胜感激。
不,除非您编写自己的扩展程序以利用 EE 通用显示挂钩(类别添加/编辑/列表没有任何挂钩)。
最简单的方法是使用CP CSS JS插件并编写自己的 JS 代码以防止选择过深。
定位类似的东西$(".category_field select#parent_id")
,如果父类别选择有 32 个空格(4x8) Array(33).join(" ")
,则不允许选择并向上移动option
s,直到找到具有更少空格(即没有那么深)的选项(父类别)。
这可能有效(未经测试)......
$(".category_field select#parent_id").change( function() {
var $selected = $(this).children("option:selected")
if ($selected.text().indexOf( Array(33).join(" ") ) >= 0) {
// Too deep
$selected.prevAll().each(function(){
if ($(this).text().indexOf( Array(33).join(" ") ) < 0 ) {
$(this).parent().children('option:selected').removeProp('selected');
$(this).prop('selected', true);
return;
}
});
}
});