Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
查找在php中创建特定html字符串的文件_Php_Joomla - Fatal编程技术网

查找在php中创建特定html字符串的文件

查找在php中创建特定html字符串的文件,php,joomla,Php,Joomla,关于PHP语言,我和他们一样是新手。现在我开始学习PHP和Joomla 这就是我一直被困的地方: 我有一段html需要更改,例如,我需要从标记中删除一个类。通过在Chrome中使用inspect元素,我可以找到这段代码,甚至可以在Chrome中测试和更改它,并让它做我需要的事情 但是,我如何从这里开始在Joomla模板中定位这同一段html呢?我是否需要手动浏览每个文件并搜索字符串,或者是否有一种更聪明的方法来找出哪个文件负责将html字符串插入到站点中 从PHP本身来看,没有“简单”的方法可以

关于PHP语言,我和他们一样是新手。现在我开始学习PHP和Joomla

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


但是,我如何从这里开始在Joomla模板中定位这同一段html呢?我是否需要手动浏览每个文件并搜索字符串,或者是否有一种更聪明的方法来找出哪个文件负责将html字符串插入到站点中

从PHP本身来看,没有“简单”的方法可以做到这一点(我一直缠着一些人让
echo
重载,这样你就可以追踪哪一行响应了什么,而不必完全重构所有内容,这在处理遗留代码时非常方便)。Joomla可能有一个值得一试的模板系统,所以理想情况下,您应该利用它

如果你有时间的话,找出一个模板/文件是如何在joomla中呈现的,看看是否有一个函数一直用于执行输出——不管它是否执行最终输出——并将某种跟踪函数带到它上面。这将允许您在输出完成时跟踪输出


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

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

您的类来自一个模块,因此需要重写该模块的布局。这很简单。关于如何做到这一点

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

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


希望这有帮助

任何页面上的html都应该由该页面视图的布局文件、该页面模块的布局文件生成,或者偶尔从内容插件布局生成。我猜,如果模板中的模块文件正在创建某种复杂的模块,那么其中一些也可能来自模板中的模块文件。一些基本的html(比如body和head标记)会出现在模板索引中,但是模板一般不应该对html承担太多的责任,除了设置页面的主要区域并为其分配类之外,布局覆盖

find /joomla-root -name *.php -exec grep -l 'your search string' {} \;

我发现自己一直在这样做。它不是即时的,但比手动检查所有可能的覆盖文件、模板文件、模块、组件、插件等要快得多。

您可以使用类似grep的工具在文件之间搜索。许多IDE和编辑器也这样做,对joomla templates\themesNotepad++可以“在文件中搜索”进行一些研究:好吧,这是我所期望的,它回答了我的问题,即PHP不可能实现智能“回溯”。我想我最好的办法是从我的joomla模板文件夹的本地副本中进行文本字符串搜索。嗨!地址是www.manausforum/tammen/,我需要将左侧边栏菜单中名为“art box art-block_menu”的类更改为“art box art-block_menu”关于模板覆盖建议的一个问题:如果我只是在本地编辑模板包,然后将其作为新模板上载,这个问题是否也会得到解决?这种改变会不会持续下去?它不是来自模板。它来自模块。我会更新我的answer@Sonypackman-我已经更新了我的答案。如果您仍然需要帮助,请告诉我;)谢谢你,这对我很有帮助,谢谢你对一个新手的好意!