<?php
/**
 * Benzer Konu Plugini 1.0 For MyBB 1.4*
 * Copyright ® 2009 DeLLy
 *
 * Website: http://www.tufyta.com
 *
 */
// Disallow direct access to this file for security reasons
if(!defined("IN_MYBB"))
{
    die("Direct initialization of this file is not allowed.<br /><br />Please make sure IN_MYBB is defined.");
}
$plugins->add_hook("xmlhttp", "benzerkonu_kontrol"); 
function benzerkonu_info()
{
    return array(
        "name"            => "MyBB Benzer Konu Kontrolü (Ajax)",
        "description"    => "Konu Açma Sayfasında Konu Adını Girerken Benzer Konuları Listeleyen Plugin",
        "website"        => "http://www.tufyta.com",
        "author"        => "DeLLy",
        "authorsite"    => "http://www.tufyta.com",
        "version"        => "1.0.1",
        "guid"             => "",
        "compatibility" => "14*"
    );
}
function benzerkonu_activate() {
 global $db;
 require MYBB_ROOT."inc/adminfunctions_templates.php";
 find_replace_templatesets("newthread", '#<\/title>(\r?)\n#', "</title>\n<script type=\"text/javascript\" src=\"jscripts/benzerkonu.js\"></script>\n");
 find_replace_templatesets("newthread", '#{\$posticons}(\r?)\n#', "<tr><td class=\"trow2\"></td><td class=\"trow2\" id=\"benzerkonular\"></td></tr>\n{\$posticons}\n");
 find_replace_templatesets("newthread", '#name="subject"#', "name=\"subject\" onkeyup=\"benzerkonu(this.value)\"");

$benzerkonu_group = array(
        "gid"                => "NULL",
        "name"              => "benzerkonu_settings",
        "title"             => "Similar Thread Checker",
        "description"        => "Settings for Similar Thread Checker On New Thread.",
        "disporder"            => "100",
        "isdefault"            => "no",
    );
    $db->insert_query("settinggroups",$benzerkonu_group);
    $gid = $db->insert_id();

        $benzerkonu_setting_1 = array(
        "sid"            => "NULL",
        "name"            => "benzerkonu_title_enabled",
        "title"          => "Show a Message For Similar Thread?",
        "description"    => "You can Enable Show a Message For Similar Title",
        "optionscode"    => "yesno",
        "value"          => "no",
        "disporder"        => "1",
        "gid"            => intval($gid),
    );

    $benzerkonu_setting_2 = array(
        "sid"            => "NULL",
        "name"            => "benzerkonu_title",
        "title"            => "Title For Similar Threads",
        "description"    => "Write a Message For Similar Threads",
        "optionscode"    => "text",
        "value"            => "<div class=\"tcat\" style=\"padding:5px;font-weight:700;\">Konu Açmadan Önce Aşağıdakileri İnceleyiniz..</div>",
        "disporder"        => "2",
        "gid"            => intval($gid),
     );
    $benzerkonu_setting_3 = array(
        "sid"            => "NULL",
        "name"            => "benzerkonu_lenght",
        "title"            => "Keywords Lenght",
        "description"    => "Set Lenght For Keyords are Searchable (if lenght<4 it will run for \"and\" , \"is\" Etc..)",
        "optionscode"    => "text",
        "value"            => "4",
        "disporder"        => "3",
        "gid"            => intval($gid),
     );
    $benzerkonu_setting_4 = array(
        "sid"            => "NULL",
        "name"            => "benzerkonu_limit",
        "title"            => "Threads Limit For Each Keywords",
        "description"    => "Set The Limit Of Threads For Each Keywords (ex:if limit=10  and title = \"Hello World\" 20 Threads Will be showed)",
        "optionscode"    => "text",
        "value"            => "10",
        "disporder"        => "4",
        "gid"            => intval($gid),
     );

    $db->insert_query("settings", $benzerkonu_setting_1);
    $db->insert_query("settings", $benzerkonu_setting_2);
    $db->insert_query("settings", $benzerkonu_setting_3);
    $db->insert_query("settings", $benzerkonu_setting_4);

 // Optimizing database
    $db->query("OPTIMIZE TABLE ".TABLE_PREFIX."settinggroups");
    $db->query("OPTIMIZE TABLE ".TABLE_PREFIX."settings");
    $db->query("OPTIMIZE TABLE ".TABLE_PREFIX."sessions");
    
    // Rebuilding settings
    rebuildsettings();
}
function benzerkonu_deactivate() {
 global $db;
 require MYBB_ROOT."inc/adminfunctions_templates.php";
 find_replace_templatesets("newthread", '#<script type="text/javascript" src="jscripts/benzerkonu.js"></script>(\r?)\n#', "",0);
 find_replace_templatesets("newthread", '#<tr><td class="trow2"></td><td class="trow2" id="benzerkonular"></td></tr>(\r?)\n#', "",0);
 find_replace_templatesets("newthread", '#onkeyup="(.*?)" #', "",0);

    $db->query("DELETE FROM ".TABLE_PREFIX."settinggroups WHERE name='benzerkonu_settings'");
    $db->query("DELETE FROM ".TABLE_PREFIX."settings WHERE name='benzerkonu_title_enabled'");
    $db->query("DELETE FROM ".TABLE_PREFIX."settings WHERE name='benzerkonu_title'");
    $db->query("DELETE FROM ".TABLE_PREFIX."settings WHERE name='benzerkonu_lenght'");
    $db->query("DELETE FROM ".TABLE_PREFIX."settings WHERE name='benzerkonu_limit'");

 // Optimizing database
    $db->query("OPTIMIZE TABLE ".TABLE_PREFIX."settinggroups");
    $db->query("OPTIMIZE TABLE ".TABLE_PREFIX."settings");
    $db->query("OPTIMIZE TABLE ".TABLE_PREFIX."sessions");
    
    // Rebuilding settings
    rebuildsettings();


}
    function benzerkonu_kontrol() 
    {
        global $mybb;
        global $db;
         header("Content-type: text/xml; charset=UTF-8");
    $limit=$mybb->settings['benzerkonu_limit'];
         if(strlen($mybb->input[konu])>=$mybb->settings['benzerkonu_lenght']) 
         {
            $konu=str_replace("&"," ",$mybb->input[konu]);
            $konu=str_replace("?"," ",$konu);
            $keys=explode(" ",$konu);
            if (is_array($keys)){
                $benzerkonular=Array();
    if ($mybb->settings['benzerkonu_title_enabled']=="1")
        {
            echo $mybb->settings['benzerkonu_title']; 
        }
    foreach ($keys AS $key) {
                if (strlen($key)>=$mybb->settings['benzerkonu_lenght']){
                    $benzerler=$db->query("SELECT *FROM ".TABLE_PREFIX."threads WHERE subject LIKE '%".$db->escape_string($key)."%' LIMIT ".intval($limit)."");
                    while ($benzer=$db->fetch_array($benzerler)) {
                        $tid=$benzer[tid]; 
                        $benzerkonular[$tid]=$benzer[subject];
                    }
 
            } 
            }
            foreach ($benzerkonular as $idi=>$konu) {
            echo "<a title=\"$konu\" target=\"_blank\" href=\"showthread.php?tid=$idi\">".htmlspecialchars($konu)."</a><br>\n";
            }

            }else {
            $benzerler=$db->query("SELECT *FROM ".TABLE_PREFIX."threads WHERE subject LIKE '%".$db->escape_string($keys)."%' LIMIT LIMIT ".intval($limit)."");
                if ($mybb->settings['benzerkonu_title_enabled']=="1" && $db->num_rows($benzerler)>0)
        {
            echo $mybb->settings['benzerkonu_title']; 
        }
                    while ($benzer=$db->fetch_array($benzerler)) {
                      echo "<a title=\"$benzer[subject]\" target=\"_blank\" href=\"showthread.php?tid=$idi\">".htmlspecialchars($benzer[subject])."</a><br>\n";
                    }
            }
         }

}
?>