Все про Osclass

Статус
В этой теме нельзя размещать новые ответы.
Ребят помоги с выпадающими странами, областями и городами на Веронике...
Код из search.php - шаблон Вероника

Код:
              <div class="row">
                <h4><?php _e('Location', 'veronika') ; ?></h4>                        

                <div class="box">
                  <div id="location-picker">
                    <input type="text" name="term" id="term" class="term" placeholder="<?php _e('Country, Region or City', 'veronika'); ?>" value="<?php echo veronika_get_term(Params::getParam('term'), Params::getParam('sCountry'), Params::getParam('sRegion'), Params::getParam('sCity')); ?>" autocomplete="off"/>
                    <div class="shower-wrap">
                      <div class="shower" id="shower">
                        <div class="option service min-char"><?php _e('Type country, region or city', 'veronika'); ?></div>
                      </div>
                    </div>

                    <div class="loader"></div>
                  </div>

                </div>
              </div>

Код из search.php - шаблон Zara
Код:
          <fieldset class="box location">
            <div class="row">
              <h4><?php _e('Keyword', 'zara') ; ?></h4>                          
              <input type="text" name="sPattern" id="query" value="<?php echo osc_esc_html(osc_search_pattern()); ?>" placeholder="<?php echo osc_esc_html(__('I\'m looking for...', 'zara')); ?>" />
            </div>

            <?php $aCountries = Country::newInstance()->listAll(); ?>
         
            <div class="row" <?php if(count($aCountries) <= 1 ) {?>style="display:none;"<?php } ?>>
              <h4><?php _e('Country', 'zara') ; ?></h4>

              <?php
                // IF THERE IS JUST 1 COUNTRY, PRE-SELECT IT TO ENABLE REGION DROPDOWN
                $s_country = Country::newInstance()->listAll();
                if(count($s_country) <= 1) {
                  $s_country = $s_country[0];
                }
              ?>

              <select id="countryId" name="sCountry">
                <option value=""><?php _e('Select a country', 'zara'); ?></option>

                <?php foreach ($aCountries as $country) {?>
                  <option value="<?php echo isset($country['pk_c_code']) ? $country['pk_c_code'] : ''; ?>" <?php if(Params::getParam('sCountry') <> '' && (Params::getParam('sCountry') == $country['pk_c_code'] or Params::getParam('sCountry') == $country['s_name']) or $s_country['pk_c_code'] <> '' && $s_country['pk_c_code'] == $country['pk_c_code']) { ?>selected="selected"<?php } ?>><?php echo $country['s_name']; ?></option>

                  <?php
                    if(Params::getParam('sCountry') <> '' && (Params::getParam('sCountry') == $country['pk_c_code'] or Params::getParam('sCountry') == $country['s_name']) or $s_country['pk_c_code'] <> '' && $s_country['pk_c_code'] == $country['pk_c_code']) {
                      $current_country_code = isset($country['pk_c_code']) ? $country['pk_c_code'] : '';
                    }
                  ?>
                <?php } ?>
              </select>
            </div>

       
            <?php
              $current_country = Params::getParam('country') <> '' ? Params::getParam('country') : Params::getParam('sCountry');
              if($current_country <> '') {
                $aRegions = Region::newInstance()->findByCountry($current_country_code);
              } else {
                if(osc_count_countries() <= 1) {
                  $aRegions = Region::newInstance()->findByCountry($s_country['pk_c_code']);
                } else {
                  $aRegions = '';
                }
              }
            ?>

            <div class="row">
              <h4><?php _e('Region', 'zara') ; ?></h4>

              <?php if(count($aRegions) >= 1 ) { ?>
                <select id="regionId" name="sRegion" <?php if(Params::getParam('sRegion') == '' && Params::getParam('region')) {?>disabled<?php } ?>>
                  <option value=""><?php _e('Select a region', 'zara'); ?></option>
               
                  <?php if(isset($aRegions) && !empty($aRegions) && $aRegions <> '' && count($aRegions) >= 1) { ?>
                    <?php foreach ($aRegions as $region) {?>
                      <option value="<?php echo $region['pk_i_id']; ?>" <?php if(Params::getParam('sRegion') == $region['pk_i_id'] or Params::getParam('sRegion') == $region['s_name']) { ?>selected="selected"<?php } ?>><?php echo $region['s_name']; ?></option>
                    <?php } ?>
                  <?php } ?>
                </select>
              <?php } else { ?>
                <!--<input type="text" name="sRegion" id="sRegion-side" value="<?php echo Params::getParam('sRegion'); ?>" placeholder="<?php echo osc_esc_html(__('Enter a region', 'zara')); ?>" />-->
                <select id="regionId" name="sRegion" disabled><option value=""><?php _e('Select a region', 'zara'); ?></option></select>
              <?php } ?>
            </div>
         
            <?php
              $current_region = Params::getParam('region') <> '' ? Params::getParam('region') : Params::getParam('sRegion');

              if(!is_numeric($current_region) && $current_region <> '') {
                $reg = Region::newInstance()->findByName($current_region);
                $current_region = $reg['pk_i_id'];
              }

              if($current_region <> '' && !empty($current_region)) {
                $aCities = City::newInstance()->findByRegion($current_region);
              } else {
                $aCities = '';
              }
            ?>

            <div class="row">
              <h4><?php _e('City', 'zara') ; ?></h4>

              <?php if(count($aCities) >= 1 && !empty($aCities)) { ?>
                <select name="sCity" id="cityId" <?php if(Params::getParam('sCity') == '' && Params::getParam('city') == '') {?>disabled<?php } ?>>
                  <option value=""><?php _e('Select a city', 'zara'); ?></option>
         
                  <?php if(isset($aCities) && !empty($aCities) && $aCities <> '' && count($aCities) >= 1) { ?>
                    <?php foreach ($aCities as $city) {?>
                      <option value="<?php echo $city['pk_i_id']; ?>" <?php if(Params::getParam('sCity') == $city['pk_i_id'] or Params::getParam('sCity') == $city['s_name']) { ?>selected="selected"<?php } ?>><?php echo $city['s_name']; ?></option>
                    <?php } ?>
                  <?php } ?>
                </select>
              <?php } else { ?>
                <!--<input type="text" name="sCity" id="sCity-side" value="<?php echo Params::getParam('sCity'); ?>" placeholder="<?php echo osc_esc_html(__('Enter a city', 'zara')); ?>" />-->
                <select id="cityId" name="sCity" disabled><option value=""><?php _e('Select a city', 'zara'); ?></option></select>
              <?php } ?>
            </div>
          </fieldset>

Просто заменой не обойтись, либо функций не хватает, либо облом... Кто ещё что может сказать по этому поводу?
js тоже надо подключать
 
Можно по подробнее пожалуйста если делал.. Голова уже не варит, третий день мучаюсь..
Я сам не делал, сейчас посмотрел вижу в поиске js

Код:
<script>
  $(document).ready(function(){

    // COUNTRY SELECT
    $("#countryId").live("change", function(){
      var pk_c_code = $(this).val();
      var url = 'https://zara.mb-themes.com/index.php?page=ajax&action=regions&countryId=' + pk_c_code;
      var result = '';


      if(pk_c_code != '') {

        // Country has been selected
        $.ajax({
          type: "POST",
          url: url,
          dataType: 'json',
          success: function(data) {
            var length = data.length;

            if(length > 0) {

              result += '<option value="">Select a region</option>';
              for(key in data) {
                result += '<option value="' + data[key].pk_i_id + '">' + data[key].s_name + '</option>';
              }

              $("#sRegion-side").before('<select name="sRegion" id="regionId" ><option selected="selected" value="">Select a region</option></select>').remove();
              $("#sCity-side").before('<select name="sCity" id="cityId"><option selected="selected" value="">Select a city</option></select>').remove();
             
              $("#regionId").val("").html(result).attr('disabled',false);
              $("#cityId").val("").attr('disabled',true);

            } else {

              $("#regionId").before('<input placeholder="Enter a region" type="text" name="sRegion" id="sRegion-side" />').remove();
              $("#cityId").before('<input placeholder="Enter a city" type="text" name="sCity" id="sCity-side" />').remove();;

              $("#sRegion-side").val('').attr('disabled',false);
              $("#sCity-side").val('').attr('disabled',true);
            }

            $("#cityId").html('<option selected="selected" value="">Select a city</option>');
          }
        });

      } else {

        // Country is empty
        $("#sRegion-side").before('<select name="sRegion" id="regionId"><option selected="selected" value="">Select a region</option></select>').remove();
        $("#regionId").html('<option selected="selected" value="">Select a region</option>').attr('disabled',true);

        $("#sCity-side").before('<select name="sCity" id="cityId" ><option selected="selected" value="">Select a city</option></select>').remove();
        $("#cityId").html('<option selected="selected" value="">Select a city</option>').attr('disabled',true);
       }
    });



    // REGION SELECTION
    $("#regionId").live("change", function(){
      var pk_r_id = $(this).val();
      var url = 'https://zara.mb-themes.com/index.php?page=ajax&action=cities&regionId=' + pk_r_id;
      var result = '';

      if(pk_r_id != '') {

        // Region has been selected
        $.ajax({
          type: "POST",
          url: url,
          dataType: 'json',
          success: function(data){
            var length = data.length;

            if(length > 0) {

              result += '<option selected="selected" value="">Select a city</option>';
              for(key in data) {
                result += '<option value="' + data[key].pk_i_id + '">' + data[key].s_name + '</option>';
              }

              $("#sCity-side").before('<select name="sCity" id="cityId"><option value="" selected="selected">Select a city</option></select>').remove();
              $("#cityId").val("").html(result).attr('disabled',false);

            } else {
              $("#cityId").before('<input type="text" placeholder="Enter a city" name="sCity" id="sCity-side" />').remove().val('').attr('disabled',false);
            }

          }
        });

      } else {

        // Region is empty
        $("#sCity-side").before('<select name="sCity" id="cityId"><option selected="selected" value="">Select a city</option></select>').remove();
        $("#cityId").html('<option selected="selected" value="">Select a city</option>').attr('disabled',true);
      }
    });


    // MANAGE REGION & CITY INPUTS
    $("input#sRegion-side").live("change", function(){
      if( $(this).val() != '' ) {
        $("input#sCity-side").attr('disabled',false).val("");
      } else {
        $("input#sCity-side").attr('disabled',true).val("");
      }
    });


    // ONLOAD FIXES
    if($("#countryId").length != 0) {
      if( $("#countryId").attr('value') != "")  {
        $("#regionId, #sRegion-side, #cityId, #sCity-side").attr('disabled',false);
      } else {
        $("#regionId, #sRegion-side, #cityId, #sCity-side").attr('disabled',true);
      }
    }

    if($("#country").length != 0) {
      $("#regionId, #region").attr('disabled',false);
    }

    if( $("#regionId").attr('value') != "")  {
      $("#cityId, #sCity-side").attr('disabled',false);
    } else {
      $("#cityId, #sCity-side").attr('disabled',true);
    }

  });
</script>
не проверял лично, как он будет работать, будет ли запоминаться расположение при поиске тоже вопрос, в поиске можно и от вероники оставить, для поиска такой формат удобен, ввел и готово
 
Я сам не делал, сейчас посмотрел вижу в поиске js

Код:
<script>
  $(document).ready(function(){

    // COUNTRY SELECT
    $("#countryId").live("change", function(){
      var pk_c_code = $(this).val();
      var url = 'https://zara.mb-themes.com/index.php?page=ajax&action=regions&countryId=' + pk_c_code;
      var result = '';


      if(pk_c_code != '') {

        // Country has been selected
        $.ajax({
          type: "POST",
          url: url,
          dataType: 'json',
          success: function(data) {
            var length = data.length;

            if(length > 0) {

              result += '<option value="">Select a region</option>';
              for(key in data) {
                result += '<option value="' + data[key].pk_i_id + '">' + data[key].s_name + '</option>';
              }

              $("#sRegion-side").before('<select name="sRegion" id="regionId" ><option selected="selected" value="">Select a region</option></select>').remove();
              $("#sCity-side").before('<select name="sCity" id="cityId"><option selected="selected" value="">Select a city</option></select>').remove();
            
              $("#regionId").val("").html(result).attr('disabled',false);
              $("#cityId").val("").attr('disabled',true);

            } else {

              $("#regionId").before('<input placeholder="Enter a region" type="text" name="sRegion" id="sRegion-side" />').remove();
              $("#cityId").before('<input placeholder="Enter a city" type="text" name="sCity" id="sCity-side" />').remove();;

              $("#sRegion-side").val('').attr('disabled',false);
              $("#sCity-side").val('').attr('disabled',true);
            }

            $("#cityId").html('<option selected="selected" value="">Select a city</option>');
          }
        });

      } else {

        // Country is empty
        $("#sRegion-side").before('<select name="sRegion" id="regionId"><option selected="selected" value="">Select a region</option></select>').remove();
        $("#regionId").html('<option selected="selected" value="">Select a region</option>').attr('disabled',true);

        $("#sCity-side").before('<select name="sCity" id="cityId" ><option selected="selected" value="">Select a city</option></select>').remove();
        $("#cityId").html('<option selected="selected" value="">Select a city</option>').attr('disabled',true);
       }
    });



    // REGION SELECTION
    $("#regionId").live("change", function(){
      var pk_r_id = $(this).val();
      var url = 'https://zara.mb-themes.com/index.php?page=ajax&action=cities&regionId=' + pk_r_id;
      var result = '';

      if(pk_r_id != '') {

        // Region has been selected
        $.ajax({
          type: "POST",
          url: url,
          dataType: 'json',
          success: function(data){
            var length = data.length;

            if(length > 0) {

              result += '<option selected="selected" value="">Select a city</option>';
              for(key in data) {
                result += '<option value="' + data[key].pk_i_id + '">' + data[key].s_name + '</option>';
              }

              $("#sCity-side").before('<select name="sCity" id="cityId"><option value="" selected="selected">Select a city</option></select>').remove();
              $("#cityId").val("").html(result).attr('disabled',false);

            } else {
              $("#cityId").before('<input type="text" placeholder="Enter a city" name="sCity" id="sCity-side" />').remove().val('').attr('disabled',false);
            }

          }
        });

      } else {

        // Region is empty
        $("#sCity-side").before('<select name="sCity" id="cityId"><option selected="selected" value="">Select a city</option></select>').remove();
        $("#cityId").html('<option selected="selected" value="">Select a city</option>').attr('disabled',true);
      }
    });


    // MANAGE REGION & CITY INPUTS
    $("input#sRegion-side").live("change", function(){
      if( $(this).val() != '' ) {
        $("input#sCity-side").attr('disabled',false).val("");
      } else {
        $("input#sCity-side").attr('disabled',true).val("");
      }
    });


    // ONLOAD FIXES
    if($("#countryId").length != 0) {
      if( $("#countryId").attr('value') != "")  {
        $("#regionId, #sRegion-side, #cityId, #sCity-side").attr('disabled',false);
      } else {
        $("#regionId, #sRegion-side, #cityId, #sCity-side").attr('disabled',true);
      }
    }

    if($("#country").length != 0) {
      $("#regionId, #region").attr('disabled',false);
    }

    if( $("#regionId").attr('value') != "")  {
      $("#cityId, #sCity-side").attr('disabled',false);
    } else {
      $("#cityId, #sCity-side").attr('disabled',true);
    }

  });
</script>
не проверял лично, как он будет работать, будет ли запоминаться расположение при поиске тоже вопрос, в поиске можно и от вероники оставить, для поиска такой формат удобен, ввел и готово

ты про item-post сейчас? а я про search.php и боковую колонку поиска в Веронике...
 
ты про item-post сейчас? а я про search.php и боковую колонку поиска в Веронике...
я понял, это к поиску, поповоду item -post уже написано было, если не поможет ищите js в footer.php, там именно для поиска висит
 
Последнее редактирование:
Всем привет.
Для борьбы со спамщиками использую ограничение на публикацию.
Сделал 2 разделения
Для пользователя 16 объявлений
Для компании 60 объявлений.
Если кто то хочет публиковать больше 16 объяв необходимо приобрести статус профиля - компания.
В общем не суть, а суть в том что, данный код учитывает публикацию объявлений за все время (ссылаясь на инфу из бд osc_user_items_validated(); ).
Проблема в том что данное числовое значение в бд osc_user_items_validated() не изменяется в случаи удаления объявления.
Получается даже если у пользователя уже нет активных объявлений (но когда они были и сумма опубликованных уже достигла 16) данный код не пропустит подачу объявления.
Я так понимаю нужно просто заменить функцию, может кто подскажет на какую?)
<?
$countItems_company = 60; //Задаем количество объявлений для компании (брать с них деньги за это)
$countItems_user = 16; //Задаем количество объявлений для пользователя

if (osc_user_is_company() == 1) {
$countItems=$countItems_company;//количество разрешенных объявлений для компании
} else {
$countItems=$countItems_user;//количество разрешенных объявлений для пользователя
}
$totalItems = osc_user_items_validated(); //Узнаем общее количество объявлений у конкретного юзера или у компании
if ($totalItems < $countItems){
?>
 
за место этих строк


Код:
<div class="row">
                <h4><?php _e('Location', 'veronika') ; ?></h4>                   

                <div class="box">
                  <div id="location-picker">
                    <input type="text" name="term" id="term" class="term" placeholder="<?php _e('Country, Region or City', 'veronika'); ?>" value="<?php echo veronika_get_term(Params::getParam('term'), Params::getParam('sCountry'), Params::getParam('sRegion'), Params::getParam('sCity')); ?>" autocomplete="off"/>
                    <div class="shower-wrap">
                      <div class="shower" id="shower">
                        <div class="option service min-char"><?php _e('Type country, region or city', 'veronika'); ?></div>
                      </div>
                    </div>

                    <div class="loader"></div>
                  </div>

                </div>
              </div>





Заменяешь вот этими. И все , у меня отлично робит, даже шустрее находит чем стандартный


Код:
 <fieldset class="box location">
            <div  />
            </div>

            <?php $aCountries = Country::newInstance()->listAll(); ?>
     
            <div class="row" <?php if(count($aCountries) <= 1 ) {?><?php } ?>>
              <h4><?php _e('Страна', 'zara') ; ?></h4>

              <?php
                // IF THERE IS JUST 1 COUNTRY, PRE-SELECT IT TO ENABLE REGION DROPDOWN
                $s_country = Country::newInstance()->listAll();
                if(count($s_country) <= 2) {
                  $s_country = $s_country[0];
                }
              ?>

              <select id="countryId" name="sCountry">
                <option value=""><?php _e('Выберите страну', 'zara'); ?></option>

                <?php foreach ($aCountries as $country) {?>
                  <option value="<?php echo isset($country['pk_c_code']) ? $country['pk_c_code'] : ''; ?>" <?php if(Params::getParam('sCountry') <> '' && (Params::getParam('sCountry') == $country['pk_c_code'] or Params::getParam('sCountry') == $country['s_name']) or $s_country['pk_c_code'] <> '' && $s_country['pk_c_code'] == $country['pk_c_code']) { ?>selected="selected"<?php } ?>><?php echo $country['s_name']; ?></option>

                  <?php
                    if(Params::getParam('sCountry') <> '' && (Params::getParam('sCountry') == $country['pk_c_code'] or Params::getParam('sCountry') == $country['s_name']) or $s_country['pk_c_code'] <> '' && $s_country['pk_c_code'] == $country['pk_c_code']) {
                      $current_country_code = isset($country['pk_c_code']) ? $country['pk_c_code'] : '';
                    }
                  ?>
                <?php } ?>
              </select>
            </div>

   
            <?php
              $current_country = Params::getParam('Страна') <> '' ? Params::getParam('Страна') : Params::getParam('sCountry');
              if($current_country <> '') {
                $aRegions = Region::newInstance()->findByCountry($current_country_code);
              } else {
                if(osc_count_countries() <= 1) {
                  $aRegions = Region::newInstance()->findByCountry($s_country['pk_c_code']);
                } else {
                  $aRegions = '';
                }
              }
            ?>

            <div class="row">
              <h4><?php _e('Область', 'zara') ; ?></h4>

              <?php if(count($aRegions) >= 1 ) { ?>
                <select id="regionId" name="sRegion" <?php if(Params::getParam('sRegion') == '' && Params::getParam('Область')) {?>disabled<?php } ?>>
                  <option value=""><?php _e('Выберите область', 'zara'); ?></option>
           
                  <?php if(isset($aRegions) && !empty($aRegions) && $aRegions <> '' && count($aRegions) >= 1) { ?>
                    <?php foreach ($aRegions as $region) {?>
                      <option value="<?php echo $region['pk_i_id']; ?>" <?php if(Params::getParam('sRegion') == $region['pk_i_id'] or Params::getParam('sRegion') == $region['s_name']) { ?>selected="selected"<?php } ?>><?php echo $region['s_name']; ?></option>
                    <?php } ?>
                  <?php } ?>
                </select>
              <?php } else { ?>
                <!--<input type="text" name="sRegion" id="sRegion-side" value="<?php echo Params::getParam('sRegion'); ?>" placeholder="<?php echo osc_esc_html(__('Выберите область', 'zara')); ?>" />-->
                <select id="regionId" name="sRegion" disabled><option value=""><?php _e('Select a region', 'zara'); ?></option></select>
              <?php } ?>
            </div>
     
            <?php
              $current_region = Params::getParam('Область') <> '' ? Params::getParam('Область') : Params::getParam('sRegion');

              if(!is_numeric($current_region) && $current_region <> '') {
                $reg = Region::newInstance()->findByName($current_region);
                $current_region = $reg['pk_i_id'];
              }

              if($current_region <> '' && !empty($current_region)) {
                $aCities = City::newInstance()->findByRegion($current_region);
              } else {
                $aCities = '';
              }
            ?>

            <div class="row">
              <h4><?php _e('Город', 'zara') ; ?></h4>

              <?php if(count($aCities) >= 1 && !empty($aCities)) { ?>
                <select name="sCity" id="cityId" <?php if(Params::getParam('sCity') == '' && Params::getParam('city') == '') {?>disabled<?php } ?>>
                  <option value=""><?php _e('Выберите город', 'zara'); ?></option>
     
                  <?php if(isset($aCities) && !empty($aCities) && $aCities <> '' && count($aCities) >= 1) { ?>
                    <?php foreach ($aCities as $city) {?>
                      <option value="<?php echo $city['pk_i_id']; ?>" <?php if(Params::getParam('sCity') == $city['pk_i_id'] or Params::getParam('sCity') == $city['s_name']) { ?>selected="selected"<?php } ?>><?php echo $city['s_name']; ?></option>
                    <?php } ?>
                  <?php } ?>
                </select>
              <?php } else { ?>
                <!--<input type="text" name="sCity" id="sCity-side" value="<?php echo Params::getParam('sCity'); ?>" placeholder="<?php echo osc_esc_html(__('Выберите город', 'zara')); ?>" />-->
                <select id="cityId" name="sCity" disabled><option value=""><?php _e('Выберите город', 'zara'); ?></option></select>
              <?php } ?>
            </div>
          </fieldset>

У меня и без js робит, берет со стандартного со своего js loader a

По сути это и есть готовый скрипт с зары, Просто заменой вставляешь и удаляешь некоторые строки .

Снимок.JPG


Может я тебя неправильно понял , но кроме выпадающих городов и стран еще какие функции тебе не хватает то?)
 
Последнее редактирование:
за место этих строк


Код:
<div class="row">
                <h4><?php _e('Location', 'veronika') ; ?></h4>                 

                <div class="box">
                  <div id="location-picker">
                    <input type="text" name="term" id="term" class="term" placeholder="<?php _e('Country, Region or City', 'veronika'); ?>" value="<?php echo veronika_get_term(Params::getParam('term'), Params::getParam('sCountry'), Params::getParam('sRegion'), Params::getParam('sCity')); ?>" autocomplete="off"/>
                    <div class="shower-wrap">
                      <div class="shower" id="shower">
                        <div class="option service min-char"><?php _e('Type country, region or city', 'veronika'); ?></div>
                      </div>
                    </div>

                    <div class="loader"></div>
                  </div>

                </div>
              </div>





Заменяешь вот этими. И все , у меня отлично робит, даже шустрее находит чем стандартный


Код:
 <fieldset class="box location">
            <div  />
            </div>

            <?php $aCountries = Country::newInstance()->listAll(); ?>
   
            <div class="row" <?php if(count($aCountries) <= 1 ) {?><?php } ?>>
              <h4><?php _e('Страна', 'zara') ; ?></h4>

              <?php
                // IF THERE IS JUST 1 COUNTRY, PRE-SELECT IT TO ENABLE REGION DROPDOWN
                $s_country = Country::newInstance()->listAll();
                if(count($s_country) <= 2) {
                  $s_country = $s_country[0];
                }
              ?>

              <select id="countryId" name="sCountry">
                <option value=""><?php _e('Выберите страну', 'zara'); ?></option>

                <?php foreach ($aCountries as $country) {?>
                  <option value="<?php echo isset($country['pk_c_code']) ? $country['pk_c_code'] : ''; ?>" <?php if(Params::getParam('sCountry') <> '' && (Params::getParam('sCountry') == $country['pk_c_code'] or Params::getParam('sCountry') == $country['s_name']) or $s_country['pk_c_code'] <> '' && $s_country['pk_c_code'] == $country['pk_c_code']) { ?>selected="selected"<?php } ?>><?php echo $country['s_name']; ?></option>

                  <?php
                    if(Params::getParam('sCountry') <> '' && (Params::getParam('sCountry') == $country['pk_c_code'] or Params::getParam('sCountry') == $country['s_name']) or $s_country['pk_c_code'] <> '' && $s_country['pk_c_code'] == $country['pk_c_code']) {
                      $current_country_code = isset($country['pk_c_code']) ? $country['pk_c_code'] : '';
                    }
                  ?>
                <?php } ?>
              </select>
            </div>

 
            <?php
              $current_country = Params::getParam('Страна') <> '' ? Params::getParam('Страна') : Params::getParam('sCountry');
              if($current_country <> '') {
                $aRegions = Region::newInstance()->findByCountry($current_country_code);
              } else {
                if(osc_count_countries() <= 1) {
                  $aRegions = Region::newInstance()->findByCountry($s_country['pk_c_code']);
                } else {
                  $aRegions = '';
                }
              }
            ?>

            <div class="row">
              <h4><?php _e('Область', 'zara') ; ?></h4>

              <?php if(count($aRegions) >= 1 ) { ?>
                <select id="regionId" name="sRegion" <?php if(Params::getParam('sRegion') == '' && Params::getParam('Область')) {?>disabled<?php } ?>>
                  <option value=""><?php _e('Выберите область', 'zara'); ?></option>
         
                  <?php if(isset($aRegions) && !empty($aRegions) && $aRegions <> '' && count($aRegions) >= 1) { ?>
                    <?php foreach ($aRegions as $region) {?>
                      <option value="<?php echo $region['pk_i_id']; ?>" <?php if(Params::getParam('sRegion') == $region['pk_i_id'] or Params::getParam('sRegion') == $region['s_name']) { ?>selected="selected"<?php } ?>><?php echo $region['s_name']; ?></option>
                    <?php } ?>
                  <?php } ?>
                </select>
              <?php } else { ?>
                <!--<input type="text" name="sRegion" id="sRegion-side" value="<?php echo Params::getParam('sRegion'); ?>" placeholder="<?php echo osc_esc_html(__('Выберите область', 'zara')); ?>" />-->
                <select id="regionId" name="sRegion" disabled><option value=""><?php _e('Select a region', 'zara'); ?></option></select>
              <?php } ?>
            </div>
   
            <?php
              $current_region = Params::getParam('Область') <> '' ? Params::getParam('Область') : Params::getParam('sRegion');

              if(!is_numeric($current_region) && $current_region <> '') {
                $reg = Region::newInstance()->findByName($current_region);
                $current_region = $reg['pk_i_id'];
              }

              if($current_region <> '' && !empty($current_region)) {
                $aCities = City::newInstance()->findByRegion($current_region);
              } else {
                $aCities = '';
              }
            ?>

            <div class="row">
              <h4><?php _e('Город', 'zara') ; ?></h4>

              <?php if(count($aCities) >= 1 && !empty($aCities)) { ?>
                <select name="sCity" id="cityId" <?php if(Params::getParam('sCity') == '' && Params::getParam('city') == '') {?>disabled<?php } ?>>
                  <option value=""><?php _e('Выберите город', 'zara'); ?></option>
   
                  <?php if(isset($aCities) && !empty($aCities) && $aCities <> '' && count($aCities) >= 1) { ?>
                    <?php foreach ($aCities as $city) {?>
                      <option value="<?php echo $city['pk_i_id']; ?>" <?php if(Params::getParam('sCity') == $city['pk_i_id'] or Params::getParam('sCity') == $city['s_name']) { ?>selected="selected"<?php } ?>><?php echo $city['s_name']; ?></option>
                    <?php } ?>
                  <?php } ?>
                </select>
              <?php } else { ?>
                <!--<input type="text" name="sCity" id="sCity-side" value="<?php echo Params::getParam('sCity'); ?>" placeholder="<?php echo osc_esc_html(__('Выберите город', 'zara')); ?>" />-->
                <select id="cityId" name="sCity" disabled><option value=""><?php _e('Выберите город', 'zara'); ?></option></select>
              <?php } ?>
            </div>
          </fieldset>

У меня и без js робит, берет со стандартного со своего js loader a

По сути это и есть готовый скрипт с зары, Просто заменой вставляешь и удаляешь некоторые строки .

Посмотреть вложение 82210


Может я тебя неправильно понял , но кроме выпадающих городов и стран еще какие функции тебе не хватает то?)
Робит то оно робит, а вот ты выбери страну, регион, город и нажми поиск.. Найдёт ли он у тебя именно по заданному местоположению?) Если найдёт, то будем ковырять) сравни на разных городах) и отпишись плиз, я щас с телефона)
 
Ребята!Кто участвовал в складчине по Веронике.Не слышно там еще обновления?
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху