Форумы / National / Russian / Тех. поддержка / Похожие страницы из одной категории. similar

Yusupov
#22139 16.01.2010 19:34
Фрагмент моего кода:
$simp = new XTemplate(sed_skinfile('similar', true));

$pag[page_title] = sed_sql_prep($pag[page_title]);

$sql_sim = sed_sql_query("SELECT p.*, u.user_name FROM $db_pages AS p 
LEFT JOIN $db_users AS u ON u.user_id=p.page_ownerid 
WHERE (p.page_state='0' OR p.page_state='2') 
AND p.page_id != $pag[page_id] 
AND page_cat='$pag[page_cat]' 
AND MATCH (page_title) AGAINST ('$pag[page_title]')>$relev 
LIMIT $limit");

if (sed_sql_numrows($sql_sim)!=0){
	$jj = 0;
	while ($pag = sed_sql_fetcharray($sql_sim)){
		$jj++;
		$catpath = sed_build_catpath($pag['page_cat'], "<a href=\"%1\$s\">%2\$s</a>");
		$pag['page_pageurl'] = (empty($pag['page_alias'])) ? sed_url('page', 'id='.$pag['page_id']) : sed_url('page', 'al='.$pag['page_alias']);
		$pag['page_fulltitle'] = $catpath." ".$cfg['separator']." <a href=\"".$pag['page_pageurl']."\">".htmlspecialchars($pag['page_title'])."</a>";
	
		$item_code = 'p'.$pag['page_id'];
		list($pag['page_comments'], $pag['page_comments_display']) = sed_build_comments($item_code, $pag['page_pageurl'], FALSE);
		list($list_ratings, $list_ratings_display) = sed_build_ratings('p'.$pag['page_id'], $pag['page_pageurl'], $ratings);
		
		$simp-> assign(array(
			"PAGE_ROW_URL" => $pag['page_pageurl'],
			"PAGE_ROW_ID" => $pag['page_id'],
			"PAGE_ROW_TITLE" => $pag['page_fulltitle'],
			"PAGE_ROW_SHORTTITLE" => htmlspecialchars($pag['page_title']),
			"PAGE_ROW_CAT" => $pag['page_cat'],
			"PAGE_ROW_CATTITLE" => htmlspecialchars($sed_cat[$pag['page_cat']]['title']),
			"PAGE_ROW_CATPATH" => $catpath,
			"PAGE_ROW_CATDESC" => htmlspecialchars($sed_cat[$pag['page_cat']]['desc']),
			"PAGE_ROW_CATICON" => $sed_cat[$pag['page_cat']]['icon'],
			"PAGE_ROW_KEY" => htmlspecialchars($pag['page_key']),
			"PAGE_ROW_DESC" => htmlspecialchars($pag['page_desc']),
			"PAGE_ROW_AUTHOR" => htmlspecialchars($pag['page_author']),
			"PAGE_ROW_OWNER" => sed_build_user($pag['page_ownerid'], htmlspecialchars($pag['user_name'])),
			"PAGE_ROW_AVATAR" => sed_build_userimage($pag['user_avatar'], 'avatar'),
			"PAGE_ROW_DATE" => @date($cfg['formatyearmonthday'], $pag['page_date'] + $usr['timezone'] * 3600),
			"PAGE_ROW_FILEURL" => $pag['page_url'],
			"PAGE_ROW_SIZE" => $pag['page_size'],
			"PAGE_ROW_COUNT" => $pag['page_count'],
			"PAGE_ROW_FILECOUNT" => $pag['page_filecount'],
			"PAGE_ROW_COMMENTS" => $pag['page_comments'],
			"PAGE_ROW_RATINGS" => $list_ratings,
			"PAGE_ROW_ODDEVEN" => sed_build_oddeven($jj),
			"PAGE_ROW_NUM" => $jj,
			));
	
		$simp->parse("SIMILAR.PAGE_ROW");		
	   }

	$simp->parse("SIMILAR");
	$t->assign('SIMILAR', $simp->text("SIMILAR"));
}

Еще нужно добавить файл similar.tpl с кодом:

<!-- BEGIN: SIMILAR -->
	<!-- BEGIN: PAGE_ROW -->
	<strong><a href="{PAGE_ROW_URL}">{PAGE_ROW_SHORTTITLE}</a></strong><br>
	<!-- END: PAGE_ROW -->
<!-- END: SIMILAR -->