PageRenderTime 40ms CodeModel.GetById 16ms RepoModel.GetById 1ms app.codeStats 0ms

/Portal_XL50_Premod-3.0.8/phpBB3/includes/acp/acp_portal_menu.php

https://github.com/Lucky65/phpBB-Portal-XL-5.0-italian
PHP | 251 lines | 203 code | 28 blank | 20 comment | 19 complexity | c0d12b0281cb7b7dcf5cad8752e322e4 MD5 | raw file
  1. <?php
  2. /**
  3. *
  4. * @name acp_portal_menu.php
  5. * @package phpBB3 Portal XL
  6. * @version $Id: acp_portal_menu.php,v 1.1.1.1 2009/05/15 05:14:21 damysterious Exp $
  7. *
  8. * @copyright (c) 2007, 2009 Portal XL Group
  9. * @license http://opensource.org/licenses/gpl-license.php GNU Public License
  10. *
  11. */
  12. /**
  13. * @package acp
  14. */
  15. class acp_portal_menu
  16. {
  17. var $u_action;
  18. function main($id, $mode)
  19. {
  20. global $db, $user, $auth, $template, $cache;
  21. global $config, $portal_config, $phpbb_root_path, $phpbb_admin_path, $phpEx;
  22. $user->add_lang('mods/acp_portal_xl_menu');
  23. $this->tpl_name = 'portal_xl/acp_portal_menu';
  24. $this->page_title = 'ACP_PORTAL_MENU';
  25. // Set up general vars
  26. $action = request_var('action', '');
  27. $action = (isset($_POST['edit'])) ? 'edit' : $action;
  28. $action = (isset($_POST['add'])) ? 'add' : $action;
  29. $action = (isset($_POST['save'])) ? 'save' : $action;
  30. $menu_id = request_var('id', 0);
  31. $menu_order = request_var('id', 0);
  32. $ord = request_var('ord',0);
  33. $ord2 = request_var('ord2',0);
  34. $id = request_var('id',0);
  35. $id2 = request_var('id2',0);
  36. $table = PORTAL_MENU_TABLE;
  37. switch ($action)
  38. {
  39. case 'save':
  40. $menu_id = request_var('id', '', true);
  41. $menu_img = request_var('menu_img', '', true);
  42. $menu_name = request_var('menu_name', '', true);
  43. $menu_url = request_var('menu_url', '', true);
  44. $menu_view = request_var('menu_view', '', true);
  45. $menu_order = request_var('menu_order', '', true);
  46. $menu_open = request_var('menu_open', '', true);
  47. $sqlnews = 'SELECT MAX(menu_order) as total_menu_order
  48. FROM ' . PORTAL_MENU_TABLE . '
  49. WHERE menu_order ';
  50. $resultnews = $db->sql_query($sqlnews);
  51. $total_menu_order = (int) $db->sql_fetchfield('total_menu_order');
  52. $db->sql_freeresult($resultnews);
  53. if($menu_order) { $menu_order = $menu_order; }
  54. else
  55. {
  56. $menu_order = $total_menu_order + 1;
  57. }
  58. $sql_ary = array(
  59. 'menu_id' => $menu_id,
  60. 'menu_img' => $menu_img,
  61. 'menu_name' => $menu_name,
  62. 'menu_url' => $menu_url,
  63. 'menu_view' => $menu_view,
  64. 'menu_order' => $menu_order,
  65. 'menu_open' => $menu_open,
  66. );
  67. if ($menu_id)
  68. {
  69. $sql = 'UPDATE ' . PORTAL_MENU_TABLE . ' SET ' . $db->sql_build_array('UPDATE', $sql_ary) . " WHERE menu_id = $menu_id";
  70. $message = $user->lang['MENU_UPDATED'];
  71. }
  72. else
  73. {
  74. $sql = 'INSERT INTO ' . PORTAL_MENU_TABLE . ' ' . $db->sql_build_array('INSERT', $sql_ary);
  75. $message = $user->lang['MENU_ADDED'];
  76. }
  77. $db->sql_query($sql);
  78. $cache->destroy('menu');
  79. trigger_error($message . adm_back_link($this->u_action));
  80. break;
  81. case 'delete':
  82. if ($menu_id)
  83. {
  84. $sql = 'DELETE FROM ' . PORTAL_MENU_TABLE . "
  85. WHERE menu_id = $menu_id";
  86. $db->sql_query($sql);
  87. $cache->destroy('menu');
  88. trigger_error($user->lang['MENU_REMOVED'] . adm_back_link($this->u_action));
  89. }
  90. else
  91. {
  92. trigger_error($user->lang['MUST_SELECT_MENU'] . adm_back_link($this->u_action), E_USER_WARNING);
  93. }
  94. break;
  95. case 'edit':
  96. case 'add':
  97. $sql = "SELECT *
  98. FROM $table
  99. ORDER BY menu_name ASC";
  100. $result = $db->sql_query($sql);
  101. while ($row = $db->sql_fetchrow($result))
  102. {
  103. if ($action == 'edit' && $menu_id == $row['menu_id'])
  104. {
  105. $menu_img = $row;
  106. $menu_name = $row;
  107. $menu_url = $row;
  108. $menu_view = $row;
  109. $menu_order = $row;
  110. $menu_open = $row;
  111. }
  112. }
  113. $db->sql_freeresult($result);
  114. /*
  115. * Get all icons we need from their directory
  116. */
  117. if ($dir = opendir($phpbb_root_path . 'portal/images/icon_menu')) {
  118. $block_images = array();
  119. while (($file = readdir($dir)) !== false) {
  120. if (preg_match('#^[^&\'"<>]+\.(?:gif|png|jpe?g)$#i', $file)) {
  121. $block_images[$file] = array(
  122. 'file' => $file,
  123. 'name' => ucfirst(str_replace('_', ' ', preg_replace('#^(.*)\..*$#', '\1', $file))),
  124. );
  125. }
  126. }
  127. closedir($dir);
  128. asort($block_images);
  129. }
  130. foreach ($block_images as $images)
  131. {
  132. $template->assign_block_vars('file_name', array(
  133. 'S_MENU_IMG' => $images['file'],
  134. 'S_MENU_IMG_NAME' => $images['name'],
  135. ));
  136. }
  137. unset($block_images);
  138. /*
  139. * Get all icons for preview we need from their directory
  140. */
  141. if ($dir = opendir($phpbb_root_path . 'portal/images/icon_menu')) {
  142. $imagescontent = array();
  143. while (($file = readdir($dir)) !== false) {
  144. if (preg_match('#^[^&\'"<>]+\.(?:gif|png|jpe?g)$#i', $file)) {
  145. $imagescontent[$file] = array(
  146. 'file' => $file,
  147. 'name' => ucfirst(str_replace('_', ' ', preg_replace('#^(.*)\..*$#', '\1', $file))),
  148. );
  149. }
  150. }
  151. closedir($dir);
  152. asort($imagescontent);
  153. }
  154. foreach ($imagescontent as $images)
  155. {
  156. $template->assign_block_vars('img_file_name_icon', array(
  157. 'S_BLOCK_FILE_NAME' => $images['name'],
  158. 'S_BLOCK_FILE_ICON' => '<img src="' . $phpbb_root_path . 'portal/images/icon_menu/' . $images['file'] . '" title="' . $images['name'] . '" height="15" width="15" alt="' . $images['name'] . '" />'
  159. ));
  160. }
  161. unset($imagescontent);
  162. $template->assign_vars(array(
  163. 'S_EDIT' => true,
  164. 'U_BACK' => $this->u_action,
  165. 'U_ACTION' => $this->u_action . '&amp;id=' . $menu_id,
  166. 'MENU_ORDER' => (isset($menu_order['menu_order'])) ? $menu_order['menu_order'] : '',
  167. 'MENU_IMG' => (isset($menu_img['menu_img'])) ? $menu_img['menu_img'] : '',
  168. 'MENU1_IMG' => $row['menu_img'],
  169. 'S_IMAGE_FILE' => $row['menu_img'],
  170. 'MENU_NAME' => (isset($menu_name['menu_name'])) ? $menu_name['menu_name'] : '',
  171. 'MENU_URL' => (isset($menu_url['menu_url'])) ? $menu_url['menu_url'] : '',
  172. 'MENU_VIEW' => (isset($menu_view['menu_view'])) ? $menu_view['menu_view'] : '',
  173. 'MENU_OPEN' => (isset($menu_open['menu_open'])) ? $menu_open['menu_open'] : '',
  174. ));
  175. return;
  176. break;
  177. case 'move_down':
  178. case 'move_up':
  179. $sql = 'UPDATE ' . PORTAL_MENU_TABLE . ' SET menu_order=' . $ord .' + '. $ord2 .' - menu_order WHERE menu_id = ' . $id .' OR menu_id = ' . $id2 . '';
  180. if( !($result = $db->sql_query($sql)) )
  181. $db->sql_query($sql);
  182. $cache->destroy('menu_order');
  183. break;
  184. }
  185. $template->assign_vars(array(
  186. 'U_ACTION' => $this->u_action)
  187. );
  188. $sql = 'SELECT *
  189. FROM ' . PORTAL_MENU_TABLE . '
  190. ORDER BY menu_order ASC ';
  191. $result = $db->sql_query($sql);
  192. {
  193. $nb_menu = 0 ;
  194. while ( $row = $db->sql_fetchrow($result) )
  195. {
  196. $menu_block[$nb_menu]['menu_id'] = $row['menu_id'] ;
  197. $menu_block[$nb_menu]['menu_order'] = $row['menu_order'] ;
  198. $menu_block[$nb_menu]['menu_view'] = $row['menu_view'] ;
  199. $menu_block[$nb_menu]['menu_url'] = $row['menu_url'] ;
  200. $menu_block[$nb_menu]['menu_name'] = $row['menu_name'] ;
  201. $menu_block[$nb_menu]['menu_img'] = $row['menu_img'] ;
  202. $menu_block[$nb_menu]['menu_open'] = $row['menu_open'] ;
  203. $nb_menu ++ ;
  204. }
  205. for ( $portal_menu_block = 0 ; $portal_menu_block < $nb_menu ; $portal_menu_block ++)
  206. $template->assign_block_vars('menu', array(
  207. 'MENU_ORDER' => $menu_block[$portal_menu_block]['menu_order'],
  208. 'MENU_VIEW' => $menu_block[$portal_menu_block]['menu_view'],
  209. 'MENU_URL' => $menu_block[$portal_menu_block]['menu_url'],
  210. 'MEU_NAME' => $menu_block[$portal_menu_block]['menu_name'],
  211. 'MENU_IMG' => $menu_block[$portal_menu_block]['menu_img'],
  212. 'MENU_OPEN' => $menu_block[$portal_menu_block]['menu_open'],
  213. 'S_IMAGE_FILE' => $menu_block[$portal_menu_block]['menu_img'],
  214. 'U_MOVE_UP' => $this->u_action . '&amp;action=move_up&amp;idnone=' . $menu_block[$portal_menu_block]['menu_id']."&amp;id2=" . $menu_block[$portal_menu_block - 1]['menu_id'] . "&amp;id=" . $menu_block[$portal_menu_block]['menu_id']. "&amp;ord=" . $menu_block[$portal_menu_block]['menu_order'] . "&amp;ord2=" . $menu_block[$portal_menu_block - 1]['menu_order'],
  215. 'U_MOVE_DOWN' => $this->u_action . '&amp;action=move_down&amp;idnone=' . $menu_block[$portal_menu_block]['menu_id']."&amp;id2=" . $menu_block[$portal_menu_block + 1]['menu_id'] . "&amp;id=" . $menu_block[$portal_menu_block]['menu_id'] . "&amp;ord=" . $menu_block[$portal_menu_block]['menu_order'] . "&amp;ord2=" . $menu_block[$portal_menu_block + 1]['menu_order'],
  216. 'U_DELETE' => $this->u_action . '&amp;action=delete&amp;id2=' . $menu_block[$portal_menu_block]['menu_id']."&amp;id=" . $menu_block[$portal_menu_block]['menu_id'],
  217. 'U_EDIT' => $this->u_action . '&amp;action=edit&amp;id2=' . $menu_block[$portal_menu_block]['menu_id']."&amp;id=" . $menu_block[$portal_menu_block]['menu_id'])
  218. );
  219. }
  220. $db->sql_freeresult($result);
  221. }
  222. }
  223. ?>