如何删除包含破坏 C5 接口的错误 JavaScript 的块?

How can I delete a block that contains faulty JavaScript breaking the C5 interface?

提问人:Saturn 提问时间:3/5/2017 最后编辑:PekkaSaturn 更新时间:3/7/2017 访问量:171

问:

我正在处理位于页脚的 Concrete5 中的 HTML 块。我做了一个 javascript 调用 - 不太记得了,但我认为它引用了 jQuery 或 Google Maps API。无论如何,现在该块不会显示,奇怪的是,我现在完全无法修改/添加/删除块。我很确定这是因为它正在进行的 javascript 调用,但我无法修改或删除该块来解决问题。

我现在应该做什么?我尝试在浏览器中禁用javascript,但当然这也不允许我修改块。

JavaScript 具体5

评论

0赞 Pekka 3/5/2017
我遇到了这个问题(在旧版 5.7 上)和 IIRC 它似乎无法修复 - 我最终不得不删除该页面。太臭了。我想您可以使用 API 删除有问题的块,但这可能比重新创建页面要多得多。
0赞 Saturn 3/5/2017
@Pekka웃 但是,如果块在页脚中,这意味着它会影响每个页面,因为页脚出现在所有页面中?如果我创建一个新页面,它不会只是复制页脚并遇到同样的问题吗?
0赞 Saturn 3/5/2017
@Pekka웃 实际上,我很好奇使用 API 来做到这一点 - 如果你能为我指出正确的方向,我将不胜感激。
0赞 Pekka 3/5/2017
But if the block is in the footer, it means it affects every single page since the footer appears in all?啊,我明白了,我明白了! 一秒钟,它应该在文档中......这是一个全球性区域吗?(如果这些仍然存在于 5.8+ 中,我的所有安装仍然是 5.7)。I'm curious about doing this using the API
0赞 Saturn 3/5/2017
@Pekka웃 是的,这是一个全球性的区域。

答:

2赞 Pekka 3/5/2017 #1

我还不太了解 5.8+,但这可能无法从 UI 中修复。

如果错误位于全局区域中,则最好的办法可能是打开模板,更改使用和显示全局区域的区域名称,然后从头开始重新创建它。

你会寻找这样的东西:

$a = new GlobalArea("Footer Nav");

并更改全局区域的名称,从而创建一个新名称。

如果这不是一个选项,您可能不得不求助于通过 API 删除(或更改)有故障的块。

根据我的经验,获取具有 C5 引导的空白页面的最简单方法是创建自定义 Dashboard 页面:

对于 Concrete5 开发人员来说,创建自己的 Dashboard 页面是一项常见的任务。仪表板页面只是位于“single_pages/dashboard”目录中的单个页面。将它们添加到该位置后,它们会自动显示在仪表板中。

现在,关于如何编辑或删除区域内的块,我没有完整的配方,但这个显示高级区域操作的示例页面应该可以帮助您入门。

的 API 文档在这里,在这里(注意 / 方法。GlobalAreasBlockdelete()deleteBlock()

评论

1赞 Saturn 3/5/2017
救了我的命,非常感谢你。我编辑了该文件并找到了它创建 GlobalAreas 的部分。我做了一个条件来检查它的名字(故障区域称为 Footer01),并将其替换为“Footer01_New”。footer.php
1赞 Nour Akalay 3/7/2017 #2

仅供参考,尽管标记为最佳解决方案,但它将数据留在数据库中,这些数据将永远保留在那里,并迫使您更改区域名称,这可能一次没问题,但如果一次又一次地发生,则不行。

由于这是一个 HTML 块,最好的方法是转到数据库的界面,可能是 phpMyAdmin,进入表“btContentLocal”并搜索您在 HTML 块中输入的错误代码,然后修复或删除它。

就这样,你恢复了正常,你不会留下东西,你可以保持你的区域原样