加载不带模板的opencart(或在模板之外使用它的某些部分)


Load opencart without the template (or use some parts of it outside the template)

我正在开发一个最初没有创建的网站。它由两部分组成:演示网站和电子商务部分的OpenCart。

我需要使用OpenCart的一些功能,特别是访问演示网站(而不是OpenCart模板)中的主要工具(购物车、购物车中物品的价格…)。

所以我想知道是否有任何方法可以加载OpenCart及其功能,而不用在我不需要的时候加载模板。

我知道这听起来可能违反直觉,可能会增加页面加载时间,但考虑到我必须这样做的时间和我缺乏的OpenCart经验,我没有太多选择。

编辑:好的,所以我在打开的购物车的index.php文件的底部添加了这个:

if($_GET['module'] == 'website') { 
    include('website/index.php'); 
} else { 
    // Output 
    $response->output(); 
} 

所以理论上,OpenCart是加载到我的网站上的。但我的猜测是,output()调用模板AND它的控制器,所以我无法访问我需要的变量:$login、$text_login、$cart、$checkout。。。工具箱变量。我想我需要调用控制器,但我不知道什么控制器用于什么变量。。。如果你有个主意,我真的很感激。

谢谢,Antoine

这将需要相当多的工作。您基本上需要在目录端复制index.php文件,而不是运行最后一段代码,即这个

// Maintenance Mode
$controller->addPreAction(new Action('common/maintenance'));
// Router
if (isset($request->get['route'])) {
    $action = new Action($request->get['route']);
} else {
    $action = new Action('common/home');
}
// Dispatch
$controller->dispatch($action, new Action('error/not_found'));

然后您可以设置自己的操作来显示代码等,或者直接加载必要的类