Günün Saatine Göre Tema ve Stil Değişmesi

Started by rampimp, May 31, 2008, 08:48:44 AM

Previous topic - Next topic

[SiNaN]

$modSettings'de time offset saklanıyor sanırım, onu saate eklerseniz sorun kalmaz.

Ya da doğrudan $user_info'dan kullanıcının saati alınabilir.
Former SMF Core Developer | My Mods | SimplePortal

Hoochie Coochie Man

Ctrl + A yap, bu sefer saat  02 şeklinde gözüküyor, böylelikle hiçbir style çekemiyor..

Quote from: [SiNaN] on June 25, 2008, 03:36:22 AM
$modSettings'de time offset saklanıyor sanırım, onu saate eklerseniz sorun kalmaz.

Ya da doğrudan $user_info'dan kullanıcının saati alınabilir.

Coder sensin dostum, benim dilimde konuş :D
İnadına SMF 1.1.X

[SiNaN]

Kodlarda;

Bul:

$time = date("H");

Değiştir:

$time = date("H");
$time = $time + (int) $user_info['time_offset'];


index.template.php'de de global'lara eklemek gerek.

Bul:

function template_main_above()
{
global $context, $settings, $options, $scripturl, $txt, $modSettings;


Değiştir:

function template_main_above()
{
global $context, $settings, $options, $scripturl, $txt, $modSettings, $user_info;

Former SMF Core Developer | My Mods | SimplePortal

Hoochie Coochie Man

İnadına SMF 1.1.X

[SiNaN]

Ziyaretçiler için time offset olmaması lazım ama yine de belli bir saat çıkmalıydı.

Bir yerlere şu kodu ekler misin? $time'dan sonra olsun ama.

var_dump($time);
Former SMF Core Developer | My Mods | SimplePortal

Hoochie Coochie Man

ekledim.
CTRL + A yap..
solda, 3. satır..
int(3) yazıyor..
İnadına SMF 1.1.X

[SiNaN]

Hımmm, index.template.php dosyanı ekler misin buraya?
Former SMF Core Developer | My Mods | SimplePortal

Hoochie Coochie Man

#47
buyur..

Edit: Bu arada.. Şuan hiç bir style'ı çekmiyor, ama akşama doğru birini yakalayıp çekicek. Yani senin o saate göre tema değiştirme çalışıyor, bunu dün akşam kanıtladı. Akşam bir tema beliriyor. Ancak sabah ve gündüz vakti gördüğün üzere hiç bir style çekmiyor..
İnadına SMF 1.1.X

[SiNaN]

#48
Şu kodları dener misin?

$time =  (int) date("H");
if($context['user']['is_logged'])
$time = $time + (int) $user_info['time_offset'];
else
$time = $time + (int) $modSettings['time_offset'];
echo '
<link rel="stylesheet" type="text/css" href="', $settings['theme_url'], '/style';
if ($time > -1 && $time < 6)
echo '_night';
elseif ($time > 5 && $time < 11 )
echo '_dusk';
elseif ($time > 10 && $time < 19)
echo '_day';
elseif ($time > 18 && $time < 21 )
echo '_dawn';
elseif ($time > 20 && $time < 24 )
echo '_night';
else
echo '';
echo '.css" />
Former SMF Core Developer | My Mods | SimplePortal

Hoochie Coochie Man

#49
Template Parse Error! hatası verdi, bulmaya çalışıyorum..

Hata burda bir yerde..
   if($context['user']['is_logged']
      $time = $time + (int) $user_info['time_offset'];
   else
      $time = $time + (int) $modSettings['time_offset'];


edit: tamam düzelttim hatayı..

if($context['user']['is_logged'])

şeklinde..

ve, evet, çalışıyor :)
Çak Sinan, başardık :D
Tema açıklamasında büyük bir teşekkürü hakttin :)
Gündüz vakti olduğu için güneş tepede :) Akşama güneşin batışını izleriz :D
şimdi on of gidflerini ve tema butonlarını style lara göre ayarlamak kaldı..
onlarda da" if  "  "  else   " zımbırtılarını kullanıcam :)
İnadına SMF 1.1.X

[SiNaN]

Zaten hata vermese şaşardım. :P

Her yerde if kullanmak yerine $modSettings içine koymayı deneyebilirsin. Denemedim ama sanırım çalışır.

$time =  (int) date("H");
if($context['user']['is_logged'])
$time = $time + (int) $user_info['time_offset'];
else
$time = $time + (int) $modSettings['time_offset'];
if ($time > -1 && $time < 6)
$modSettings['style'] = 'night';
elseif ($time > 5 && $time < 11 )
$modSettings['style'] = 'dusk';
elseif ($time > 10 && $time < 19)
$modSettings['style'] = 'day';
elseif ($time > 18 && $time < 21 )
$modSettings['style'] = 'dawn';
elseif ($time > 20 && $time < 24 )
$modSettings['style'] = 'night';
else
$modSettings['style'] = '';
echo '
<link rel="stylesheet" type="text/css" href="', $settings['theme_url'], '/style_', $modSettings['style'], '.css" />


Diğer dosyalarda da $modSettings'i fonksiyona global yaparak $modSettings['style'] olarak kullanabilirsin. Ya da $settings ya da $options içinde de saklayabilirsin.
Former SMF Core Developer | My Mods | SimplePortal

Hoochie Coochie Man

Ufff kafamı karıştırdın sinan, boşver, dur  işte çalışıyor bu verdiklerin :D
Olaya bak, temayı yayınlamak için akşam üzeri ve geceyi bekleyeceğiz :D hehe
İnadına SMF 1.1.X

[SiNaN]

Sen bilirsin, sadece her yeri if'lerle doldurma diye dedim. Hoş karşılamayabilir Tema Ekibi.

Bekleme konusunda ciddi olup olmadığını anlayamasam da hatırlatayım; :)

   $time =  (int) date("H");

Bunu $time = SAAT; olarak değiştirerek her türlü testi yapabilirsin.
Former SMF Core Developer | My Mods | SimplePortal

Hoochie Coochie Man

Bekleme konusunda şaka yapmıştım, yine de sağol..
Tema ekibi konusuna gelirsek, eğer onaylanmazsa buraya gene gelirim ;) :D
İnadına SMF 1.1.X

Yağız...


Hoochie Coochie Man

"Live City"

Çünkü şehir canlı, hayatı yaşıyor ;)

Edit: Sinan.. şu..

if($context['user']['is_logged'])

olayı yüzünden sanırım, anlamadım ama üye girişi yapınca farklı tema çıkıyor, ziyaretçiye farklı tema çıkıyor..

kullanıcı adı: test
şifre: 123456

http://smfthemes.890m.com/forum/index.php?theme=19
İnadına SMF 1.1.X

[SiNaN]

Admin Paneli >> Forum Seçenekleri

Zaman Dengesi gibi bir ayar var ya, o ne olarak ayarlı?
Former SMF Core Developer | My Mods | SimplePortal

Hoochie Coochie Man

İnadına SMF 1.1.X

[SiNaN]

:)

Ama bu üyeninki 0. Eğer kullanıcı giriş yapmışsa, onun zaman dengesine göre hesaplar zamanı. Ama eğer giriş yapmamışsa, ziyaretçiyse, forum varsayılanına göre harekete eder.

Üyenin zaman dengesi ayarını da 8 yaptım, şimdi aynı.
Former SMF Core Developer | My Mods | SimplePortal

Hoochie Coochie Man

Süpersin :D

Sinan bu kısımda

   elseif ($time > 20 && $time < 24 )
      echo '_night';


24 'ü   5    yaptım..
İnadına SMF 1.1.X

Advertisement: