eklentiyi kurmadan önce söyle bir değişiklik yaparsak sanırım amaca daha uygun olur
burada submit butonun işlemini kaldırıp dogrudan select menusunden tema secildikten sonra otomatik olarak post edilir eğer işlem başarılı olursa sayfanız yenilenir ve yeni temanızı kullanmaya başlarsınız başarısız olursa olduğunuz sayfada hata mesajı basar:
not: denemedim ama çalışmasıl lazım =)
PHP Kod:
<?php
// 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("pre_output_page", "mytheme_run");
$plugins->add_hook("index_start", "mytheme_update");
$plugins->add_hook("global_start", "mytheme_global");
function mytheme_info()
{
return array(
"name" => "Hızlı Tema Değiştir Plugin",
"description" => "Footera hızlı tema değiştirilmesi için seçenek sekmesi eklemenizi sağlar.<br /><img src=\"http://destek.mybb.com.tr/turkey.gif\" border=\"0\" alt=\"MCTR\" title=\"MCTR\" /> Türkçe Çeviri: <a title=\"MyBB.Com.TR - XpSerkan\" href=\"http://www.mybb.com.tr\" target=\"_blank\"><b>MyBB.Com.TR</b></a>",
"website" => "http://destek.mybb.com.tr/",
"author" => "Terrorz",
"authorsite" => "http://planetgamers.info/",
"version" => "2.0",
"compatibility" => "16*",
"guid" => '18bf524b7bf4287c93e88b520533d81c'
);
}
function mytheme_activate()
{
}
function mytheme_deactivate()
{
}
function mytheme_run($page)
{
global $mybb, $db, $lang;
$lang->load("usercp");
$theme_select = build_theme_select("style", $mybb->user['style']);
if(strpos($theme_select, '</select>') === false)
{
$theme_select .= '</select>';
}
$data = "<form id=\"temaSec\" method=\"post\" action=\"\">\n<span style=\"float: right; padding: 1px;\">\n";
$data .= "<input type=\"hidden\" name=\"uid\" value=\"{$mybb->user['uid']}\" />";
$data .= "<span class=\"smalltext\"><strong> </strong> ".$theme_select;
$data .= "</span>\n</form>\n<br />";
$data .= "<script>"
$data .= "$.post('index.php?action=mytheme',$('#temaSec).serialize(),function(veri)"
$data .= "{"
$data .= "if(veri == 'basarili')"
$data .= "{"
$data .= "window.location = 'index.php'"
$data .= "}"
$data .= "else"
$data .= "{"
$data .= "$('#temaSec').append('Tema seçerken hata ile karşılaşıldı')"
$data .= "}"
$data .= "});"
$data .= "</script>"
preg_match('#'.preg_quote('<!-- start: footer -->').'#i', $page, $matches);
if($matches[0])
{
$page = str_replace($matches[0], "<br />".$data."\n<!-- start: footer -->", $page);
}
return $page;
}
function mytheme_update()
{
global $mybb, $db, $lang;
$hata = array();
if($mybb->input['action'] == 'mytheme')
{
if(isset($mybb->input['style']) && $mybb->request_method == "post" || $mybb->request_method == "get")
{
$lang->load('usercp');
if($mybb->user['uid'])
{
$db->update_query("users", array('style' => intval($mybb->input['style'])), "uid='{$mybb->user['uid']}'");
}
else
{
if(intval($mybb->input['style']) == 0)
{
my_unsetcookie('mytheme');
}
else
{
my_setcookie('mytheme', intval($mybb->input['style']));
}
}
echo 'basarili';
//redirect("index.php", $lang->redirect_optionsupdated);
}
else
{
$hata['post'] = 'Veriler alınırken hata ile karşılaşıldı!';
}
}
else
{
$hata['input'] = 'Action değeri tanımlanamadı!'
}
}
function mytheme_global()
{
global $mybb;
if($mybb->user['uid'] == 0 && intval($mybb->cookies['mytheme']) > 0)
{
$mybb->user['style'] = intval($mybb->cookies['mytheme']);
}
}
?>burada submit butonun işlemini kaldırıp dogrudan select menusunden tema secildikten sonra otomatik olarak post edilir eğer işlem başarılı olursa sayfanız yenilenir ve yeni temanızı kullanmaya başlarsınız başarısız olursa olduğunuz sayfada hata mesajı basar:
not: denemedim ama çalışmasıl lazım =)

