Merge pull request #509 from marc1706/ticket/508
[ticket/508] Only execute portal once when accessed via domain only
This commit is contained in:
@@ -83,6 +83,9 @@ class main
|
|||||||
/** @var int Allowed columns */
|
/** @var int Allowed columns */
|
||||||
protected $allowed_columns;
|
protected $allowed_columns;
|
||||||
|
|
||||||
|
/** @var bool Portal active flag */
|
||||||
|
protected $portal_active = false;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor
|
* Constructor
|
||||||
* NOTE: The parameters of this method must match in order and type with
|
* NOTE: The parameters of this method must match in order and type with
|
||||||
@@ -133,8 +136,17 @@ class main
|
|||||||
*/
|
*/
|
||||||
public function handle($columns = array())
|
public function handle($columns = array())
|
||||||
{
|
{
|
||||||
|
// Do not run portal if it's already active
|
||||||
|
if ($this->portal_active)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
$this->controller_helper->run_initial_tasks();
|
$this->controller_helper->run_initial_tasks();
|
||||||
|
|
||||||
|
// Set portal active
|
||||||
|
$this->portal_active = true;
|
||||||
|
|
||||||
// Check if we should limit the columns to display
|
// Check if we should limit the columns to display
|
||||||
$this->set_allowed_columns($columns);
|
$this->set_allowed_columns($columns);
|
||||||
|
|
||||||
|
|||||||
@@ -58,4 +58,9 @@ class template
|
|||||||
{
|
{
|
||||||
$this->test_case->assertSame($expected, $this->data[$row]);
|
$this->test_case->assertSame($expected, $this->data[$row]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function delete_var($key)
|
||||||
|
{
|
||||||
|
unset($this->data[$key]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -91,4 +91,13 @@ class main_test extends \board3\portal\tests\testframework\database_test_case
|
|||||||
$this->assertNull($this->controller_main->handle(array('left' => 1)));
|
$this->assertNull($this->controller_main->handle(array('left' => 1)));
|
||||||
$this->template->assert_same(true, 'S_PORTAL_ALL');
|
$this->template->assert_same(true, 'S_PORTAL_ALL');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function test_display_all_pages_twice()
|
||||||
|
{
|
||||||
|
$this->assertNull($this->controller_main->handle(array('left' => 1)));
|
||||||
|
$this->template->assert_same(true, 'S_PORTAL_ALL');
|
||||||
|
$this->template->delete_var('S_PORTAL_ALL');
|
||||||
|
$this->assertNull($this->controller_main->handle(array('left' => 1)));
|
||||||
|
$this->template->assert_same(null, 'S_PORTAL_ALL');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user