1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96
<?php
namespace hji\construction\models\listings;
use hji\construction\App;
use hji\construction\core\DataModel;
class ListingModel extends DataModel
{
protected $rawData;
protected $postType = 'nc-listing';
function __construct($rawData = null)
{
if ($rawData)
{
$this->setData($rawData);
}
}
public function getPostType()
{
return $this->postType;
}
public function getPostTitle()
{
return $this->planName . ' ' . __('by', App::$textdomain) . ' ' . $this->getSubdivision()->name;
}
function getBuilder()
{
if (!isset($this->builder) && isset($this->rawData->builder))
{
$this->builder = $this->rawData->builder;
if (isset($this->builder->url))
{
$parts = parse_url($this->builder->url);
if (!isset($parts['scheme']))
{
$this->builder->url = 'http://' . $this->builder->url;
}
}
else
{
$this->builder->url = null;
}
}
return $this->builder;
}
function getPageSlug()
{
return sanitize_title($this->id);
}
function getPermalink()
{
$post = (object)array(
'ID' => $this->id,
'post_type' => $this->postType,
'post_name' => $this->getPageSlug(),
);
return get_permalink($post);
}
function getPhotoNA()
{
return $this->services()->getPaths()->getUrl('images') . '/photo-na.png';
}
function getSubdivision()
{
if (isset($this->rawData->subdivision))
{
$this->subdivision = $this->di()->create('hji\\construction\\models\\subdivisions\\SubdivisionModel', array($this->rawData->subdivision));
}
return $this->subdivision;
}
}