/** * Generate location text of User * @author Howard R <*****@*****.**> * @static * @param array $user_data * @param int $user_id * @param string $glue * @return string */ public static function generate_location_text($user_data, $user_id = 0, $glue = ',') { /** fetch user data if user id is setted **/ if ($user_id) { $user_data = (array) wpl_users::get_wpl_user($user_id); } if (!$user_id) { $user_id = $user_data['id']; } $locations = array(); if (isset($user_data['location7_name']) and trim($user_data['location7_name']) != '') { $locations['location7_name'] = __($user_data['location7_name'], WPL_TEXTDOMAIN); } if (isset($user_data['location6_name']) and trim($user_data['location6_name']) != '') { $locations['location6_name'] = __($user_data['location6_name'], WPL_TEXTDOMAIN); } if (isset($user_data['location5_name']) and trim($user_data['location5_name']) != '') { $locations['location5_name'] = __($user_data['location5_name'], WPL_TEXTDOMAIN); } if (isset($user_data['location4_name']) and trim($user_data['location4_name']) != '') { $locations['location4_name'] = __($user_data['location4_name'], WPL_TEXTDOMAIN); } if (isset($user_data['location3_name']) and trim($user_data['location3_name']) != '') { $locations['location3_name'] = __($user_data['location3_name'], WPL_TEXTDOMAIN); } if (isset($user_data['location2_name']) and trim($user_data['location2_name']) != '') { $locations['location2_name'] = __($user_data['location2_name'], WPL_TEXTDOMAIN); } if (isset($user_data['zip_name']) and trim($user_data['zip_name']) != '') { $locations['zip_name'] = __($user_data['zip_name'], WPL_TEXTDOMAIN); } if (isset($user_data['location1_name']) and trim($user_data['location1_name']) != '') { $locations['location1_name'] = __($user_data['location1_name'], WPL_TEXTDOMAIN); } $location_pattern = wpl_global::get_setting('user_location_pattern'); if (trim($location_pattern) == '') { $location_pattern = '[location5_name][glue][location4_name][glue][location3_name][glue][location2_name][glue][location1_name] [zip_name]'; } $location_text = ''; $location_text = isset($locations['location7_name']) ? str_replace('[location7_name]', $locations['location7_name'], $location_pattern) : str_replace('[location7_name]', '', $location_pattern); $location_text = isset($locations['location6_name']) ? str_replace('[location6_name]', $locations['location6_name'], $location_pattern) : str_replace('[location6_name]', '', $location_pattern); $location_text = isset($locations['location5_name']) ? str_replace('[location5_name]', $locations['location5_name'], $location_pattern) : str_replace('[location5_name]', '', $location_pattern); $location_text = isset($locations['location4_name']) ? str_replace('[location4_name]', $locations['location4_name'], $location_text) : str_replace('[location4_name]', '', $location_text); $location_text = isset($locations['location3_name']) ? str_replace('[location3_name]', $locations['location3_name'], $location_text) : str_replace('[location3_name]', '', $location_text); $location_text = isset($locations['location2_name']) ? str_replace('[location2_name]', $locations['location2_name'], $location_text) : str_replace('[location2_name]', '', $location_text); $location_text = isset($locations['zip_name']) ? str_replace('[zip_name]', $locations['zip_name'], $location_text) : str_replace('[zip_name]', '', $location_text); $location_text = isset($locations['location1_name']) ? str_replace('[location1_name]', $locations['location1_name'], $location_text) : str_replace('[location1_name]', '', $location_text); $location_text = str_replace('[glue]', $glue, $location_text); /** apply filters **/ _wpl_import('libraries.filters'); @extract(wpl_filters::apply('generate_user_location_text', array('location_text' => $location_text, 'glue' => $glue, 'user_data' => $user_data))); $final = ''; $ex = explode($glue, $location_text); foreach ($ex as $value) { if (trim($value) == '') { continue; } $final .= trim($value) . $glue . ' '; } $location_text = trim($final, $glue . ' '); $column = 'location_text'; $field_id = wpl_flex::get_dbst_id($column, 2); $field = wpl_flex::get_field($field_id); if (isset($field->multilingual) and $field->multilingual and wpl_global::check_multilingual_status()) { $column = wpl_addon_pro::get_column_lang_name($column, wpl_global::get_current_language(), false); } /** update **/ $query = "UPDATE `#__wpl_users` SET `{$column}`='" . $location_text . "' WHERE `id`='{$user_id}'"; wpl_db::q($query, 'update'); return $location_text; }
/** * Returns Location Suffixes and Prefixes * @author Howard <*****@*****.**> * @static * @return array */ public static function get_location_suffix_prefix() { $results = explode(',', trim(wpl_global::get_setting('location_suffix_prefix', 3), ', ')); $sufpre = array(); foreach ($results as $result) { $sufpre[] = trim($result, ', '); } return $sufpre; }
<div id="wpl_slide_container_id10000_befor_save" class="hide"><img src="<?php echo wpl_global::get_wpl_asset_url('img/ajax-loader3.gif'); ?> " /></div> <div id="wpl_slide_container_id10000_after_save" class="hide"> <div class="after-finilize-wp"> <div class="finilize-icon"></div> <div class="message-wp"> <span> <?php echo __('Your property successfully finalized!', WPL_TEXTDOMAIN); ?> </span> <div class="finilize-btn-wp"> <?php $listing_target_page = wpl_global::get_client() == 1 ? wpl_global::get_setting('backend_listing_target_page') : NULL; $property_link = wpl_property::get_property_link('', $this->property_id, $listing_target_page); $new_link = wpl_global::remove_qs_var('pid', wpl_global::get_full_url()); if ($this->kind) { $new_link = wpl_global::add_qs_var('kind', $this->kind, $new_link); } if (wpl_global::get_client() == 1) { $manager_link = wpl_global::add_qs_var('kind', $this->kind, wpl_global::get_wpl_admin_menu('wpl_admin_listings')); } else { $manager_link = wpl_global::add_qs_var('kind', $this->kind, wpl_global::remove_qs_var('wplmethod', wpl_global::remove_qs_var('pid'))); } ?> <a class="wpl-button button-2" target="_blank" href="<?php echo $property_link; ?> "><?php
/** * Get notification sender * @author Howard R <*****@*****.**> * @static * @return array|string */ public static function get_sender() { $wpl_sender_email = wpl_global::get_setting('wpl_sender_email'); $wpl_sender_name = wpl_global::get_setting('wpl_sender_name'); if (trim($wpl_sender_email) == '') { $domain = wpl_global::domain(wpl_global::get_full_url()); $wpl_sender_email = 'info@' . $domain; } if (trim($wpl_sender_name) == '') { return $wpl_sender_email; } else { return array($wpl_sender_name, $wpl_sender_email); } }
/** * Check Multilingual Status * @author Howard <*****@*****.**> * @static * @return boolean */ public static function check_multilingual_status() { $pro = wpl_global::check_addon('pro'); $status = 0; if ($pro) { $status = wpl_global::get_setting('multilingual_status'); } if ($pro and $status) { return true; } else { return false; } }
defined('_WPLEXEC') or die('Restricted access'); /** set params **/ $wpl_properties = isset($params['wpl_properties']) ? $params['wpl_properties'] : array(); $this->property_id = isset($wpl_properties['current']['data']['id']) ? $wpl_properties['current']['data']['id'] : NULL; /** get image params **/ $this->image_width = isset($params['image_width']) ? $params['image_width'] : 360; $this->image_height = isset($params['image_height']) ? $params['image_height'] : 285; $this->image_class = isset($params['image_class']) ? $params['image_class'] : ''; $this->autoplay = (isset($params['autoplay']) and trim($params['autoplay']) != '') ? $params['autoplay'] : 1; $this->resize = (isset($params['resize']) and trim($params['resize']) != '') ? $params['resize'] : 1; $this->rewrite = (isset($params['rewrite']) and trim($params['rewrite']) != '') ? $params['rewrite'] : 0; $this->watermark = (isset($params['watermark']) and trim($params['watermark']) != '') ? $params['watermark'] : 1; /** render gallery **/ $raw_gallery = isset($wpl_properties['current']['items']['gallery']) ? $wpl_properties['current']['items']['gallery'] : array(); $this->gallery = wpl_items::render_gallery($raw_gallery); $js[] = (object) array('param1' => 'jquery.bxslider', 'param2' => wpl_global::get_setting('js_default_path') . '/wpl.jquery.bxslider.min.js'); foreach ($js as $javascript) { wpl_extensions::import_javascript($javascript, true); } /** import js codes **/ $this->_wpl_import($this->tpl_path . '.scripts.pshow', true, true); ?> <div class="wpl_gallery_container" id="wpl_gallery_container<?php echo $this->property_id; ?> " style="width: <?php echo $this->image_width; ?> px"> <?php if (!count($this->gallery)) {
/** * Returns address of proeprty by latitude and longitude * @author Howard <*****@*****.**> * @static * @param int $latitude * @param int $longitude * @return array */ public static function get_address($latitude, $longitude) { $api_key = wpl_global::get_setting('google_api_key', 1); $url = "https://maps.googleapis.com/maps/api/geocode/json?latlng=" . $latitude . "," . $longitude . "&sensor=false" . (trim($api_key) ? "&key=" . $api_key : ""); /** getting address **/ $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HEADER, 0); /** Change this to a 1 to return headers **/ curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER["HTTP_USER_AGENT"]); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_TIMEOUT, 10); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10); $data = curl_exec($ch); curl_close($ch); $data = json_decode($data, true); $formatted_locations = $data['results'][0]['address_components']; $locations = array(); foreach ($formatted_locations as $formatted_location) { if (in_array('country', $formatted_location['types'])) { $locations['location1'] = $formatted_location['long_name']; } elseif (in_array('administrative_area_level_1', $formatted_location['types'])) { $locations['location2'] = $formatted_location['long_name']; } elseif (in_array('administrative_area_level_2', $formatted_location['types'])) { $locations['location3'] = $formatted_location['long_name']; } } $locations['full_address'] = $data['results'][0]['formatted_address']; return $locations; }
/** * Generates alias of property * @author Howard <*****@*****.**> * @static * @param array $property_data * @param int $property_id * @param string $glue * @param boolean $force * @return string */ public static function update_alias($property_data, $property_id = 0, $glue = '-', $force = false) { /** fetch property data if property id is setted **/ if ($property_id) { $property_data = self::get_property_raw_data($property_id); } if (!$property_id) { $property_id = $property_data['id']; } $column = 'alias'; $field_id = wpl_flex::get_dbst_id($column, $property_data['kind']); $field = wpl_flex::get_field($field_id); $base_column = NULL; if (isset($field->multilingual) and $field->multilingual and wpl_global::check_multilingual_status()) { $base_column = wpl_global::get_current_language() == wpl_addon_pro::get_default_language() ? $column : NULL; $column = wpl_addon_pro::get_column_lang_name($column, wpl_global::get_current_language(), false); } /** return current alias if exists **/ if (isset($property_data[$column]) and trim($property_data[$column]) != '' and !$force) { return $property_data[$column]; } $alias = array(); $alias['id'] = $property_id; if (trim($property_data['property_type'])) { $alias['property_type'] = __(wpl_global::get_property_types($property_data['property_type'])->name, WPL_TEXTDOMAIN); } if (trim($property_data['listing'])) { $alias['listing'] = __(wpl_global::get_listings($property_data['listing'])->name, WPL_TEXTDOMAIN); } $alias['location'] = self::generate_location_text($property_data, $property_id, '-'); if (trim($property_data['rooms'])) { $alias['rooms'] = $property_data['rooms'] . __('Room' . ($property_data['rooms'] > 1 ? 's' : ''), WPL_TEXTDOMAIN); } if (trim($property_data['bedrooms'])) { $alias['bedrooms'] = $property_data['bedrooms'] . __('Bedroom' . ($property_data['bedrooms'] > 1 ? 's' : ''), WPL_TEXTDOMAIN); } if (trim($property_data['bathrooms'])) { $alias['bathrooms'] = $property_data['bathrooms'] . __('Bathroom' . ($property_data['bathrooms'] > 1 ? 's' : ''), WPL_TEXTDOMAIN); } $unit_data = wpl_units::get_unit($property_data['price_unit']); if (trim($property_data['price'])) { $alias['price'] = str_replace('.', '', wpl_render::render_price($property_data['price'], $unit_data['id'], $unit_data['extra'])); } /** apply filters **/ _wpl_import('libraries.filters'); @extract(wpl_filters::apply('generate_property_alias', array('alias' => $alias, 'alias_str' => $alias_str))); $alias_pattern = wpl_global::get_setting('property_alias_pattern'); if (trim($alias_pattern) == '') { $alias_pattern = '[property_type][glue][listing_type][glue][location][glue][rooms][glue][bedrooms][glue][bathrooms][glue][price]'; } $alias_str = ''; $alias_str = isset($alias['property_type']) ? str_replace('[property_type]', $alias['property_type'], $alias_pattern) : str_replace('[property_type]', '', $alias_pattern); $alias_str = isset($alias['listing']) ? str_replace('[listing_type]', $alias['listing'], $alias_str) : str_replace('[listing_type]', '', $alias_str); $alias_str = isset($alias['location']) ? str_replace('[location]', $alias['location'], $alias_str) : str_replace('[location]', '', $alias_str); $alias_str = isset($alias['rooms']) ? str_replace('[rooms]', $alias['rooms'], $alias_str) : str_replace('[rooms]', '', $alias_str); $alias_str = isset($alias['bedrooms']) ? str_replace('[bedrooms]', $alias['bedrooms'], $alias_str) : str_replace('[bedrooms]', '', $alias_str); $alias_str = isset($alias['bathrooms']) ? str_replace('[bathrooms]', $alias['bathrooms'], $alias_str) : str_replace('[bathrooms]', '', $alias_str); $alias_str = isset($alias['price']) ? str_replace('[price]', $alias['price'], $alias_str) : str_replace('[price]', '', $alias_str); $alias_str = str_replace('[glue]', $glue, $alias_str); /** escape **/ $alias_str = wpl_db::escape(wpl_global::url_encode($alias_str)); /** update **/ $query = "UPDATE `#__wpl_properties` SET `{$column}`='" . $alias_str . "' WHERE `id`='" . $property_id . "'"; wpl_db::q($query, 'update'); if ($base_column) { $query = "UPDATE `#__wpl_properties` SET `{$base_column}`='" . $alias_str . "' WHERE `id`='" . $property_id . "'"; wpl_db::q($query, 'update'); } return $alias_str; }
default: $show = 'text'; break; } /** current value **/ $current_value = wpl_request::getVar('sf_textsearch_' . $field_data['table_column'], ''); $html .= '<label for="sf' . $widget_id . '_textsearch_' . $field_data['table_column'] . '">' . __($field['name'], WPL_TEXTDOMAIN) . '</label>'; if ($show == 'text') { $html .= '<input value="' . $current_value . '" name="sf' . $widget_id . '_textsearch_' . $field_data['table_column'] . '" type="text" id="sf' . $widget_id . '_textsearch_' . $field_data['table_column'] . '" />'; } elseif ($show == 'textarea') { $html .= '<textarea name="sf' . $widget_id . '_textsearch_' . $field_data['table_column'] . '" id="sf' . $widget_id . '_textsearch_' . $field_data['table_column'] . '">' . $current_value . '</textarea>'; } $done_this = true; } elseif ($type == 'addon_calendar' and !$done_this) { /** system date format **/ $date_format_arr = explode(':', wpl_global::get_setting('main_date_format')); $jqdate_format = $date_format_arr[1]; $min_value = date("Y-m-d"); $mindate = explode('-', $min_value); $show_icon = 0; /** current value **/ $current_checkin_value = wpl_request::getVar('sf_calendarcheckin', ''); $current_checkout_value = wpl_request::getVar('sf_calendarcheckout', ''); /** for opening more details **/ $current_value = $current_checkin_value; $html .= '<div class="wpl_search_widget_calendar_search_container">'; $html .= '<input type="text" name="sf' . $widget_id . '_calendarcheckin" id="sf' . $widget_id . '_calendarcheckin" value="' . ($current_checkin_value != '' ? $current_checkin_value : '') . '" placeholder="' . __('Check In', WPL_TEXTDOMAIN) . '" />'; $html .= '<input type="text" name="sf' . $widget_id . '_calendarcheckout" id="sf' . $widget_id . '_calendarcheckout" value="' . ($current_checkout_value != '' ? $current_checkout_value : '') . '" placeholder="' . __('Check Out', WPL_TEXTDOMAIN) . '" />'; $html .= '</div>'; $html .= ' <script type="text/javascript">
/** * Returns WPL main page ID * @author Howard R <*****@*****.**> * @static * @return int */ public static function get_wpl_main_page_id() { $main_permalink = wpl_global::get_setting('main_permalink'); if (!is_numeric($main_permalink)) { $main_permalink = wpl_sef::get_post_id($main_permalink); } /** Multilingual **/ if (wpl_global::check_multilingual_status()) { $lang_permalink = wpl_addon_pro::get_lang_main_page(); if ($lang_permalink) { $main_permalink = $lang_permalink; } } return $main_permalink; }
/** * Derendere date based on global settings * @author Albert <*****@*****.**> * @static * @param string $date * @return type */ public static function derender_date($date) { $date_format_arr = explode(':', wpl_global::get_setting('main_date_format')); $date_format = $date_format_arr[0]; if (stristr($date_format, '-') != '') { $delimiter = '-'; } else { $delimiter = '/'; } $date_format_parts = explode($delimiter, $date_format); $date_parts = explode($delimiter, $date); $standard_date = array(); for ($i = 0; $i < 3; $i++) { switch (strtolower($date_format_parts[$i])) { case 'y': $standard_date['y'] = $date_parts[$i]; break; case 'm': $standard_date['m'] = $date_parts[$i]; break; case 'd': $standard_date['d'] = $date_parts[$i]; break; } } $dedate = $standard_date['y'] . '-' . $standard_date['m'] . '-' . $standard_date['d']; $time = ''; if (stristr(trim($date), ' ') != '') { $tmp = explode(' ', $date); $time = $tmp[1]; } $dedate .= $time; return $dedate; }
public function getOutput() { if (!$this->calculate and $this->calculate()) { $string = ''; $string .= "<ul class=\"{$this->className}\">{$this->pagination}</ul>\n"; if ($this->show_total) { $string .= '<span class="wpl_total_result">' . $this->total_pages . ' ' . __('Results returned.', WPL_TEXTDOMAIN) . '</span>'; } if ($this->show_page_size) { $page_sizes = explode(',', trim(wpl_global::get_setting('page_sizes'), ', ')); $string .= '<span class="wpl_page_size">'; $string .= '<span class="wpl_page_size_title">' . __('Per Page ', WPL_TEXTDOMAIN) . '</span>'; $string .= '<select class="wpl_page_size_options" onchange="wpl_pagesize_changed(this.value);">'; foreach ($page_sizes as $page_size) { $string .= '<option value="' . $page_size . '" ' . ($this->limit == $page_size ? 'selected="selected"' : '') . '>' . $page_size . '</option>'; } $string .= '</select>'; $string .= '</span>'; } return $string; } }
/** * For inserting logs using WPL events API * @author Howard R <*****@*****.**> * @static * @param array $params * @return int */ public static function autolog($params = array()) { $log = wpl_global::get_setting('log', 1); if (!$log) { return false; } $dynamic_params = $params[0]; $static_params = $params[1]; $section = isset($static_params['section']) ? $static_params['section'] : 'no-section'; $addon_id = isset($static_params['addon_id']) ? $static_params['addon_id'] : 0; $user_id = isset($static_params['user_id']) ? $static_params['user_id'] : NULL; $status = isset($static_params['status']) ? $static_params['status'] : 1; $priority = isset($static_params['priority']) ? $static_params['priority'] : 3; $patterns = array('[', ']'); if ($static_params['type'] == 1) { preg_match_all('#\\[+[\\w|\\d]+\\]?#', $static_params['message'], $pattern_match); $message_pattern = $pattern_match[0]; if (is_array($dynamic_params)) { if (count($dynamic_params) > 1) { /* Modify params that took of preg_match */ $new_params = str_replace($patterns, '', $message_pattern); $new_array_params = array(); foreach ($new_params as $value_array) { $new_array_params[] = $dynamic_params[$value_array]; } $log_text = str_replace($message_pattern, $new_array_params, $static_params['message']); } elseif (count($dynamic_params) == 1) { $array_key = array_keys($dynamic_params); $log_text = str_replace($message_pattern[0], $dynamic_params[$array_key[0]], $static_params['message']); } } else { $log_text = str_replace($message_pattern[0], $dynamic_params, $static_params['message']); } } elseif ($static_params['type'] == 2) { preg_match_all('#\\[+[\\w|\\d]+\\]?#', $static_params['pattern'], $pattern_match); $value_pattern = $pattern_match[0]; if (is_array($dynamic_params)) { if (count($dynamic_params) > 1) { /* Modify params that took of preg_match */ $new_params = str_replace($patterns, '', $value_pattern); $new_array_params = array(); foreach ($new_params as $value_array) { $new_array_params[] = $dynamic_params[$value_array]; } $query = str_replace($value_pattern, $new_array_params, $static_params['pattern']); } elseif (count($dynamic_params) == 1) { $array_values = array_values($dynamic_params); $query = str_replace($value_pattern[0], $array_values[0], $static_params['pattern']); } } else { $query = str_replace($value_pattern[0], $dynamic_params, $static_params['pattern']); } $contents = wpl_db::select($query, 'loadAssoc'); $log_text = $static_params['message']; if (!empty($contents)) { foreach ($contents as $key => $value) { $log_text = str_replace('[' . $key . ']', $value, $log_text); } } } if ($log_text == '') { $log_text = __('Empty', WPL_TEXTDOMAIN); } return self::add($log_text, $section, $status, $user_id, $addon_id, $priority); }
<?php /** no direct access **/ defined('_WPLEXEC') or die('Restricted access'); if ($type == 'languages' and !$done_this) { $languages = wpl_addon_pro::get_wpl_languages(); $lang_options = wpl_addon_pro::get_wpl_language_options(); $max_langs = max(wpl_global::get_setting('max_wpllangs'), count($languages)); $wp_pages = wpl_global::get_wp_pages(); ?> <div class="prow wpl_setting_form_container wpl-setting-langs wpl_st_type<?php echo $setting_record->type; ?> wpl_st_<?php echo $setting_record->setting_name; ?> " id="wpl_st_<?php echo $setting_record->id; ?> "> <div class="languages-wp"> <div class="wpl-btns-wp"> <button onclick="wpl_languages_save();" class="wpl-button button-1"> <?php echo __('Save', WPL_TEXTDOMAIN); ?> <span class="ajax-inline-save" id="wpl_ajax_loader_<?php echo $setting_record->id; ?> "></span>