/** * written by Francis * description: initialize pagination and properties for property manager page */ private function init_page() { /** global settings **/ $settings = wpl_settings::get_settings(); /** listing settings **/ $this->page_number = wpl_request::getVar('wplpage', 1); $limit = wpl_request::getVar('limit', $settings['default_page_size']); $start = wpl_request::getVar('start', ($this->page_number - 1) * $limit); $orderby = wpl_request::getVar('orderby', $settings['default_orderby']); $order = wpl_request::getVar('order', $settings['default_order']); $current_user_id = wpl_users::get_cur_user_id(); $where = array(); /** set page if start var passed **/ $this->page_number = $start / $limit + 1; wpl_request::setVar('wplpage', $this->page_number); $this->model = new wpl_property(); /** load user properties **/ if (!wpl_users::is_administrator($current_user_id)) { $where['sf_select_user_id'] = $current_user_id; } /** detect kind **/ $this->kind = wpl_request::getVar('kind', 0); if (!in_array($this->kind, wpl_flex::get_valid_kinds())) { /** import message tpl **/ $this->message = __('Invalid Request!', WPL_TEXTDOMAIN); parent::render($this->tpl_path, 'message'); return false; } $this->kind_label = wpl_flex::get_kind_label($this->kind); $where['sf_select_kind'] = $this->kind; /** Add search conditions to the where **/ $vars = array_merge(wpl_request::get('POST'), wpl_request::get('GET')); $where = array_merge($vars, $where); $this->model->start($start, $limit, $orderby, $order, $where, $this->kind); $query = $this->model->query(); $properties = $this->model->search($query); $this->model->finish(); /** get the number of all properties according to our query **/ $properties_count = $this->model->get_properties_count(); /** set pagination according to the number of items and limit **/ $this->pagination = wpl_pagination::get_pagination($properties_count, $limit); $plisting_fields = $this->model->get_plisting_fields(); $wpl_properties = array(); foreach ($properties as $property) { $wpl_properties[$property->id] = $this->model->full_render($property->id, $plisting_fields, $property); } $this->wpl_properties = $wpl_properties; return true; }
public function profile($instance = array()) { /** check access **/ if (!wpl_users::check_access('profilewizard')) { /** import message tpl **/ $this->message = __("You don't have access to this part!", WPL_TEXTDOMAIN); return parent::render($this->tpl_path, 'message'); } _wpl_import('libraries.flex'); $this->tpl = 'profile'; $this->kind = wpl_flex::get_kind_id('user'); $this->user_id = wpl_users::get_cur_user_id(); if (wpl_users::is_administrator($this->user_id) and wpl_request::getVar('id', 0)) { $this->user_id = wpl_request::getVar('id'); } $this->user_fields = wpl_flex::get_fields('', 1, $this->kind, 'pwizard', 1); $this->user_data = (array) wpl_users::get_wpl_data($this->user_id); /** import tpl **/ parent::render($this->tpl_path, $this->tpl); }
/** * Check Access for a specific user * @author Howard R <*****@*****.**> * @static * @param string $access * @param int $owner_id * @param int $user_id * @return boolean */ public static function check_access($access, $owner_id = 0, $user_id = '') { /** get current user id **/ if (trim($user_id) == '') { $user_id = wpl_users::get_cur_user_id(); } $user_data = wpl_users::get_wpl_data($user_id); /** user is registered in WordPress but not in WPL so we choose guest user for accesses **/ if (!$user_data) { $user_data = wpl_users::get_wpl_data(0); } if ($access == 'edit') { if ($owner_id == $user_id or wpl_users::is_administrator($user_id)) { return true; } } elseif ($access == 'add') { $num_prop_limit = $user_data->maccess_num_prop; $num_prop = wpl_users::get_users_properties_count($user_id); if ($num_prop_limit == '-1') { return true; } # unlimited if ($num_prop_limit <= $num_prop and !wpl_users::is_administrator($user_id)) { return false; } else { return true; } } elseif ($access == 'delete') { if ($user_data->access_delete and ($owner_id == $user_id or wpl_users::is_administrator($user_id))) { return true; } } elseif ($access == 'confirm') { if ($user_data->access_confirm and ($owner_id == $user_id or wpl_users::is_administrator($user_id))) { return true; } } else { return isset($user_data->{'access_' . $access}) ? $user_data->{'access_' . $access} : 0; } return false; }
/** * For creating admin bar menu * @author Howard <*****@*****.**> * @global object $wp_admin_bar */ public function wpl_admin_bar_menu() { $cur_user_id = wpl_users::get_cur_user_id(); $cur_user_data = wpl_users::get_user($cur_user_id); $cur_role = wpl_users::get_role($cur_user_id, false); $wpl_roles = wpl_users::get_wpl_roles(); $menus = wpl_global::get_menus('menu', 'backend'); $submenus = wpl_global::get_menus('submenu', 'backend'); global $wp_admin_bar; /** generate pages object **/ $controller = new wpl_controller(); if (wpl_users::is_administrator($cur_user_id) or $cur_user_data->data->wpl_data->id) { /** add menus **/ foreach ($menus as $menu) { $menu_slug = (!wpl_users::is_administrator($cur_user_id) and $menu->capability != 'current') ? 'wpl_admin_profile' : $menu->menu_slug; $wp_admin_bar->add_menu(array('id' => $menu->menu_slug, 'title' => __($menu->menu_title, WPL_TEXTDOMAIN), 'href' => wpl_global::get_wp_admin_url() . 'admin.php?page=' . $menu_slug)); } /** add sub menus **/ foreach ($submenus as $submenu) { if (!wpl_users::has_menu_access($submenu->menu_slug)) { continue; } if (!wpl_users::is_administrator($cur_user_id) and $submenu->capability != 'current') { continue; } $menu_title = $submenu->separator ? $controller->wpl_add_separator() . __($submenu->menu_title, WPL_TEXTDOMAIN) : __($submenu->menu_title, WPL_TEXTDOMAIN); $wp_admin_bar->add_menu(array('id' => $submenu->menu_slug, 'parent' => $submenu->parent, 'title' => $menu_title, 'href' => wpl_global::get_wp_admin_url() . 'admin.php?page=' . $submenu->menu_slug)); } } }
/** * Check user access to a certain section * @author Howard <*****@*****.**> * @static * @param string $access * @param int $user_id * @return int */ public static function check_access($access, $user_id = '') { if ($access == '') { return 1000; } /** get current user id **/ if (!trim($user_id)) { $user_id = wpl_users::get_cur_user_id(); } /** return admin access **/ if (wpl_users::is_administrator($user_id)) { return 1000; } if (!trim($user_id) or !wpl_users::is_wpl_user($user_id)) { $query = "SELECT `access_" . $access . "` FROM `#__wpl_users` WHERE `id`='-2'"; } else { $query = "SELECT `access_" . $access . "` FROM `#__wpl_users` WHERE `id`='{$user_id}'"; } $result = wpl_db::select($query, 'loadResult'); if ($result == '') { return 0; } return $result; }
?> " <?php echo $current_value == $property_type['id'] ? 'selected="selected"' : ''; ?> ><?php echo __($property_type['name'], WPL_TEXTDOMAIN); ?> </option> <?php } ?> </select> </div> <?php if (wpl_users::is_administrator()) { ?> <?php $current_value = wpl_request::getVar('sf_select_user_id', '-1'); ?> <div class="wpl_listing_manager_search_form_element_cnt"> <select name="sf_select_user_id" id="sf_select_user_id"> <option value="-1"><?php echo __('User', WPL_TEXTDOMAIN); ?> </option> <?php foreach ($this->users as $user) { ?> <option value="<?php