Joomla 平台 11.4 版本(“Brian Kernighan”) 于 2012 年 1 月 4 日发布。它是 2011 年 11 月 24 日发布的 11.3 版本的逻辑延续。除了大量的错误修复之外,它还带来了新功能,主要包括: >
- MultiDB 支持
- 实现 Github Forks API
完整的提交列表在此处提供 https://github.com/joomla/joomla-platform/commits/11.4 ,API 文档在此处提供 https://api.joomla.net.cn
项目规模
- 类:270(11.3 平台中为 231)
- 方法:2000(11.3 平台中为 1946)
- 行数:25970(11.3 平台中为 24717)
- 注释:62155(11.3 平台中为 62154)
- 空白行:11877(11.3 平台中为 11800)
代码质量摘要
- 代码风格检查:199 个警告(11.3 平台中为 235)
- 重复代码:26 个警告(11.3 平台中为 26)
- 编程混乱检测器 (PMD):1002 个警告(11.3 平台中为 1006)
- 测试覆盖率:41%(11.3 平台中为 41%)
新功能
- JDocument 的一些小改进
- 允许包扩展类型使用脚本文件
- 将 INFOURL 添加到 _updatecols 中
- 更改了 quoteName 函数。
- 添加 URL 过滤功能,改进 URL 字段,更新测试以反映更改。
- 添加了 JDatabase::quoteName 的功能,使其能够自动分割和引用带点的字符串
- MultiDB 支持
- 实现 Github Forks API,添加缺少的测试。
- 添加了突出显示行为
- 添加了 git 作为有效的 URL 协议。
- 用更通用的解决方案替换 JFormFieldEditors。
- 将 MooTools 更新到 1.4.2 版本。
已修复问题
- 将 group_concat 更改为与“mysql”无关的东西
- Joomla CMS [#23882] JForm::getGroup() 未正确生成嵌套组名
- 恢复工具栏的管理员应用程序检查。
- 一些别名字形的无用替换。
- 修复了 JTable 中的拼写错误。
- 使安装程序包类变量为公共
- 修复 JHtmlUser::groups 中的分组
- 更新以修复更新程序系统
- SQLAzure 和 SQLServer 修复
- 修复了突出显示行为。
- Joomla CMS [#27257] 修复了 jtablenested 的 publish 方法中的拼写错误。最初发现的问题是...
- 修复了 URL 表单过滤器中的错误。
- 使 JTable::load() 在 JError::$legacy 设置为 false 时起作用。
- 修复了一些小问题
- 多语言别名改进
- 始终使用开发者声明的 db 实例
- Joomla CMS [#27280] com_content 路由中的无效 foreach*
- 修复了 sqlserver 和 azure 的 nameQuote。
- Joomla CMS [#27177] Joomla! 自动将发件人电子邮件地址添加到回复中...
- Joomla CMS [#27415] 更新通知缺少平台更改
- get_table_constraints 重命名为 getTableConstraints 以支持备份...
- Joomla CMS [#26632] 用户字段类型的操作不一致
- Joomla CMS [#26893] 为 JComponentHelper 添加 filterText 方法,其中包含新的 customList 功能
- 添加了缺少的 JText
- Joomla CMS [#27246] JFormFieldTimezone 默认值未设置
- 修复了拉取请求 #554 导致的问题。
- 修复了 JDatabaseMySQLi::close 中的错误
- JArchive 工作
- 修复 JTableUsergroup。
- getInstance 函数实际上并未返回全局安装程序...
- 显式将 useStorage 参数设置为“true”:“false”,以便“null”将不再...
- 修复了 JTable 子类中的一些问题。
- constant() 如果给定常量未*定义*,则会生成 E_WARNING
- JTable 审查和测试
- CMS 2.5 的批量处理工作
- Joomla CMS [#27046] 同名用户组的问题。
- 错误修复:更正 language.php 中的错误
- Joomla CMS [#27284] 修复了严格标准警告
- 针对错误的拉取请求 #584 的修复
- Joomla CMS [#25431] JUserHelper::getProfile 未返回个人资料
- 修复 build.xml
- JPath::check() 在 chroot 监狱中运行时会抛出错误 20
- 更改 core.js 的加载方式。
- 消除对使用工具栏的管理员应用程序的检查。
- Joomla! CMS [#27196] 无法再次添加已删除的内容语言
- 这是为了修复跟踪器 #26877 上报告的错误
风格
- 修复了 sniffer 未正确检测双引号参数的问题
- 使更多类可自动加载。
- 减少对已弃用函数的使用。
- 代码风格:嗅探运算符间距
- 修复了一些 PHPMD 警告。
- 代码样式修复 - JGithubForks
- 为函数添加了缺少的作用域修饰符。
- 删除了 ApplicationException,以支持更具语义的异常使用。
- 修复文件权限。
- 代码风格:将受保护的成员变量标记为已弃用
- 使用自动加载程序重命名 form/formfield.php 和 form/formrule.php
- 严格静态
- 更多地使用自动加载程序。
- 在未使用时不要加载 JRequest。
- 更多自动加载程序 + jimport() 相关内容
- 将 string.stringnormalize 移动到 string.normalize。
- 重构 JDatabaseMySQLi + 单元测试
- JTable 审查和测试
- 代码风格:修复 FileCommentsSniff
- 代码风格:修改 FunctionCallSignatureSniff
- 将 filterinput.php 和 filteroutput.php 文件重命名以适合自动加载程序。
- 修复更多 PHPMD 警告
- 代码风格:修复多余的制表符字符
- 为较新的类添加了缺少的类型提示。
- 将媒体包重命名为图像以利用自动加载程序。
- 对基本库文件进行 CodeSniff
- 修复了变量作用域代码风格警告
- 修复了缺少的方法作用域声明。
- 代码风格:添加 MemberVarScope 和 MethodScope 嗅探器
- 代码风格:嗅探成员变量间距
- 代码风格:嗅探强制转换间距
- 代码风格:嗅探连接
测试
- 实现 Github Forks API,添加缺少的测试。
- 为 JImage 包添加了测试
- JArchive 工作
- 为 JLoader::setup 方法添加单元测试
- 重构 JDatabaseMySQLi + 单元测试
- 更新 JHtmlForm::token() 测试
- JTable 审查和测试
- 修复了损坏的单元测试。
- 添加了 JWebGlobalMock。
- JHtmlForm 的单元测试
弃用
- 停止使用已弃用的 JS 函数。
- 删除对已弃用代码的调用。
- 防止 JBrowser 中出现一些弃用警告。
- 弃用 JDate::toMySQL
- 在平台中使用更少的已弃用函数
- 删除多年来已在 PHP 中修复的安全问题修复。
- 仅为 JRequest 输出一个弃用警告。
文档
- 修复了已弃用标签的拼写错误
- 修复文档以与 publican 协同工作
- 文档:更正 JForm 的 getLabel 文档块
- 重新更正 PHP 版本信息
- 文档 - 添加了关于 JLog 类的章节
- 对 docs 目录的更新
- 文档 - 变量类型
- 准备发布手册 - 用于与 Publican 协同工作
- 为 Github 包添加文档。
以下由社区贡献者发起的拉取请求已合并
- [#653] 将 group_concat 更改为与“mysql”无关的东西 (chdemko)
- [#587] Joomla CMS [#23882] JForm::getGroup() 未正确生成嵌套组名(chdemko)
参见 http://joomlacode.org/gf/project/joomla/tracker/?action=TrackerItemEdit&tracker_item_id=23882
- [#697] JDocument 的一些小改进: (realityking)
- 允许输出没有字符集的内容(对二进制数据很有用)- 允许完全删除元生成器元素。- 一些小的代码风格改进
这些是来自 #683 的一部分。
- [#701] 修复了 sniffer 未正确检测双引号参数的问题 (pasamio)
sniffer 未正确检测双引号字符串并引发关于没有参数的类的错误。
- [#703] 恢复工具栏的管理员应用程序检查。 (elinw)
这撤消了之前的更改(#566),该更改存在向后兼容性问题。
- [#237] 允许包扩展类型使用脚本文件 (mbabker)
此拉取请求更改了包扩展安装程序,以允许在包中包含一个脚本文件。
这将允许一个包拥有一个单一的预检方法,例如检查任何依赖项,例如另一个扩展的存在或 Joomla! 的最低版本。
此外,还创建了一个 $results 数组,其中包含每个扩展的名称和 $tmpInstaller->install 结果(考虑到编译位置,结果应该是 true)。此数组被传递到后检方法,并可用于显示已安装扩展的列表,许多 3PD 已经在其自定义安装方法中执行此操作(例如,参见 http://twitpic.com/65xw3i)。
最后,通过将其设置为 JPATH_MANIFESTS/packages/packagename 来解决与 extension_root 有关的 TODO,这也是脚本文件存储的位置。
- [#685] 一些别名符号的无用替换。 (infograf768)
参见 http://groups.google.com/group/joomlabugsquad/t/12ca167dcaa6bacd?hl=en
- [#698] 修复 JTable 中的拼写错误。 (realityking)
我的错。
- [#696] 将安装程序包类变量设为公共 (mbabker)
根据 http://groups.google.com/group/joomla-dev-platform/browse_thread/thread/e31b5078cb2816db 中的讨论,我们需要将这些类变量设为公共,否则会抛出 PHP 致命错误,从而阻止库和包扩展类型的更新/卸载。
- [#694] 修复 JHtmlUser::groups 中的分组 (mbabker)
在测试 joomla/joomla-cms#29 时,我们发现用户组选择列表的分组已损坏。由于它基于 JHtmlAccess::usergroup 中使用的分组,我比较了这两个分组并发现了一个额外的分组字段。删除此字段修复了选择列表。
- [#695] 将 INFOURL 添加到 _updatecols (mbabker)
根据 joomla/joomla-cms#65 中的更改,我们需要将 INFOURL 添加到 _updatecols 数组。
- [#679] 更改了 quoteName 函数。 (gpongelli)
现在 quoteName 可以接受一个要引用的名称数组,每个名称都可以使用点表示法。添加了别名支持“AS”作为第二个参数,类型与第一个参数相同,因此如果第一个参数是字符串,则第二个参数需要是字符串;如果第一个参数是数组,则第二个参数需要是数组。特别要注意第一个参数数组:每个数组元素都将被引用,并且可以使用第二个参数数组进行别名,该数组必须具有相同的长度,并且对于不需要别名的元素包含空值,例如
$db->quoteName( array('a', 'b'), array('alias_a', 'alias_b') );
使用“作为引用字符,此调用将返回一个包含以下内容的数组:
Array ( [0] => '"a" AS "alias_a"' [1] => '"b" AS "alias_b"' )
<
p> 而此示例
$db->quoteName( array('a', 'b'), array(null, 'alias_b') );
使用“作为引用字符,此调用将返回一个包含以下内容的数组:
Array ( [0] => '"a"' [1] => '"b" AS "alias_b"' )
<
p> 更复杂的示例
$db->quoteName( array('a.c', 'b.d'), array(null, 'alias_b_d') );
将返回一个包含以下内容的数组:
Array ( [0] => '"a"."c"' [1] => '"b"."d" AS "alias_b_d"' )
<
p> 此拉取请求还包含对相对 quoteName 测试的更改,以尝试数组引用和别名参数。
- [#676] 更新以修复更新程序系统 (pasamio)
此拉取请求
- 修复了 CLIENT 未定义索引问题
- 删除了一个未定义索引警告
- 删除了 INFOURL 添加,直到 CMS 接受了更改
- 还删除了一个注释掉的调试语句,该语句不知何故被包含在内。
"CLIENT" 未定义索引警告
在拉取请求 667 中,引入了将“CLIENT”更改为“CLIENT_ID”的概念,以消除未定义索引“CLIENT”问题。这实际上是 CMS 跟踪器 24338 [2,3] 的副作用,其中 update_cols 中的相应条目被无情地从“CLIENT”重命名为“CLIENT_ID”,导致我们陷入目前的困境。
我怀疑最初的更改本身是对 CMS 问题 # 24305 [4,5] 的反应,这表明了意外后果法则确实存在。
未定义索引警告
在添加的更新缓存代码中,last_check_timestamp 检查周围添加了一个额外的保护措施。在某些情况下,此值可能不存在,并可能触发警告。
删除 INFOURL 添加
删除“INFOURL”标签有两个原因。首先,它在错误的位置,它应该存在于 updateadapter 类的 _update_cols 中。其次,在 CMS 接受数据库模式更改[6]之前,它会破坏加载扩展,这使得使用当前 Joomla! 2.5 测试版测试此拉取请求中的更改变得很困难。鉴于此更改于 7 月合并到平台中,现在是 12 月,很可能 CMS 当前已损坏,但人们没有意识到(集合类型不受影响)。
参考:[1] https://github.com/joomla/joomla-platform/pull/667 [2] https://github.com/joomla/joomla-platform/commit/28819069e156bb749371a0d08c30d1d7cd62a366#libraries/joomla/updater/updateadapter.php [3] http://joomlacode.org/gf/project/joomla/tracker/?action=TrackerItemEdit&tracker_item_id=24338 [4] https://github.com/joomla/joomla-platform/commit/120f114471ebd2842aa72a8d3958aa09525aeb16 [5] http://joomlacode.org/gf/project/joomla/tracker/?action=TrackerItemEdit&tracker_item_id=24305 [6] http://joomlacode.org/gf/project/joomla/tracker/?action=TrackerItemEdit&tracker_item_id=26635
- [#654] SQLAzure 和 SQLServer 修复 (sseshachala)
已修改两个文件
- sqlstvquery.php - 第 79 行 - auto_increment_field 替换为 autoIncrementField(驼峰式命名)2.sqlazure.php:第 12 行 - 将 require 替换为 JLoader::register('JDatabaseSQLSrv', dirname(FILE) . '/sqlsrv.php');
没有其他更改。我希望这可以合并到平台中。
- [#692] 停止使用过时的 JS 函数。 (realityking)
- [#693] 修复高亮显示的行为。 (realityking)
- [#680] Joomla CMS [#27257] 修复 jtablenested 的 publish 方法中的拼写错误。最初在... (elinw)
修复 jtablenested 的 publish 方法中的拼写错误。最初在 CMS 中发现
跟踪器问题 #27257
- [#678] 更正 URL 表单过滤器中的一个错误。 (elinw)
修复了 URL 表单过滤器中的错误。
- [#682] 使 JTable::load() 在 JError::$legacy 设置为 false 时也能正常工作。 (realityking)
我需要它使 CMS 安装在非传统模式下也能正常工作。这是我在安装中必须处理的最后一段过时代码,因此如果我们可以将其拉取,那就太好了。
- [#670] 修复一些小问题 (realityking)
- JHtmlBehavior 中的一个拼写错误 - 一些 PHPMD 警告 - 一个 JDatabase::isQuoted() 的用法
- [#671] 多语言别名改进 (infograf768)
http://joomlacode.org/gf/project/joomla/tracker/?action=TrackerItemEdit&tracker_item_id=26380
对多语言的重大改进,没有遗留问题。
- [#669] 始终使用开发人员声明的数据库实例 (fastslack)
如果尝试使用不同的前缀创建新的资产或类别,JTableAsset 和 JTableCategories 会返回错误,因为它会创建新的实例而不是用户创建的实例。
- [#668] Joomla CMS [#27280] com_content 路由中的无效 foreach (elinw)
http://joomlacode.org/gf/project/joomla/tracker/?action=TrackerItemEdit&tracker_item_id=27280
ContentHelperRoute::_findItem 由于 JMenu::getItems() 返回 null 结果,可能会抛出无效 foreach 错误(第 135 行)。
此补丁会导致返回空数组而不是 null。
- [#661] 使更多类可自动加载。 (realityking)
删除一些不必要的 jimport() 调用。
- [#666] 根据 Chris 的建议进行修改。 (sseshachala)
参考:https://github.com/joomla/joomla-platform/pull/665/files#r309254
- [#664] 修复了 sqlserver 和 azure 的 nameQuote。 (hooduku)
该修复处理 sqlserver/azure 中的保留字(如果使用)。
- [#655] Joomla CMS [#27177] Joomla! 自动将发件人电子邮件地址添加到回复...(chdemko)
参见 http://joomlacode.org/gf/project/joomla/tracker/?action=TrackerItemEdit&tracker_item_id=27177
- [#663] 减少过时函数的使用。 (realityking)
- [#657] Joomla CMS [#27415] 更新通知缺少平台更改 (dextercowley)
在将此功能添加到 CMS 时,我错过了平台更改。这是更改。它已存在于该文件的 CMS 版本中。谢谢。
- [#662] get_table_constraints 重命名为 getTableConstraints 以支持备份 ... (hooduku)
get_table_constraints 重命名为 getTableConstraints 以支持备份...
我们是否可以将其合并到 joomla:staging 中?如果有差异,请告诉我。
- [#572] 代码风格:嗅探运算符间距 (elkuku)
这确保运算符周围有一个空格。
- [#623] 添加 URL 过滤,改进 URL 字段,更新测试以反映更改。 (elinw)
这将 URL 过滤器添加到 Jform 中现有的过滤器中。过滤器要求 URL 具有协议。如果协议不存在,它会使用 http://。它还更新了测试以包含 URL 过滤选项的测试。此过滤器可以选择与 URL 字段类型或 URL 规则或两者一起使用,但这不是必需的。
作为此更改的一部分,URL 字段已构建,并包含一个新的元素“relative”。默认情况下(除了基于主机和 index.php 的一些猜测之外),URL 过滤器假定没有协议的 URL 是外部 URL,它只是缺少协议。如果使用 relative 元素,则过滤器会假定没有协议的 URL 相对于本地根目录。
- [#656] Joomla CMS [#26632] 用户字段类型的操作不一致 (chdemko)
参见 http://joomlacode.org/gf/project/joomla/tracker/?action=TrackerItemEdit&tracker_item_id=26632
- [#659] 修复一些 PHPMD 警告。 (realityking)
注意 JArchiveZip 中有一些向后不兼容的更改。由于我们已经将内部变量设为私有,因此影响应该不会很大。
- [#658] 添加 JDatabase::quoteName 的功能以自动拆分和引用带点的字符串 (eddieajau)
允许 quoteName 方法自动拆分和引用带点字符串的每个部分。例如
$db->quoteName('a.foo');
将返回
'a'.'foo'
。添加了 quoteName 的测试,并提高了 JDatabase 的代码覆盖率。
- [#652] 多数据库支持 (elinw)
更新平台以支持多数据库
- [#651] Sudhi 暂存 (elinw)
此拉取请求合并了来自多个分支的工作,以改进对多个数据库的支持。它还通过了 Checkstyle 扫描。
- [#641] Joomla CMS [#26893] 在 JComponentHelper 中添加 filterText 方法,并使用新的 customList 功能 (radiant-tech)
有关将文本过滤限制在文章中的问题说明,请参见 http://joomlacode.org/gf/project/joomla/tracker/?action=TrackerItemEdit&tracker_item_id=26893。
包含在此处开始的功能请求:http://joomlacode.org/gf/project/joomla/tracker/?action=TrackerItemEdit&tracker_item_id=26482
过滤逻辑在 #26893 的测试说明中解释。自定义黑名单允许超级用户覆盖 JFilterInput 的硬编码默认 tagBlackList 和 attrBlackList。
- [#650] 添加缺失的 JText (elinw)
添加一个缺失的 JText。
- [#565] Joomla CMS [#27246] JFormFieldTimezone 默认值未设置 (radiant-tech)
服务器配置值设置为错误的变量名。请参见 CMS 错误跟踪器 #27246。
- [#649] 代码样式修复 - JGithubForks (ianmacl)
Docblocks 格式错误。
- [#648] 实现 Github Forks API,添加缺失的测试。 (ianmacl)
这将 forks 添加到平台处理的 Github API,并完成这些类的单元测试。
- [#647] 为 JImage 包添加测试 (ianmacl)
完成对 JImage、JImageFilter、JImageFilterBrightness、JImageFilterContrast 和 JImageFilterEdgedetect 的覆盖。
- [#608] 添加突出显示行为 (realityking)
这基于 Michaels 的拉取请求 #371。我进行了一些更改以使其更灵活,最重要的是将其移至 JHtmlBehavior。
- [#645] 删除对已弃用代码的调用。 (realityking)
- [#646] 修复由拉取请求 #554 导致的问题。 (realityking)
我们删除了一些 jimports(),但没有重命名类,因此自动加载器可以拾取它。
- [#629] 修复 JDatabaseMySQLi::close 中的错误 (elinw)
PHP 对 MySQLi 的处理方式与对 MySQL 的处理方式不同,特别是在面向对象方面。例如,PHP 5 引入了一种处理 MySQLi 析构函数的新方法(https://php.ac.cn/destruct)。此补丁调整了 MySQLi 驱动程序,以便当(无论出于何种原因)mysqli 对象($this->connection)在 JDatabaseMysqli 对象之前被销毁时,__destruct 中的条件检查按预期工作。
- [#643] 为函数添加缺失的作用域修饰符。 (realityking)
这应该清理一些(8 个)代码样式警告。
- [#644] 修复已弃用标签的拼写错误 (vietvh)
- [#642] 防止 JBrowser 中出现一些弃用警告。 (realityking)
弃用日志文件开始看起来很不错,因此它们对第三方开发人员实际上很有帮助。仍然让我感到烦恼的是 JBrowser 的警告,即使实际上没有使用任何已弃用的功能,也会出现这些警告。附带的提交应该修复此问题。
- [#639] 删除 ApplicationException,改为使用更具语义的异常使用。 (realityking)
再次选取 Louis 作品中较小但优秀的部分;)
- [#640] 修复文件权限。 (realityking)
这将拾取拉取请求 #635 中的一些不相关内容。
- [#632] 弃用 JDate::toMySQL (chdemko)
支持 JDate::toSQL
- [#564] 代码样式:将受保护的成员变量标记为已弃用 (elkuku)
如果受保护的成员变量以下划线开头,则将其标记为已弃用。添加适当的挂件。包:application
我使用了:
@deprecated use $XXX or declare as private
不确定从哪个版本开始弃用 - 请告知。还应验证变量是否可以声明为私有,包括下划线。这将修复 45 个代码样式警告。
- [#633] 使用自动加载器重命名 form/formfield.php 和 form/formrule.php (chdemko)
- [#533] JArchive 工作 (realityking)
- 添加单元测试 - 为所有适配器添加 isSupported() 函数
- [#631] 修复 JTableUsergroup。 (realityking)
CMS 系统测试发现的另一个问题。
- [#605] 严格静态 (signotorez)
严格静态应称为静态
- [#630] getInstance 函数实际上没有返回全局安装程序... (compojoom)
- [#622] 为 JLoader::setup 方法添加单元测试 (ianmacl)
- [#570] 修复 MySQLi 驱动程序中 close 方法的问题。 (elinw)
如果不存在实际连接(即使对象存在),并且您尝试关闭连接,则会出现警告。这会添加一个检查,以查看在尝试关闭之前连接是否为空。
- [#628] 恢复 #570 (eddieajau)
恢复 #570,这会导致 CMS 出现回归(由 mysqli 对象不是资源这一事实引起)。
- [#554] 更多地拥抱自动加载器。 (realityking)
一些代码来自 Louis,我希望他对此感到满意。
- [#626] 明确将 useStorage 参数设置为 'true':'false',以便 'null' 将不... (thinkeryvin)
...会被标签默认设置为 'true'。这应该修复了设置 useCookie=>’false’ 仍然会导致 tabs.js 使用 cookie 存储的问题。
- [#627] 修复 JTable 子类中的一些问题。 (realityking)
这些是在运行 cms 系统测试时发现的。
- [#617] 在未使用时不要加载 JRequest。 (realityking)
- [#621] constant() 如果给定常量未 *定义*,则会生成 E_WARNING (WebMechanic)
恢复 3e0bfb52 中的一些更改
- [#619] 更多自动加载器 + jimport() 内容 (realityking)
- [#589] 将 string.stringnormalize 移动到 string.normalize。 (robschley)
- [#620] 将 git 添加为有效的 URL 协议。 (elinw)
此提交将 git 添加为使用字段验证的 url 规则时接受的协议。
- [#577] 重构 JDatabaseMySQLi + 单元测试 (mbabker)
我采取了激进的措施,重构了 JDatabaseMySQLi 以扩展 JDatabaseMySQL。由于这些驱动程序以非常相似的方式构建查询,并且每个 MySQLi 类都扩展了 MySQL 伴侣类,因此这有助于消除重复代码,并允许将重点完全放在驱动程序差异(主要是在调用 mysqli_ 与 mysql_ 函数)上。
除了此更改之外,我还为 JDatabaseMySQLi 实现了一组测试,这些测试与 JDatabaseMySQL 的测试性质类似。在已创建的少数测试中,以这种方式重构 mysqli 驱动程序没有出现明显的重大问题。
最后,JDatabaseMySQL::getTableKeys 中的错误已得到修复,因为该错误错误地引用了
$this->db->quoteName
(此处不需要 db 引用)。 - [#613] 更新 JHtmlForm::token() 测试 (mbabker)
更新测试以模拟会话,因为本地单元测试失败,并在测试中使用 getFormToken。
- [#614] JTable 审查和测试 (mbabker)
我已对 JTable 及其类进行了一些审查,并开始为其实现测试。此处的更改包括
- 缺失
jimport('joomla.database.table');
在一些文件中 - 查询转换为 JDatabaseQuery
- 基于当前 CMS 示例数据创建/更新资产、类别、内容和扩展表用于 CSV
- JTableNested 测试已更新,以适应更改的数据集
- JTableContent 和 JTableExtension 的测试已实现
- 所有测试框架都已重新生成,以确保与测试类同步(我将很快进行更多测试,请注意测试中的
@covers
docblock 来自 PHPUnit 3.6.4 的phpunit --skeleton-test
命令
- 缺失
- [#618] 代码样式:修复 FileCommentsSniff (elkuku)
此嗅探器会产生错误的信息,例如:
@foo tag comment indented incorrectly; expected 4 spaces but found 4'
上次出现此问题是在 #603 中,正如 Rouven 在 评论中所述。
- [#603] 用更通用的解决方案替换 JFormFieldEditors。 (realityking)
在将验证码补丁集成到当前主干时,我发现了这个小宝石。
- [#604] 在平台中使用更少的已弃用函数 (realityking)
这应该成为摆脱已弃用内容的开始。这将处理以下三个函数:JError:isError() JUtility::getHash() JUtility::getToken()
第一个可以用 instanceof 运算符替换,另外两个只是移到了另一个类中。
- [#615] 修复文档以与 publican 协同工作 (ianmacl)
Publican 不链接链接格式。此更改修复了这些问题,以便文档可以构建。
- [#607] CMS 2.5 的批处理工作 (mbabker)
为了与 joomla/joomla-cms#29 协同工作,此拉取请求合并了此功能改进的所有库工作。
库中涵盖的具体内容
JControllerForm: - batch() - 添加逻辑以构建上下文数组以改进 ACL 权限检查,将 JRequest 调用转换为 JInput
JModelAdmin: - batch() - 处理接收和转发上下文数组到所有批量函数 - batchAccess() - 重写以检查正在编辑的项目的编辑权限(以前没有 ACL 检查) - batchCopy() - 将 JRequest 转换为 JInput,创建权限检查现在查看正在复制项目的类别权限 - batchLanguage() - 重写以检查正在编辑的项目的编辑权限(以前没有 ACL 检查) - batchMove() - 将 JRequest 转换为 JInput,创建权限检查现在查看正在复制项目的类别权限,编辑权限检查使用上下文数组检查项目权限
JHtmlBatch: - user() - 添加用户小部件以显示用户列表
JHtmlUser: - 添加此类以显示组或用户列表
为 JHtmlBatch::user() 和 JHtmlUser 方法添加了测试。
- [#611] 代码风格:修改 FunctionCallSignatureSniff (elkuku)
修改 FunctionCallSignatureSniff 以允许双引号作为多行函数调用中一行上的最后一个/第一个内容。
这将删除 #608 上两个“看起来并不糟糕”的错误;)
它将允许以下构造
php <?php $foo = bar(" baz ");
似乎那些 JS 人喜欢这种风格。 - [#595] Joomla CMS [#27046] 用户组同名问题。 (chdemko)
参见 http://joomlacode.org/gf/project/joomla/tracker/?action=TrackerItemEdit&tracker_item_id=27046
- [#588] 将 filterinput.php 和 filteroutput.php 文件重命名以适合自动加载器。 (chdemko)
新的自动加载器允许重命名这些文件
- [#596] 修复一些 PHPMD 警告 (realityking)
并弃用一些东西,以便它们在不久的将来得到修复。
- [#602] 错误修复:更正 language.php 中的错误 (chdemko)
load 函数没有返回真实值,而是始终返回 true。
- [#606] 文档:更正 JForm 的 getLabel 文档块 (elinw)
更正 getLabel 方法的文档块。
- [#591] Joomla CMS [#27284] 修复严格标准警告 (elkuku)
- [#601] 重新更正 PHP 版本信息 (elkuku)
PHP 版本信息中的一个小故障;)
- [#600] 代码风格:修复多余的制表符 (elkuku)
这将删除一个制表符——不多不少……
这是 joomla-jenkins 在所有拉取请求中显示的“1 个错误”。
- [#598] 修复损坏的单元测试。 (realityking)
不幸的是,拉取请求 #583 因为我忽略了一行而破坏了单元测试。
- [#594] 修复错误的拉取请求 #584 (nikosdion)
我提交的“JPath::check() 在 chroot 监狱中运行时抛出错误 20”的代码是错误的。这次我在写代码更改之前喝了足够的咖啡,它确实有效:)
- [#558] Joomla CMS [#25431] JUserHelper::getProfile 不会返回个人资料 (gnomeontherun)
修复 #343
它现在返回为给定用户存储的个人资料字段数据的数组。
另请参见 http://joomlacode.org/gf/project/joomla/tracker/%3Faction%3DTrackerItemEdit%26tracker_item_id%3D20025/?action=TrackerItemEdit&tracker_item_id=25431
- [#593] 修复 build.xml (mbabker)
我可能在 build.xml 中不小心遗漏了一个逗号而意外地破坏了 phpcs 目标,因此 @elkuku 指出了这一点。哎呀。
- [#590] 文档 - 添加关于 JLog 类的章节 (eddieajau)
- [#584] JPath::check() 在 chroot 监狱中运行时抛出错误 20 (nikosdion)
当 JPATH_ROOT 为空字符串时(即我们在 chroot 监狱中运行)JPath::check() 始终会引发错误 20(超出范围窥探)。根据 chroot 监狱的定义,在这种情况下我们可以超出范围窥探。因此,此检查应始终成功。因此,建议的更改。
- [#576] 更新 docs 目录 (mbabker)
- 一些语法检查
- 更新 CHANGELOG
- [#583] 更改加载 core.js 的方式。 (realityking)
由于 core.js 始终需要 MooTools,因此我们不需要能够在没有 MooTools 的情况下加载它。
- [#582] 将 MooTools 更新到 1.4.2 版。 (realityking)
- [#586] 添加 JWebGlobalMock。 (robschley)
更改 getMock*() 方法使其可公开访问。
- [#585] 在较新的类中添加缺失的类型提示。 (realityking)
为较新的类添加了缺少的类型提示。
检查旧类是否有意义,还是我应该等到 11.4 发布?
- [#566] 消除使用工具栏时对管理员应用程序的检查。 (elinw)
- [#562] 将媒体包重命名为图像以利用自动加载器。 (realityking)
这是新 API,可能在使用它之前移动它是个好主意。
- [#581] 在基本库文件上进行代码嗅探 (mbabker)
代码嗅探器不会直接检查 /libraries 下的文件。在本地运行代码嗅探器时,我在那里发现了一些错误。这会清理它们并更改 build.xml 文件以在 phpcs 任务期间检查这些文件。
- [#580] 修复变量范围检查样式警告 (eddieajau)
- [#579] 修复缺失的方法范围声明。 (eddieajau)
修复了新的嗅探器生成的新的警告。
- [#555] JHtmlForm 的单元测试 (ianmacl)
- [#556] Joomla! CMS [#27196] 无法再次添加已删除的内容语言 (mbabker)
从 CMS 修复 - http://joomlacode.org/gf/project/joomla/tracker/?action=TrackerItemEdit&tracker_id=8103&tracker_item_id=27196
- [#575] 代码风格:添加 MemberVarScope 和 MethodScope 嗅探 (elkuku)
这确保成员变量和类方法具有范围修饰符。原始嗅探器在违规时会生成错误。我已经将其更改为警告。
这将生成 317 个新的警告。
- [#574] 代码风格:嗅探成员变量间距 (elkuku)
这确保成员变量的正确间距。
- [#573] 代码风格:嗅探强制转换间距 (elkuku)
这确保强制转换不包含空格,并且后面跟一个空格。
- [#571] 代码风格:嗅探连接 (elkuku)
这修复了连接运算符嗅探器中的一个小错误,以及一些被转义的违规——直到现在;)
- [#569] 文档 - 变量类型 (mbabker)
为了更好地帮助开发人员,我开始在 PhpStorm 上审查“未定义的方法”检查,并尝试更新文档块以更准确地反映每个参数类型是什么以及返回什么。这些更改中的大多数基于文档块中的注释或基于返回的实例类型。
- [#578] 准备发布手册 - 用于 Publican (ianmacl)
此拉取请求更改了平台文档手册的结构,以便它们与 Publican 协同工作,并且更容易在线发布。
- [#568] 这是为了修复错误跟踪器 #26877 上报告的错误 (jmarriott)
http://joomlacode.org/gf/project/joomla/tracker/?action=TrackerItemEdit&tracker_item_id=26877
错误和修复由 Hermod Opstvedt 提交到错误跟踪器
- [#560] 删除针对多年前已在 PHP 中修复的安全问题的修复。 (realityking)
PHP GLOBALS 注入错误:http://www.hardened-php.net/globals-problem PHP Zend_Hash_Del_Key_Or_Index 错误:http://securitytracker.com/id/1016649
- [#559] 添加 Github 包的文档。 (ianmacl)
关于如何使用 Github 包的简短说明。
- [#553] 仅输出一个针对 JRequest 的弃用警告。 (realityking)
如果设置了 _JREQUEST_NO_CLEAN,则不要加载 JRequest。
115 个拉取请求。
- realityking:32
- mbabker:13
- elinw:13
- elkuku:11
- chdemko:9
- ianmacl:8
- eddieajau:5
- pasamio:2
- robschley:2
- nikosdion:2
- radiant-tech:2
- infograf768:2
- sseshachala:2
- hooduku:2
- gpongelli:1
- gnomeontherun:1
- WebMechanic:1
- jmarriott:1
- compojoom:1
- fastslack:1
- vietvh:1
- signotorez:1
- dextercowley:1
- thinkeryvin:1
合并者
- eddieajau:42
- LouisLandry:28
- chdemko:25
- robschley:10
- ianmacl:8
- pasamio:2