Joomla Google Summer of Code 2022

我是 Khushi Rauniyar。我是一名 Google Summer of Code 2022 学生,我有机会为 Joomla 的引导式游览项目做出贡献。我已经完成了 GSoC’22 项目的第一阶段,到目前为止,这是一个非常棒的经历。

关于 Joomla

Joomla! 是一个多次获奖的内容管理系统(CMS),允许您构建强大的在线应用程序并发布网页内容。Joomla! 是开源的,这是它最好的部分。它基于一个 MVC(模型-视图-控制器)的 Web 应用程序框架,可以独立于 CMS 使用。它有超过 6000+ 的扩展和超过 1.34 亿次下载。

关于项目

Joomla! 将用户的便利性放在其优先事项列表上,而引导式游览绝对会使其用户更容易使用 Joomla!。使用 Joomla! 的用户会偏好基本帮助文本和界面,而不是为执行任何操作阅读厚重的文档。尽管文档中已经以简单的方式详细说明,但用户必须访问一个单独的链接以查看文档。如果用户可以在同一页面上获取这些信息,而不需要任何重定向,并且以一些 iframe 的形式显示,那将会更加方便。

如果这是一个完整的点击路径游览,那将会更好,这将更专业、更好地提高用户的便利性,并且用户可以根据需求创建自定义游览。

 

 

 

第 1 周

本周进行的讨论

  • 讨论了引导式游览项目的优先级和可交付成果。
  • 讨论了项目的时间线和范围。
  • 讨论了项目仓库的设置。
  • 与管理员 Benjamin 以及导师 Jatin 和 Freyam 通过 G-Meet 召开会议。

本周完成的任务

  • 在我的本地机器上完成了项目的设置。
  • 在项目中引入了Joomla编码标准(PHP CodeSniffer)。
  • 参考SoC项目,为引导式游览创建基础结构。
  • 创建了MVC组件,在模型、视图和控制器中添加了文件。
  • 为引导式游览创建了SQL文件。
  • 为引导式游览创建了插件,并为“在Joomla后台创建引导式游览”创建了一个基本游览。
  • 为下周的任务设定了优先级。

拉取请求: https://github.com/joomla-projects/gsoc22_guided-tour/pull/1

第2周

本周完成的任务

  • 修复了每个游览步骤部分的“Save2new”功能。
  • 修复了步骤部分中的“另存为副本”按钮,该按钮之前引发了错误。
  • 了解了引导式游览的脚本文件。
  • 调试了脚本文件的代码。
  • 修复了一个主要代码问题,即每次启动游览时,都会在每游览的第一步结束并显示完成按钮(即使该游览有10个步骤)。
  • 创建了一个包含所有步骤的工作单页游览。
  • 与原PR中的原始脚本相比,脚本文件的主要更改是
    • 从第一步中移除了后退按钮,因为第一步不需要后退按钮。
    • 之前,即使游览包含10个步骤,游览在第二步后也会显示完成按钮。所以我解决了这个问题,现在它工作正常。
    • 移除了后退按钮的多余代码。
  • 为下周的任务设定了优先级。

拉取请求: https://github.com/joomla-projects/gsoc22_guided-tour/pull/3

第3周

本周完成的任务

  • 调试了代码,并解决了之前步骤URL无法工作的问题。
  • 与导师Freyam进行了G-Meets,在那里我帮助他设置了Joomla!的引导式游览项目,以便他可以开始项目并开始测试。
  • 通过使用 url: obj[mainID].steps[index].url 在tour.addStep中附加了步骤URL,并为游览的每个步骤获取了步骤URL。
  • 使用了会话存储和通过window.location.href进行URL重定向。
  • 实现了引导式游览功能的一次性URL重定向。
  • 如果在步骤之间刷新页面,则使用会话存储修复了从刷新点开始的剩余步骤的正常流程。
  • 实现了在每游览的最后一步显示完成按钮的代码,即使页面被刷新。
  • 解决了以下问题:如果点击任何游览并开始游览,那么(如果是多页游览)在游览结束后返回主页面或创建其他游览后返回主页面,所有游览都被提及的页面的相对URL从option=com_guidedtours变更为option=com_guidedtours&view=tours,这导致点击该游览两次时游览会启动。因此,我通过将游览页面的相对URL永久更改为option=com_guidedtours&view=tours来修复了此问题。
  • 为了更好的用户界面,在extensions.sql中进行了微小更改。
  • 将每个游览和步骤的URL更改为本地主机URL,以确保在启动任何游览时步骤正常工作。
  • 正在处理引导式游览的多页重定向。
  • 为下周的任务设定了优先级。

拉取请求: https://github.com/joomla-projects/gsoc22_guided-tour/pull/3

第4周

本周完成的任务

  • 编写了即使我们在任何游览中删除一些步骤也能使游览步骤正常工作的代码。
  • 使脚本文件代码更加通用,适用于所有游览。
  • 移除了冗余代码,并创建了可在相同代码出现的地方重复使用的函数。
  • 模块化和重写了整个脚本文件。
  • 优化并从脚本文件中移除了未使用的代码,将代码行数从218行减少到162行。
  • 解决了步进ID问题,我获取了步骤和导览的ID,然后使用其索引进行遍历。
  • 为引导式导览正确地创建了多页面重定向。
  • 编写了代码,使导览可以从任何页面开始工作,即如果我们从Joomla!的任何页面开始“如何制作文章”导览,它将被重定向到文章页面并开始导览。(现在如果导览存在于其他页面上,我们不需要点击两次来开始导览)。
  • 在代码中为每个导览的覆盖选项设置为永久开启。
  • 处理了导览页面的URL,并通过修改HtmlView.php文件中的内容,将URL修改为option=com_guidedtours&view=tours,使URL通用。
  • 与导师Jatin进行了G-Meet会议,讨论了至今为止完成的工作以及未来几周的计划,进展情况以及我遇到的问题。
  • 解决了相对URL的一个主要问题,并通过相对URL使引导式导览正常工作。
  • 从URL中移除了自动保存在URL字段中的https://,以便导览正常工作。
  • 开始为多页面制作回退按钮。
  • 为下周的任务设定了优先级。

拉取请求: https://github.com/joomla-projects/gsoc22_guided-tour/pull/3

                        https://github.com/joomla-projects/gsoc22_guided-tour/pull/4

第5周

本周完成的任务

  • 在extensions.sql中为引导式导览和引导式导览步骤表创建了表结构,适用于Postgresql。
  • 编写了在Postgresql的extensions.sql中导入引导式导览和引导式导览步骤表数据的查询语句。
  • 通过修改Postgresql的base.sql文件,为extensions和assets表导入了引导式导览的数据。
  • 优化了适用于Postgresql和MySql的更新SQL脚本。
  • 在Postgresql的更新SQL脚本中加入了URL参数。
  • 修复了存档问题,之前在存档任何导览时,它显示的是COM_GUIDEDTOURS_N_ITEMS_ARCHIVED,而不是字符串。
  • 处理了引导式导览弹出窗口的回退按钮(这是多页面功能的一个主要问题),并使多页面的回退按钮生效。
  • 从所有地方永久移除了覆盖选项字段。
  • 为下周的任务设定了优先级。

拉取请求: https://github.com/joomla-projects/gsoc22_guided-tour/pull/

相关链接



项目概览: https://github.com/khu5h1/Google-Summer-of-Code-2022

项目描述: https://summerofcode.withgoogle.com/programs/2022/projects/XJwp022t

项目仓库链接: https://github.com/joomla-projects/gsoc22_guided-tour

到目前为止,我在Joomla!的工作旅程非常精彩,我希望引导式导览项目将对Joomla!用户有所帮助。我想感谢Benjamin TrenkleChristiane Maier-StadtherrRichard Fath 以及我的导师们给予的支持和指导。

Khushi Rauniyar