Не было времени. Доделывал заказ. Вот теперь делюсь )
Значит именно потому что не было времени, делал такой костыль. Сделан он не совсем правильно, но работает, а для меня это было самое главное.
И так 1. Заходим в наш модуль поиска «JBZoo search» и включаем там Авто-отправка формы! Без этого костыль не работает.[/size]
2. Редактируем фаил модуля JBZoo Search List.
находится он по адресу: /modules/mod_jbzoo_props/renderer/filterprops/block.php
- <?php
- /**
- * JBZoo App is universal Joomla CCK, application for YooTheme Zoo component
- *
- * @package jbzoo
- * @version 2.x Pro
- * @author JBZoo App http://jbzoo.com
- * @copyright Copyright (C) JBZoo.com, All rights reserved.
- * @license http://jbzoo.com/license-pro.php JBZoo Licence
- * @coder Denis Smetannikov <denis@jbzoo.com>
- */
-
-
- // no direct access
- defined('_JEXEC') or die('Restricted access');
-
-
-
-
- if (!empty($elementHTML)) {
-
-
- // create label
- $label = '';
- if (isset($params['showlabel']) && $params['showlabel']) {
- $label .= '<div class="label">';
- $label .= ($params['altlabel']) ? $params['altlabel'] : $element->getConfig()->get('name');
- $label .= '</div>';
- }
-
-
- // create class attribute
- $classes = array_filter(array(
- 'props-element',
- ($params['first']) ? 'first' : '',
- ($params['last']) ? 'last' : '',
- ));
-
-
- $zam = 0;
- $html = str_replace ( "</span>" , "", strip_tags($elementHTML, '<span>'), $count);
- $html = str_replace ( "<span>" , "/", $html, $count);
- $html = explode('/', $html);
- $str = '<div id="goselect">';
- $str .= '<select id="filterEl_dc698d2f-f51b-49ea-bb2c-e18f433f1b20562810" name="e[dc698d2f-f51b-49ea-bb2c-e18f433f1b20]">';
-
-
-
- /* ВАОЖНО!!!! <select> этот забираем из того селекта на странице сайта, поля в котором собираемся менять. Главное зять у него атрибуты id и name */
-
-
- if(count($html) == 2){
- foreach($html as $K=>$V){
- if(!empty($V)){
- $str .= '<option value="'.trim($V).'" selected="selected">'.trim($V).'</option>';
- }else{
- $str .= '<option value=""> - Все - </option>';
- }
- }
- }else{
- foreach($html as $K=>$V){
- if(!empty($V)){
- $str .= '<option value="'.trim($V).'">'.trim($V).'</option>';
- }else{
- $str .= '<option value="" selected="selected"> - Все - </option>';
- }
- }
- }
- $str .= '</select>';
- $str .= '</div>';
- ?>
- <div class="<?php echo implode(' ', $classes); ?>">
- <?php echo $label . '<div class="field">' . $str . '</div>'; ?>
- <div class="clear clr"></div>
- </div>
- <?php
- }
- ?>
Не забывает изменить селект как указанно в комментарии.
3. Редактируем фаил шаблона нашего поиска.
адрес файла:
/avto.iw.ru/public_html/modules/mod_jbzoo_search/renderer/item/2colomns.php
Я взял шаблон 2colomns.php, просто потому что тестировал на нем. Вы можете выбрать любой понравившийся вам шаблон.
И в этом шаблоне самое главное это позицию вывода обрамить тегом <div id="model">
В эту позицию необходимо вывести только одно поле, которое и планируете заменять. Да и я рассказываю про тип поля "Всплывающий список".
Не забываем эту позицию добавить в фаил positions.xml,который лежит в этой же папке, для тега 2colomns, если ее там нет.
Мои файлы 2colomns.php
- <?php
- /**
- * JBZoo App is universal Joomla CCK, application for YooTheme Zoo component
- *
- * @package jbzoo
- * @version 2.x Pro
- * @author JBZoo App http://jbzoo.com
- * @copyright Copyright (C) JBZoo.com, All rights reserved.
- * @license http://jbzoo.com/license-pro.php JBZoo Licence
- * @coder Denis Smetannikov <denis@jbzoo.com>
- */
-
- // no direct access
- defined('_JEXEC') or die('Restricted access');
- ?>
- <div class="filtr_left_block">
- <p>
- <label> Марка </label>
- <?php echo $this->renderPosition('marka', array('style' => 'filter.block')); ?>
- </p>
- <p>
- <label> Модель </label>
- <div id="model">
- <?php echo $this->renderPosition('model', array('style' => 'filter.block')); ?>
- </div>
- </p>
- <p>
- <label> Тип кузова </label>
- <?php echo $this->renderPosition('kuzov', array('style' => 'filter.block')); ?>
- </p>
- </div><!-- /filtr_left_block -->
- <div class="filtr_right_block">
- <p>
- <label> Тип КПП </label>
- <?php echo $this->renderPosition('kpp', array('style' => 'filter.block')); ?>
- </p>
- <p>
- <label> Привод </label>
- <?php echo $this->renderPosition('privod', array('style' => 'filter.block')); ?>
- </p>
- <p>
- <label> Вид топлива </label>
- <?php echo $this->renderPosition('toplivo', array('style' => 'filter.block')); ?>
- </p>
- </div><!-- /filtr_right_block -->
- <div class="clr"></div>
- <div class="price">
- <div class="polzunok">
- <div class="summ_input_block">
- <?php echo $this->renderPosition('cena', array('style' => 'filter.block')); ?>
- </div><!-- /summ_input_block -->
- </div><!-- /polzunok -->
- </div><!-- /price --> <!-- /price -->
-
-
positions.xml
- <?xml version="1.0" encoding="utf-8"?>
- <!--
- JBZoo App is universal Joomla CCK, application for YooTheme Zoo component
-
- @package jbzoo
- @version 2.x Pro
- @author JBZoo App http://jbzoo.com
- @copyright Copyright (C) JBZoo.com, All rights reserved.
- @license http://jbzoo.com/license-pro.php JBZoo Licence
- @coder Denis Smetannikov <denis@jbzoo.com>
- -->
- <renderer>
- <positions layout="default">
- <position name="fields">Fields</position>
- </positions>
-
- <positions layout="inline">
- <position name="fields">Fields</position>
- </positions>
-
- <positions layout="2colomns">
- <position name="marka">marka</position>
- <position name="model">model</position>
- <position name="kuzov">kuzov</position>
- <position name="kpp">kpp</position>
- <position name="privod">privod</position>
- <position name="toplivo">toplivo</position>
- <position name="cena">cena</position>
- </positions>
-
- <positions layout="table">
- <position name="cell_1_1">Table cell #1:1</position>
- <position name="cell_1_2">Table cell #1:2</position>
- <position name="cell_1_3">Table cell #1:3</position>
- <position name="cell_1_4">Table cell #1:4</position>
- <position name="cell_2_1">Table cell #2:1</position>
- <position name="cell_2_2">Table cell #2:2</position>
- <position name="cell_2_3">Table cell #2:3</position>
- <position name="cell_2_4">Table cell #2:4</position>
- </positions>
-
- <positions layout="accordion">
- <position name="tab-1">Tab #1</position>
- <position name="tab-2">Tab #2</position>
- <position name="tab-3">Tab #3</position>
- <position name="tab-4">Tab #4</position>
- <position name="tab-5">Tab #5</position>
- <position name="tab-6">Tab #6</position>
- <position name="tab-7">Tab #7</position>
- <position name="tab-8">Tab #8</position>
- <position name="tab-9">Tab #9</position>
- <position name="tab-10">Tab #10</position>
- </positions>
-
- </renderer>
Все, теперь публикуем эти модули в одной позиции шаблона вашего сайта, первым лучше публиковать модуль поиска.
Ну и конечно в модуле JBZoo Search List нужно при этом публиковать только 1 поле, то по которому работает поиск.
И сразу после этих модулей в шаблоне вашего сайта вставляем яваскрипт.
- <script type="text/javascript">
- var goselect = document.getElementById("goselect");
- var model = document.getElementById("model");
- model.innerHTML = goselect.innerHTML;
- goselect.innerHTML = "";
- </script>
На этом все, будут вопросы пишите.
Сообщение отредактировал Sliapy: 13 October 2014 - 14:57