parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Rреализация, методы

DSHa 29.10.2011 01:14 / 29.10.2011 01:15

А таблица с тегами (tags):

1) id – первичный ключ;
2) tag – имя тега.

Таблица пересечений posts_tags
1) id – первичный ключ;
2) postid – внешний ключ (связывает запись с таблицей posts);
3) tagid – внешний ключ (связывает запись с таблицей tags).

также существует таблица с товарами lot
Формируем XML документ.
@tag[]
$select_tags[^oSql.table{SELECT tags.tag_id, tags.tag, posts_tags.id_int, COUNT(posts_tags.lotid) AS posts_count, posts_tags.tagid 
			FROM posts_tags LEFT JOIN tags ON posts_tags.tagid=tags.tag_id GROUP BY tags.tag_id }] 
^if(!def $select_tags){
<h2>Нет ключевых слов!</h2>
}{
#выводим информацию о лоте с помощью XML
$sourceDoc[
       ^xdoc::create{<?xml version="1.0" encoding="utf-8" ?>
<cloud>
^select_tags.menu{
	
    <row id="$select_tags.id_int">
        <name>$select_tags.tag</name>
	<tag_id>$select_tags.tag_id</tag_id>
        <weight>$select_tags.posts_count</weight>
    </row>
}   
</cloud>
	
		}]
#входной xdoc документ
		$transformedDoc[^sourceDoc.transform[/xml/tag.xsl]]
#выдача результата в HTML виде
		
		^transformedDoc.string[$.method[html]]
}

#end @tag[]


#Показываем выборку по выбранному ключевому слову.
@list_tag[]
$list_tag[^oSql.table{SELECT lot_id, lot_title, nm_lot, dt, lot_txt, lot.id_region, region.region_id, region.region FROM lot, region 
	WHERE lot_id IN (SELECT lotid FROM  posts_tags WHERE tagid = $form:id_tag) AND region.region_id = lot.id_region}]

<ul class="item-table">
<div class="select_lot">
<div class="br"></div>
^list_tag.menu{
<li>
<div class="date">$list_tag.dt</div>
<div class="title"><a href="/catalog/id_lot.html?id_lot=$list_tag.lot_id" class="title_lot">$list_tag.nm_lot</a></div>
<div class="date">$list_tag.region</div>
</li>
<div class="br"></div>
}
</div>

<div class="br"></div>

#end list_tag[]