You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Neos CMS 7:如何让内容元素在Neos UI中不可编辑?

实现Fusion组件不可内联编辑且不可选中的方案

针对你需要让文章底部的相关文章滑块Fusion组件完全不可内联编辑、不可选中,并和非内联可编辑节点行为一致的需求,可以按以下步骤处理:

1. 禁用内联编辑

在Fusion组件定义中,直接移除或禁用内联编辑的包装逻辑,这样Neos后台就不会给该组件添加编辑手柄和工具栏:

方法一:使用ContentElementWrapping禁用

prototype(Your.Site:Component.RelatedArticlesSlider) < prototype(Neos.Neos:ContentComponent) {
    # 禁用内联编辑包装
    @process.contentElementWrapping = ${Neos.Fusion.render('Neos.Neos:ContentElementWrapping', {
        content: value,
        node: node,
        disable: true
    })}

    # 组件原有配置
    items = ${q(node).find('[instanceof Your.Site:Document.Article]').limit(4).get()}
    # ...其他组件内容
}

方法二:直接移除包装处理

如果不需要任何内联编辑相关的渲染,也可以直接清空包装处理:

prototype(Your.Site:Component.RelatedArticlesSlider) {
    @process.contentElementWrapping = null

    # 组件内容...
}

2. 禁止元素选中

通过CSS阻止用户选中滑块区域的内容,同时可选择禁用鼠标交互来贴近非内联节点的行为:

给滑块组件的根容器添加类名(比如related-articles-slider),然后在样式文件中添加:

.related-articles-slider {
    /* 禁止文本选中 */
    user-select: none;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    /* 可选:完全阻止鼠标交互,避免误点 */
    pointer-events: none;
}

3. 匹配非内联节点的后台行为

如果需要在后台编辑模式下更贴近非内联节点的视觉和交互表现,可以根据后台状态添加额外样式:

在Fusion中动态添加后台专属类:

prototype(Your.Site:Component.RelatedArticlesSlider) {
    class = ${'related-articles-slider' + (Neos.Neos:Backend.isInBackend() ? ' backend-non-editable' : '')}

    @process.contentElementWrapping = null

    # 组件内容...
}

对应的CSS:

.related-articles-slider.backend-non-editable {
    opacity: 0.9; /* 视觉上区分可编辑元素 */
    cursor: default; /* 鼠标指针变为默认样式 */
}

这样处理后,该滑块组件在后台编辑模式下既不会触发内联编辑,也无法被选中,行为完全和非内联可编辑节点一致。

内容的提问来源于stack exchange,提问作者Alexander Nitsche

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 20:32:51