Exemplo n.º 1
0
 /**
  * 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;
 }
Exemplo n.º 2
0
 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);
 }
Exemplo n.º 3
0
 /**
  * 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;
 }
Exemplo n.º 4
0
 /**
  * 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));
         }
     }
 }
Exemplo n.º 5
0
 /**
  * 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;
 }
Exemplo n.º 6
0
    ?>
" <?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