如何在表达式引擎的控制面板中限制子类别深度?

时间:2013-08-22 11:46:38

标签: expressionengine categories

有没有人知道是否有可能以及如何从ExpressionEngine的后端(控制面板)限制子类别的深度?

这个想法是允许某人从控制面板添加他们自己的类别层次结构,但是将它们限制为4个子类别,例如:

全部> 5星>娱乐>电影>动画

但不是这样:

全部> 5星>娱乐>电影>动画> 3D

这只是一个例子。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

不,除非您编写自己的扩展程序以进入EE常规显示挂钩(类别添加/编辑/列表没有任何挂钩)。

最简单的方法是使用CP CSS JS附加组件并编写自己的JS代码,以防止选择太深。

定位类似$(".category_field select#parent_id")的内容,如果类别父选择有32个空格(4x8) Array(33).join(" "),则不允许选择并向上移动option直到找到选项(类别为父级) )空间较少(即不太深)。

这可能有用(未经测试)......

$(".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;
            }
        });
    }
});