0

我继承了一个 opencart 1.5.5.1 站点,并且对 cms 完全陌生。据我所知,它是由一位称职的开发人员构建的,然后经过了一个 hack-it-up 开发团队,然后交给了​​我。所以,我真的不知道会发生什么。

我目前有一个在左侧边栏中呈现的模块,但我不知道它为什么在那里呈现。我可以在与此“模块”完全相关的文件堆栈中找到的唯一文件是目录目录结构中的单个模板文件,称为:

/catalog/view/theme/mytheme/template/module/affiliate_profile_select.tpl

站点上所有其他已安装的模块似乎都有许多其他文件与之关联,其位置已通过我在创建 opencart 模块方面所做的研究得到验证:即,以下目录中的模块文件:

/catalog/controller/module/
/catalog/language/english/module/
/catalog/model/module/
/catalog/view/theme/mytheme/template/module/
/admin/controller/module/
/admin/language/english/module/
/admin/model/module/
/admin/view/template/module/

不过,从我能够找到的内容来看,这个单个文件 (affiliate_profile_select.tpl) 是文件堆栈中与此模块关联的唯一文件。

我在任何 vqmod php 或 xml 文件中都找不到与此模块和/或文件相关的任何内容。

我在管理区域中找不到与此模块相关的任何内容。我已经尝试在所有已安装的模块中搜索其他通用标识符(截面视图呈现在大多数未登录页面的左侧栏的最顶部,所以我正在寻找“左侧”的布局位置侧边栏”和位置小于 2),但没有找到任何东西。

然而,该部分显然是在网站上呈现的,所以它必须在某个地方。事实上,它在两个地方渲染。它也位于主页移动视图的顶部内容部分。

现在几乎感觉它是一个已经编写、安装和配置的模块,然后有人删除了除与该模块相关的文件之外的所有文件。这样的情况会发生吗?

有没有办法通过查询数据库来追踪这个问题?或者模板包含显然是在某个文件中的某个地方,我只需要找到它?更复杂的是,托管公司不允许使用控制台远程登录(据我所知)。否则,我会为文件名运行 grep,以防有人刚刚在某处抛出了“include()”语句。到目前为止,我唯一检查过类似内容的地方是左侧边栏模板文件:

/catalog/view/theme/default/template/common/column_left.tpl

但这只是一个简单的 for 循环,它与模块视图相呼应。

任何关于我如何能够追踪这个问题的帮助或指导都会有很大的帮助。

4

1 回答 1

0

在 Opencart 中,.tpl(模板)文件总是由控制器调用,正如您可能猜到的那样,它们位于 .tpl 中catalog/controller/。如果它是一个模块(显示在左侧边栏位置,它可能会在 中catalog/controller/module/。首要任务是找到调用您所指的模板的控制器。我可能会先进入 shell 并做一些事情像网站的 docroot 中的这样:

grep -r affiliate_profile_select .

从那里您应该能够找到相关的模块控制器和涉及的任何其他逻辑。有时人们使用 vQmod 将某些内容添加到预先存在的模块中,以便可能解释缺少其他类似名称的文件。

于 2016-04-17T04:18:17.503 回答