Ben bir site gelişmekte oldum (şimdi burada bir örnek olarak: http://neurotoxine.mine.nu/gloom), ve ben bir styleswitcher koddan bir garip davranış alıyorum. O yüzden lütfen sabırlı olun büyük.
First, you may go to the site I appointed first and see it. What you've got there, it's a joomla page, with a Jquery using
var $j = jQuery.noConflict();
in order to avoid mootools conflicts. Then, I used these:
<? // Checks for, and assigns cookie to local variable:
if(isset($_COOKIE['style']))
{ $style = $_COOKIE['style'];
}
// If no cookie is present then set style as "red" (default):
else { $style = 'red';
}
?>
Cookie sonra $ style = kırmızı ayarlı değilse, bu, sadece çerez ayarı içindir, ve bu değişken CSS eklenecektir. Bu gibi:
<link rel="stylesheet" type="text/css" href="<?php echo $this->baseurl ?>/templates/wh1/css/template_<?php echo $style ?>.css" media="screen" />
The first code, $this->baseurl=directory for joomla installation, in this case gloom. The second one, echo $style, will write the cookie loaded value or the value assigned from the options, in the case you get there for first time then you'll got RED as value then, template_red.css will be the CSS for the entire site.
Bazı jquery hileler yaparak çalışan bir JS, var:
jQuery.fn.styleSwitcher = function(){
$j(this).click(function(){
// We're passing this element object through to the loadStyleSheet function.
loadStyleSheet(this);
// And then we're returning false.
return false;
});
function loadStyleSheet(obj) {
$j('#preloader')
// Now fade in the div (#preloader):
.fadeIn(500,function(){
// The following will happen when the div has finished fading in:
// Request PHP script (obj.href) with appended "js" query string item:
$j.get( obj.href+'&js',function(data){
// Select link element in HEAD of document (#stylesheet) and change href attribute:
$j('#stylesheet').attr('href','css/' + data + '.css');
// Check if new CSS StyleSheet has loaded:
cssDummy.check(function(){
// When StyleSheet has loaded, fade out and remove the #overlay div:
$j('#preloader').fadeOut(500);
});
});
});
}
// CSS DUMMY SECTION
var cssDummy = {
init: function(){
// Appends "dummy-element" div to body:
$j('<div id="dummy-element" style="display:none" />').appendTo('body');
},
check: function(callback) {
// Checks if computed width equals that which is defined in the StyleSheets (2px):
if ($j('#dummy-element').width()==2) callback();
// If it has not loaded yet then simple re-initiate this function every 200 milliseconds until it had loaded:
else setTimeout(function(){cssDummy.check(callback)}, 200);
}
}
cssDummy.init(); }
O, benim sayfa fonksiyonu başlatmak:
$j(document).ready(function(){
$j('#style-switcher a').styleSwitcher();
});
ve ben böyle bir bağlantıdan çağrı:
<a href="<?php echo $this->baseurl ?>/templates/wh1/style-switcher.php?style=fire">img</a>
Son olarak, styleswitcher.php kodu burada:
<?php
$style = $_GET['style'];
setcookie("style", $style, time()+604800*24); // 604800 = amount of seconds in one week *4=1 month *24=1/2 year *48=1 year
if(isset($_GET['js']))
echo $style;
else header("Location: ".$_SERVER["HTTP_REFERER"]); ?>
(- Stylechanger için bağlantıları üst ve bunların sol THEMES diyor http://neurotoxine.mine.nu/wht/index-test.php) Şimdi, sorun ben bir sitede bu test edildiğinde, her şey iyi çalıştı olmasıdır. Ben joomla şablonda tüm kodu takıldığında Ama, bütün sistem başarısız oldu. Ben burada ve orada bazı düzeltmeler (başta $ j beyanname) yaptım ve sonra ben bu şablonları yolu ile ilgili bir şey olabilir fark, bu yüzden vb beyannamelerin birçok türde mutlak yolları, göreli yolları, test edilmiş ve hiçbir şey olmuyor.
Sonra joomla (neurotoxine.mine.nu / kasvet) kök styleswitcher.php kopyalanan ve ti orada çalışmak olsaydı kontrol, ve ben boş bir sayfa alıyorum. Gidip geri tıkladım ve daha sonra WOW stylechanger çalıştı, ama sonra bir şey ben header ("Location:". $ _SERVER ["HTTP_REFERER"]) olabileceğini düşünmek için geri dönmek için nereye söylemiyor; talimat, ama o iş yapmak için değiştirmek var bilmiyorum.
Joomla kendi şablonları için başlığında bir bildiri verir:
<base href="http://neurotoxine.mine.nu/gloom/" />
Ben bu http_referer çalışır şekilde bir şey yapıyor bilmiyorum, ama ben bu devre ve site hala aynı işi yapar, bir stili tıklatın yok, sayfa boş, vur-geri gitmek ve işte, tarzı değişti ama başarısız oldu Ben sayfasını almak.
Bazı fikirler? Herhangi bir yardım yararlı olabilir.