Sindbad~EG File Manager
<?php
namespace RealPress\Models;
use RealPress\Helpers\Compare;
use RealPress\Helpers\Settings;
use RealPress\Helpers\WishList;
use RealPress\Helpers\General;
use RealPress\Helpers\Price;
class PropertyModel {
/**
* @param $property_id
*
* @return false|string
*/
public static function get_excerpt( $property_id ) {
$excerpt = get_the_excerpt( $property_id );
if ( empty( $excerpt ) ) {
$excerpt = get_the_content( null, false, $property_id );
}
return substr( $excerpt, 0, 100 );
}
/**
* @param $property_id
* @param $size
*
* @return false|string
*/
public static function get_post_thumbnail_url( $property_id ) {
$thumbnail_width = Settings::get_setting_detail( 'group:property:fields:thumbnail_dimension_width' );
$thumbnail_height = Settings::get_setting_detail( 'group:property:fields:thumbnail_dimension_height' );
if ( $thumbnail_width && $thumbnail_height ) {
$size = array( $thumbnail_width, $thumbnail_height );
} else {
$size = array( 400, 300 );
}
$thumbnail_url = get_the_post_thumbnail_url( $property_id, $size );
if ( empty( $thumbnail_url ) ) {
$thumbnail_url = General::get_default_image();
}
return $thumbnail_url;
}
/**
* @param $property_id
*
* @return array
*/
public static function get_data( $property_id ) {
$property_meta_model = PropertyMetaModel::instance( $property_id );
$price = $property_meta_model->get_price();
$text_after_price = $property_meta_model->get_text_after_price();
$formatted_price = Price::render_price( $price );
$data = array(
'id' => $property_id,
'title' => get_the_title(),
'time' => get_the_time( 'U' ),
'types' => $property_meta_model->get_property_terms( 'realpress-type' ),
'statuses' => $property_meta_model->get_property_terms( 'realpress-status' ),
'labels' => $property_meta_model->get_property_terms( 'realpress-label' ),
'locations' => $property_meta_model->get_property_terms( 'realpress-location' ),
'features' => $property_meta_model->get_property_terms( 'realpress-feature' ),
'energy-class' => $property_meta_model->get_property_terms( 'realpress-energy-class' ),
'is_enable_map' => $property_meta_model->is_enable_map(),
'address_name' => $property_meta_model->get_address_name(),
'city' => $property_meta_model->get_city(),
'state' => $property_meta_model->get_state(),
'country' => $property_meta_model->get_country(),
'postcode' => $property_meta_model->get_postcode(),
'lat_lng' => $property_meta_model->get_lat_lng(),
'price' => $price,
'text_after_price' => $text_after_price,
'formatted_price' => $formatted_price,
'gallery' => $property_meta_model->get_galleries(),
'thumbnail_id' => get_post_thumbnail_id( $property_id ),
'vr_video' => $property_meta_model->get_vr_video(),
'video' => $property_meta_model->get_video(),
'property_id' => $property_meta_model->get_property_id(),
'bedrooms' => $property_meta_model->get_bedrooms(),
'bathrooms' => $property_meta_model->get_bathrooms(),
'area_size' => $property_meta_model->get_area_size(),
'area_size_postfix' => $property_meta_model->get_area_size_postfix(),
'land_area_size' => $property_meta_model->get_land_area_size(),
'land_area_size_postfix' => $property_meta_model->get_land_area_size_postfix(),
'year_built' => $property_meta_model->get_year_built(),
'is_verified' => $property_meta_model->is_verified(),
'additional_details' => $property_meta_model->get_additional_details(),
'rooms' => $property_meta_model->get_rooms(),
'floor_plans' => $property_meta_model->get_floor_plans(),
'review_total' => CommentModel::get_comment_total( $property_id, 'property' ),
'rating' => get_post_meta(
$property_id,
REALPRESS_PREFIX . '_property_average_review',
true
),
'agent' => $property_meta_model->get_agent_info(),
'is_my_wishlist' => WishList::is_my_wishlist( $property_id ),
'is_my_compare' => Compare::is_my_compare( $property_id ),
);
return apply_filters( 'realpress/filter/single-property/data', $data, $property_id );
}
/**
* @param $property_id
*
* @return mixed|void
*/
public static function get_property_list_item_data( $property_id ) {
$property_meta_model = PropertyMetaModel::instance( $property_id );
$price = $property_meta_model->get_price();
$text_after_price = $property_meta_model->get_text_after_price();
$formatted_price = Price::render_price( $price );
$types = $property_meta_model->get_property_terms( 'realpress-type' );
$term = $types[0] ?? null;
$type_name = '';
$type_link = '';
if ( ! empty( $term ) ) {
$type_name = $term->name;
$type_link = get_term_link( $term, 'realpress-type' );
}
$agent_info = $property_meta_model->get_agent_info();
$agent_id = $agent_info['user_id'];
$user_meta_data = UserModel::get_user_meta_data( $agent_id );
$data = array(
'id' => $property_id,
'title' => get_the_title( $property_id ),
'permalink' => get_permalink( $property_id ),
'types' => $property_meta_model->get_property_terms( 'realpress-type' ),
'labels' => $property_meta_model->get_property_terms( 'realpress-label' ),
'statuses' => $property_meta_model->get_property_terms( 'realpress-status' ),
'price' => $price,
'text_after_price' => $text_after_price,
'formatted_price' => $formatted_price,
'lat_lng' => $property_meta_model->get_lat_lng(),
'thumbnail_url' => self::get_post_thumbnail_url( $property_id ),
'address_name' => $property_meta_model->get_address_name(),
'excerpt' => self::get_excerpt( $property_id ),
'bedrooms' => $property_meta_model->get_bedrooms(),
'bathrooms' => $property_meta_model->get_bathrooms(),
'rooms' => $property_meta_model->get_rooms(),
'area_size' => $property_meta_model->get_area_size(),
'area_size_postfix' => $property_meta_model->get_area_size_postfix(),
'is_verified' => $property_meta_model->is_verified(),
'is_my_wishlist' => WishList::is_my_wishlist( $property_id ),
'is_my_compare' => Compare::is_my_compare( $property_id ),
'type_name' => $type_name,
'type_link' => $type_link,
'agent' => $agent_info,
'agent_data' => array(
'display_name' => UserModel::get_field( $agent_id, 'display_name' ),
'link' => get_author_posts_url( $agent_id ),
'avatar_thumbnail' => UserModel::get_user_avatar_url( $agent_id, 'thumbnail' ),
'position' => $user_meta_data['user_profile:fields:position'],
),
);
return apply_filters( 'realpress/filter/property-list-item/data', $data, $property_id );
}
}
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists