Skip to content

Commit

Permalink
refactored pages handling
Browse files Browse the repository at this point in the history
- "page" parameter with slashes for subpages
- output 3 levels by default
- new syntax for pages declaration in package.yml
  • Loading branch information
gharlan committed Oct 29, 2012
1 parent 4f08497 commit d42507c
Show file tree
Hide file tree
Showing 60 changed files with 492 additions and 587 deletions.
2 changes: 1 addition & 1 deletion redaxo/src/addons/be_dashboard/config.inc.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@

// im backend und eingeloggt?
if (rex::isBackend() && rex::getUser()) {
if (rex_request('page', 'string') == 'be_dashboard') {
if (rex_be_controller::getCurrentPagePart(0) == 'be_dashboard') {
require_once dirname(__FILE__) . '/functions/function_dashboard.inc.php';
rex_extension::register('PAGE_HEADER', 'rex_a655_add_assets');
}
Expand Down
4 changes: 2 additions & 2 deletions redaxo/src/addons/be_dashboard/package.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
name: Dashboard
version: '5.0 a1'
author: Markus Staab
supportpage: www.redaxo.org/de/forum/
perm: be_dashboard[]
navigation:
title: Dashboard
perm: be_dashboard[]
block: system
11 changes: 6 additions & 5 deletions redaxo/src/addons/cronjob/package.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,12 @@ version: '5.0 alpha2'
author: 'Gregor Harlan'
supportpage: www.redaxo.org/de/forum/

name: 'translate:title'
perm: admin[]
pages:
- ['', 'translate:title']
- ['log', 'translate:log']
navigation:
title: 'translate:title'
perm: admin[]
subpages:
'': {title: 'translate:title'}
log: {title: 'translate:log'}

requires:
redaxo:
Expand Down
3 changes: 1 addition & 2 deletions redaxo/src/addons/cronjob/pages/index.inc.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,7 @@
* @package redaxo5
*/

$page = rex_request('page', 'string');
$subpage = rex_request('subpage', 'string');
$subpage = rex_be_controller::getCurrentPagePart(1);
$func = rex_request('func', 'string');
$oid = rex_request('oid', 'int');

Expand Down
8 changes: 0 additions & 8 deletions redaxo/src/addons/import_export/config.inc.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,6 @@
if (rex::isBackend() && is_object(rex::getUser())) {
rex_perm::register('import_export[export]');
rex_perm::register('import_export[import]');

$pages = array();

if (rex::getUser()->hasPerm('import_export[import]')) {
$pages[] = array('import', rex_i18n::msg('im_export_import'));
}
$pages[] = array('', rex_i18n::msg('im_export_export'));
$this->setProperty('pages', $pages);
}

if (rex_addon::get('cronjob')->isAvailable()) {
Expand Down
9 changes: 7 additions & 2 deletions redaxo/src/addons/import_export/package.yml
Original file line number Diff line number Diff line change
@@ -1,9 +1,14 @@
version: '5.0 a1'
author: 'Jan Kristinus, Markus Staab'
name: 'translate:im_export_importexport'
perm: import_export[export]
supportpage: www.redaxo.org/de/forum/

navigation:
title: 'translate:im_export_importexport'
perm: import_export[export]
subpages:
'': {title: 'translate:im_export_export'}
import: {title: 'translate:im_export_import', perm: 'import_export[import]'}

autoload:
classes:
- vendor/
8 changes: 4 additions & 4 deletions redaxo/src/addons/import_export/pages/import.inc.php
Original file line number Diff line number Diff line change
Expand Up @@ -162,8 +162,8 @@
<td>' . $file . '</td>
<td>' . $filesize . '</td>
<td>' . $filec . '</td>
<td><a href="index.php?page=import_export&amp;subpage=import&amp;function=dbimport&amp;impname=' . $file . '" title="' . rex_i18n::msg('im_export_import_file') . '" data-confirm="' . rex_i18n::msg('im_export_proceed_db_import') . '">' . rex_i18n::msg('im_export_import') . '</a></td>
<td><a href="index.php?page=import_export&amp;subpage=import&amp;function=delete&amp;impname=' . $file . '" title="' . rex_i18n::msg('im_export_delete_file') . '" data-confirm="' . rex_i18n::msg('im_export_delete') . ' ?">' . rex_i18n::msg('im_export_delete') . '</a></td>
<td><a href="' . rex_url::currentBackendPage(array('function' => 'dbimport', 'impname' => $file)) . '" title="' . rex_i18n::msg('im_export_import_file') . '" data-confirm="' . rex_i18n::msg('im_export_proceed_db_import') . '">' . rex_i18n::msg('im_export_import') . '</a></td>
<td><a href="' . rex_url::currentBackendPage(array('function' => 'delete', 'impname' => $file)) . '" title="' . rex_i18n::msg('im_export_delete_file') . '" data-confirm="' . rex_i18n::msg('im_export_delete') . ' ?">' . rex_i18n::msg('im_export_delete') . '</a></td>
</tr>
';
}
Expand Down Expand Up @@ -226,8 +226,8 @@
<td>' . $file . '</td>
<td>' . $filesize . '</td>
<td>' . $filec . '</td>
<td><a href="index.php?page=import_export&amp;subpage=import&amp;function=fileimport&amp;impname=' . $file . '" title="' . rex_i18n::msg('im_export_import_file') . '" data-confirm="' . rex_i18n::msg('im_export_proceed_file_import') . '">' . rex_i18n::msg('im_export_import') . '</a></td>
<td><a href="index.php?page=import_export&amp;subpage=import&amp;function=delete&amp;impname=' . $file . '" title="' . rex_i18n::msg('im_export_delete_file') . '" data-confirm="' . rex_i18n::msg('im_export_delete') . ' ?">' . rex_i18n::msg('im_export_delete') . '</a></td>
<td><a href="' . rex_url::currentBackendPage(array('function' => 'fileimport', 'impname' => $file)) . '" title="' . rex_i18n::msg('im_export_import_file') . '" data-confirm="' . rex_i18n::msg('im_export_proceed_file_import') . '">' . rex_i18n::msg('im_export_import') . '</a></td>
<td><a href="' . rex_url::currentBackendPage(array('function' => 'delete', 'impname' => $file)) . '" title="' . rex_i18n::msg('im_export_delete_file') . '" data-confirm="' . rex_i18n::msg('im_export_delete') . ' ?">' . rex_i18n::msg('im_export_delete') . '</a></td>
</tr>';
}
?>
Expand Down
2 changes: 1 addition & 1 deletion redaxo/src/addons/import_export/pages/index.inc.php
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
include_once rex_path::addon('import_export', 'functions/function_import_folder.inc.php');


$subpage = rex_request('subpage', 'string');
$subpage = rex_be_controller::getCurrentPagePart(1);

echo rex_view::title(rex_i18n::msg('im_export_importexport'));

Expand Down
8 changes: 4 additions & 4 deletions redaxo/src/addons/install/package.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,13 @@ version: '5.0 alpha6'
author: Gregor Harlan
supportpage: www.redaxo.org/de/forum

name: 'translate:name'
perm: admin[]
navigation:
title: 'translate:name'
perm: admin[]
block: system
prio: 80
pages:
- [settings, 'translate:settings']
subpages:
settings: {title: 'translate:settings'}

system_plugins: [core, packages]

Expand Down
47 changes: 5 additions & 42 deletions redaxo/src/addons/install/pages/index.inc.php
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
<?php

$page = rex_request('page', 'string');
$subpage = rex_request('subpage', 'string');
$subsubpage = rex_request('subsubpage', 'string');
$page = rex_be_controller::getCurrentPagePart(0);
$subpage = rex_be_controller::getCurrentPagePart(1, '');
$subsubpage = rex_be_controller::getCurrentPagePart(2);

if ($subpage != 'settings' && !$this->getPlugin($subpage)->isAvailable()) {
foreach ($this->getAvailablePlugins() as $plugin) {
header('Location: index.php?page=install&subpage=' . $plugin->getName());
header('Location: ' . rex_url::backendPage('install/' . $plugin->getName()));
exit;
}
}
Expand All @@ -16,44 +16,7 @@
if ($subpage == 'settings') {
include $this->getBasePath('pages/settings.inc.php');
} elseif ($this->getPlugin($subpage)->isAvailable()) {
$plugin = $this->getPlugin($subpage);
if ($plugin->hasProperty('subpages')) {
$listElements = array();
foreach ($plugin->getProperty('subpages') as $i => $page) {
$n = array();
$n['title'] = $page[1];
$n['href'] = 'index.php?page=install&subpage=' . $subpage . '&subsubpage=' . $page[0];
if ($page[0] == $subsubpage) {
$n['itemClasses'] = array('rex-active');
$n['linkClasses'] = array('rex-active');
}
$listElements[] = $n;
/*
$subsubpages .= sprintf(
'<li%s><a href="index.php?page=install&subpage=%s&subsubpage=%s"%s>%s</a></li>',
($page[0] == $subsubpage ? ' class="rex-active"' : ''),
$subpage,
$page[0],
($page[0] == $subsubpage ? ' class="rex-active"' : ''),
$page[1]
);
*/
}

$blocks = array();
$blocks[] = array(
'navigation' => $listElements
);

$fragment = new rex_fragment();
$fragment->setVar('type', 'tabsub', false);
$fragment->setVar('blocks', $blocks, false);
echo $fragment->parse('navigation.tpl');

// echo rex_view::toolbar('<div class="rex-content-header-2"><ul>'.$subsubpages.'</ul></div>', 'rex-content-header');
}

$plugin->includeFile('pages/index.inc.php');
$this->getPlugin($subpage)->includeFile('pages/index.inc.php');
} else {
echo rex_view::warning($this->i18n('no_plugins'));
}
2 changes: 1 addition & 1 deletion redaxo/src/addons/install/pages/settings.inc.php
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@

$content .= '
<div class="rex-form">
<form action="index.php?page=install&amp;subpage=settings" method="post">
<form action="' . rex_url::currentBackendPage() . '" method="post">
<fieldset>
<h2>' . $this->i18n('settings_general') . '</h2>';

Expand Down
3 changes: 2 additions & 1 deletion redaxo/src/addons/install/plugins/core/package.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,5 @@ version: '5.0 alpha6'
author: Gregor Harlan
supportpage: www.redaxo.org/de/forum

name: translate:title
navigation:
title: translate:title
2 changes: 1 addition & 1 deletion redaxo/src/addons/install/plugins/core/pages/index.inc.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

$apiFunc = rex_api_function::factory();
if ($apiFunc && ($result = $apiFunc->getResult()) && $result->isSuccessfull()) {
header('Location: index.php?page=install&subpage=core&info=' . urlencode($result->getMessage()));
header('Location: ' . rex_url::currentBackendPage(array('info' => $result->getMessage())));
exit;
}

Expand Down
11 changes: 6 additions & 5 deletions redaxo/src/addons/install/plugins/packages/package.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,9 @@ version: '5.0 alpha6'
author: Gregor Harlan
supportpage: www.redaxo.org/de/forum

name: translate:title
subpages:
- ['', 'translate:subpage_update']
- [add, 'translate:subpage_add']
- [upload, 'translate:subpage_upload']
navigation:
title: translate:title
subpages:
'': {title: 'translate:subpage_update'}
add: {title: 'translate:subpage_add'}
upload: {title: 'translate:subpage_upload'}
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<?php

$subsubpage = rex_request('subsubpage', 'string') ?: 'update';
$subsubpage = rex_be_controller::getCurrentPagePart(2) ?: 'update';

require __DIR__ . DIRECTORY_SEPARATOR . $subsubpage . '.inc.php';
17 changes: 10 additions & 7 deletions redaxo/src/addons/media_manager/package.yml
Original file line number Diff line number Diff line change
@@ -1,13 +1,16 @@
version: '5.0 a1'
author: 'Markus Staab, Jan Kristinus'
name: 'Media Manager'
perm: media_manager[]
supportpage: www.redaxo.org/de/forum/
pages:
- ['', 'translate:media_manager_subpage_desc']
- ['types', 'translate:media_manager_subpage_types']
- ['settings', 'translate:media_manager_subpage_config']
- ['clear_cache', 'translate:media_manager_subpage_clear_cache']

navigation:
title: 'Media Manager'
perm: media_manager[]
subpages:
'': {title: 'translate:media_manager_subpage_desc'}
types: {title: 'translate:media_manager_subpage_types'}
settings: {title: 'translate:media_manager_subpage_config'}
clear_cache: {title: 'translate:media_manager_subpage_clear_cache', href: {page: media_manager, func: clear_cache}}

requires:
php:
extensions: [gd]
7 changes: 4 additions & 3 deletions redaxo/src/addons/media_manager/pages/index.inc.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,14 +11,15 @@
* @package redaxo5
*/

$page = rex_request('page', 'string');
$subpage = rex_request('subpage', 'string');
$page = rex_be_controller::getCurrentPagePart(0);
$subpage = rex_be_controller::getCurrentPagePart(1);
$func = rex_request('func', 'string');
$msg = '';

if ($subpage == 'clear_cache') {
if ($func == 'clear_cache') {
$c = rex_media_manager::deleteCache();
$msg = rex_i18n::msg('media_manager_cache_files_removed', $c);
$func = '';
}

echo rex_view::title('Media Manager');
Expand Down
2 changes: 1 addition & 1 deletion redaxo/src/addons/media_manager/pages/types.inc.php
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@
// functions column spans 2 data-columns
$funcs = rex_i18n::msg('media_manager_type_functions');
$list->addColumn($funcs, rex_i18n::msg('media_manager_type_effekts_edit'), -1, array('<th colspan="3">###VALUE###</th>', '<td>###VALUE###</td>'));
$list->setColumnParams($funcs, array('type_id' => '###id###', 'subpage' => 'effects'));
$list->setColumnParams($funcs, array('type_id' => '###id###', 'page' => 'media_manager/effects'));

$list->addColumn('deleteCache', rex_i18n::msg('media_manager_type_cache_delete'), -1, array('', '<td>###VALUE###</td>'));
$list->setColumnParams('deleteCache', array('type_id' => '###id###', 'func' => 'delete_cache'));
Expand Down
6 changes: 4 additions & 2 deletions redaxo/src/addons/mediapool/config.inc.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,11 @@
rex_complex_perm::register('media', 'rex_media_perm');

if (rex::isBackend()) {
$mpool = new rex_be_page_popup(rex_i18n::msg('mediapool'), 'openMediaPool(); return false;');
$mpool = new rex_be_page_popup('mediapool', rex_i18n::msg('mediapool'), 'openMediaPool(); return false;');
$mpool->setRequiredPermissions('media/hasMediaPerm');
$this->setProperty('page', $mpool);
$mainPage = new rex_be_page_main('system', $mpool);
$mainPage->setPrio(20);
$this->setProperty('page', $mainPage);

require_once dirname(__FILE__) . '/functions/function_rex_mediapool.inc.php';
// im backend und eingeloggt?
Expand Down
4 changes: 1 addition & 3 deletions redaxo/src/addons/mediapool/package.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
version: '5.0 a1'
author: 'Jan Kristinus'
supportpage: www.redaxo.org/de/forum/
navigation:
block: system
prio: 20

blocked_extensions: ['.php','.php3','.php4','.php5','.php6','.phtml','.pl','.asp','.aspx','.cfm','.jsp','.jsf','.bat','.sh','.cgi']
2 changes: 1 addition & 1 deletion redaxo/src/addons/metainfo/lib/handler/media_handler.php
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ static public function isMediaInUse(array $params)
$id = $med_arr['media_id'];
$filename = $med_arr['filename'];
$cat_id = $med_arr['category_id'];
$media .= '<li><a href="index.php?page=mediapool&amp;subpage=detail&amp;file_id=' . $id . '&amp;rex_file_category=' . $cat_id . '">' . $filename . '</a></li>';
$media .= '<li><a href="' . rex_url::backendPage('mediapool/detail', array('file_id' => $id, 'rex_file_category' => $cat_id)) . '">' . $filename . '</a></li>';
}
if ($media != '') {
$warning[] = rex_i18n::msg('minfo_media_in_use_med') . '<br /><ul>' . $media . '</ul>';
Expand Down
13 changes: 7 additions & 6 deletions redaxo/src/addons/metainfo/package.yml
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
version: '5.0 a1'
name: Meta Infos
perm: admin[]
author: 'Markus Staab, Jan Kristinus'
supportpage: www.redaxo.org/de/forum/

pages:
- ['', 'translate:article']
- ['categories', 'translate:categories']
- ['media', 'translate:media']
navigation:
title: Meta Infos
perm: admin[]
subpages:
'': {title: 'translate:article'}
categories: {title: 'translate:categories'}
media: {title: 'translate:media'}

requires:
addons:
Expand Down
3 changes: 1 addition & 2 deletions redaxo/src/addons/metainfo/pages/index.inc.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,7 @@
// Parameter
$Basedir = dirname(__FILE__);

$page = rex_request('page', 'string');
$subpage = rex_request('subpage', 'string');
$subpage = rex_be_controller::getCurrentPagePart(1);
$func = rex_request('func', 'string');

echo rex_view::title('Metainformationen erweitern');
Expand Down
10 changes: 5 additions & 5 deletions redaxo/src/addons/modules/package.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@ version: '5.0 a1'
author: 'Markus Staab'
supportpage: www.redaxo.org/de/forum/

name: 'translate:modules'
perm: isAdmin
navigation:
title: 'translate:modules'
perm: isAdmin
block: system
prio: 40
pages:
- ['', 'translate:modules']
- ['actions', 'translate:actions']
subpages:
'': {title: 'translate:modules'}
actions: {title: 'translate:actions'}
2 changes: 1 addition & 1 deletion redaxo/src/addons/modules/pages/index.inc.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

// -------------- Defaults

$subpage = rex_request('subpage', 'string');
$subpage = rex_be_controller::getCurrentPagePart(1);
$func = rex_request('func', 'string');

switch ($subpage) {
Expand Down

3 comments on commit d42507c

@staabm
Copy link
Member

@staabm staabm commented on d42507c Oct 30, 2012

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

refs #145

@staabm
Copy link
Member

@staabm staabm commented on d42507c Oct 30, 2012

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

brauchen wir dafür ein paar unit-tests,..?

@gharlan
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Schlecht wäre es nicht ;)

Please sign in to comment.