Esempio n. 1
0
/**
 * admin panel list
 *
 * @since 1.2.1
 * @deprecated 2.0.0
 *
 * @package Redaxscript
 * @category Admin
 * @author Henry Ruhs
 */
function admin_panel_list()
{
    $output = Redaxscript\Hook::trigger('adminPanelStart');
    /* define access variables */
    if (Redaxscript\Registry::get('categoriesNew') || Redaxscript\Registry::get('categoriesEdit') || Redaxscript\Registry::get('categoriesDelete')) {
        $categories_access = $contents_access = 1;
    }
    if (Redaxscript\Registry::get('articlesNew') || Redaxscript\Registry::get('articlesEdit') || Redaxscript\Registry::get('articlesDelete')) {
        $articles_access = $contents_access = 1;
    }
    if (Redaxscript\Registry::get('extrasNew') || Redaxscript\Registry::get('extrasEdit') || Redaxscript\Registry::get('extrasDelete')) {
        $extras_access = $contents_access = 1;
    }
    if (Redaxscript\Registry::get('commentsNew') || Redaxscript\Registry::get('commentsEdit') || Redaxscript\Registry::get('commentsDelete')) {
        $comments_access = $contents_access = 1;
    }
    if (Redaxscript\Registry::get('usersNew') || Redaxscript\Registry::get('usersEdit') || Redaxscript\Registry::get('usersDelete')) {
        $users_access = $access_access = 1;
    }
    if (Redaxscript\Registry::get('groupsNew') || Redaxscript\Registry::get('groupsEdit') || Redaxscript\Registry::get('groupsDelete')) {
        $groups_access = $access_access = 1;
    }
    if (Redaxscript\Registry::get('modulesInstall') || Redaxscript\Registry::get('modulesEdit') || Redaxscript\Registry::get('modulesUninstall')) {
        $modules_access = $system_access = 1;
    }
    if (Redaxscript\Registry::get('settingsEdit')) {
        $settings_access = $system_access = 1;
    }
    /* collect contents output */
    $counter = 1;
    if ($contents_access == 1) {
        $counter++;
        $output .= '<li class="rs-admin-js-item-panel rs-admin-item-panel rs-admin-item-content"><span class="rs-admin-text-panel rs-admin-text-content">' . Redaxscript\Language::get('contents') . '</span><ul class="rs-admin-list-panel-children rs-admin-list-contents">';
        if ($categories_access == 1) {
            $output .= '<li><span class="rs-admin-text-panel-group"><a href="' . Redaxscript\Registry::get('parameterRoute') . 'admin/view/categories" class="rs-admin-link-panel' . (Redaxscript\Registry::get('categoriesNew') ? ' rs-admin-link-view' : null) . '">' . Redaxscript\Language::get('categories') . '</a>';
            if (Redaxscript\Registry::get('categoriesNew')) {
                $output .= '<a title="' . Redaxscript\Language::get('category_new') . '" href="' . Redaxscript\Registry::get('parameterRoute') . 'admin/new/categories" class="rs-admin-link-panel' . (Redaxscript\Registry::get('categoriesNew') ? ' rs-admin-link-new' : null) . '">' . Redaxscript\Language::get('category_new') . '</a>';
            }
            $output .= '</span></li>';
        }
        if ($articles_access == 1) {
            $output .= '<li><span class="rs-admin-text-panel-group"><a href="' . Redaxscript\Registry::get('parameterRoute') . 'admin/view/articles" class="rs-admin-link-panel' . (Redaxscript\Registry::get('articlesNew') ? ' rs-admin-link-view' : null) . '">' . Redaxscript\Language::get('articles') . '</a>';
            if (Redaxscript\Registry::get('articlesNew')) {
                $output .= '<a title="' . Redaxscript\Language::get('article_new') . '" href="' . Redaxscript\Registry::get('parameterRoute') . 'admin/new/articles" class="rs-admin-link-panel' . (Redaxscript\Registry::get('articlesNew') ? ' rs-admin-link-new' : null) . '">' . Redaxscript\Language::get('article_new') . '</a>';
            }
            $output .= '</span></li>';
        }
        if ($extras_access == 1) {
            $output .= '<li><span class="rs-admin-text-panel-group"><a href="' . Redaxscript\Registry::get('parameterRoute') . 'admin/view/extras" class="rs-admin-link-panel' . (Redaxscript\Registry::get('extrasNew') ? ' rs-admin-link-view' : null) . '">' . Redaxscript\Language::get('extras') . '</a>';
            if (Redaxscript\Registry::get('extrasNew')) {
                $output .= '<a title="' . Redaxscript\Language::get('extra_new') . '" href="' . Redaxscript\Registry::get('parameterRoute') . 'admin/new/extras" class="rs-admin-link-panel' . (Redaxscript\Registry::get('extrasNew') ? ' rs-admin-link-new' : null) . '">' . Redaxscript\Language::get('extra_new') . '</a>';
            }
            $output .= '</span></li>';
        }
        if ($comments_access == 1) {
            $output .= '<li><span class="rs-admin-text-panel-group"><a href="' . Redaxscript\Registry::get('parameterRoute') . 'admin/view/comments" class="rs-admin-link-panel' . (Redaxscript\Registry::get('commentsNew') ? ' rs-admin-link-view' : null) . '">' . Redaxscript\Language::get('comments') . '</a>';
            if (Redaxscript\Registry::get('commentsNew')) {
                $output .= '<a title="' . Redaxscript\Language::get('comment_new') . '" href="' . Redaxscript\Registry::get('parameterRoute') . 'admin/new/comments" class="rs-admin-link-panel' . (Redaxscript\Registry::get('commentsNew') ? ' rs-admin-link-new' : null) . '">' . Redaxscript\Language::get('comment_new') . '</a>';
            }
            $output .= '</span></li>';
        }
        $output .= '</ul></li>';
    }
    /* collect access output */
    if ($access_access == 1) {
        $counter++;
        $output .= '<li class="rs-admin-js-item-panel rs-admin-item-panel rs-admin-item-access"><span class="rs-admin-text-panel rs-admin-text-access">' . Redaxscript\Language::get('access') . '</span><ul class="rs-admin-list-panel-children rs-admin-list-access">';
        if (Redaxscript\Registry::get('myId')) {
            $output .= '<li><a href="' . Redaxscript\Registry::get('parameterRoute') . 'admin/edit/users/' . Redaxscript\Registry::get('myId') . '" class="rs-admin-link-panel">' . Redaxscript\Language::get('profile') . '</a></li>';
        }
        if ($users_access == 1) {
            $output .= '<li><span class="rs-admin-text-panel-group"><a href="' . Redaxscript\Registry::get('parameterRoute') . 'admin/view/users" class="rs-admin-link-panel' . (Redaxscript\Registry::get('usersNew') ? ' rs-admin-link-view' : null) . '">' . Redaxscript\Language::get('users') . '</a>';
            if (Redaxscript\Registry::get('usersNew')) {
                $output .= '<a title="' . Redaxscript\Language::get('user_new') . '" href="' . Redaxscript\Registry::get('parameterRoute') . 'admin/new/users" class="rs-admin-link-panel' . (Redaxscript\Registry::get('usersNew') ? ' rs-admin-link-new' : null) . '">' . Redaxscript\Language::get('user_new') . '</a>';
            }
            $output .= '</span></li>';
        }
        if ($groups_access == 1) {
            $output .= '<li><span class="rs-admin-text-panel-group"><a href="' . Redaxscript\Registry::get('parameterRoute') . 'admin/view/groups" class="rs-admin-link-panel' . (Redaxscript\Registry::get('groupsNew') ? ' rs-admin-link-view' : null) . '">' . Redaxscript\Language::get('groups') . '</a>';
            if (Redaxscript\Registry::get('groupsNew')) {
                $output .= '<a title="' . Redaxscript\Language::get('group_new') . '" href="' . Redaxscript\Registry::get('parameterRoute') . 'admin/new/groups" class="rs-admin-link-panel' . (Redaxscript\Registry::get('groupsNew') ? ' rs-admin-link-new' : null) . '">' . Redaxscript\Language::get('group_new') . '</a>';
            }
            $output .= '</span></li>';
        }
        $output .= '</ul></li>';
    }
    /* collect system output */
    if ($system_access == 1) {
        $counter++;
        $outputModule = null;
        $output .= '<li class="rs-admin-js-item-panel rs-admin-item-panel rs-admin-item-system"><span class="rs-admin-text-panel rs-admin-text-system">' . Redaxscript\Language::get('system') . '</span><ul class="rs-admin-list-panel-children rs-admin-list-panel-children-system">';
        if ($modules_access == 1) {
            $output .= '<li><a href="' . Redaxscript\Registry::get('parameterRoute') . 'admin/view/modules" class="rs-admin-link-panel">' . Redaxscript\Language::get('modules') . '</a>';
            $moduleArray = Redaxscript\Hook::collect('adminPanelModule');
            if ($moduleArray) {
                foreach ($moduleArray as $key => $value) {
                    $outputModule .= '<li><a href="' . Redaxscript\Registry::get('parameterRoute') . $value . '" class="rs-admin-link-panel">' . $key . '</a></li>';
                }
                $output .= '<ul class="rs-admin-js-list-panel-children rs-admin-list-panel-children">' . $outputModule . '</ul>';
            }
            $output .= '</li>';
        }
        if ($settings_access == 1) {
            $output .= '<li><a href="' . Redaxscript\Registry::get('parameterRoute') . 'admin/edit/settings" class="rs-admin-link-panel">' . Redaxscript\Language::get('settings') . '</a></li>';
        }
        $output .= '</ul></li>';
    }
    /* collect profile output */
    if (Redaxscript\Registry::get('myId')) {
        $counter++;
        $output .= '<li class="rs-admin-js-item-panel rs-admin-item-panel rs-admin-item-profile"><a href="' . Redaxscript\Registry::get('parameterRoute') . 'admin/edit/users/' . Redaxscript\Registry::get('myId') . '" class="rs-admin-link-panel rs-admin-link-profile">' . Redaxscript\Language::get('profile') . '</a></li>';
    }
    /* collect notification output */
    $outputNotification = null;
    $counterNotification = 0;
    $moduleLastKey = null;
    $notificationSystemArray = [];
    $notificationHasArray = [];
    $orderArray = ['success', 'info', 'warning', 'error'];
    if (Redaxscript\Registry::get('myId') == 1) {
        $notificationSystemArray = ['error' => [Redaxscript\Language::get('system') => [!is_dir('cache') ? Redaxscript\Language::get('directory_not_found') . Redaxscript\Language::get('colon') . ' cache' . Redaxscript\Language::get('point') : null]], 'warning' => [Redaxscript\Language::get('system') => [file_exists('console.php') ? Redaxscript\Language::get('file_remove') . ' console.php' . Redaxscript\Language::get('point') : null, file_exists('install.php') ? Redaxscript\Language::get('file_remove') . ' install.php' . Redaxscript\Language::get('point') : null, is_writable('config.php') ? Redaxscript\Language::get('file_permission_revoke') . ' config.php' . Redaxscript\Language::get('point') : null]]];
    }
    $notificationModuleArray = Redaxscript\Hook::collect('adminPanelNotification');
    if ($notificationModuleArray) {
        $notificationArray = array_merge_recursive($notificationModuleArray, $notificationSystemArray);
    } else {
        $notificationArray = $notificationSystemArray;
    }
    foreach ($notificationArray as $typeKey => $typeValue) {
        foreach ($typeValue as $notificationKey => $notificationValue) {
            if (array_filter($notificationValue)) {
                $outputNotification .= '<li class="rs-admin-item-panel-notification rs-admin-item-note rs-admin-is-' . $typeKey . '">';
                $moduleLastKey = null;
                foreach ($notificationValue as $value) {
                    if ($moduleLastKey !== $notificationKey) {
                        $outputNotification .= '<h3 class="rs-admin-title-panel-notification">' . $notificationKey . '</h3>';
                    }
                    $moduleLastKey = $notificationKey;
                    if (array_key_exists('text', $value) && array_key_exists('attr', $value)) {
                        $notificationHasArray[$typeKey] = 'rs-admin-has-' . $typeKey;
                        $outputNotification .= '<a href="' . $value['attr']['href'] . '" target="' . $value['attr']['target'] . '" class="rs-admin-link-panel-notification">' . $value['text'] . '</a>';
                    } else {
                        $notificationHasArray[$typeKey] = 'rs-admin-has-' . $typeKey;
                        $outputNotification .= '<span class="rs-admin-text-panel-notification">' . $value . '</span>';
                    }
                    if (strlen($value)) {
                        $counterNotification++;
                    }
                }
                $outputNotification .= '</li>';
            }
        }
    }
    uksort($notificationHasArray, function ($key1, $key2) use($orderArray) {
        return array_search($key1, $orderArray) > array_search($key2, $orderArray);
    });
    if ($counterNotification) {
        $counter++;
        $output .= '<li class="rs-admin-js-item-panel rs-admin-item-panel rs-admin-item-notification ' . implode(' ', $notificationHasArray) . '"><span class="rs-admin-text-panel rs-admin-text-notification">' . ($counterNotification ? '<small class="rs-admin-text-notification-counter">' . $counterNotification . '</small>' : null) . Redaxscript\Language::get('notifications') . '</span>';
        $output .= '<ul class="rs-admin-list-panel-children rs-admin-list-panel-notification">' . $outputNotification . '</ul></li>';
    }
    /* collect logout */
    $output .= '<li class="rs-admin-js-item-panel rs-admin-item-panel rs-admin-item-logout"><a href="' . Redaxscript\Registry::get('parameterRoute') . 'logout" class="rs-admin-link-panel rs-admin-link-logout">' . Redaxscript\Language::get('logout') . '</a></li>';
    /* collect list output */
    if ($output) {
        $output = '<ul class="rs-admin-js-list-panel rs-admin-list-panel rs-admin-has-column' . $counter . ' rs-admin-fn-clearfix">' . $output . '</ul>';
    }
    $output .= Redaxscript\Hook::trigger('adminPanelEnd');
    echo $output;
}