1

关于 PHP 语言,我和他们一样绿色。现在我承担了开始学习 PHP 和 Joomla 的任务。

这就是我一直卡住的地方:我有一段需要更改的 html,例如我需要从标签中删除一个类。通过在 Chrome 中使用检查元素,我可以找到这段代码,我什至可以在 Chrome 中测试更改它并让它做我需要的事情。

但是我如何从那里移动到在 Joomla 模板中找到同一段 html 呢?我是否需要手动浏览每个文件并搜索字符串,或者是否有更智能的方法来找出负责将该 html 字符串插入站点的文件?

4

4 回答 4

1

如果要进行模板覆盖,最好的方法是这样做。

您的课程来自模块,因此您需要覆盖模块的布局。这很简单。这是有关如何执行此操作的文档。

在您的模板文件夹中,应该有一个名为“html”的文件夹。如果没有,请创建一个。完成后,创建一个与模块文件夹同名的新文件夹,因此它应该类似于mod_art-box。然后在您的 Joomla 站点的根目录中,转到modules/mod_art-box/tmpl并将 default.php 从那里复制到您之前创建的文件夹中。然后打开文件,搜索类并将其删除。

我建议进行模板覆盖的原因是因为如果扩展或 Joomla 本身被更新,那么它将覆盖您的更改,使您必须再次进行。模板覆盖不会被覆盖。

希望这可以帮助

于 2012-11-19T19:28:02.637 回答
1

从 PHP 本身来看,没有“简单”的方法来做到这一点(我一直在纠缠一些人允许重载echo- 所以你可以追踪哪一行与什么相呼应,而不必完全重构所有内容,这将非常方便处理遗留代码)。Joomla 可能有一个值得称道的模板系统,所以你最好利用它。

如果您有时间,请找出模板/文件在 joomla 中是如何呈现的,并查看是否有一个函数用于一直执行输出 - 如果它不做最后的也没关系输出 - 并搭载某种跟踪功能。这将允许您在完成后跟踪输出。

遗憾的是,没有更好的通用解决方案。如果您有一些代码要显示,我也许可以提供更具体的答案。

于 2012-11-19T19:24:01.287 回答
0

任何页面上的 html 都应该由该页面的视图的布局文件、该页面的模块的布局文件或偶尔从内容插件布局生成。如果它正在创建某种复杂的模块镶边,我想有些也可能来自模板中的模块文件。一些基本的 html(如 body 和 head 标签)将在模板索引中,但是除了设置页面的主要区域和为它们分配类之外的布局覆盖之外,模板通常不应该对 html 承担太多责任。

于 2012-11-20T01:08:17.637 回答
0
find /joomla-root -name *.php -exec grep -l 'your search string' {} \;

I find myself doing this all the time. it's not instantaneous, but it's much faster than manually checking all likely override files, template files, modules, components, plugins, etc.

于 2012-11-20T08:58:57.537 回答