【问题标题】:Using a core Joomla component as a base for a custom component使用核心 Joomla 组件作为自定义组件的基础
【发布时间】:2013-10-01 19:34:40
【问题描述】:

我正在尝试将构成 Weblinks 核心组件的所有必要文件从我的 Joomla 2.5 安装中提取到一个单独的目录中,以便我可以使用它制作带有附加字段的自定义组件。

我的问题是:

  1. 我似乎无法弄清楚需要拉出所有文件才能成功重新安装自定义组件
  2. 我似乎无法弄清楚需要在自定义组件中进行的所有重命名,以确保在我重新安装它时它不会损坏核心安装。

以前有人做过吗?我研究了从头开始创建自定义组件,对于非 Web 开发人员来说,这似乎工作量太大。为了添加几个字段,这似乎也有点过头了。

【问题讨论】:

  • 我建议使用类似免费版本的软件来获取可安装文件:notwebdesign.com/joomla-component-creator。然后使用核心组件中的代码对其进行自定义。正确命名所有内容可能非常棘手。

标签: php web joomla


【解决方案1】:

您可以使用joomla的官方tutorials轻松创建新组件。

首先您必须确定您的需求,例如您的组件所需的前端和后端或 sql 表等。

下一步是确定与 Joomla 官方教程相匹配的需求,您可以从本系列部分的文章中轻松获得这些教程。

在该教程结束时,您可以下载com_helloworld 组件。

如果您使用像 Dreamweaver 这样的 IDE,只需解压缩包并从文件夹结构中重命名所有出现的 hellowolrd,只需使用文件夹搜索选项即可实现此目的。

这会将您重命名为完整的 com_helloworld 文件夹,其中包含 helloword 文本。

最后一步是重命名文件中所有出现的 helloworld,您已设置为组件的新名称。还有文件夹

然后压缩包,任务完成!

希望这有意义..

【讨论】:

    【解决方案2】:

    按照组件清单文件(administrator/components/com_weblinks 中的 xml)的要求,制作组件文件夹结构的干净副本(非根目录)。

    这应该是可安装且完整的。

    如果您使用的是 Linux 或 OSX,现在发出以下命令;如果你在 Windows 上,或者下载 cygwin

    grep -rl oldname . |xargs sed -i -e 's/oldname/newname/g'
    grep -rl Oldname . |xargs sed -i -e 's/Oldname/Newname/g'
    grep -rl OLDNAME . |xargs sed -i -e 's/OLDNAME/NEWNAME/g'
    rename 's/oldname/newname/g' *
    

    确保您重命名了所有出现:

    grep -rli oldname .
    

    如果什么都没发生,你就可以走了;否则,只需 grep 和管道到 sed,如上所示。确保你从不使用不区分大小写的替换:那肯定会破坏你的代码。

    手动校对 .xml 清单。

    重新打包,然后尝试安装。阅读任何错误消息(如果不清楚,则阅读错误日志),制作可安装包应该没有问题)。重复安装不会造成损坏(除非您在 .xml 文件中出现命名错误)。

    PS:这回答了您的问题,但也许@David-Frisch 的建议在您的情况下可能更容易和更有效,您可以以简洁的风格设置所有组件结构,前端编辑功能几乎没有冗余,但总体来说是一个很好的开始。他们搬到了new site

    【讨论】:

    • 我觉得这条路绝对是我想走的路,但我可能过早地接受了。我现在遇到未找到视图错误的问题:View not found [name, type, prefix]: c4meweblinks, html, c4meweblinksView。任何想法?我查看了有关命名约定的 Joomla 文档,一切看起来都不错。
    • 虽然我从未验证过这一点,但有人指出,视图名称中的数字会导致问题(将 c4me 重命名为 cforme);除此之外,视图名称必须与其文件夹和组件相对应,但我想你没看错。
    • 原来这更多地与核心网络链接组件中的一个怪癖有关。该组件假定您的复数管理视图将与该组件同名。在控制器中调用parent::display(); 之前先处理JFactory::getApplication()->input->set('view', $view); 修复了它。我猜它从来都不是用来定制的。
    猜你喜欢
    • 2011-11-04
    • 1970-01-01
    • 2012-11-25
    • 2013-03-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多