Sindbad~EG File Manager

Current Path : /home/xiedrke/entrepot/wp-content/plugins/realpress/app/Models/
Upload File :
Current File : /home/xiedrke/entrepot/wp-content/plugins/realpress/app/Models/PropertyModel.php

<?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