Господа, приветствую. На Авито в категории "квартиры" нет поля "заголовок" при подаче объявления и Title формируется из данных доп. полей. (Например 2-к квартира 50 кв.м.). Каким образом подобное можно осуществить? Я думаю, этот вопрос многим будет интересен. Спасибо.
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']." м², ";
}
$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();
}
Чтобы задействовать нашу функцию - ее нужно вызватьDonLeon, добавил Ваш код в указанный файл. Поменял id пользовательских полей на свои. Но....., ничего не вышло. По-прежнему в title в исходном коде страницы только текст из поля "заголовок" (его я, кстати, еще не убирал, как Вы подсказываете). О своей доске: Моя тема "бендер". При подаче объявления о продаже квартиры пользователю уже предлагается готовая категория по кол-ву комнат. Например: категория "1 комнатные квартиры". А далее уже идут пользовательские поля: "площадь", "этаж" и т.д. Так вот, как из данных этих пользовательских полей сформировать заголовок и соответственно "Title"? Какой вариант еще подскажете? В чем моя ошибка? Спасибо! Посмотреть вложение 620
<?php if( osc_item_title()!='' ) { ?><?php echo osc_item_title(); ?>
<? echo nTitle(); ?>
$host="localhost";
$user="имя пользователя бд";
$pass="пароль к бд";
$db_name="название базы";
$link=mysql_connect($host,$user,$pass);
mysql_select_db($db_name,$link);
рад был помочь)DonLeon, вы гений! Все получилось! Конечно, пришлось додумывать конкретно под свой случай и куда еще <? echo nTitle(); ?> добавить. Просто супер! Но как по Вашей подсказке в первом сообщении "скрыть див с title от показа и отключить сообщение об ошибке" не пойму. Пожалуйста, пропишите этот момент пошагово. Искренняя благодарность!![]()
Для премиума нужна отдельная функция nTitle, я прям в loop-single-premium.php внес изменения..Уважаемый DonLeon, только сейчас обнаружил, что в премиум-объявлениях Ваша функция не работает! <? echo nTitle(); ?> в loop-single-premium.php по Вашей инструкции добавил, но заголовка у премиум-объявлений НЕТ. Пожалуйста, подскажите, как сделать, чтобы функция заработала? С нетерпением жду ответ. Спасибо.
Уважаемый DonLeon я Ваши указания не могу понять. Как Вы указали на скрине сделал изменения в своем файле loop-single-premium.php, но воз и поныне там. Не сочтите за труд еще раз пояснить более подробно. В очередной раз, спасибо!Для премиума нужна отдельная функция nTitle, я прям в loop-single-premium.php внес изменения.. Посмотреть вложение 636
В общем ту нашу функцию nTitle я полностью расписал в loop-single-premium.php, а на моем скрине только часть того кода )) потому что различаются они добавлением слов Premium ))Уважаемый DonLeon я Ваши указания не могу понять. Как Вы указали на скрине сделал изменения в своем файле loop-single-premium.php, но воз и поныне там. Не сочтите за труд еще раз пояснить более подробно. В очередной раз, спасибо! Посмотреть вложение 639
<?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']." м², ";
}
$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>
Это же хорошо, когда сам начинаешь разбираться )) я тоже ночами изучал работу osclass, только об этом форуме узнал позже, когда на многие вопросы уже нашел ответы))Сутки сражался, глаза болят, но сделал, как хотел. С Вашей помощью, конечно!