现在已经是众所周知的事实,Joomla 在未来的版本中将放弃对旧版本的支持(或者说,差不多是这样)。正如你可能猜到的,这并不是一个容易做出的决定。放弃旧版本支持不仅仅是 Joomla! 开发团队停止支持旧框架的问题,这是一个需要第三方开发者理解并应用于第三方扩展的过程。
Joomla! 不能在让第三方开发者悬在空中...

我不会在这个问题上给你提供任何统计数据,但我们现在处于 J!1.5.4 的前夕,距离 J!1.5.0 发布三个月,距离 J!Framework 发布(甚至完成)还要更长——正如你可以在 JED 上看到的,并非所有第三方开发者都急忙将他们的扩展迁移到 J!1.5.x。有些人害怕这个过程,有些人对此不熟悉,有些人只是不在乎或没有时间——但谁能责怪他们呢?我可以理解他们,即使是主要扩展也还没有迁移,所以他们为什么要......?为什么要进行分支开发,或者复制代码以同时支持 J!1.0.x 和 J!1.5.x?

将权力移交给社区

所以,我决定,如果开发者不做这项工作,社区将做并且应该做。我不期望普通用户开始开发和/或迁移扩展,我只期望他们了解他们所使用的扩展——特别是如果这是一个需要使用 Legacy-Mode 的扩展。
为什么这很重要?因为现在,社区用户(至少是站点管理员)将能够仅仅督促那些第三方开发者将他们的扩展迁移到原生的 J!1.5.x 扩展。这将帮助 Joomla! 放弃 Legacy-Mode,反过来也将帮助你们,让我们能够专注于推进 Joomla!...

传统标记

当一个新的扩展被安装时,com_install 已经通知管理员如果他需要开启 Legacy-Mode 才能安装扩展。目前缺少的是,Joomla! 实际上能够在任何其他时间告诉管理员哪些扩展需要 Legacy-Mode,哪些不需要。
假设网站管理员决定关闭传统模式(我甚至不想尝试回答为什么?)。

显然有两种可能的情况

  1. 好的情况 - 所有安装的扩展都是J!1.5.x原生,系统以原生模式运行。
    从技术上来说,对于这个网站的功能,传统模式不是必需的
  2. WCS情况 - 至少有一个扩展不是为原生J!1.5.x编写的,系统将简单地崩溃
    从技术上来说,系统运行需要传统模式

曲折之处

我引入的解决方案相当简单。对com_installer的模型进行小改动,以记录已安装扩展的传统状态,并在组件视图中添加一列新列,以显示相应扩展列表中的传统状态(模板、组件、模块、插件 - 语言没有此更改,因为Joomla!1.5.x不允许安装J!1.0.x语言...)
为了允许鼠标悬停在扩展的当前传统状态上,在en-GB.com_installer.ini中添加了两个新字符串。这将实际上告诉查看者,联系扩展开发者以获取Joomla!1.5原生版本扩展的进一步支持。

一个例子

以下是一个docMAN组件(版本1.4RC2)的例子,安装在Joomla!1.5上,标记显示docMAN仍然需要传统模式为开启。
Legacy-Marker showing docMAN's state
(这只是为了演示传统标记的目的,没有对docMAN团队有任何恶意)

何时可以期待它?

这个传统标记在J!1.5.3发布之前提交到核心,但由于模型中的错误,它将在J!1.5.4发布后(或从SVN获取修复)才可用。