diff --git a/controller/main.php b/controller/main.php index ea3d9c30..88d7e459 100644 --- a/controller/main.php +++ b/controller/main.php @@ -244,7 +244,7 @@ class main return false; } - if (in_array($column, array('left', 'right')) && $this->config['board3_' . $column . '_column']) + if ($this->is_enabled_side_column($column)) { ++$this->module_count[$column]; $template_module = $module->get_template_side($row['module_id']); @@ -258,6 +258,18 @@ class main return $template_module; } + /** + * Check if column is enabled side column + * + * @param string $column Column string + * + * @return bool True if column is side column and enabled, false if not + */ + protected function is_enabled_side_column($column) + { + return in_array($column, array('left', 'right')) && ($this->config['board3_' . $column . '_column'] || $this->allowed_columns); + } + /** * Check if portal needs to redirect to index page */ @@ -302,7 +314,7 @@ class main */ protected function check_module_count($column, $config = true) { - return $this->module_count[$column] > 0 && $config; + return $this->module_count[$column] > 0 && ($config || $this->allowed_columns); } /** diff --git a/tests/unit/controller/main_test.php b/tests/unit/controller/main_test.php index 69973fd0..8f8127fe 100644 --- a/tests/unit/controller/main_test.php +++ b/tests/unit/controller/main_test.php @@ -100,4 +100,13 @@ class main_test extends \board3\portal\tests\testframework\database_test_case $this->assertNull($this->controller_main->handle(array('left' => 1))); $this->template->assert_same(null, 'S_PORTAL_ALL'); } + + public function test_is_enabled_side_column() + { + $this->assertFalse($this->controller_main->get_module_template(array(), new \board3\portal\modules\clock($this->config, $this->template))); + $this->assertNull($this->controller_main->handle(array('left' => 1))); + $this->template->assert_same(true, 'S_PORTAL_ALL'); + $this->config['board3_left_column'] = false; + $this->assertSame('clock_side.html', $this->controller_main->get_module_template(array('module_column' => 1), new \board3\portal\modules\clock($this->config, $this->template))); + } }