Változó háttérképek

2015.07.08. 12:50

Változó háttérkép

Sok lehetőség, és variációs megoldás van erre, ez az egyik lehetőség, és viszonylag egyszerű

Lépésenként:
  1. Először is kell 10 db. háttérkép.
      A képek kiválasztásánál érdemes figyelembe venni, hogy a kép mérete legalább 1920x1080 pixel, vagy annál valamivel nagyobb legyen.
      Ekkora méretnél ajánlott a *.jpg kiterjesztésű képeket használni.
  2. A képeket először nevezzük át hatterkep_00.jpg, hatterkep_01.jpg, .... hatterkep_09.jpg névre (ékezetet nem használjuk!), majd töltsük fel abban a kinézetben a theme/images mappába, amelyikbe szeretnénk használni.
  3. Készítsünk egy adatbázis táblát a képeknek.
      Ehhez lépjünk fel az oldalunk phpMyAdmin felületére, jelöljük ki az adatbázisunkat, majd klikkeljünk felül az SQL menüpontra.
      A megjelenő ablakba másoljuk be pontosan az alábbi kódot
      (Figyelem, aki nem phpbb_ perfixet használ, az ne felejtse átírni a megfelelőre!)
      Kód:
      CREATE TABLE IF NOT EXISTS `phpbb_hatter_kep` (
        `kep_id` int(4) unsigned NOT NULL AUTO_INCREMENT,
        `kep_kod` int(4) unsigned NOT NULL DEFAULT '0',
        `kep_most` int(4) unsigned NOT NULL DEFAULT '0', 
        `kep_time` int(11) unsigned NOT NULL DEFAULT '0',
        `kep_neve` varchar(32) NOT NULL DEFAULT '',
        PRIMARY KEY (`kep_id`)
      ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=0 ;
      Ezzel létre is hoztunk egy üres adatbázis táblát.
        .

    • Töltsük fel a szükséges adatokkal. Ehhez klikkeljünk újra a SQL menüpontra, és a megjelenő ablakba másoljuk be:
      (Figyelem, aki nem phpbb_ perfixet használ, az ne felejtse átírni a megfelelőre!)
      Kód:
      INSERT INTO `phpbb_hatter_kep` (`kep_kod`, `kep_most`, `kep_time`, `kep_neve`) VALUES
      (0, 0, 1424686620, 'hatterkep_00.jpg'),
      (1, 0, 0, 'hatterkep_01.jpg'),
      (2, 0, 0, 'hatterkep_02.jpg'),
      (3, 0, 0, 'hatterkep_03.jpg'),
      (4, 0, 0, 'hatterkep_04.jpg'),
      (5, 0, 0, 'hatterkep_05.jpg'),
      (6, 0, 0, 'hatterkep_06.jpg'),
      (7, 0, 0, 'hatterkep_07.jpg'),
      (8, 0, 0, 'hatterkep_08.jpg'),
      (9, 0, 0, 'hatterkep_09.jpg');

      Ha nem írt ki semmi hibát, készen is vagyunk az adatbázissal, kiléphetünk, bezárhatjuk.
  4. Töltsük le FTP-n a fórum include mappájából a constans.php fájlt, és nyissuk meg.
    Keresd ezt:
    Kód:
    // Additional tables

    Utána új sorba másold be:
    Kód:
    define('HATTER_KEP_TABLE',            $table_prefix . 'hatter_kep');

    Mentsed el, zárd be, és töltsed vissza a helyére, felül írva az ott lévőt.
  5. Töltsük le FTP-n a fórum include mappájából a functions.php fájlt, és nyissuk meg.
    Keresd ezt:
    Kód:
       // The following assigns all _common_ variables that may be used at any point in a template.

    Eléje új sorba másold be:
    Kód:
       $uj_time = time();
       $old_time = 0;
       $uj_kep = 0;
       
             $sql = 'SELECT * FROM ' . HATTER_KEP_TABLE . ' WHERE kep_kod = 0';
                $result = $db->sql_query($sql);
                $kep_data = $db->sql_fetchrow($result);
                $db->sql_freeresult($result);
       
       $old_time = $uj_time - $kep_data['kep_time'];
       $uj_kep = $kep_data['kep_most'];
       
       
          if ($old_time > 3600)
          {
             $uj_kep = $kep_data['kep_most'] + 1;
                if ($uj_kep > 9)
                {   
                   $uj_kep = 0;
                }
                   $hatkep_sql = array(
                      'kep_kod'   => 0,
                      'kep_most'   => $uj_kep,
                      'kep_time'   => $uj_time,
                   );
             
                   $sql = 'UPDATE ' . HATTER_KEP_TABLE . '
                      SET ' . $db->sql_build_array('UPDATE', $hatkep_sql) . "
                      WHERE kep_kod = 0";
                      $db->sql_query($sql);            
          }
       
             $sql = 'SELECT * FROM ' . HATTER_KEP_TABLE . ' WHERE kep_kod =' . $uj_kep;
                $result = $db->sql_query($sql);
                $ujkep_data = $db->sql_fetchrow($result);
                $db->sql_freeresult($result);
                
                $kep_nev = $ujkep_data['kep_neve'];

    Keresd ezt:
    Kód:
          'PRIVATE_MESSAGE_INFO_UNREAD'   => $l_privmsgs_text_unread,

    Utána új sorba másold be:
    Kód:
          'HATT_KEP'                  => $kep_nev,

    Mentsed el, zárd be, és töltsed fel a helyére, felül írva az ott lévőt.
  6. Töltsük le FTP-n a használni kívánt kinézet template mappájából az overall_header.html fájlt, és nyissuk meg.
    Keresd ezt:
    Kód:
    </head>

    Eléje új sorba másold be:
    Kód:
    <style>
    html, body {
       background-image: url("{T_THEME_PATH}/images/{HATT_KEP}");
       background-repeat: repeat;
       background-attachment: fixed;   
    }
    </style>

    Mentsed el, zárd be, és töltsed fel a helyére, felül írva az ott lévőt.
  7. Lépjünk be az oldalunkon az Adminisztrátori vezérlőpultra, majd a Megjelenések fülön bal oldalt klikkeljünk a Képkészletek opcióra.
    Ezután középen a megfelelő kinézetnél klikkeljünk az Újratöltés opcióra, majd az Igen gombbal jóváhagyjuk.
  8. Ezután az Általános fülön középen a Gyorsítótár kiürítése opciónál klikkeljünk a Futtatás most gombra.
  9. Lépjünk vissza a fórum kezdőlapjára, és ha mindent jól csináltunk, az első háttérkép már be is van töltődve.

Pár szót a beállításokról:
Az itt látható programocska 10 képet tud kezelni, nem kevesebbet, és nem többet.
Ha a számon módosítani szeretnénk, akkor a második kódrészletben ( INSERT INTO ... ) ennek megfelelően kell csökkenteni, vagy növelni a képek számát.
5 db. képnél kevesebbet nem érdemes használni, viszont a képek száma felfelé elvileg végtelen.
Egy dologra oda kell figyelni!
Annál a kódrészletnél minden sor végén "," (vessző) van, kivéve az utolsó sort, amit ";" (pontosvesszővel) kell zárni. Erre figyelni kell, mert az adatbázis hibát fog dobni, és nem csinálja meg a sorok feltöltését!
A képek számának megváltoztatása esetén a functions.php fáj szerkesztésénél értelemszerűen kell megadni a következő sort:
Kód:
            if ($uj_kep > 9)
Itt figyeljünk oda, hogy nem "1"-el, hanem "0"-val kezdődik a számozás!
Tehát például 5 kép esetén a 9 helyére 4-et kell írni, 20 kép esetén meg 19-et, stb, stb.

A háttérképeket könnyen cserélhetjük, csak letöröljük, amelyik már nem kell, és helyette ugyanazon a néven feltöltünk egy másik képet.

Beállíthatjuk azt is, hogy mennyi időnként változzon a háttérkép.
Szintén a functions.php fáj szerkesztésénél keressük ezt a sort:
Kód:
      if ($old_time > 3600)

A 3600 = 1 órával. Értelem szerűen csökkenthetjük, vagy emelhetjük a mértéket.
Ajánlott beállítás 600 (10 perc) - 86400 (24 óra - egy nap) között.
Erre nem írtam külön kapcsolási lehetőséget az AVP-be, mert szerintem nem szükségszerű változtatni. Az elején még lehet, hogy kell néha, amíg ki nem derül, hogy melyik beállítás a legjobb, de az egyszerű letöltéssel, szerkesztéssel, visszatöltéssel megoldható.
.