‘Property Views’
);
return $labels;
}
/**
* Helper function to request enumerable values for a given filter
*
* @param string $filter – filter name
* @param string $market – market name
* @param string $listingType – listing type name
* @return array
*/
function enumerateFilter($filter, $market, $listingType)
{
$result = array();
$args = array(
‘id’ => $market,
‘listingType’ => $listingType,
‘property’ => $filter
);
$values = \hji\membership\Membership::getInstance()->apiController->api->enumerate($args);
if (is_array($values) && isset($values[‘values’]) && !empty($values[‘values’]))
{
foreach ($values[‘values’] as $value)
{
$result[‘values’][$value] = $value;
}
}
return $result;
}
/**
* Adds Property Views selection list filter to Sandicor Residential QSW
* Implements extended schema filter xf_lfd_view_44
*/
add_filter(‘ridx_search_form_residential’, ‘add_extended_filter_xf_lfd_view_44’, 10, 2);
/**
* @param array $vars – array of QSW fields and their properties
* @param object $widgetModal – \hji\ResponsiveIDX\models\QuickSearchViewModel
*/
function add_extended_filter_xf_lfd_view_44($vars, $widgetModel)
{
// Current extended filter only supported by Sandicor market
if ($widgetModel->market != ‘sandicor’)
return $vars;
// Start creating custom field
// Get currently selected value
$currentValue = $widgetModel->getParam(‘xf_lfd_view_44’);
// Get filter’s enumerable values from API
$enum = enumerateFilter(‘xf_lfd_view_44’, $widgetModel->market, ‘Residential’);
// Define field properties
$fieldProperties = array(
‘type’ => ‘select’,
‘name’ => ‘xf_lfd_view_44’,
‘label’ => ‘Property Views’,
‘atts’ => array(
‘id’ => ‘xf_lfd_view’,
),
‘before’ => ‘
‘after’ => ‘
‘,
‘value’ => $enum[‘values’],
‘currentValue’ => $currentValue,
);
// Create field’s HTML view
$viewField = $widgetModel->createFormField($fieldProperties);
// Add field into the array of current fields
$vars[‘mainFields’] = $vars[‘mainFields’] + array(‘id’ => $viewField);
return $vars;
}