1<?php 2/** 3 * @package tikiwiki 4 */ 5// (c) Copyright by authors of the Tiki Wiki CMS Groupware Project 6// 7// All Rights Reserved. See copyright.txt for details and a complete list of authors. 8// Licensed under the GNU LESSER GENERAL PUBLIC LICENSE. See license.txt for details. 9// $Id$ 10 11 12$inputConfiguration = [[ 13 'staticKeyFilters' => [ 14 'use-default-prefs' => 'alnum', // request 15 'use-changes-wizard' => 'alnum', // request 16 'url' => 'relativeurl', // request 17 'close' => 'alnum', // post 18 'showOnLogin' => 'alnum', // post 19 'wizard_step' => 'int', // post 20 'stepNr' => 'int', // get 21 'back' => 'alnum', // post 22 ], 23 24 // catchAllUnset not advised because 'lm_preference' has variable array content. 25]]; 26 27require 'tiki-setup.php'; 28 29$headerlib = TikiLib::lib('header'); 30$headerlib->add_cssfile('themes/base_files/feature_css/admin.css'); 31$headerlib->add_cssfile('themes/base_files/feature_css/wizards.css'); 32 33// Hide the display of the preference dependencies in the wizard 34$headerlib->add_css('.pref_dependency{display:none !important;}'); 35 36$accesslib = TikiLib::lib('access'); 37$accesslib->check_permission('tiki_p_admin'); 38 39// Create the template instances 40$pages = []; 41 42///////////////////////////////////// 43// BEGIN Wizard page section 44///////////////////////////////////// 45 46// Always show the first page 47require_once('lib/wizard/pages/admin_wizard.php'); 48$pages[] = new AdminWizard(); 49 50// If $useDefaultPrefs is set, the "profiles wizard" should be run. Otherwise the "admin wizard". 51$useDefaultPrefs = isset($_REQUEST['use-default-prefs']) ? true : false; 52// If $useChangesWizard is set, the "Changes Wizard" should be run. Otherwise the "admin wizard". 53$useChangesWizard = isset($_REQUEST['use-changes-wizard']) ? true : false; 54if ($useDefaultPrefs) { 55 // Store the default prefs selection in the wizard bar 56 $smarty->assign('useDefaultPrefs', $useDefaultPrefs); 57 58 require_once('lib/wizard/pages/profiles_featured_site_confs.php'); 59 $pages[] = new ProfilesWizardFeaturedSiteConfs(); 60 61 require_once('lib/wizard/pages/profiles_useful_micro_confs.php'); 62 $pages[] = new ProfilesWizardUsefulMicroConfs(); 63 64 require_once('lib/wizard/pages/profiles_useful_changes_in_display.php'); 65 $pages[] = new ProfilesWizardUsefulChangesInDisplay(); 66 67 require_once('lib/wizard/pages/profiles_useful_new_tech_confs.php'); 68 $pages[] = new ProfilesWizardUsefulNewTechConfs(); 69 70 require_once('lib/wizard/pages/profiles_useful_admin_confs.php'); 71 $pages[] = new ProfilesWizardUsefulAdminConfs(); 72 73 require_once('lib/wizard/pages/profiles_demo_common_confs.php'); 74 $pages[] = new ProfilesWizardDemoCommonConfs(); 75 76 require_once('lib/wizard/pages/profiles_demo_interesting_use_cases.php'); 77 $pages[] = new ProfilesWizardDemoInterestingUseCases(); 78 79 require_once('lib/wizard/pages/profiles_demo_other_interesting_use_cases.php'); 80 $pages[] = new ProfilesWizardDemoOtherInterestingUseCases(); 81 82 require_once('lib/wizard/pages/profiles_demo_more_advanced_confs.php'); 83 $pages[] = new ProfilesWizardDemoMoreAdvancedConfs(); 84 85 require_once('lib/wizard/pages/profiles_demo_cases_in_project_management.php'); 86 $pages[] = new ProfilesWizardDemoProjectManagement(); 87 88 require_once('lib/wizard/pages/profiles_demo_highly_specialized_confs.php'); 89 $pages[] = new ProfilesWizardHighlySpecializedConfs(); 90 91 require_once('lib/wizard/pages/profiles_completed.php'); 92 $pages[] = new AdminWizardProfilesCompleted(); 93} elseif ($useChangesWizard) { 94 // Store the use Changes Wizard selection in the wizard bar 95 $smarty->assign('useChangesWizard', $useChangesWizard); 96 97/* 98 require_once('lib/wizard/pages/changes_ui.php'); 99 $pages[] = new ChangesWizardUI(); 100 101 require_once('lib/wizard/pages/changes_novice_admin_assistance.php'); 102 $pages[] = new ChangesWizardNoviceAdminAssistance(); 103 104 require_once('lib/wizard/pages/changes_trackers.php'); 105 $pages[] = new ChangesWizardTrackers(); 106 107 require_once('lib/wizard/pages/changes_permissions_and_logs.php'); 108 $pages[] = new ChangesWizardPermissionsAndLogs(); 109 110 require_once('lib/wizard/pages/changes_others.php'); 111 $pages[] = new ChangesWizardOthers(); 112 113 require_once('lib/wizard/pages/changes_new_in_13.php'); 114 $pages[] = new ChangesWizardNewIn13(); 115 116 require_once('lib/wizard/pages/changes_new_in_14.php'); 117 $pages[] = new ChangesWizardNewIn14(); 118 119 require_once('lib/wizard/pages/changes_new_in_15.php'); 120 $pages[] = new ChangesWizardNewIn15(); 121 122 require_once('lib/wizard/pages/changes_new_in_16.php'); 123 $pages[] = new ChangesWizardNewIn16(); 124 125 require_once('lib/wizard/pages/changes_new_in_17.php'); 126 $pages[] = new ChangesWizardNewIn17(); 127*/ 128 129 require_once('lib/wizard/pages/changes_new_in_18.php'); 130 $pages[] = new ChangesWizardNewIn18(); 131 132 require_once('lib/wizard/pages/changes_new_in_19.php'); 133 $pages[] = new ChangesWizardNewIn19(); 134 135 require_once('lib/wizard/pages/changes_new_in_20.php'); 136 $pages[] = new ChangesWizardNewIn20(); 137 138 require_once('lib/wizard/pages/changes_new_in_21.php'); 139 $pages[] = new ChangesWizardNewIn21(); 140 141 require_once('lib/wizard/pages/changes_doc_page_iframe.php'); 142 $pages[] = new ChangesWizardDocPageIframe(); 143 144 require_once('lib/wizard/pages/changes_send_feedback.php'); 145 $pages[] = new ChangesWizardSendFeedback(); 146 147 require_once('lib/wizard/pages/changes_wizard_completed.php'); 148 $pages[] = new ChangesWizardCompleted(); 149} else { 150 require_once('lib/wizard/pages/admin_language.php'); 151 $pages[] = new AdminWizardLanguage(); 152 153 require_once('lib/wizard/pages/admin_date_time.php'); 154 $pages[] = new AdminWizardDateTime(); 155 156 require_once('lib/wizard/pages/admin_login.php'); 157 $pages[] = new AdminWizardLogin(); 158 159 require_once('lib/wizard/pages/admin_look_and_feel.php'); 160 $pages[] = new AdminWizardLookAndFeel(); 161 162 require_once('lib/wizard/pages/admin_editor_type.php'); 163 $pages[] = new AdminWizardEditorType(); 164 165 require_once('lib/wizard/pages/admin_wysiwyg.php'); 166 $pages[] = new AdminWizardWysiwyg(); 167 168 require_once('lib/wizard/pages/admin_text_area.php'); 169 $pages[] = new AdminWizardTextArea(); 170 171 require_once('lib/wizard/pages/admin_wiki.php'); 172 $pages[] = new AdminWizardWiki(); 173 174 require_once('lib/wizard/pages/admin_auto_toc.php'); 175 $pages[] = new AdminWizardAutoTOC(); 176 177 require_once('lib/wizard/pages/admin_category.php'); 178 $pages[] = new AdminWizardCategory(); 179 180 require_once('lib/wizard/pages/admin_structures.php'); 181 $pages[] = new AdminWizardStructures(); 182 183 require_once('lib/wizard/pages/admin_files.php'); 184 $pages[] = new AdminWizardFiles(); 185 186 require_once('lib/wizard/pages/admin_files_storage.php'); 187 $pages[] = new AdminWizardFileStorage(); 188 189 require_once('lib/wizard/pages/admin_features.php'); 190 $pages[] = new AdminWizardFeatures(); 191 192 require_once('lib/wizard/pages/admin_search.php'); 193 $pages[] = new AdminWizardSearch(); 194 195 require_once('lib/wizard/pages/admin_community.php'); 196 $pages[] = new AdminWizardCommunity(); 197 198 require_once('lib/wizard/pages/admin_advanced.php'); 199 $pages[] = new AdminWizardAdvanced(); 200 201 require_once('lib/wizard/pages/admin_namespace.php'); 202 $pages[] = new AdminWizardNamespace(); 203 204 require_once('lib/wizard/pages/admin_wizard_completed.php'); 205 $pages[] = new AdminWizardCompleted(); 206} 207 208///////////////////////////////////// 209// END Wizard page section 210///////////////////////////////////// 211 212 213// Step the wizard pages 214$wizardlib = TikiLib::lib('wizard'); 215 216// Show pages 217$wizardlib->showPages($pages, true); 218 219// Set the display flag 220$showOnLogin = $wizardlib->get_preference('wizard_admin_hide_on_login') !== 'y'; 221$smarty->assign('showOnLogin', $showOnLogin); 222 223 224// Build the TOC 225$toc = '<div class="list-group list-group-flush wizard_toc">'; 226$stepNr = 0; 227$reqStepNr = $wizardlib->wizard_stepNr; 228$homepageUrl = $_REQUEST['url']; 229foreach ($pages as $page) { 230 global $base_url; 231 $cssClasses = ''; 232 233 // Start the admin wizard 234 $url = $base_url . 'tiki-wizard_admin.php?&stepNr=' . $stepNr . '&url=' . rawurlencode($homepageUrl); 235 if ($useDefaultPrefs) { 236 $url .= '&use-default-prefs=1'; 237 } 238 if ($useChangesWizard) { 239 $url .= '&use-changes-wizard=1'; 240 } 241 $cnt = $stepNr + 1; 242// if ($stepNr == 1 && $useChangesWizard) { 243// $toc .= '<div class="list-group-item font-italic">' . tra("New in Tiki 12 (LTS)") . '</div>'; 244// } 245 if ($cnt <= 9) { 246 $cnt = ' ' . $cnt; 247 } 248 $toc .= '<a '; 249 $cssClasses .= 'list-group-item list-group-item-action '; 250 if (preg_match('/ Tiki /', $page->pageTitle()) or $stepNr == 0) { 251 $cssClasses .= 'font-italic '; 252 } 253 if ($stepNr == $reqStepNr) { 254 $cssClasses .= 'active '; 255 } 256 if (! $page->isVisible()) { 257 $cssClasses .= 'disabled disabledTOCSelection '; 258 } 259 $css = ''; 260 if (strlen($cssClasses) > 0) { 261 $css = 'class="' . $cssClasses . '" '; 262 } 263 $toc .= $css; 264 $toc .= 'href="' . $url . '">' . $page->pageTitle() . '</a>'; 265 $stepNr++; 266} 267$toc .= '</div>'; 268 269if ($reqStepNr > 0) { 270 $smarty->assign('wizard_toc', $toc); 271} 272 273 274// disallow robots to index page: 275$smarty->assign('metatag_robots', 'NOINDEX, NOFOLLOW'); 276 277$smarty->display('tiki-wizard_admin.tpl'); 278