$start = request_var('start', 0); $start = ($start < 0) ? 0 : $start; $per_page = request_var('per_page', 0); $per_page = (empty($per_page) || ($per_page < 20) || ($per_page > 300)) ? $config['topics_per_page'] : $per_page; $s_hidden_fields = ''; // SORT ORDER - BEGIN $sort_order_array = array(); $sort_order_select_array = array(); $sort_order_select_lang_array = array(); foreach ($table_fields as $k => $v) { $is_auth = (check_auth_level($v['view_level'])); if ($is_auth) { $sort_order_array[] = $k; $sort_order_select_array[] = $k; $sort_order_select_lang_array[] = $class_form->get_lang($v['lang_key']); } } $sort_order_default = ((isset($sort_order_default) && in_array($sort_order_default, $sort_order_array)) ? $sort_order_default : $sort_order_array[0]); $sort_order = request_var('sort_order', $sort_order_default); $sort_order = (in_array($sort_order, $sort_order_array) ? $sort_order : $sort_order_array[0]); $select_name = 'sort_order'; $default = $sort_order; $select_js = ''; $sort_order_select_box = $class_form->build_select_box($select_name, $default, $sort_order_select_array, $sort_order_select_lang_array, $select_js);
$action_types = array_merge($action_types, array('delete')); } $action = request_var('action', $action_types[0]); $action = !empty($action_overlay) ? $action_overlay : $action; $action = $mode == 'input' && $action != 'edit' ? 'add' : $action; //$action = (!in_array($action, $action_types) ? $action_types[0] : $action); if (!in_array($action, $action_types)) { message_die(GENERAL_MESSAGE, $lang['Not_Authorized']); } // ACTIONS - END // SORT ORDER AND FILTER - BEGIN $sort_order_array = array(); $sort_order_select_array = array(); $sort_order_select_lang_array = array(); foreach ($table_fields as $k => $v) { $is_auth = !in_array($v['type'], array('TEXT', 'HTMLTEXT', 'PASSWORD')) && check_auth_level($v['view_level']); if ($is_auth) { $sort_order_array[] = $k; $sort_order_select_array[] = $k; $sort_order_select_lang_array[] = $class_form->get_lang($v['lang_key']); } } $filter_item_default = isset($filter_item_default) && in_array($filter_item_default, $sort_order_array) ? $filter_item_default : ''; $filter_item = request_var('filter_item', $filter_item_default); $filter_item = in_array($filter_item, $sort_order_array) ? $filter_item : ''; if (!empty($filter_item)) { $filter_item_value_default = isset($filter_item_value_default) ? $filter_item_value_default : $table_fields[$filter_item]['default']; $filter_item_value_default = $class_form->set_type_default_value($filter_item_value_default); $filter_item_value = request_var('filter_item_value', $filter_item_value_default); } $sort_order_default = isset($sort_order_default) && in_array($sort_order_default, $sort_order_array) ? $sort_order_default : $sort_order_array[0];
function generate_tabs($mode) { global $db, $cache, $config, $auth, $user, $lang, $template; $tabs_array = array(); // Let's remove $auth->acl_get('a_') until I finish coding permissions properly... and also add/remove 'a_' when users are added/removed from administrators in ACP //$is_admin = (($user->data['user_level'] == ADMIN) || $auth->acl_get('a_')) ? true : false; $is_admin = $user->data['user_level'] == ADMIN ? true : false; $tabs_array[] = array('TITLE' => $lang['CMS_TITLE'], 'MODE' => false, 'LINK' => append_sid(IP_ROOT_PATH . $this->root), 'ICON' => IP_ROOT_PATH . $this->menu_images_root . 'cms_home.png', 'TIP' => $lang['CMS_TIP_TITLE'], 'AUTH' => AUTH_REG); if ($this->is_auth['cms_layouts']) { $tabs_array[] = array('TITLE' => $lang['CMS_CUSTOM_PAGES'], 'MODE' => 'layouts', 'LINK' => append_sid(IP_ROOT_PATH . $this->root . '?mode=layouts'), 'ICON' => IP_ROOT_PATH . $this->menu_images_root . 'cms_custom_pages.png', 'TIP' => $lang['CMS_TIP_CUSTOM_PAGES'], 'AUTH' => AUTH_REG); } if ($this->is_auth['cms_layouts_special']) { $tabs_array[] = array('TITLE' => $lang['CMS_STANDARD_PAGES'], 'MODE' => 'layouts_special', 'LINK' => append_sid(IP_ROOT_PATH . $this->root . '?mode=layouts_special'), 'ICON' => IP_ROOT_PATH . $this->menu_images_root . 'cms_standard_pages.png', 'TIP' => $lang['CMS_TIP_STANDARD_PAGES'], 'AUTH' => AUTH_REG); } if ($this->is_auth['cms_blocks']) { $tabs_array[] = array('TITLE' => $lang['CMS_BLOCK_SETTINGS'], 'MODE' => 'block_settings', 'LINK' => append_sid(IP_ROOT_PATH . $this->root . '?mode=block_settings'), 'ICON' => IP_ROOT_PATH . $this->menu_images_root . 'cms_blocks.png', 'TIP' => $lang['CMS_TIP_BLOCK_SETTINGS'], 'AUTH' => AUTH_REG); } if ($this->is_auth['cms_blocks_global']) { $tabs_array[] = array('TITLE' => $lang['CMS_GLOBAL_BLOCKS'], 'MODE' => 'blocks', 'LINK' => append_sid(IP_ROOT_PATH . $this->root . '?mode=blocks&l_id=0&action=editglobal'), 'ICON' => IP_ROOT_PATH . $this->menu_images_root . 'cms_blocks_global.png', 'TIP' => $lang['CMS_TIP_GLOBAL_BLOCKS'], 'AUTH' => AUTH_REG); } if ($this->is_auth['cms_permissions']) { $tabs_array[] = array('TITLE' => $lang['CMS_AUTH'], 'MODE' => 'auth', 'LINK' => append_sid(IP_ROOT_PATH . $this->root . '?mode=auth'), 'ICON' => IP_ROOT_PATH . $this->menu_images_root . 'cms_permissions.png', 'TIP' => $lang['CMS_TIP_AUTH'], 'AUTH' => AUTH_REG); } if ($this->is_auth['cms_settings']) { $tabs_array[] = array('TITLE' => $lang['CMS_CONFIG'], 'MODE' => 'config', 'LINK' => append_sid(IP_ROOT_PATH . $this->root . '?mode=config'), 'ICON' => IP_ROOT_PATH . $this->menu_images_root . 'cms_settings.png', 'TIP' => $lang['CMS_TIP_CONFIG'], 'AUTH' => AUTH_REG); } if ($this->is_auth['cms_menu']) { $tabs_array[] = array('TITLE' => $lang['CMS_MENU_PAGE'], 'MODE' => 'menu', 'LINK' => append_sid(IP_ROOT_PATH . 'cms_menu.' . PHP_EXT), 'ICON' => IP_ROOT_PATH . $this->menu_images_root . 'cms_menu.png', 'TIP' => $lang['CMS_TIP_MENU'], 'AUTH' => AUTH_REG); } if ($this->is_auth['cms_ads']) { $tabs_array[] = array('TITLE' => $lang['CMS_ADS'], 'MODE' => 'ads', 'LINK' => append_sid(IP_ROOT_PATH . 'cms_ads.' . PHP_EXT), 'ICON' => IP_ROOT_PATH . $this->menu_images_root . 'cms_ads.png', 'TIP' => $lang['CMS_TIP_ADS'], 'AUTH' => AUTH_REG); } $tabs_counter = 0; $current_nav = false; foreach ($tabs_array as $tab_data) { $selected = false; if (check_auth_level($tab_data['AUTH'])) { if ($mode == $tab_data['MODE']) { $selected = true; } $template->assign_block_vars('tabs', array('TAB_ID' => $tabs_counter, 'TAB_TITLE' => $tab_data['TITLE'], 'TAB_LINK' => $tab_data['LINK'], 'TAB_ICON' => $tab_data['ICON'], 'TAB_TIP' => empty($tab_data['TIP']) ? $tab_data['TITLE'] : $tab_data['TIP'], 'S_SELECTED' => $selected)); $tabs_counter++; } } $template->assign_vars(array('N_TABS' => $tabs_counter)); return true; }
/** * Check if the user is allowed to access a page */ function check_page_auth($cms_page_id, $cms_auth_level, $return = false) { global $user, $lang; $is_auth = check_auth_level($cms_auth_level); if (!$is_auth) { if ($return) { return false; } else { if (!$user->data['is_bot'] && !$user->data['session_logged_in']) { $page_array = array(); $page_array = extract_current_page(IP_ROOT_PATH); redirect(append_sid(CMS_PAGE_LOGIN . '?redirect=' . str_replace('.' . PHP_EXT . '?', '.' . PHP_EXT . '&', $page_array['page']), true)); } else { message_die(GENERAL_MESSAGE, $lang['Not_Auth_View']); } } } return true; }
function create_view_page(&$table_fields, &$inputs_array, $items_row, $template_row = 'field') { global $config, $template, $theme, $lang, $bbcode; $row_class = ''; foreach ($table_fields as $k => $v) { $inputs_array[$k] = isset($items_row[$k]) ? $items_row[$k] : $v['default']; // We convert HTML entities only if we do not need to parse HTML... if (is_string($inputs_array[$k]) && !empty($v['html_parse'])) { $value = htmlspecialchars_decode($inputs_array[$k], ENT_COMPAT); } $auth_level = $v['view_level']; $is_auth = check_auth_level($auth_level); if ($is_auth) { $value = $inputs_array[$k]; $s_bbcb = !empty($v['bbcode_box']) ? true : false; // SPECIAL PROCESSING - BEGIN // Convert back values from RADIO, SELECT or CHECKBOX if (in_array($v['type'], array('LIST_CHECKBOX', 'LIST_DROP', 'LIST_FLAGS', 'LIST_RADIO', 'LIST_RADIO_BR'))) { $tmp_value = $this->get_lang_from_value($inputs_array[$k], $v['values']); $value = $tmp_value != '' ? $tmp_value : $value; } // Convert empty numbers fields to 0 if (!empty($v['is_number']) && empty($value)) { $value = (int) 0; } // Apply number format if needed if (!empty($v['number_format'])) { $v['number_format']['decimals'] = isset($v['number_format']['decimals']) ? $v['number_format']['decimals'] : (isset($lang['NUMBER_FORMAT_DECIMALS']) ? $lang['NUMBER_FORMAT_DECIMALS'] : 0); $v['number_format']['decimals_sep'] = !empty($v['number_format']['decimals_sep']) ? $v['number_format']['decimals_sep'] : (isset($lang['NUMBER_FORMAT_DECIMALS_SEP']) ? $lang['NUMBER_FORMAT_DECIMALS_SEP'] : ','); $v['number_format']['thousands_sep'] = !empty($v['number_format']['thousands_sep']) ? $v['number_format']['thousands_sep'] : (isset($lang['NUMBER_FORMAT_THOUSANDS_SEP']) ? $lang['NUMBER_FORMAT_THOUSANDS_SEP'] : '.'); $value = number_format($inputs_array[$k], $v['number_format']['decimals'], $v['number_format']['decimals_sep'], $v['number_format']['thousands_sep']); } // Create rating image if (!empty($v['is_rating'])) { $rating = $value; $rating_path = !empty($v['rating_path']) ? $v['rating_path'] : IP_ROOT_PATH . 'images/rates/'; $rating_min = !empty($v['rating_min']) ? $v['rating_min'] : 0; $rating_max = !empty($v['rating_max']) ? $v['rating_max'] : 10; $rating_extension = !empty($v['rating_extension']) ? $v['rating_extension'] : 'png'; $value = '<img src="' . $this->build_rating_image($rating, $rating_path, $rating_min, $rating_max, $rating_extension) . '" alt="' . $rating . '" title="' . $rating . '" />'; } // Text processing... BBCode, HTML or plain text if ($s_bbcb || !empty($v['bbcode_parse'])) { $value = $bbcode->parse($inputs_array[$k]); } else { if (empty($v['html_parse']) && in_array($v['type'], array('TEXT', 'HTMLTEXT'))) { $value = nl2br($inputs_array[$k]); } } // Convert dates and times $v['datetime_format'] = !empty($v['datetime_format']) ? $v['datetime_format'] : 'unix'; switch ($v['datetime_format']) { case 'mysql': $output = !empty($v['is_date']) ? 'date' : (!empty($v['is_time']) ? 'time' : 'datetime'); $value = format_date_mysql_php($inputs_array[$k], $output, 'php'); break; default: if (!empty($v['is_time'])) { $value = create_date_ip($config['default_dateformat'], $inputs_array[$k], $config['board_timezone']); } if (!empty($v['is_date'])) { $value = create_date($this->date_format_php, $inputs_array[$k], $config['board_timezone']); } break; } // Create user link (with user_id) if ($v['is_user_id']) { $value = colorize_username($inputs_array[$k]); } // Create user link (with username) if ($v['is_username']) { $target_userid = $this->get_user_id($inputs_array[$k]); $value = colorize_username($target_userid); } // Create user link (with username) if ($v['type'] == 'PASSWORD') { $value = '********'; } // Create thumbnails for images if ($v['is_image']) { $value = '<a href="' . append_sid($inputs_array[$k]) . '"><img src="' . append_sid(CMS_PAGE_IMAGE_THUMBNAIL . '?pic_id=' . urlencode($inputs_array[$k]) . (isset($v['thumbnail_size']) ? '&thumbnail_size=' . intval($v['thumbnail_size']) : '')) . '" alt="" /></a>'; } if (!empty($v['display_func']) && function_exists($v['display_func'])) { $value = $v['display_func']($inputs_array[$k]); } // SPECIAL PROCESSING - END $row_class = ip_zebra_rows($row_class); $template_row = empty($template_row) ? 'field' : (string) $template_row; $template->assign_block_vars($template_row, array('CLASS' => $row_class, 'L_NAME' => $this->get_lang($v['lang_key']), 'L_EXPLAIN' => !empty($v['explain']) ? $this->get_lang($v['explain']) : '', 'S_BBCB' => $s_bbcb ? true : false, 'VALUE' => !empty($value) || $value === 0 ? $value : ' ')); } } }