Example #1
0
 public function renderPosition($position, $args = array())
 {
     // init vars
     $elements = array();
     $output = array();
     $el_instances = array();
     $user = $this->app->user->get();
     // get style
     $style = isset($args['style']) ? $args['style'] : 'default';
     // store layout
     $layout = $this->_layout;
     // render elements
     foreach ($this->_getConfigPosition($position) as $i => $data) {
         if ($element = $this->_type->getElement($data['element'])) {
             if (!$element->canAccess()) {
                 continue;
             }
             // save the element instance
             if (empty($el_instances[$element->identifier])) {
                 $el_instances[$element->identifier] = 1;
             } else {
                 $el_instances[$element->identifier] += 1;
             }
             // set arguments
             $params = array_merge($data, $args);
             $instance = $el_instances[$element->identifier];
             // event integration
             $render = true;
             $item = $element->getItem();
             $this->app->event->dispatcher->notify($this->app->event->create(null, 'element:beforedisplay', array('render' => &$render, 'element' => $element, 'params' => $params)));
             if ($render) {
                 // check value
                 $elements[] = compact('element', 'params', 'instance');
             }
         }
     }
     // posted values
     if (!isset($this->_module_id)) {
         $this->_module_id = 0;
     }
     $values = unserialize($this->app->system->application->getUserState('ZOOFILTER_SEARCH_FORM_' . $this->_module_id));
     $this->app->system->application->setUserState('ZOOFILTER_SEARCH_FORM_' . $this->_module_id, serialize(null));
     // process elements
     foreach ($elements as $i => $data) {
         $params = array_merge(array('first' => $i == 0, 'last' => $i == count($elements) - 1), $data['params']);
         $params = $this->app->data->create($params);
         $elType = $data['element']->getElementType();
         $instance = $data['instance'] - 1;
         $row_id = $i . '_' . $data['element']->identifier;
         // if element compatible add instance to control
         $instanceID = '';
         if ($elType == 'relatedcategories' || $elType == 'relatedcategoriespro' || $elType == 'itemcategory' || $elType == 'itemtag') {
             $instanceID = '-' . $instance;
         }
         // add tooltip
         // $tooltip = '';
         // if ($params->get('show_tooltip') && ($description = $element->config->get('tooltip'))) {
         // 	$tooltip = ' class="hasTip" title="'.$description.'"';
         // }
         // // TODO
         // $tooltip = $params->get('tooltip');
         // create label
         $label = '<label for="' . $row_id . '">';
         $label .= $params->get('altlabel') ? $params->get('altlabel') : $data['element']->config->get('name');
         $label .= '</label>';
         $output[$i] = '<div class="form-element-row ' . $elType . ' ' . $elType . '-' . $instance . '">';
         $output[$i] .= $params->get('showlabel') ? $label : '';
         if ($elType == 'staticcontent') {
             $output[$i] .= $data['element']->render($params);
         } else {
             $output[$i] .= modZOOfilterHelper::getSearchInput($data['element'], @$values[$data['element']->identifier . $instanceID], $params, $instance, $this->_module_id);
         }
         $output[$i] .= '</div>';
     }
     // restore layout
     $this->_layout = $layout;
     return implode("\n", $output);
 }
Example #2
0
* @copyright 	Copyright (C) JOOlanders SL
* @license   	http://www.gnu.org/licenses/gpl-2.0.html GNU/GPLv2 only
*/
// no direct access
defined('_JEXEC') or die('Restricted access');
// Add script to head
$document = JFactory::getDocument();
$document->addScript('https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false&libraries=places&key=' . $params->get('gm_api_key'));
// Extract search value
if (is_array($value)) {
    extract($value);
}
$placeholder = $params->find('specific._placeholder', $params->find('layout._placeholder', ''));
$attributes = $placeholder ? 'class="item-search-location itemLocation" placeholder="' . $placeholder . '"' : 'class="item-search-location itemLocation"';
$attributes .= $params->find('search._required') ? ' required' : '';
$place = modZOOfilterHelper::getCurrentLocation(true);
//echo '<input type="text" name="elements['.$element->identifier.'][address]" value="'.(isset($address) ? urldecode($address): '').'" '.$attributes.' />';
echo '<input type="text" name="elements[' . $element->identifier . '][address]" value="' . (isset($address) ? urldecode($address) : $place['city'] . ', ' . $place['regionName'] . ', ' . $place['country']) . '"' . $attributes . ' />';
echo '<input type="hidden" name="elements[' . $element->identifier . '][location]" value="' . (isset($location) ? $location : $place['lat'] . ',' . $place['lon']) . '" />';
if ($params->get('show_radius')) {
    echo '<input type="text" name="elements[' . $element->identifier . '][radius]" class="item-search-radius itemRadius" size="10" style="width:auto" value="' . (isset($radius) ? $radius : $params->get('default_radius', 5)) . '"/>';
    ?>

    <select name="elements[<?php 
    echo $element->identifier;
    ?>
][measure]" class="item-search-measure itemMeadure" style="width:auto">
        <option value="km" <?php 
    isset($measure) && $measure == 'km' ? 'selected="selected"' : '';
    ?>
>Km</option>