| 1 |
<?php |
<?php |
| 2 |
// $Id: similar.module,v 1.7.2.7 2007/11/29 16:17:37 deekayen Exp $ |
// $Id: similar.module,v 1.7.2.8 2009/01/29 15:17:02 deekayen Exp $ |
| 3 |
|
|
| 4 |
/** |
/** |
| 5 |
* @file |
* @file |
| 340 |
|
|
| 341 |
$tids = array(); |
$tids = array(); |
| 342 |
$result = db_query('SELECT t.tid FROM {term_node} t WHERE t.nid = %d', $nid); |
$result = db_query('SELECT t.tid FROM {term_node} t WHERE t.nid = %d', $nid); |
| 343 |
while($data = db_fetch_object($result)) { |
while ($data = db_fetch_object($result)) { |
| 344 |
if (!in_array($data->tid, $tidsExclude)) { |
if (!in_array($data->tid, $tidsExclude)) { |
| 345 |
$tids[$data->tid] = $data->tid; |
$tids[$data->tid] = $data->tid; |
| 346 |
} |
} |
| 396 |
$taxonomy_tids = (int)$taxonomy_tids; |
$taxonomy_tids = (int)$taxonomy_tids; |
| 397 |
} |
} |
| 398 |
|
|
| 399 |
$result = db_query_range("SELECT r.nid, MATCH(r.body, r.title) AGAINST ('%s') AS score FROM {node_revisions} r INNER JOIN {node} n ON r.nid = n.nid AND r.vid = n.vid INNER JOIN {term_node} t ON n.nid = t.nid AND t.tid IN ($taxonomy_tids) WHERE MATCH(r.body, r.title) AGAINST ('%s') AND n.status <> 0 AND r.nid <> %d AND n.type IN ($types) GROUP BY n.nid ORDER BY score DESC, r.vid DESC", $text, $text, $node->nid, 0, variable_get('similar_num_display', 5)); |
$query = "SELECT r.nid, MATCH(r.body, r.title) AGAINST ('%s') AS score FROM {node_revisions} r INNER JOIN {node} n ON r.nid = n.nid AND r.vid = n.vid INNER JOIN {term_node} t ON n.nid = t.nid AND t.tid IN ($taxonomy_tids) WHERE MATCH(r.body, r.title) AGAINST ('%s') AND n.status <> 0 AND r.nid <> %d AND n.type IN ($types) GROUP BY n.nid ORDER BY score DESC, r.vid DESC"; |
| 400 |
} |
} |
| 401 |
else { |
else { |
| 402 |
$result = db_query_range("SELECT r.nid, MATCH(r.body, r.title) AGAINST ('%s') AS score FROM {node_revisions} r INNER JOIN {node} n ON r.nid = n.nid AND r.vid = n.vid WHERE MATCH(r.body, r.title) AGAINST ('%s') AND n.status <> 0 AND r.nid <> %d AND n.type IN ($types) GROUP BY n.nid ORDER BY score DESC, r.vid DESC", $text, $text, $node->nid, 0, variable_get('similar_num_display', 5)); |
$query = "SELECT r.nid, MATCH(r.body, r.title) AGAINST ('%s') AS score FROM {node_revisions} r INNER JOIN {node} n ON r.nid = n.nid AND r.vid = n.vid WHERE MATCH(r.body, r.title) AGAINST ('%s') AND n.status <> 0 AND r.nid <> %d AND n.type IN ($types) GROUP BY n.nid ORDER BY score DESC, r.vid DESC"; |
| 403 |
} |
} |
| 404 |
|
|
| 405 |
|
$query = db_rewrite_sql($query, 'n', 'nid'); |
| 406 |
|
$result = db_query_range($query, $text, $text, $node->nid, 0, variable_get('similar_num_display', 5)); |
| 407 |
|
|
| 408 |
while ($node = db_fetch_object($result)) { |
while ($node = db_fetch_object($result)) { |
| 409 |
$content = node_load($node->nid); |
$content = node_load($node->nid); |
| 410 |
if ($teaser) { |
if ($teaser) { |