Geç cevabım için kusura bakmayın.
Burada paylaşayım o halde.
Öncelikle SMF'nin index.php dosyasındaki $actionArray dizisine şu satır eklenecek:
'baslikoneri' => array ( 'PHP_DOSYASI.php', 'BaslikOneri' ),
Tabii ki PHP_DOSYASI yerine kendi dosyanızın adını yazarsınız. O dosyanın içine de şu kod yazılacak.
<?php
function BaslikOneri(){
global $smcFunc, $sourcedir, $messages_request, $scripturl;
require_once($sourcedir . '/Search.php');
$_SESSION['last_ss'] = $_GET['search'];
// $_REQUEST['subject_only'] = 1;
PlushSearch2();
$ss = 0;
$out = '<?xml version="1.0"?'.'><subjects>';
while($ss < 7 && $messages_request != null && $message = $smcFunc['db_fetch_assoc']($messages_request)){
$out .= '<subject link="'.$scripturl.'?topic='.$message['id_topic'].'"><![CDATA[' . $message['subject'] . ']]></subject>';
$ss++;
}
$out .= '</subjects>';
header("Content-Type:text/xml; charset=UTF-8");
echo $out;
die();
}
?>
Bu kodda "comment" olarak bıraktığım satır etkinleştirilirse sadece başlıklarda arama yapar. Ama 40-50bin başlıklı bizim forumda bile bu seçeneği kullandığımda bazen sonuç döndürmediği bile oluyordu, o yüzden hem başlık hem içerik olarak arama yaptırıyorum ben, yani size de tavsiye etmem ama sonuç döndürmesi daha yavaş olur derseniz sadece başlıkta arama da yaptırabilirsiniz tabii.
while döngüsünün içinde de 7 tane sonuç döndürüyorum. Bu sayı da size kalmış.
Aslında bunun için hazır kurulum paketi de hazırlanabilir ama böylesi daha kolayıma geliyor

İyi forumlar.
Mesajlar Birleştirildi.
Bu arada baslik-oneri.js dosyasının sadece yeni konu açılırken sayfaya dahil edilmesini de şu şekilde sağlayabilirsiniz. Ben öyle yapıyorum. Temanızın index.template.php dosyasında template_html_above() fonksiyonunun içinde uygun bir yere şu satırları eklersiniz.
if ( $context['current_action'] == 'post' && isset( $context['is_new_topic'] ) && $context['is_new_topic'] ) {
echo '
<script type="text/javascript" src="' . $settings['theme_url'] . '/scripts/baslik-oneri.js"></script>';
}
baslik-oneri.js dosyasını uygun yere yerleştirirsiniz. Bir de bu template_html_above() fonksiyonunda $context ve $settings global değişkenleri tanımlı değilse tanımlamanız gerekir.
Ha bir de açılan kutucuğun biçimlemesi var. Benim kullandığım şu şekilde:
#baslik-oneri {
background: #fff none repeat scroll 0 0;
border: 1px solid #ccc;
box-shadow: 0 0 2px 2px #ccc;
display: none;
margin-top: 3px;
min-width: 500px;
padding: 10px;
position: absolute;
}
#baslik-oneri ul {
list-style: outside none none;
margin: 0;
padding: 0;
}
#baslik-oneri h4 {
cursor: pointer;
float: right;
}
İyi forumlar.