java - 从 Liferay 移除 Alloy UI

标签 java jquery-ui liferay portlet alloy-ui

Liferay CMS 附带 Alloy UI 来执行多个 javascript 功能(可拖动、可排序等)。我们还使用了几个使用 jQuery UI 的 jQuery 插件。 Alloy UI 的加载速度也很慢,而且开销很大,导致网页严重滞后,因此我们想删除它并使用 jQuery UI 进行处理。

Liferay 默认在 DOM 中加载 Alloy UI 文件,是否有我们需要在服务器/portlet 文件中删除的内容(声明等)?

最佳答案

简短的回答是我不会费心去尝试!这是因为 Alloy UI 是 Liferay UI 不可或缺的一部分,如果没有它,您将需要做很多工作才能用 jQuery 替代品进行替换。

Alloy UI 所做的不仅仅是可拖动的 portlet 和排序。它还控制弹出窗口、AJAX 调用和其他我还没有遇到过的东西。

但是如果您真的想让自己经历它,那么我建议您首先创建一个自定义主题并从主题中删除对 Alloy UI 的任何引用,然后加载 jQuery。

然后您还需要创建一个或多个 Hook (并可能使用 EXT 插件)来替换所有引用 Alloy UI 的 JSP 文件,并使用使用 jQuery 执行相同功能的副本。

另一种方法是获取 GitHub 上的 Liferay 源代码,并从删除 Alloy UI 的源代码中创建您自己的版本。

但是 我仍然强烈建议您不要浪费时间。爱它或恨它,Alloy UI 被烘烤到 Liferay 中。如果您遵循我的任何一个建议,您将有效地阻止自己在未来升级 Liferay。

更好的建议是向 Liferay 提出改进 Alloy UI 的方法,或者为 Alloy UI repository on GitHub 做出贡献。并帮助社区。

~~编辑~~

要仅针对未经身份验证的用户禁用 Alloy UI,那么修改 portal-web\docroot\html\common\themes\中的文件的 HOOK 或许可以解决问题。特别是查看 top_js.jspf。如果您在那里打勾,说只有在您登录后才加载 Alloy UI,那么这可能就是您想要的答案。

关于java - 从 Liferay 移除 Alloy UI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13722810/

相关文章:

java - OSGi:如何获取其他包的类加载器

java - 如何从一个类调用另一个类的方法?

javascript - 使用 JQuery Mobile ui-datepicker 保存日期/事件

javascript - jquery ui 弹跳效果导致元素错位

java - 尝试使用 spring 部署 liferay portlet 时出现异常

java - 当我们在 Liferay 中说“组”时,这意味着什么?“组”由什么组成?及其用途?

具有 lambda 表达式的 Java 泛型对象

java - 使用 JSpinner stateChanged 方法更新 JOptionPane 中的消息

JQuery 疑难解答 : I am trying to make my div reverse . slipup()

java - 使用 Liferay 上传大文件(GB 数据)