/** * Updates property page title * @author Howard <*****@*****.**> * @static * @param array $property_data * @param int $property_id * @param boolean $force * @return string */ public static function update_property_page_title($property_data, $property_id = 0, $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 = 'field_312'; $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 page title if exists **/ if (isset($property_data[$column]) and trim($property_data[$column]) != '' and !$force) { return $property_data[$column]; } /** first validation **/ if (!$property_data) { return ''; } $listing = wpl_global::get_listings($property_data['listing'])->name; $property_type = wpl_global::get_property_types($property_data['property_type'])->name; $title = array(); $title['property_type'] = __($property_type, WPL_TEXTDOMAIN); $title['listing'] = __($listing, WPL_TEXTDOMAIN); if (trim($property_data['rooms'])) { $title['rooms'] = $property_data['rooms'] . __('Room' . ($property_data['rooms'] > 1 ? 's' : ''), WPL_TEXTDOMAIN); } if (trim($property_data['bedrooms'])) { $title['bedrooms'] = $property_data['bedrooms'] . __('Bedroom' . ($property_data['bedrooms'] > 1 ? 's' : ''), WPL_TEXTDOMAIN); } if (trim($property_data['bathrooms'])) { $title['bathrooms'] = $property_data['bathrooms'] . __('Bathroom' . ($property_data['bathrooms'] > 1 ? 's' : ''), WPL_TEXTDOMAIN); } $title['price'] = __('Price', WPL_TEXTDOMAIN) . ' ' . wpl_render::render_price($property_data['price'], $property_data['price_unit']); $title['id'] = $property_data['mls_id']; $title_str = implode(' - ', $title); /** apply filters **/ _wpl_import('libraries.filters'); @extract(wpl_filters::apply('generate_property_page_title', array('title' => $title, 'title_str' => $title_str))); /** update **/ if (wpl_db::columns('wpl_properties', $column)) { $query = "UPDATE `#__wpl_properties` SET `" . $column . "`='" . $title_str . "' WHERE `id`='" . $property_id . "'"; wpl_db::q($query, 'update'); } /** update **/ if ($base_column and wpl_db::columns('wpl_properties', $base_column)) { $query = "UPDATE `#__wpl_properties` SET `" . $base_column . "`='" . $title_str . "' WHERE `id`='" . $property_id . "'"; wpl_db::q($query, 'update'); } return $title_str; }
} } if (isset($options['if_zero']) and $options['if_zero'] == 2 and !trim($value)) { $return['value'] = __($options['call_text'], WPL_TEXTDOMAIN); } if (isset($options['if_zero']) and !$options['if_zero'] and !trim($value)) { $return = array(); } $done_this = true; } elseif ($type == 'mmprice' and !$done_this) { $return['field_id'] = $field->id; $return['type'] = $field->type; $return['name'] = __($field->name, WPL_TEXTDOMAIN); $rendered_price = wpl_render::render_price($value, $values[$field->table_column . '_unit']); if (trim($values[$field->table_column . '_max'])) { $rendered_price .= ' - ' . wpl_render::render_price($values[$field->table_column . '_max'], $values[$field->table_column . '_unit']); } $return['value'] = $rendered_price; $return['price_only'] = $rendered_price; $price_period = wpl_property::render_field($values['price_period'], wpl_flex::get_dbst_id('price_period', $field->kind)); if (isset($price_period['value'])) { $return['value'] .= ' ' . $price_period['value']; $return['price_period'] = $price_period['value']; } if (isset($options['if_zero']) and $options['if_zero'] == 2 and !trim($value) and !trim($values[$field->table_column . '_max'])) { $return['value'] = __($options['call_text'], WPL_TEXTDOMAIN); } if (isset($options['if_zero']) and !$options['if_zero'] and !trim($value) and !trim($values[$field->table_column . '_max'])) { $return = array(); } $done_this = true;