HJI WP Membership Code Reference
  • Namespace
  • Class
  • Tree
  • Deprecated
  • Todo
  • Hook Reference
  • Slipstream API Docs

Namespaces

  • hji
    • AgentRoster
      • controllers
      • models
      • utils
    • common
      • factories
      • interfaces
      • models
      • utils
    • construction
      • admin
        • controllers
        • models
      • core
      • front
        • controllers
      • interfaces
      • models
        • listings
        • subdivisions
      • views
    • geofarms
      • common
      • controllers
      • models
      • widgets
    • homevalue
      • controllers
      • core
        • abstracts
      • models
    • lifestylefinder
    • listingstoblog
      • controllers
    • membership
      • abstracts
      • controllers
      • entities
      • extension
        • abstracts
        • interfaces
      • factories
      • includes
      • interfaces
      • models
        • data
        • webservice
          • abstracts
          • actions
          • interfaces
      • observers
      • services
    • recentsales
      • controllers
      • tinymce
      • widgets
    • ResponsiveIDX
      • abstracts
      • adapters
      • controllers
      • core
        • abstracts
      • entities
      • models
      • services
      • tinymce
      • utils
      • widgets
    • schools
      • controllers
      • tinymce
      • widgets
    • users
      • abstracts
      • admin
        • controllers
        • models
      • controllers
      • core
        • abstracts
      • entities
      • models
      • utils
  • None
  • REL
    • controllers
    • Models
    • Taxonomies
    • Utils
      • Convert
    • widgets

Classes

  • hji\AgentRoster\AgentRoster
  • hji\AgentRoster\controllers\AgentRosterAdmin
  • hji\AgentRoster\controllers\Testimonials
  • hji\AgentRoster\models\TestimonialsModel
  • hji\AgentRoster\utils\ContactForm
  • hji\common\factories\mcePluginFactory
  • hji\common\factories\WidgetTrioFactory
  • hji\common\interfaces\AbstractSettingsModel
  • hji\common\interfaces\Shortcode
  • hji\common\interfaces\Widget
  • hji\common\interfaces\WidgetShortcode
  • hji\common\models\Alerts
  • hji\common\models\GForms
  • hji\common\models\JsVars
  • hji\common\models\mcePluginModel
  • hji\common\models\Notices
  • hji\common\models\PluginJsVars
  • hji\common\utils\APIClient
  • hji\common\utils\Cookies
  • hji\common\utils\GFHelper
  • hji\common\utils\HTTP
  • hji\common\utils\ipAddress
  • hji\common\utils\MetaBoxes
  • hji\common\utils\Modal
  • hji\common\utils\Paths
  • hji\common\utils\SiteInfo
  • hji\common\utils\String
  • hji\common\utils\Updater
  • hji\common\utils\Validator
  • hji\common\utils\View
  • hji\common\utils\Views
  • hji\common\utils\WPCache
  • hji\common\utils\WPHelper
  • hji\construction\admin\AdminController
  • hji\construction\admin\controllers\GeneralPageController
  • hji\construction\admin\models\GeneralPageModel
  • hji\construction\App
  • hji\construction\core\Component
  • hji\construction\core\Controller
  • hji\construction\core\DataModel
  • hji\construction\core\DataObjectPostView
  • hji\construction\core\Model
  • hji\construction\core\Paths
  • hji\construction\core\PostModel
  • hji\construction\core\WebService
  • hji\construction\core\Widget
  • hji\construction\front\controllers\ListingsController
  • hji\construction\front\controllers\SubdivisionsController
  • hji\construction\front\FrontController
  • hji\construction\models\Images
  • hji\construction\models\Labels
  • hji\construction\models\listings\ListingModel
  • hji\construction\models\listings\ListingsGetFilters
  • hji\construction\models\listings\ListingsModel
  • hji\construction\models\listings\ListingsSearchFilters
  • hji\construction\models\NCSearchWidget
  • hji\construction\models\NCSearchWidgetViewModel
  • hji\construction\models\Pagination
  • hji\construction\models\Settings
  • hji\construction\models\subdivisions\SubdivisionModel
  • hji\construction\models\subdivisions\SubdivisionsGetFilters
  • hji\construction\models\subdivisions\SubdivisionsGetOptions
  • hji\construction\models\subdivisions\SubdivisionsModel
  • hji\construction\models\subdivisions\SubdivisionsSearchFilters
  • hji\construction\models\subdivisions\SubdivisionsSearchOptions
  • hji\construction\NewConstruction
  • hji\construction\ServiceContainer
  • hji\construction\views\ListingsView
  • hji\construction\views\SubdivisionsView
  • hji\geofarms\common\ImageResize
  • hji\geofarms\common\RewriteRules
  • hji\geofarms\controllers\AreaCache
  • hji\geofarms\controllers\CMB
  • hji\geofarms\controllers\CPT
  • hji\geofarms\controllers\FrontEnd
  • hji\geofarms\controllers\Settings
  • hji\geofarms\controllers\Shortcodes
  • hji\geofarms\controllers\Slipstream
  • hji\geofarms\controllers\Taxonomy
  • hji\geofarms\controllers\TinyMCE
  • hji\geofarms\controllers\UpdateNeighborhoods
  • hji\geofarms\GeoFarms
  • hji\geofarms\models\CMB
  • hji\geofarms\models\CPT
  • hji\geofarms\models\Settings
  • hji\geofarms\models\Slipstream
  • hji\geofarms\models\Taxonomy
  • hji\geofarms\models\TinyMCE
  • hji\geofarms\widgets\Display
  • hji\geofarms\widgets\Map
  • hji\homevalue\controllers\HomeValueTinyMCE
  • hji\homevalue\controllers\HomeValueWidget
  • hji\homevalue\controllers\Settings
  • hji\homevalue\controllers\Shortcodes
  • hji\homevalue\core\abstracts\Component
  • hji\homevalue\core\Controller
  • hji\homevalue\core\Model
  • hji\homevalue\HomeValue
  • hji\homevalue\models\Settings
  • hji\lifestylefinder\LifestyleFinder
  • hji\listingstoblog\controllers\ImportListings
  • hji\listingstoblog\controllers\Settings
  • hji\listingstoblog\ListingsToBlog
  • hji\membership\abstracts\Component
  • hji\membership\abstracts\Controller
  • hji\membership\abstracts\Model
  • hji\membership\controllers\APIClient
  • hji\membership\controllers\CommonScripts
  • hji\membership\controllers\Dependency
  • hji\membership\controllers\DependencyResolver
  • hji\membership\controllers\Dispatcher
  • hji\membership\controllers\Downloads
  • hji\membership\controllers\GForms
  • hji\membership\controllers\ProductManager
  • hji\membership\controllers\ProductRegistrar
  • hji\membership\controllers\RegistryEntry
  • hji\membership\controllers\RequireJs
  • hji\membership\controllers\Settings
  • hji\membership\controllers\UpdateManager
  • hji\membership\entities\Event
  • hji\membership\entities\UserActionEvent
  • hji\membership\extension\abstracts\Component
  • hji\membership\factories\ProductFactory
  • hji\membership\includes\CustomerInfoSynchronizer
  • hji\membership\interfaces\Product
  • hji\membership\Membership
  • hji\membership\models\APIClientModel
  • hji\membership\models\Customer
  • hji\membership\models\data\Address
  • hji\membership\models\data\Image
  • hji\membership\models\data\Images
  • hji\membership\models\data\Paging
  • hji\membership\models\data\Sorting
  • hji\membership\models\DependencyEntity
  • hji\membership\models\DependencyModel
  • hji\membership\models\PluginEntity
  • hji\membership\models\ProductDependencies
  • hji\membership\models\Settings
  • hji\membership\models\ThemeEntity
  • hji\membership\models\UserActionLogger
  • hji\membership\models\UserSession
  • hji\membership\models\webservice\abstracts\QueryProperties
  • hji\membership\models\webservice\abstracts\WebService
  • hji\membership\models\webservice\abstracts\WebServiceFilters
  • hji\membership\models\webservice\actions\ActionsSearchFilters
  • hji\membership\models\webservice\actions\ActionsWebService
  • hji\membership\models\webservice\WebServiceOptions
  • hji\membership\models\WpCatalog
  • hji\membership\observers\EventDispatcher
  • hji\membership\observers\EventLogger
  • hji\membership\services\CPT_Router
  • hji\membership\services\DependencyInjector
  • hji\membership\services\DependencyInjectorInterface
  • hji\membership\services\Request
  • hji\membership\services\Route
  • hji\membership\services\Router
  • hji\membership\services\ServiceContainer
  • hji\membership\services\SocialGraph
  • hji\recentsales\controllers\Shortcodes
  • hji\recentsales\RecentSales
  • hji\recentsales\tinymce\RecentSales
  • hji\recentsales\widgets\RecentSales
  • hji\ResponsiveIDX\abstracts\FilterSchema
  • hji\ResponsiveIDX\adapters\IdxAdapter
  • hji\ResponsiveIDX\adapters\LegalAdapter
  • hji\ResponsiveIDX\adapters\ListingAdapter
  • hji\ResponsiveIDX\controllers\BaseController
  • hji\ResponsiveIDX\controllers\IdxApp
  • hji\ResponsiveIDX\controllers\Pagination
  • hji\ResponsiveIDX\controllers\RecentlyViewed
  • hji\ResponsiveIDX\controllers\RegistrationForm
  • hji\ResponsiveIDX\controllers\Settings
  • hji\ResponsiveIDX\controllers\Upgrader
  • hji\ResponsiveIDX\core\abstracts\Component
  • hji\ResponsiveIDX\core\Controller
  • hji\ResponsiveIDX\core\Model
  • hji\ResponsiveIDX\entities\ComplianceRule
  • hji\ResponsiveIDX\entities\ListingEntity
  • hji\ResponsiveIDX\models\ComplianceModel
  • hji\ResponsiveIDX\models\ComplianceViewModel
  • hji\ResponsiveIDX\models\FieldLabels
  • hji\ResponsiveIDX\models\HashMap
  • hji\ResponsiveIDX\models\IdxSearchModel
  • hji\ResponsiveIDX\models\MarketMetadata
  • hji\ResponsiveIDX\models\PaginationViewModel
  • hji\ResponsiveIDX\models\QuickSearchViewModel
  • hji\ResponsiveIDX\models\SearchFilters
  • hji\ResponsiveIDX\models\SearchParams
  • hji\ResponsiveIDX\models\SearchResultsViewModel
  • hji\ResponsiveIDX\models\ShortcodesModel
  • hji\ResponsiveIDX\models\SpatialMatchModel
  • hji\ResponsiveIDX\ResponsiveIDX
  • hji\ResponsiveIDX\services\ServiceContainer
  • hji\ResponsiveIDX\tinymce\FeaturedListings
  • hji\ResponsiveIDX\utils\ArrayFormat
  • hji\ResponsiveIDX\utils\PluginDependency
  • hji\ResponsiveIDX\utils\StringFormat
  • hji\ResponsiveIDX\utils\View
  • hji\ResponsiveIDX\widgets\FeaturedListings_TinyMCE
  • hji\ResponsiveIDX\widgets\FeaturedListings_Widget
  • hji\ResponsiveIDX\widgets\QuickSearch_Widget
  • hji\schools\controllers\Shortcodes
  • hji\schools\Schools
  • hji\schools\tinymce\Schools
  • hji\schools\widgets\Schools
  • hji\users\abstracts\AdminPageModel
  • hji\users\abstracts\UserAdminTable
  • hji\users\admin\AdminController
  • hji\users\admin\BaseController
  • hji\users\admin\controllers\ActionsPageController
  • hji\users\admin\controllers\UsersPageController
  • hji\users\admin\models\ActionsPageModel
  • hji\users\admin\models\UsersPageModel
  • hji\users\controllers\GravityForms
  • hji\users\controllers\GravityFormsAdmin
  • hji\users\controllers\RegistrationPrompter
  • hji\users\controllers\Settings
  • hji\users\controllers\SocialAuth
  • hji\users\controllers\User
  • hji\users\controllers\UserPanel
  • hji\users\core\abstracts\Component
  • hji\users\core\Controller
  • hji\users\core\Model
  • hji\users\entities\GFEntry
  • hji\users\entities\User
  • hji\users\entities\UserProfile
  • hji\users\models\ActionsSearchFilters
  • hji\users\models\ActionsWebServiceOptions
  • hji\users\models\FavoritesViewModel
  • hji\users\models\FrontEndNotices
  • hji\users\models\RegistrationNotificationViewModel
  • hji\users\models\Request
  • hji\users\models\Settings
  • hji\users\models\SettingsTab
  • hji\users\models\User
  • hji\users\models\UserActionsModel
  • hji\users\models\UserFactory
  • hji\users\models\UsersSearchModel
  • hji\users\Users
  • hji\users\utils\GravityFormsHelper
  • hji\users\utils\UserActionsTable
  • hji\users\utils\UserAuth
  • hji\users\utils\UserFavoritesTable
  • hji\users\utils\UserFormEntriesTable
  • hji\users\utils\UserListTable
  • hji\users\utils\UserSearchesTable
  • hji\users\utils\UserSessionsTable
  • REL\controllers\Admin
  • REL\controllers\FSBO
  • REL\controllers\PocketListings
  • REL\controllers\rIDXImport
  • REL\Models\ListingViewModel
  • REL\Models\rIDXImport
  • REL\Models\Upgrades
  • REL\RealEstateListings
  • REL\Taxonomies\CustomTaxonomies
  • REL\Utils\Convert\ListingConverter
  • REL\widgets\PocketListingsSearchWidget
  • REL\widgets\PocketListingsWidget
  • SM_API_Client

Interfaces

  • hji\construction\interfaces\IPost
  • hji\membership\extension\interfaces\ExtensionInterface
  • hji\membership\interfaces\CRUD
  • hji\membership\interfaces\Dispatchable
  • hji\membership\interfaces\EventDispatcherInterface
  • hji\membership\interfaces\Loggable
  • hji\membership\models\webservice\interfaces\IGettable
  • hji\membership\models\webservice\interfaces\ISearchable

Functions

  • __admin_redirect
  • get_pocket_listing
  • hji\membership\controllers\__inject_plugin_table
  • hji\membership\controllers\__inject_theme_table
  • hji_user_favorite_toggle
  • hjigf_display
  • hjigf_display_map
  • hjigf_get_community_feature
  • hjigf_get_post_thumbnail
  • hjigf_has_area_map
  • ridx_get_listing
  • ridx_is_results_page
  • ridx_is_single
  • ridx_is_single_print
  • table_hjpl_cache
  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  97  98  99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 
<?php
namespace hji\ResponsiveIDX\adapters;


class LegalAdapter
{
    //private $search_params;
    public $search_results;
    public $legal_data;

    private $display;
    private $assets     = array();
    private $lexicon    = array();
    private $axioms     = array();
    public $market;

    private $idxApp;

    private $rendered = array();

    function __construct($search_results, $legal_data)
    {
        // $this->search_params    = $search_params;

        $this->search_results   = $search_results;
        $this->legal_data       = $legal_data;

        // get MLS ID

        $this->idxApp = \hji\ResponsiveIDX\controllers\IdxApp::getInstance();
        $search_params = $this->idxApp->idxSearchModel->GetSearchParams();

        // TODO: get rid of this - should be a getter method insead

        if (!isset($search_params['original']['mls']))
        {
            return;
        }

        $this->market = $search_params['original']['mls'];

        // display

        $this->display = $this->legal_data['display'];

        // assets

        if (isset($this->legal_data['assets']))
        {
            foreach ($this->legal_data['assets'] as $item)
            {
                $this->assets[$item['key']] = $item['value'];
            }
        }

        // lexicon

        if (isset($this->legal_data['lexicon']))
        {
            foreach ( $this->legal_data['lexicon'] as $item)
            {
                $this->lexicon[$item['key']] = $item['value'];
            }
        }

        // axioms

        if (isset($this->display['card']) && !empty($this->display['card']))
        {
            foreach ($this->display['card'] as $item)
            {
                if (isset($item['axiom']))
                {
                    $this->axioms[$item['axiom']] = $item;
                }
            }
        }

        if (!isset($this->axioms) || empty($this->axioms))
        {
            return;
        }
    }


    /**
     * Disclaimer for Search Results
     */
    public function getSearchResultsDisclaimer()
    {
        $output = false;

        if( isset($this->axioms['copyright']) )
        {

            $output .= '<p class="idx-copyright">';
            if( isset($this->axioms['copyright']['asset']) )
                $output .= '<img src="http://app.spatialmatch.com/maps/metadata/mls/' . $this->market . '/' . $this->assets[$this->axioms['copyright']['asset']] . '" alt="' . $this->market  . ' logo" />';

            $output .= $this->_substitutions( $this->lexicon[$this->axioms['copyright']['lexicon']] );
            $output .= '</p>';
        }

        if( isset($this->axioms['disclaimer']) )
        {
            $output .= '<p class="idx-disclaimer">';
            if( isset($this->axioms['disclaimer']['asset']) )
                $output .= '<img src="http://app.spatialmatch.com/maps/metadata/mls/' . $this->market . '/' . $this->assets[$this->axioms['disclaimer']['asset']] . '" alt="' . $this->market  . ' logo" />';

            $output .= $this->_substitutions( $this->lexicon[$this->axioms['disclaimer']['lexicon']] );
            $output .= '</p>';

            $output .= $this->getTrends();

        }

        if( !$this->isRendered() )
        {
            $this->setRendered();
            return $output;
        }
    }


    /**
     * Disclaimer for listing details page
     */
    public function getListingDisclaimer()
    {
        $output = '';

        //$output .= $this->getCourtesyOf();

        $output .= $this->getCopyright();

        $output .= $this->getDisclaimer();

        $output .= $this->getTrends();

        if( !$this->isRendered() )
        {
            $this->setRendered();
            return $output;
        }
    }


    /**
     * Search results thumbnail attribution
     */
    public function getThumbnailAttribution()
    {
        if (isset($this->display['thumbnail']))
        {
            foreach($this->display['thumbnail'] as $rule)
            {
                if (isset($rule['asset']))
                {
                    return '<img class="idx-logo-thumbnail" src="http://app.spatialmatch.com/maps/metadata/mls/' . $this->market . '/' . $this->assets[$rule['asset']] . '" alt="' . $this->market  . ' logo" />';
                }
            }
        }
    }


    /**
     * Search form disclaimer
     */
    public function getSearchFormDisclaimer()
    {

    }


    /**
     * @return string Returns Courtesy of "Company Name" - listing company disclaimer.
     */
    public function getCourtesyOf()
    {
        $output = '';

        $courtesy = false;

        if (isset($this->axioms['courtesy']))
        {
            $courtesy = $this->axioms['courtesy'];
        }
        else if (isset($this->axioms['below-photo']))
        {
            $courtesy = $this->axioms['below-photo'];
        }

        if ($courtesy)
        {
            $output .= '<p class="idx-curtesy">' . $this->_substitutions( wp_strip_all_tags($this->lexicon[$courtesy['lexicon']]) ) . '</p>';
            if( isset($courtesy['asset']) )
                $output .= '<p><img src="http://app.spatialmatch.com/maps/metadata/mls/' . $this->market . '/' . $this->assets[$courtesy['asset']] . '" alt="' . $this->market  . ' logo" /></p>';
        }
        return $output;
    }


    /**
     * @return string Returns MLS copyright signature.
     */
    public function getCopyright()
    {
        $output = '';
        if( isset($this->axioms['copyright']) )
        {
            $output .= '<p class="idx-copyright">';
            if( isset($axioms['copyright']['asset']) )
                $output .= '<img src="http://app.spatialmatch.com/maps/metadata/mls/' . $this->market . '/' . $this->assets[$this->axioms['copyright']['asset']] . '" alt="' . $this->market  . ' logo" />';

            $output .= $this->_substitutions( $this->lexicon[$this->axioms['copyright']['lexicon']] );
            $output .= '</p>';
        }
        return $output;
    }


    /**
     * @return string Returns MLS disclaimer verbiage.
     */
    public function getDisclaimer()
    {
        $output = '';
        if( isset($this->axioms['disclaimer']) )
        {
            $output .= '<p class="idx-disclaimer">';
            if( isset($this->axioms['disclaimer']['asset']) )
                $output .= '<img src="http://app.spatialmatch.com/maps/metadata/mls/' . $this->market . '/' . $this->assets[$this->axioms['disclaimer']['asset']] . '" alt="' . $this->market  . ' logo" />';

            $output .= $this->_substitutions( $this->lexicon[$this->axioms['disclaimer']['lexicon']] );
            $output .= '</p>';
        }

        return $output;
    }


    public function getTrends()
    {
        $output = '';

        if( isset($this->lexicon['trends.drilldown.disclaimer']) )
            $output .= '<p>' . $this->_substitutions( $this->lexicon['trends.drilldown.disclaimer'] ) . '</p>';

        if( isset($this->lexicon['trends.viewer.courtesy']) )
            $output .= '<p>' . $this->_substitutions( $this->lexicon['trends.viewer.courtesy'] ) . '</p>';

        return $output;
    }


    private function _substitutions($string)
    {
        
        //grab init data
        $init_info = \hji\ResponsiveIDX\controllers\Settings::get_valid_license_keys();

        if( $init_info == null )
            return $string;

        //get contact info attached to MLS ID
        foreach( $init_info as $lk )
        {
            if( isset($lk['mls']) && $this->market == $lk['mls'])
            {
                $contact = $lk['contact'];
                break;
            }
        }


        //get values for field substitutions
        $l = $this->search_results;

        // WP date/time format
        $date_format = get_option('date_format');
        $time_format = get_option('time_format');

        if (!$lastUpdated = @strtotime($l->last_updated))
        {
            $lastUpdated = @strtotime($l[0]->last_updated);
        }

        $year = date('Y');
        $last_updated = $lastUpdated ? date("{$date_format} {$time_format}", $lastUpdated) : date("{$date_format} {$time_format}", time());

        if (isset($contact['officeName']))
            $broker_name = $contact['officeName'];
        else
            $broker_name = '';

        if( @$l->list_office_name )
            $office_name = $l->list_office_name;
        elseif( isset($contact['officeName']) )
            $office_name = $contact['officeName'];
        else
            $office_name = '';

        if( @$l->agent_name )
            $agent_name = $l->agent_name;
        elseif( isset($contact['agentName']) )
            $agent_name = $contact['agentName'];
        else
            $agent_name = '';

        if( @$l->agent_phone )
            $agent_phone = $l->agent_phone;
        elseif( isset($contact['phone']) )
            $agent_phone = $contact['phone'];
        else
            $agent_phone = '';

        if( @$l->agent_email )
            $agent_email = $l->agent_email;
        elseif( isset($contact['email']) )
            $agent_email = $contact['email'];
        else
            $agent_email = '';

        if( @$l->list_office_phone )
            $office_phone = $l->list_office_phone;
        elseif( isset($contact['phone']) )
            $office_phone = $contact['phone'];
        else
            $office_phone = '';

        $listing_agent_dre = (@$l->listing_agent_dre) ? $l->listing_agent_dre : '';

        $patterns = array(
            'year'            => $year,
            'last_updated'    => $last_updated,
            'broker_name'     => $broker_name,
            'agent_name'      => $agent_name,
            'agent_phone'     => $agent_phone,
            'agent_email'     => $agent_email,
            'office_name'     => $office_name,
            'office_phone'    => $office_phone,
            'agent_dre'       => $listing_agent_dre,
        );
        unset($l);

        //substitute field names with values
        foreach( $patterns as $k => $v )
        {
            $string = preg_replace('#\{' . $k . '\}#s', $v, $string);
        }
        return $string;
    }


    protected function setRendered()
    {
        $this->rendered[$this->market] = true;
    }


    public function isRendered()
    {
       if( isset($this->rendered[$this->market]) )
           return $this->rendered[$this->market];

       return false;
    }

}
HJI WP Membership Code Reference API documentation generated by ApiGen