");
PageTemplates.pageYandexAd(out, visitor == null ? 2 : 3); // разный ID для залогиненых и нет
+ if (paramTag > 0 && relatedTagsStartMID > 0) {
+ String related = getRelatedTags(sql, paramTag, 10);
+ if (!related.isEmpty()) {
+ out.println("
Related tags:
");
+ out.println("
" + related + "
");
+ }
+ }
out.println("
");
out.println(""); // topwrapper
@@ -277,4 +302,30 @@ public class Blogs {
return ret;
}
+
+ private String getRelatedTags(Connection sql, int tag_id, int cnt) {
+ String ret = "";
+
+ PreparedStatement stmt = null;
+ ResultSet rs = null;
+ try {
+ stmt = sql.prepareStatement("SELECT tags.name,COUNT(message_id) AS cnt FROM messages_tags INNER JOIN tags ON messages_tags.tag_id=tags.tag_id WHERE messages_tags.message_id>" + relatedTagsStartMID + " AND messages_tags.message_id IN (SELECT message_id FROM messages_tags WHERE tag_id=?) AND messages_tags.tag_id NOT IN (SELECT tag_id FROM tags_ignore) GROUP BY messages_tags.tag_id HAVING cnt>1 ORDER BY cnt DESC LIMIT 1,?");
+ stmt.setInt(1, tag_id);
+ stmt.setInt(2, cnt);
+ rs = stmt.executeQuery();
+ rs.beforeFirst();
+ while (rs.next()) {
+ try {
+ ret += "