Joomla Google Summer of Code 2019

Google 夏季代码项目中的 Joomla! 项目 新前端模板:页面构建器 已经结束,我们,两位学生 Franciska Periša 和 Nitish Bahl,在导师 Anurag Kumar、Benjamin Trenkle 和 Viviana Menzel 的帮助下度过了美好的时光。现在我们自豪地展示我们的成果,我们第三次也是最后一次编码阶段的进展以及我们自己的项目体验。

成果

在这三个月里,我们为 Joomla! 4 创建了新的页面构建器。它包括编辑器和在新前端模板 Apodis 中创建的布局的前端渲染,以及一个 RenderHelper 类。我们将元素 Container、Grid、Columns 和 Module Positions 作为插件包含在内,这些插件是可配置的并且可以(去)激活。页面构建器作为 Joomla 表单字段实现,可以添加到每个 templateDetails.xml 中,这在 Apodis 中可以看到。

编辑器

布局本身在编辑器中创建。它可以在模板的站点模板样式中找到,该模板集成了页面构建器字段。在这里,通过模态窗口添加元素,并且可以通过拖放功能移动。每个元素都有其配置,可以在滑动边栏中编辑。元素可以拥有其他元素作为子元素,这取决于元素本身。

内容和消息的形式作为组件在顶部有单独的按钮,可以拖动到所需的元素中并再次移除。

当前可用的元素有

  • 容器:像在 Bootstrap 中一样,容器使内容居中
  • 网格:可能是布局中最重要的元素。我们在这上面投入了很多工作,以处理列的方式
  • :网格的一部分。大小、偏移量和顺序灵活。
  • 模块位置:用于显示Joomla内容,不顾组件。

为了使模板在每种设备上都能响应,编辑器在顶部提供了切换按钮,用于更改可用宽度。当列宽发生变化时,它仅影响当前选定的设备和以上。这种行为也受到了Bootstrap的启发。

pagebuilder 3 1

Apodis

为了使元素成为有效的HTML,前端需要为页面渲染元素。为了直接实现这样的前端,用户可以在后台激活新创建的前端模板Apodis。可以更改某些参数(如背景颜色),以赋予个性风格。

pagebuilder 3 2

进度

第三阶段的编码工作重点在于解决几个问题。

  • 修复错误
  • 在行末调整列大小
  • 元素排序
  • 组件和消息作为特殊元素
  • 插件封装
  • 设备切换和相关布局
  • 一致且更直观的用户界面
  • 从com_template功能转换为自己的表单字段。

未来计划

基本功能已经可以工作,但页面构建器可以做得更多。我们学生创建了一个新的工作组,将为其做出贡献。

一些可能的任务包括

  • 增强样式,例如侧边栏
  • 模板的更多全局参数
  • 新的元素,为内容和布局提供更多可能性
  • 更轻松的模块位置选择
  • 使编辑器更独立于插件(例如,将网格的js直接写入编辑器JS中)
  • 结果的预览。

个人结论

在三个月的编码工作之后,我们花费了很多时间进行实施,这在我们的生活中占据了很大一部分。以下是每个人对项目的个人看法,我们如何体验这个项目,以及在这样的环境中工作的机会。

Nitish Bahl

上周,我们为期三个月的页面构建器编辑器和模板开发项目结束了。尽管项目可以工作,实际上你可以用它来设置页面样式和布局,以及添加模块、组件和消息,但它仍然需要一些改进和抛光,然后才能在稳定版本中发布。我们完成了最初设定的80%的目标,有些部分花费的时间比预期的要长,但总体上是一个平稳的体验,有很多东西可以提供和学习。与Franciska合作开源项目,并在我们亲爱的导师的指导下,听取建议,制定未来的行动计划,是一次愉快的经历。

Joomla团队非常支持我们,已经成立了一个工作组来继续页面构建器的工作。Franciska和我都非常兴奋能成为其中的一员,并为页面构建器的开发做出进一步贡献。

Franciska Periša

项目结束了,我仍然有动力提升页面构建器。这是一次我不希望错过的经历,在这短暂的时间里我学到了很多。不仅仅是技术话题,如Vue.js或Joomla本身,还有在一个善良和有帮助的团队中工作的经验。当然,有时在进展缓慢或功能不工作时,会感到困难和沮丧。但我对结果非常满意。老实说,我原以为项目结束时会有更多的问题和压力。

不幸的是,我们没有解决项目开始时设想的全部任务。我原以为我们会达到比一个学生更多的目标。但实际上,合并彼此的较大更改和理解外国代码是耗时的。在某个时候,当我们专注于网格时,我们浪费了很多宝贵的时间,也许本可以更好地管理。另一方面,我们之间的工作分配非常顺利,我以为我们会更多地打扰彼此,但很少出现问题。

我非常期待这个项目的下一步,希望它有一天能合并到Joomla中。因为我相信它将是一个对每个人开发模板都有帮助的工具(就像我一样)。