• Уважаемый Гость! Если вы зарегистрировались на нашем форуме, значит вам нужна помощь! Мы всегда рады вам помочь, еще ни один пользователь не получил отказа! Но мы так же нуждаемся в Вашей поддержке. Проект полностью бесплатный, мы не имеем права требовать от вас денег, нам это и не нужно! Но от любой финансовой поддержки не откажемся. Проект развивается, но иногда очень тяжело его поддерживать, особенно в финансовом отношении. Если у вас есть возможность поддержать нас финансово, мы будем вам очень благодарны! С уважением, команда Оскласс Россия!
  • Изменение в правилах форума! В связи с огромным количеством вопросов поступающих в адрес технической поддержки мы решили изменить правила форума! Просим всех пользователей обратить внимание на данные изменения и четко их соблюдать!
  • Ребята, нуждаемся в программистах! Если хотите зарабатывать и есть время, пишите администраторам сайта. Есть база и инструменты, нужен опыт и знания =)
  • Уважаемые пользователи! На форуме появились разделы по работе с системой Yclas. Yclas - это скрипт доски объявлений. Нужны разработчики.

Как сделать выпадающий список регионов и городов?

DZR

Новичок
Вставьте этот код в item-post.php найдите подобный код и замените его на этот должно работать.
PHP:
<div class="box location">
						<h2><?php _e('Listing Location', 'russia'); ?></h2>
						<div class="row">
							<label for="countryId"><?php _e('Страна*', 'russia'); ?></label>
							<?php ItemForm::country_select(osc_get_countries(), osc_user()) ; ?>
						</div>
						<div class="row">
							<label for="regionId"><?php _e('Регион*', 'russia'); ?></label>
							<?php ItemForm::region_select(osc_user()) ; ?>
						</div>
						<div class="row">
							<label for="city"><?php _e('Город*', 'russia'); ?></label>
							<?php ItemForm::city_select(osc_user()) ; ?>
						</div>
						<div class="row">
							<label for="city"><?php _e('Адрес *необязательно* "не вписывайте адрес сайта- будет удален"', 'russia'); ?></label>
							<?php ItemForm::city_area_text(osc_user()) ; ?>
						</div>
						<div class="row">
							<label for="address"><?php _e('Адрес "не вписывайте адрес сайта- будет удален"', 'russia'); ?></label>
							<?php ItemForm::address_text(osc_user()) ; ?>
						</div>
					</div>
и про этот вызов не забудьте вставить <?php ItemForm::location_javascript(); ?>


А не подскажите как сделать регион и город по умолчанию?
Что бы при подаче объявления город и регион уже были выбраны по умолчанию
 

iaropolc

Новичок
В бендер теме другие манипуляции нужно сделать, в item.post:
найти код:
PHP:
 <div class="control-group">
							  <label class="control-label" for="country"><?php _e('Country', 'bender'); ?></label>
							  <div class="controls">
								<?php ItemForm::country_select(osc_get_countries(), osc_user()); ?>
							  </div>
							</div>
вместо него вставить этот:
PHP:
							<?php
							$rCountries = osc_get_countries() ;
							switch( count($rCountries) ) {
							  case 0:	?>
 
 
 
 
								  <div class="control-group">
									<label class="control-label" for="country"><?php _e('Country', 'bender'); ?></label>
									<div class="controls">
									  <input class="country_name" id="country_name" type="text" name="country" value="<?php echo get_country_name($item) ; ?>" />
									</div>
								  </div>
	
							  <?php
							  break;
							  case 1:   ?>
 
							   <input class="country_id" id="country_id" type="hidden" name="countryId" value="<?php echo $rCountries[0]['pk_c_code'] ; ?>" />
							  
							  <?php
							  break;
							  default:
								if($edit) { ?>
								  <div class="control-group">
									<label class="control-label" for="country"><?php _e('Country', 'bender'); ?></label>
									<div class="controls">
									  <?php ItemForm::country_select(); ?>
									</div>
								  </div>
								<?php
								} else { ?>
								  <div class="control-group">
									<label class="control-label" for="country"><?php _e('Country', 'bender'); ?></label>
									<div class="controls">
									  <?php ItemForm::country_select(osc_get_countries(), osc_user()); ?>
									</div>
								  </div>
								<?php
								}
							  break;
							  } ?>
Далее найти этот вывод региона:
PHP:
<?php ItemForm::region_text(osc_user()); ?>
и вставить вместо этого этот:
PHP:
<?php
								if($edit){
								  ItemForm::region_select() ;
								} else {
								  ItemForm::region_select(osc_get_regions(), osc_user()) ;
								} ?>

Далее найти этот вывод города:
PHP:
<?php ItemForm::city_text(osc_user()); ?>
и вставить вместо этого этот:
PHP:
								<?php if($edit){
								   ItemForm::city_select() ;
								} else {
								   ItemForm::city_select(osc_get_cities(), osc_user()) ;
								} ?>
Далее нужно подключить скрипт выбора внизу найти кусок кода:
PHP:
	<?php }; ?>
</script>
<?php osc_current_web_theme_path('footer.php'); ?>
и вставить вместо этого этот:
PHP:
	   $('#countryId').change(function() {
		$('#labelregionId').text('<?php _e("Select a region..."); ?>');
		$("#region").before('<select name="cityId" id="cityId" ></select>');
		$("#region").remove();
		$("#regionId").html('<option selected value=""><?php _e("Select a region..."); ?></option>')
		$('#labelcityId').text('<?php _e("Select a city..."); ?>');
		$("#city").before('<select name="cityId" id="cityId" ></select>');
		$("#city").remove();
		$("#cityId").html('<option selected value=""><?php _e("Select a city..."); ?></option>')
});
 
 
 
 
$('#regionId').change(function() {
		$('#labelcityId').text('<?php _e("Select a city..."); ?>');
		$("#city").before('<select name="cityId" id="cityId" ></select>');
		$("#city").remove();
		$("#cityId").html('<option selected value=""><?php _e("Select a city..."); ?></option>')
});
	<?php }; ?>
</script>
<?php osc_current_web_theme_path('footer.php'); ?>
Далее нужно подкорректировать этот файл скрипта oc-content/themes/bender/js/global.js
Найти код:
PHP:
function selectUi(thatSelect){
и вставить вместо него этот:
PHP:
function selectUi(thatSelect,thatid){
Далее в этом же файле найти код:
PHP:
	var uiSelected = $('<span class="select-box-label">'+thatSelect.find("option:selected").text().replace(/^\s*/gm, '')+'</span>');
и вставить вместо него этот:
PHP:
	var uiSelected = $('<span class="select-box-label" id="label'+thatid+'">'+thatSelect.find("option:selected").text().replace(/^\s*/gm, '')+'</span>');
Далее в этом же файле найти код:
PHP:
	$('body').on("created", '[name^="select_"]',function(evt) {
		selectUi($(this));
	});
 
 
 
 
	$('select').each(function(){
		selectUi($(this));
	});
и вставить вместо него этот:
PHP:
	$('body').on("created", '[name^="select_"]',function(evt) {
		selectUi($(this),this.id);
	});
 
 
 
 
	$('select').each(function(){
		selectUi($(this),this.id);
	});
На этом все. Все работает на ура если все правильно подкорректировать как написано выше. Для выбора нескольких стран нужно корректировать ядро скрипта. Если кому надо будет напишу.
Да еще забыл это надо сделать самым первым по ходу, выше найти код js:
PHP:
<?php ItemForm::location_javascript_new(); ?>
поменять на этот:
PHP:
<?php ItemForm::location_javascript(); ?>

Всё работает. Спасибо.
 
Верх