我继承了一个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循环,它回显模块视图。
关于我如何能够追踪这个问题的任何帮助或指示都会有很大的帮助。
答案 0 :(得分:0)
在Opencart中, .tpl (模板)文件总是由控制器调用,您可能已经猜到了catalog/controller/
。如果它是一个模块(显示在左侧边栏位置,它可能会在catalog/controller/module/
。第一个业务顺序是找到调用你所提到的模板的控制器。我可能首先进入一个shell并从网站的docroot做了类似的事情:
grep -r affiliate_profile_select .
从那里你应该能够找到相关的模块控制器和所涉及的任何其他逻辑。有时人们使用vQmod在预先存在的模块上添加一些内容,这样就可以解释缺少其他类似命名的文件。