одна из них с именами файлов фотографий - для одного объекта может существовать несколько строк с уникальными id-фотографии и где id-объекта равно property-фотографии
из за этого при наличии нескольких фотографий для объекта недвижимости на выходе дублирование объекта (с уникальным именем фотографии standard-фотографии)
задача стоит в не повторении объекта и выводе для него всех standard-фотографии
пытался подставить запрос на фото в внутри foreach убрав упоминание в основном....
<?php
defined( '_VALID_MOS' ) or die( 'Direct Access to this location is not allowed.' );
$now = date( "Y-m-d H:i:s", time()+$mosConfig_offset*60*60 );
$menu= new mosMenu( $database );
$menu->load( 1 );
$params = mosParseParams( $menu->params );
$count = isset( $params->count ) ? $params->count : 200;
$orderby = @$params->orderby;
switch (strtolower( $orderby )) {
case 'latest':
$orderby = "p.created DESC";
break;
case 'hottest':
$orderby = "p.hits DESC";
break;
default:
$orderby = "p.created ASC";
break;
}
$sql = "SELECT p.id, p.name, p.full_text, ph.standard FROM #__hp_properties AS p"
. "\nLEFT JOIN #__hp_prop_types AS t ON p.type = t.id"
. "\nLEFT JOIN #__hp_featured AS f ON f.property = p.id"
. "\nLEFT JOIN #__hp_photos AS ph ON ph.property = p.id"
. "\nWHERE p.published='1' AND p.approved='1' AND t.published='1' "
. "\n AND (publish_up = '0000-00-00 00:00:00' OR publish_up <= '$now')"
. "\n AND (publish_down = '0000-00-00 00:00:00' OR publish_down >= '$now')"
. "\nORDER BY ".$orderby
. ($count ? " LIMIT $count" : "");
$database->setQuery( $sql );
$rows = $database->loadObjectList();
header('Content-type: application/xml');
$encoding = split("=", _ISO);
echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>"; ?>
<realty-feed xmlns="http://webmaster.yandex.ru/schemas/feed/realty/2010-06">
<generation-date>2010-10-05T16:36:00+04:00 </generation-date>
<?php
foreach ($rows as $row) {
echo ("<offer internal-id=\"$row->id\">");
$type=htmlspecialchars($row->name);
echo ("<type>".iconv("windows-1251","UTF-8",$type)."</type>"."\n");
echo ("<photo>".$row->standard."</photo>"."\n");
echo "<url>";
if ($mosConfig_sef == "1"){
echo sefRelToAbs("index.php?option=com_hotproperty&task=view&id=".$row->id);
} else {
echo $mosConfig_live_site . "/index.php?option=com_hotproperty&task=view&id=" . $row->id;
}
echo "</url>\n";
$words = $row->full_text;
$words = preg_replace("'<script[^>]*>.*?</script>'si","",$words);
$words = preg_replace('/<a\s+.*?href="([^"]+)"[^>]*>([^<]+)<\/a>/is','\2 (\1)', $words);
$words = preg_replace('/<!--.+?-->/','',$words);
$words = preg_replace('/{.+?}/','',$words);
$words = preg_replace('/ /',' ',$words);
$words = preg_replace('/&/',' ',$words);
$words = preg_replace('/"/',' ',$words);
$words = strip_tags($words);
$words = htmlspecialchars($words);
echo ("<description>".iconv("windows-1251","UTF-8",$words)."</description>"."\n");
echo ("</offer>"."\n");
}
?>
</realty-feed>