0

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

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

所有 > 5 星 > 娱乐 > 电影 > 动画

但不是这个:

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

这只是一个例子。

任何帮助将不胜感激。

4

1 回答 1

0

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

最简单的方法是使用CP CSS JS插件并编写自己的 JS 代码以防止选择过深。

定位类似的东西$(".category_field select#parent_id"),如果父类别选择有 32 个空格(4x8) Array(33).join(" "),则不允许选择并向上移动options,直到找到具有更少空格(即没有那么深)的选项(父类别)。

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

$(".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;
            }
        });
    }
});
于 2013-08-22T20:33:42.730 回答