在创建模块时,我希望使用$setting数组
<?php
class ControllerModuleMymodule extends Controller {
protected function index($setting) {
...但它是空的。我知道它是从管理员那里得到的,但是怎么填呢?
发布于 2014-10-26 07:47:29
(1.5.X答案)
$setting由mymodule_module值自动填充。如果你看一下OC附带的一些预制模块,你就会看到一个这样的例子。例如,account模块。您将看到可以添加多个模块并对它们进行定位。每个参数的设置都是一个数组,比如account_module[0]['layout_id']和account_module[0]['position']。OpenCart加载account_module设置并反序列化设置数组,然后通过for循环依次将每个设置传递给控制器。如果您查看一个模块可能所在位置的源代码,例如/catalog/controller/common/column_left.php文件,就可以看到这一点。
$extensions = $this->model_setting_extension->getExtensions('module');
foreach ($extensions as $extension) {
// Loads the settings for all of this extensions modules and unserializes (this is done behind the scenes of the get() method)
$modules = $this->config->get($extension['code'] . '_module');
if ($modules) {
// Loop for each module to be rendered (checking it's valid for this particular position)
foreach ($modules as $module) {
if ($module['layout_id'] == $layout_id && $module['position'] == 'column_left' && $module['status']) {
$module_data[] = array(
'code' => $extension['code'],
'setting' => $module, // This data is passed to your controller in subsequent code
'sort_order' => $module['sort_order']
);
}
}
}
}https://stackoverflow.com/questions/26568204
复制相似问题