1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-07-31 05:50:42 +02:00

[ticket/13740] Move installer files to phpbb/install directory

PHPBB3-13740
This commit is contained in:
CHItA
2015-06-13 15:35:19 +02:00
committed by Mate Bartus
parent db4cfa7df6
commit 3dcaa48850
56 changed files with 0 additions and 3 deletions

View File

@@ -0,0 +1,50 @@
<?php
/**
*
* This file is part of the phpBB Forum Software package.
*
* @copyright (c) phpBB Limited <https://www.phpbb.com>
* @license GNU General Public License, version 2 (GPL-2.0)
*
* For full copyright and license information, please see
* the docs/CREDITS.txt file.
*
*/
namespace phpbb\install\helper\navigation;
class install_navigation implements navigation_interface
{
public function get()
{
return array(
'install' => array(
'label' => 'INSTALL',
'route' => 'phpbb_installer_install',
'order' => 1,
array(
'introduction' => array(
'label' => 'INTRODUCTION_TITLE',
'stage' => true,
'order' => 0,
),
'requirements' => array(
'label' => 'STAGE_REQUIREMENTS',
'stage' => true,
'order' => 1,
),
'obtain_data' => array(
'label' => 'STAGE_OBTAIN_DATA',
'stage' => true,
'order' => 2,
),
'install' => array(
'label' => 'STAGE_INSTALL',
'stage' => true,
'order' => 3,
),
),
),
);
}
}

View File

@@ -0,0 +1,45 @@
<?php
/**
*
* This file is part of the phpBB Forum Software package.
*
* @copyright (c) phpBB Limited <https://www.phpbb.com>
* @license GNU General Public License, version 2 (GPL-2.0)
*
* For full copyright and license information, please see
* the docs/CREDITS.txt file.
*
*/
namespace phpbb\install\helper\navigation;
class main_navigation implements navigation_interface
{
public function get()
{
return array(
'overview' => array(
'label' => 'MENU_OVERVIEW',
'route' => 'phpbb_installer_index',
'order' => 0,
array(
'introduction' => array(
'label' => 'MENU_INTRO',
'route' => 'phpbb_installer_index',
'order' => 0,
),
'support' => array(
'label' => 'MENU_SUPPORT',
'route' => 'phpbb_installer_support',
'order' => 1,
),
'license' => array(
'label' => 'MENU_LICENSE',
'route' => 'phpbb_installer_license',
'order' => 2,
),
),
),
);
}
}

View File

@@ -0,0 +1,43 @@
<?php
/**
*
* This file is part of the phpBB Forum Software package.
*
* @copyright (c) phpBB Limited <https://www.phpbb.com>
* @license GNU General Public License, version 2 (GPL-2.0)
*
* For full copyright and license information, please see
* the docs/CREDITS.txt file.
*
*/
namespace phpbb\install\helper\navigation;
/**
* Interface for installer's navigation defining services
*/
interface navigation_interface
{
/**
* Returns an array with the navigation items
*
* The returned array should have the following format:
* <code>
* array(
* 'parent_nav_name' => array(
* 'nav_name' => array(
* 'label' => 'MY_MENU',
* 'route' => 'phpbb_route_name',
* )
* )
* )
* </code>
*
* Navigation item setting options:
* - label: The language variable name
* - route: Name of the route which it is belongs to
*
* @return array
*/
public function get();
}

View File

@@ -0,0 +1,115 @@
<?php
/**
*
* This file is part of the phpBB Forum Software package.
*
* @copyright (c) phpBB Limited <https://www.phpbb.com>
* @license GNU General Public License, version 2 (GPL-2.0)
*
* For full copyright and license information, please see
* the docs/CREDITS.txt file.
*
*/
namespace phpbb\install\helper\navigation;
use phpbb\di\service_collection;
/**
* Installers navigation provider
*/
class navigation_provider
{
/**
* @var array
*/
private $menu_collection;
/**
* Constructor
*
* @param service_collection $plugins
*/
public function __construct(service_collection $plugins)
{
$this->menu_collection = array();
foreach ($plugins as $plugin => $plugin_instance)
{
$this->register($plugin_instance);
}
}
/**
* Returns navigation array
*
* @return array
*/
public function get()
{
return $this->menu_collection;
}
/**
* Registers a navigation provider's navigation items
*
* @param navigation_interface $navigation
*/
public function register(navigation_interface $navigation)
{
$nav_arry = $navigation->get();
$this->merge($nav_arry, $this->menu_collection);
}
/**
* Set a property in the navigation array
*
* @param array $nav_element Array to the navigation elem
* @param array $property_array Array with the properties to set
*/
public function set_nav_property($nav_element, $property_array)
{
$array_pointer = array();
$array_root_pointer = &$array_pointer;
foreach ($nav_element as $array_path)
{
$array_pointer[$array_path] = array();
$array_pointer = &$array_pointer[$array_path];
}
$array_pointer = $property_array;
$this->merge($array_root_pointer, $this->menu_collection);
}
/**
* Recursive array merge
*
* This function is necessary to be able to replace the options of
* already set navigation items.
*
* @param array $array_to_merge
* @param array $array_to_merge_into
*/
private function merge(&$array_to_merge, &$array_to_merge_into)
{
foreach ($array_to_merge as $key => $value)
{
if (isset($array_to_merge_into[$key]))
{
if (is_array($array_to_merge_into[$key]) && is_array($value))
{
$this->merge($value, $array_to_merge_into[$key]);
}
else
{
$array_to_merge_into[$key] = $value;
}
}
else
{
$array_to_merge_into[$key] = $value;
}
}
}
}