|
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"> </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
|
|