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 11require_once('tiki-setup.php'); 12$themecontrollib = TikiLib::lib('themecontrol'); 13$categlib = TikiLib::lib('categ'); 14$filegallib = TikiLib::lib('filegal'); 15$themelib = TikiLib::lib('theme'); 16include_once('lib/htmlpages/htmlpageslib.php'); 17/** 18 * @param $arr 19 * @param $id 20 * @param $name 21 */ 22function correct_array(&$arr, $id, $name) 23{ 24 $temp_max = count($arr); 25 for ($i = 0; $i < $temp_max; $i++) { 26 $arr[$i]['objId'] = $arr[$i][$id]; 27 $arr[$i]['objName'] = $arr[$i][$name]; 28 } 29} 30$access->check_feature('feature_theme_control'); 31$access->check_permission('tiki_p_admin'); 32 33$auto_query_args = ['find', 'sort_mode', 'offset', 'theme', 'theme_option', 'type', 'objdata']; 34$smarty->assign('a_object', isset($_REQUEST['objdata']) ? $_REQUEST['objdata'] : ''); 35 36$themes = $themelib->list_themes_and_options(); 37$smarty->assign('themes', $themes); 38 39$find_objects = ''; 40$objectypes = ['image gallery', 'file gallery', 'forum', 'blog', 'wiki page', 'html page', 'faq', 'quiz', 'article']; 41$smarty->assign('objectypes', $objectypes); 42if (empty($_REQUEST['type'])) { 43 $_REQUEST['type'] = 'wiki page'; 44} 45$smarty->assign('type', $_REQUEST['type']); 46switch ($_REQUEST['type']) { 47 case 'image gallery': 48 $objects = $tikilib->list_galleries(0, -1, 'name_desc', 'admin', $find_objects); 49 $smarty->assign_by_ref('objects', $objects["data"]); 50 $objects = $objects['data']; 51 correct_array($objects, 'galleryId', 'name'); 52 break; 53 54 case 'file gallery': 55 $objects = $filegallib->list_file_galleries(0, -1, 'name_desc', 'admin', $find_objects, $prefs['fgal_root_id']); 56 $smarty->assign_by_ref('objects', $objects["data"]); 57 $objects = $objects['data']; 58 correct_array($objects, 'galleryId', 'name'); 59 break; 60 61 case 'forum': 62 $objects = TikiLib::lib('comments')->list_forums(0, -1, 'name_asc', $find_objects); 63 $smarty->assign_by_ref('objects', $objects["data"]); 64 $objects = $objects['data']; 65 correct_array($objects, 'forumId', 'name'); 66 break; 67 68 case 'blog': 69 $bloglib = TikiLib::lib('blog'); 70 $objects = $bloglib->list_blogs(0, -1, 'title_asc', $find_objects); 71 $smarty->assign_by_ref('objects', $objects["data"]); 72 $objects = $objects['data']; 73 correct_array($objects, 'blogId', 'title'); 74 break; 75 76 case 'wiki page': 77 $objects = $tikilib->list_pageNames(0, -1, 'pageName_asc', $find_objects); 78 $smarty->assign_by_ref('objects', $objects["data"]); 79 $objects = $objects['data']; 80 correct_array($objects, 'pageName', 'pageName'); 81 break; 82 83 case 'html page': 84 $objects = $htmlpageslib->list_html_pages(0, -1, 'pageName_asc', $find_objects); 85 $smarty->assign_by_ref('objects', $objects["data"]); 86 $objects = $objects['data']; 87 correct_array($objects, 'pageName', 'pageName'); 88 break; 89 90 case 'faq': 91 $faqlib = TikiLib::lib('faq'); 92 $objects = $faqlib->list_faqs(0, -1, 'title_asc', $find_objects); 93 $smarty->assign_by_ref('objects', $objects["data"]); 94 $objects = $objects['data']; 95 correct_array($objects, 'faqId', 'title'); 96 break; 97 98 case 'quiz': 99 $objects = TikiLib::lib('quiz')->list_quizzes(0, -1, 'name_asc', $find_objects); 100 $smarty->assign_by_ref('objects', $objects["data"]); 101 $objects = $objects['data']; 102 correct_array($objects, 'quizId', 'name'); 103 break; 104 105 case 'article': 106 $artlib = TikiLib::lib('art'); 107 $objects = $artlib->list_articles(0, -1, 'title_asc', $find_objects, 0, 0, $user); 108 $smarty->assign_by_ref('objects', $objects["data"]); 109 $objects = $objects['data']; 110 correct_array($objects, 'articleId', 'title'); 111 break; 112 113 default: 114 break; 115} 116$smarty->assign_by_ref('objects', $objects); 117if (isset($_REQUEST['assign'])) { 118 check_ticket('tc-objects'); 119 list($id, $name) = explode('|', $_REQUEST['objdata']); 120 $themecontrollib->tc_assign_object($id, $_REQUEST['theme'], $_REQUEST['type'], $name); 121} 122if (isset($_REQUEST["delete"])) { 123 check_ticket('tc-objects'); 124 foreach (array_keys($_REQUEST["obj"]) as $obj) { 125 $themecontrollib->tc_remove_object($obj); 126 } 127} 128if (! isset($_REQUEST["sort_mode"])) { 129 $sort_mode = 'name_asc'; 130} else { 131 $sort_mode = $_REQUEST["sort_mode"]; 132} 133if (! isset($_REQUEST["offset"])) { 134 $offset = 0; 135} else { 136 $offset = $_REQUEST["offset"]; 137} 138$smarty->assign_by_ref('offset', $offset); 139if (isset($_REQUEST["find"])) { 140 $find = $_REQUEST["find"]; 141} else { 142 $find = ''; 143} 144$smarty->assign('find', $find); 145$smarty->assign_by_ref('sort_mode', $sort_mode); 146$channels = $themecontrollib->tc_list_objects(null, $offset, $maxRecords, $sort_mode, $find); 147$smarty->assign_by_ref('cant_pages', $channels["cant"]); 148$smarty->assign_by_ref('channels', $channels["data"]); 149ask_ticket('tc-objects'); 150// Display the template 151$smarty->assign('mid', 'tiki-theme_control_objects.tpl'); 152$smarty->display("tiki.tpl"); 153