Unofficial modifications
nieoficjalne modyfikacje for?w phpBB by Przemo

Modyfikacje mniejsze - Find Similar Topics

KnofeL - Wto 31 Lip, 2007
Temat postu: Find Similar Topics
Pyta? o to barteq wi?c napisa?em.

Tak jak w opisie, modyfikacja wy?wietli na ekranie x temat?w podobnych do tego kt?ry aktualnie przegl?damy.

Jak to dzia?a... Modyfikacja pobiera z bazy wszystkie tematy kt?re zawieraj? w sobie wyrazy (d?u?esz ni? 3 znaki) z tematu w kt?rym jeste?my, nast?pnie funkcj? similar_text() sprawdza stopie? ich "pokrewie?stwa" i wy?wietla na erkanie te kt?re wg niej s? najbardziej podobne. Nic wielkiego ale zawsze co?.

Stosowanie tej modyfikacji na forach z "typowymi" tematami nie ma raczej wi?kszego sensu, no ale kto wie:

No to do rzeczy:
Wiadomo?? ukryta / Hidden message
Aby zobaczy? wiadomo?? postaw piwo autorowi piwo.

Otwieramy plik viewtopic.php i znajdujemy w nim:
Kod
if ( $show_quickreply )

I przed tym wciskamy:
Kod
// BEGIN FIND SIMILAR TOPICS
$fst_row = 2;
$similar_topic_title = trim($topic_title);
$similar_topic_title = str_replace(array('\'', '"'), array('', ''), $similar_topic_title);
$topic_parts = explode(" ", $similar_topic_title);
$all_proper_words = count($topic_parts);

for( $x=0; $x<$all_words; $x++ )
{
if( strlen($topic_parts[$x] > 3) )
{
$proper_words[] = $topic_parts[$x];
$all_proper_words++;
}
}
$x = 0;
for( $x=0; $x<$all_proper_words; $x++ )
{
if( $x == $all_proper_words-1 )
{ $find_words .= "topic_title LIKE '%".$proper_words[$x]."%' "; }
else
{ $find_words .= "topic_title LIKE '%".$proper_words[$x]."%' OR "; }
}

$sql = "SELECT topic_id, topic_title FROM " . TOPICS_TABLE . " WHERE " . $find_words;

if ( !($result = $db->sql_query($sql)) )
{ message_die(GENERAL_ERROR, 'Could not query posts table', '', __LINE__, __FILE__, $sql); }

while( $row = $db->sql_fetchrow($result) )
{
$similarity_level = similar_text($topic_title, $row['topic_title'] );
if( $similarity_level < 10 ) { $similarity_level = '0'.$similarity_level; }
$similar_topics[] = ( $row['topic_title'] != $topic_title ) ? $similarity_level."<>".$row['topic_id']."<>".$row['topic_title'] : '';
}
rsort($similar_topics);

for( $y==0; $y<=5; $y++ ) // Zamiast 5 wstawcie ile chcecie - To jest ilo?? podobnych temat?w wy?wietlanych na ekranie
{

$fst_row = ( $fst_row == 2 ) ? 1 : 2;
$topic_title = explode("<>", $similar_topics[$y]);

$topic_link = append_sid('viewtopic.php?t='.$topic_title[1]);
$topic_title = $topic_title[2];

$template->assign_block_vars('fst', array(
'FST_TOPIC_LINK' => $topic_link,
'FST_TOPIC_TITLE' => $topic_title,
'FST_CLASS' => $fst_row
));
}
// END FIND SIMILAR TOPICS

Zapisujemy i zamykamy plik. Otwieramy: viewtopic_body.tpl i znajdujemy w nim:
Kod
<table width="100%" cellspacing="2" cellpadding="2" border="0" align="center">
<tr>
<td align="left" valign="middle" class="nav"><span class="nav" style="color: #08A5CE;"><a href="{U_INDEX}" class="nav">{L_INDEX}</a>{NAV_CAT_DESC}</span></td>

I wklejamy przed tym:
Kod
<br />
<table width="100%" cellspacing="1" cellpadding="2" border="0" align="center" class="forumline">
<tr><th class="catTitle">Podobne Tematy</th></tr>
<!-- BEGIN fst -->
<tr><td class="row{fst.FST_CLASS}"><a class="postlink" target="_BLANK" href="{fst.FST_TOPIC_LINK}">{fst.FST_TOPIC_TITLE}</a></td></tr>
<!-- END fst -->
<tr><td class="row2">&nbsp;</td></tr>
</table>


Demo na moim forum

daw22 - Sro 01 Sie, 2007

Kod
Could not query posts table

DEBUG MODE

SQL Error : 1064 Something is wrong in your syntax obok '' w linii 1

SELECT topic_id, topic_title FROM phpbb_topics WHERE

Line : 3216
File : viewtopic.php

Je?li nie potrafisz znale?? rozwi?zania tego problemu,
mo?esz spr?bowa? poszuka?, lub zada? pytanie na forum: http://www.przemo.org/phpBB2/

a linia ta to:
Kod
{ message_die(GENERAL_ERROR, 'Could not query posts table', '', __LINE__, __FILE__, $sql); }

co jest ?le?

KnofeL - Czw 02 Sie, 2007

Wykonaj jeszcze raz instrukcj? dla pliku viewtopic.php
spike1x - Nie 12 Sie, 2007

KnofeL, ja mam taki problem je?li tworze temat ze znakiem " :

Cytat
Could not query posts table

DEBUG MODE

SQL Error : 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 's%' OR topic_title LIKE '%Buying?%'' at line 1

SELECT topic_id, topic_title FROM phpbb_topics WHERE topic_title LIKE '%%' OR topic_title LIKE '%Sells...%' OR topic_title LIKE '%But%' OR topic_title LIKE '%Who's%' OR topic_title LIKE '%Buying?%'

Line : 3012
File : viewtopic.php

Je?li nie potrafisz znale?? rozwi?zania tego problemu,
mo?esz spr?bowa? poszuka?, lub zada? pytanie na forum: http://www.przemo.org/phpBB2/

KnofeL - Nie 12 Sie, 2007

Spr?buj przed tym:
Kod
$topic_parts = explode(" ", $topic_title);

Doda?:
Kod
$topic_title = str_replace(array('"', "'"), array("", ""), $topic_title);

daw22 - Wto 14 Sie, 2007

nadal mam ten sam b??d :/
KnofeL - Pon 27 Sie, 2007

Wprowadzi?em kilka poprawek w skrypcie, powinien dzia?a? lepiej
rhyre - Nie 23 Wrz, 2007

Dzi?ki.
kidzior - Nie 14 Paź, 2007

Modyfikacja przypad?a mi nawet do gustu, zainstalowa?em i jestem zadowolony, ale na przysz?o?? - mo?e jak znajdziesz odrobin? wolnego czasu to pomy?la? by? nad tym, aby wygl?da?o to troszk? ?adniej. Teraz to tylko linie tekstu, mo?e jaki? bajerek? Chocia?, mo?e nawet sam pomysl? co? z htmla doda
STxPawlo - Nie 14 Paź, 2007

wszystko dobrze dziala jednak znow mam pewne ale... jest niemily widok jak sie da sie troszke tematow pokazywanych w temacie a jest ich dosc niewiele tutaj podam przyklad maly:


cmfteam - Wto 06 Lis, 2007

Mod bardzo fajny i przydatny ale... przy wiekszych forach odczuwalnie obci?za baze niestety :?

Powered by phpBB modified by Przemo © 2003 phpBB Group