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

Вывод доп.полей в title

DenisDan

Новичок
Господа, приветствую. На Авито в категории "квартиры" нет поля "заголовок" при подаче объявления и Title формируется из данных доп. полей. (Например 2-к квартира 50 кв.м.). Каким образом подобное можно осуществить? Я думаю, этот вопрос многим будет интересен. Спасибо.
 
D

DonLeon

Гость
Господа, приветствую. На Авито в категории "квартиры" нет поля "заголовок" при подаче объявления и Title формируется из данных доп. полей. (Например 2-к квартира 50 кв.м.). Каким образом подобное можно осуществить? Я думаю, этот вопрос многим будет интересен. Спасибо.

Я сделал таким образом в functions.php прописал следующее:

PHP:
function nTitle(){
switch (osc_item_category()) {
case 'Комнаты': echo "Комната"; break;
case '1-к квартиры': echo "1-к квартира,"; break;
case '2-к квартиры': echo "2-к квартира,"; break;
case '3-к квартиры': echo "3-к квартира,"; break;
case '4-к квартиры': echo "4-к квартира,"; break;
case '5-к квартиры': echo "5-к квартира,"; break;
case 'Дома, коттеджи': echo "Дом"; break;
case 'Земельные участки': echo "Земельный участок"; break;

}
$id = osc_item_id();
$res = mysql_query("SELECT s_value FROM oc_t_item_meta WHERE fk_i_item_id=$id AND fk_i_field_id=5 LIMIT 1"); // квадратов
$res = mysql_fetch_assoc($res);
if ($res){
echo $res['s_value']." м&sup2, ";
}
$res2 = mysql_query("SELECT s_value FROM oc_t_item_meta WHERE fk_i_item_id=$id AND fk_i_field_id=3 LIMIT 1"); // этаж
$res2 = mysql_fetch_assoc($res2);
if ($res2){
echo $res2['s_value'];
}
$res3 = mysql_query("SELECT s_value FROM oc_t_item_meta WHERE fk_i_item_id=$id AND fk_i_field_id=4 LIMIT 1"); // этажей
$res3 = mysql_fetch_assoc($res3);
if ($res3){
echo "/".$res3['s_value']." эт. ";
}
mysql_close();
  
   }

fk_i_field_id - id пользовательского поля в БД
В итоге получается: Title.jpg
Что касается поля Заголовка - скрыл див с Title от показа и отключил сообщения об ошибке в itemActions.php
 

DenisDan

Новичок
DonLeon, добавил Ваш код в указанный файл. Поменял id пользовательских полей на свои. Но....., ничего не вышло. По-прежнему в title в исходном коде страницы только текст из поля "заголовок" (его я, кстати, еще не убирал, как Вы подсказываете). О своей доске: Моя тема "бендер". При подаче объявления о продаже квартиры пользователю уже предлагается готовая категория по кол-ву комнат. Например: категория "1 комнатные квартиры". А далее уже идут пользовательские поля: "площадь", "этаж" и т.д. Так вот, как из данных этих пользовательских полей сформировать заголовок и соответственно "Title"? Какой вариант еще подскажете? В чем моя ошибка? Спасибо! Безымянный.jpg
 
Последнее редактирование:
D

DonLeon

Гость
DonLeon, добавил Ваш код в указанный файл. Поменял id пользовательских полей на свои. Но....., ничего не вышло. По-прежнему в title в исходном коде страницы только текст из поля "заголовок" (его я, кстати, еще не убирал, как Вы подсказываете). О своей доске: Моя тема "бендер". При подаче объявления о продаже квартиры пользователю уже предлагается готовая категория по кол-ву комнат. Например: категория "1 комнатные квартиры". А далее уже идут пользовательские поля: "площадь", "этаж" и т.д. Так вот, как из данных этих пользовательских полей сформировать заголовок и соответственно "Title"? Какой вариант еще подскажете? В чем моя ошибка? Спасибо! Посмотреть вложение 620
Чтобы задействовать нашу функцию - ее нужно вызвать
в файлах loop-single.php
loop-single-premium.php
item.php
замените:
PHP:
<?php if( osc_item_title()!='' ) { ?><?php echo osc_item_title(); ?>
на:
PHP:
<? echo nTitle(); ?>
Если снова не будет работать, значит вы не правильно подключились к базе данных.
Вставьте и заполните перед строчкой $id = osc_item_id(); в нашей функции из первого моего сообщения:
PHP:
	$host="localhost";
	$user="имя пользователя бд";
	$pass="пароль к бд";
	$db_name="название базы";
	$link=mysql_connect($host,$user,$pass);
	mysql_select_db($db_name,$link);
 
Последнее редактирование модератором:

DenisDan

Новичок
DonLeon, вы гений! Все получилось! Конечно, пришлось додумывать конкретно под свой случай и куда еще <? echo nTitle(); ?> добавить. Просто супер! Но как по Вашей подсказке в первом сообщении "скрыть див с title от показа и отключить сообщение об ошибке" не пойму. Пожалуйста, пропишите этот момент пошагово. Искренняя благодарность!:)
 
Последнее редактирование:
D

DonLeon

Гость
DonLeon, вы гений! Все получилось! Конечно, пришлось додумывать конкретно под свой случай и куда еще <? echo nTitle(); ?> добавить. Просто супер! Но как по Вашей подсказке в первом сообщении "скрыть див с title от показа и отключить сообщение об ошибке" не пойму. Пожалуйста, пропишите этот момент пошагово. Искренняя благодарность!:)
рад был помочь)
Чстобы скрыть див для показа нужно прописать style='display:none;' в див теге скрдив.jpg в файле item-post.php
Чтобы не вылазила ошибка типа заголовок пустой, в oc-includes/osclass/item-actions.php нужно закомментировать строчку - скрошиб.jpg
их будет две (создание и редактирование)
На скрине примеры со скрытием Описания, ищите тоже самое только с Title
 

DenisDan

Новичок
Уважаемый DonLeon, только сейчас обнаружил, что в премиум-объявлениях Ваша функция не работает! <? echo nTitle(); ?> в loop-single-premium.php по Вашей инструкции добавил, но заголовка у премиум-объявлений НЕТ. Пожалуйста, подскажите, как сделать, чтобы функция заработала? С нетерпением жду ответ. Спасибо.
 

Вложения

  • Безымянный.jpg
    Безымянный.jpg
    288,2 КБ · Просмотры: 18
  • Безымянный.jpg
    Безымянный.jpg
    269 КБ · Просмотры: 18
D

DonLeon

Гость
Уважаемый DonLeon, только сейчас обнаружил, что в премиум-объявлениях Ваша функция не работает! <? echo nTitle(); ?> в loop-single-premium.php по Вашей инструкции добавил, но заголовка у премиум-объявлений НЕТ. Пожалуйста, подскажите, как сделать, чтобы функция заработала? С нетерпением жду ответ. Спасибо.
Для премиума нужна отдельная функция nTitle, я прям в loop-single-premium.php внес изменения.. премиум.jpg
 
Последнее редактирование модератором:

DenisDan

Новичок
Для премиума нужна отдельная функция nTitle, я прям в loop-single-premium.php внес изменения.. Посмотреть вложение 636
Уважаемый DonLeon я Ваши указания не могу понять. Как Вы указали на скрине сделал изменения в своем файле loop-single-premium.php, но воз и поныне там. Не сочтите за труд еще раз пояснить более подробно. В очередной раз, спасибо! Безымянный.jpg
 
D

DonLeon

Гость
Уважаемый DonLeon я Ваши указания не могу понять. Как Вы указали на скрине сделал изменения в своем файле loop-single-premium.php, но воз и поныне там. Не сочтите за труд еще раз пояснить более подробно. В очередной раз, спасибо! Посмотреть вложение 639
В общем ту нашу функцию nTitle я полностью расписал в loop-single-premium.php, а на моем скрине только часть того кода )) потому что различаются они добавлением слов Premium ))
Для наглядности, выкладываю все содержимое своего файла loop-single-premium.php ))
PHP:
<?php $size = explode('x', osc_thumbnail_dimensions()); ?>
<li class="listing-card <?php echo $class; ?> premium">
	<?php if( osc_images_enabled_at_items() ) { ?>
		<?php if(osc_count_premium_resources()) { ?>
			<a class="listing-thumb" href="<?php echo osc_premium_url() ; ?>" title="<?php echo osc_esc_html(osc_premium_title()) ; ?>"><img src="<?php echo osc_resource_thumbnail_url(); ?>" title="" alt="<?php echo osc_esc_html(osc_premium_title()) ; ?>" width="<?php echo $size[0]; ?>" height="<?php echo $size[1]; ?>"></a>
		<?php } else { ?>
			<a class="listing-thumb" href="<?php echo osc_premium_url() ; ?>" title="<?php echo osc_esc_html(osc_premium_title()) ; ?>"><img src="<?php echo osc_current_web_theme_url('images/no_photo.gif'); ?>" title="" alt="<?php echo osc_esc_html(osc_premium_title()) ; ?>" width="<?php echo $size[0]; ?>" height="<?php echo $size[1]; ?>"></a>
		<?php } ?>
	<?php } ?>
	<div class="listing-detail">
		<div class="listing-cell">
			<div class="listing-data">
				<div class="listing-basicinfo">
				<strong><a href="<?php echo osc_premium_url() ; ?>" class="title" title="<?php echo osc_esc_html(osc_premium_title()) ; ?>"><?php switch (osc_premium_category()) {
case 'Комнаты': echo "Комната"; break;
case '1-к квартиры': echo "1-к квартира,"; break;
case '2-к квартиры': echo "2-к квартира,"; break;
case '3-к квартиры': echo "3-к квартира,"; break;
case '4-к квартиры': echo "4-к квартира,"; break;
case '5-к квартиры': echo "5-к квартира,"; break;
case 'Дома, коттеджи': echo "Дом"; break;
case 'Земельные участки': echo "Земельный участок"; break;
 
}
; ?>
					 <?
	  $host="localhost";
	$user="имя пользователя БД";
	$pass="пароль";
	$db_name="имя БД";
	$link=mysql_connect($host,$user,$pass);
	mysql_select_db($db_name,$link);
 
$id = osc_item_id();
$res = mysql_query("SELECT s_value FROM oc_t_item_meta WHERE fk_i_item_id=$id AND fk_i_field_id=5 LIMIT 1"); // квадратов
$res = mysql_fetch_assoc($res);
if ($res){
echo $res['s_value']." м&sup2, ";
}
$res2 = mysql_query("SELECT s_value FROM oc_t_item_meta WHERE fk_i_item_id=$id AND fk_i_field_id=3 LIMIT 1"); // этаж
$res2 = mysql_fetch_assoc($res2);
if ($res2){
echo $res2['s_value'];
}
$res3 = mysql_query("SELECT s_value FROM oc_t_item_meta WHERE fk_i_item_id=$id AND fk_i_field_id=4 LIMIT 1"); // этажей
$res3 = mysql_fetch_assoc($res3);
if ($res3){
echo "/".$res3['s_value']." эт.";
}
mysql_close();
  ?>
					 </a></strong>
<div class="listing-attributes">
<?php if( osc_price_enabled_at_items() ) { ?><span class="currency-value"><br><?php echo osc_format_price(osc_premium_price() ); ?></span><?php } ?><br><br>
<span class="location"> <?php if(osc_premium_address()!='') { ?><?php echo osc_premium_address(); ?><?php } ?></span><br> <span class="g-hide"></span>
<?php
$date = osc_premium_pub_date();
$format_date = data_form($date);
echo $format_date;
?>
						</div>
					</div>
 
				<?php if($admin){ ?>
					<span class="admin-options">
						<a href="<?php echo osc_premium_edit_url(); ?>" rel="nofollow"><?php _e('Edit item', 'bender'); ?></a>
						<span>|</span>
						<a class="delete" onclick="javascript:return confirm('<?php echo osc_esc_js(__('This action can not be undone. Are you sure you want to continue?', 'bender')); ?>')" href="<?php echo osc_premium_delete_url();?>" ><?php _e('Delete', 'bender'); ?></a>
						<?php if(osc_premium_is_inactive()) {?>
						<span>|</span>
						<a href="<?php echo osc_premium_activate_url();?>" ><?php _e('Activate', 'bender'); ?></a>
						<?php } ?>
					</span>
				<?php } ?>
			</div>
		</div>
	</div>
</li>
 
Последнее редактирование модератором:

DenisDan

Новичок
Сутки сражался, глаза болят, но сделал, как хотел. С Вашей помощью, конечно!
 
D

DonLeon

Гость
Сутки сражался, глаза болят, но сделал, как хотел. С Вашей помощью, конечно!
Это же хорошо, когда сам начинаешь разбираться )) я тоже ночами изучал работу osclass, только об этом форуме узнал позже, когда на многие вопросы уже нашел ответы))
 
Верх