Felhasználói szintű ki-be kapcsolók

Szerző
Üzenet
Breki
Gyakorló phpBB-s
Gyakorló phpBB-s
Avatar

Csatlakozott: 2011.08.20. Szombat 17:48
Hozzászólások: 73
Hozzászólás Elküldve: 2011.12.11. 17:20    Hozzászólás témája: Felhasználói szintű ki-be kapcsolók
Hozzászólás az előzmény idézésével
Sziasztok!

Fórumunkon felmerült olyan igény, hogy pl. a chat fal hangját valaki szeretné magának kikapcsolni, mert fórumozás közben zenét hallgat, és zavarja a csipogás. Az alap ötlet ebből indult ki.
A felhasználói menü / fórumbeállítások / általános beállítások lapjára készítettem egy új opciót "chat hang bekapcsolása" névvel.
Az új kapcsoló működik, nem is ez lenne a bajom, hanem, hogy miként tudnám beállítani, hogy alapból mindenkinek be legyen kapcsolva, mert jelenleg mindenkinek ki van kapcsolva. Szóval szeretném megfordítani a dolgot. Phpbb3.0.9. +ajax chat.

Az elvégzett szerkesztések:

Először is mysql-ben a Phpbb_users táblában létrehoztam egy új mezőt "enablesound" névvel.


Az includes/functions.php-ben a

Kód:

// The following assigns all _common_ variables that may be used at any point in a template.

után beillesztettem ezt:

Kód:

'S_ENABLE_SOUND'          => ($user->data['enablesound']) ? true : false ,


majd, az includes/ucp/ucp_prefs.php

Kód:

switch ($mode)
      {
         case 'personal':
            add_form_key('ucp_prefs_personal');
            $data = array(

után

Kód:

'enablesound'   => request_var('enablesound', (bool) $user->data['enablesound']),

és

Kód:

$sql_ary = array(

után

Kód:

'enablesound'      => $data['enablesound'],

még mindig ebben a fáljban

Kód:

$template->assign_vars(array(

után

Kód:

'S_ENABLE_SOUND'   => $data['enablesound'],


style/prosilver/template/ucp_prefs_personal.html-be beraktam az új kapcsolót


Kód:

<dl>
      <dt><label for="enablesound1">{L_ENABLE_SOUND}:</label></dt>
      <dd>
         <label for="enablesound1"><input type="radio" name="enablesound" id="enablesound1" value="1"<!-- IF S_ENABLE_SOUND --> checked="checked"<!-- ENDIF --> /> {L_YES}</label>
         <label for="enablesound0"><input type="radio" name="enablesound" id="enablesound0" value="0"<!-- IF not S_ENABLE_SOUND --> checked="checked"<!-- ENDIF --> /> {L_NO}</label>
      </dd>
   </dl>

Természetesen a lang/hu/common.php is kapott egy bejegyzést

Kód:

'ENABLE_SOUND'                     => 'Chat hang bekapcsolása',

végül a chat_body.html-ben a hang vezérlőjét baraktam a

Kód:

<!-- IF S_ENABLE_SOUND -->
<!-- ENDIF -->
tagek közé.

Szóval tud valaki segíteni, hogy tudnám alapból "be" állapotra állítani az új kapcsolót?
Az includes/functions_user.php-be ugyan beillesztettem ezt:

Kód:

'enablesound'         => 1,

de ez nem elég sajnos. :(

Természetesen sok más funkcióra is alkalmas a megoldás a megfelelő átalakítással, én most kifejezetten a hang kapcsolgatásra fejlesztettem.



A hozzászólás legutóbb Breki által 2011.12.14. 19:59-kor lett szerkesztve, összesen 1 alkalommal.

Felhasználó profiljának megtekintése Privát üzenet küldése
KillBill
Gyakorlott phpBB-s
Gyakorlott phpBB-s
Avatar

Csatlakozott: 2007.03.26. Hétfő 5:42
Hozzászólások: 2258
Hozzászólás Elküldve: 2011.12.11. 19:27    Hozzászólás témája:
Hozzászólás az előzmény idézésével
Az users táblában létrehozott új oszlop default értékét állítsd 1 re.

Breki írta:

Az include/functions_user.php-be ugyan beillesztettem ezt:

Kód:

'enablesound'         => 1,
ehhez a tömbhöz adtad hozzá?

Kód:

   $additional_vars = array(
      'user_permissions'   => '',


Ha igen akkor hagyd is benne.

ui:írd le, hogyan hoztad létre az új oszlopot.

Felhasználó profiljának megtekintése Privát üzenet küldése Felhasználó weblapjának megtekintése MSN Messenger
Breki
Gyakorló phpBB-s
Gyakorló phpBB-s
Avatar

Csatlakozott: 2011.08.20. Szombat 17:48
Hozzászólások: 73
Hozzászólás Elküldve: 2011.12.11. 20:54    Hozzászólás témája:
Hozzászólás az előzmény idézésével
Igen, ahhoz a tömbhöz adtam hozzá.

beléptem a phpbb_users táblába----szerkezet----lap alján mező hozzáadása.
beírtam a nevet, típus: INT, hossz/érték:1, alapértelmezett meghatározva:1

Tudom, hogy jobb lett volna lefuttatni egy kódot, de a paraméterezéssel vannak gondjaim :oops:

Felhasználó profiljának megtekintése Privát üzenet küldése
KillBill
Gyakorlott phpBB-s
Gyakorlott phpBB-s
Avatar

Csatlakozott: 2007.03.26. Hétfő 5:42
Hozzászólások: 2258
Hozzászólás Elküldve: 2011.12.11. 21:33    Hozzászólás témája:
Hozzászólás az előzmény idézésével

Breki írta:

Igen, ahhoz a tömbhöz adtam hozzá.

beléptem a phpbb_users táblába----szerkezet----lap alján mező hozzáadása.
beírtam a nevet, típus: INT, hossz/érték:1, alapértelmezett meghatározva:1

Tudom, hogy jobb lett volna lefuttatni egy kódot, de a paraméterezéssel vannak gondjaim :oops:
a mező hozzáadása az jó választás csak a kitöltést modósítsd

használd a mező szerkesztését.

1., mező neve: enablesound
2., típus: TINYINT
3., hosszérték: 1
4., alapértelmezett: meghatározva mint 1
5., illesztés: üresen kell hagyni
6., tulajdonság: UNSIGNED
további mezők üresek

A fórum gyorsító tárát utána ürítsd ki.

Felhasználó profiljának megtekintése Privát üzenet küldése Felhasználó weblapjának megtekintése MSN Messenger
Breki
Gyakorló phpBB-s
Gyakorló phpBB-s
Avatar

Csatlakozott: 2011.08.20. Szombat 17:48
Hozzászólások: 73
Hozzászólás Elküldve: 2011.12.11. 21:52    Hozzászólás témája:
Hozzászólás az előzmény idézésével

KillBill írta:

a mező hozzáadása az jó választás csak a kitöltést modósítsd

használd a mező szerkesztését.

1., mező neve: enablesound
2., típus: TINYINT
3., hosszérték: 1
4., alapértelmezett: meghatározva mint 1
5., illesztés: üresen kell hagyni
6., tulajdonság: UNSIGNED
további mezők üresek

A fórum gyorsító tárát utána ürítsd ki.
A tesztfórum atw-s szerveren fut, az nem ette így se, hiába szerkesztettem a mező paramétereit.
Töröltem a mezőt, és újból hozzáadtam az új beállításokkal. így már lement a torkán, minden user alapértéke beállt 1-re. :)
Hálás köszönetem a segítségért! :)

Felhasználó profiljának megtekintése Privát üzenet küldése
KillBill
Gyakorlott phpBB-s
Gyakorlott phpBB-s
Avatar

Csatlakozott: 2007.03.26. Hétfő 5:42
Hozzászólások: 2258
Hozzászólás Elküldve: 2011.12.13. 00:11    Hozzászólás témája:
Hozzászólás az előzmény idézésével
Azért jó látni, hogy páran törekedtek a tanulásra, de Breki te vagy az első aki nyelvi fájlt használt a szöveg behívására és nem koszoltad be a html fájlt a direkt írással :wink:

ui: a common.php ból tedd át az ucp.php ba

a common nyelvi fájlba csak akkor írj, ha a szöveget minden oldalon használni szeretnéd, mivel a common.php mindig betöltésre kerül.

Ha viszont nem szeretnéd, hogy a frissítésnél mindig figyelni keljen, hogy az általad hozzáadott új sorok ne vesszenek el akkor hozz létre egy saját nyelvi fájlt amibe mindig írhatsz.
A meghívása meg egyszerű.

Felhasználó profiljának megtekintése Privát üzenet küldése Felhasználó weblapjának megtekintése MSN Messenger
Breki
Gyakorló phpBB-s
Gyakorló phpBB-s
Avatar

Csatlakozott: 2011.08.20. Szombat 17:48
Hozzászólások: 73
Hozzászólás Elküldve: 2011.12.13. 23:59    Hozzászólás témája:
Hozzászólás az előzmény idézésével
:oops: Nem akartam belerondítani, így elegánsabb, és a későbbiekben máshonnan is meghívható.

Átraktam, nekem ez eszembe sem jutott, most is tanultam valami újat.

Ez a saját nyelvi fájl ötlet érdekelne.....pontosan hogy is kellene meghívni?

Felhasználó profiljának megtekintése Privát üzenet küldése
KillBill
Gyakorlott phpBB-s
Gyakorlott phpBB-s
Avatar

Csatlakozott: 2007.03.26. Hétfő 5:42
Hozzászólások: 2258
Hozzászólás Elküldve: 2011.12.14. 02:14    Hozzászólás témája:
Hozzászólás az előzmény idézésével
Ha globálisan akarod használni akkor így

nyisd meg az includes/session.php

keresd ezt

Kód:


      if ($include_result === false)
      {
         die('Language file ' . $this->lang_path . $this->lang_name . "/common.$phpEx" . " couldn't be opened.");
      }


tedd utána ezt

Kód:


      if (file_exists($this->lang_path . $this->lang_name . "/mods/mods.$phpEx"))
      {
         if (is_array($lang_set))
         {
            $lang_set[]= '/mods/mods';
         }
         else
         {
            $lang_set = ($lang_set) ? array($lang_set, '/mods/mods') : '/mods/mods';
         }
      }


A kód akkor fog érvényesülni amikor feltöltésre kerül a saját nyelvi fájlod a mods könyvtárba mods.php néven.

Felhasználó profiljának megtekintése Privát üzenet küldése Felhasználó weblapjának megtekintése MSN Messenger
Breki
Gyakorló phpBB-s
Gyakorló phpBB-s
Avatar

Csatlakozott: 2011.08.20. Szombat 17:48
Hozzászólások: 73
Hozzászólás Elküldve: 2011.12.14. 20:04    Hozzászólás témája:
Hozzászólás az előzmény idézésével
Megcsináltam.....egyszerűen tökéletes.
Ezentúl a sajátba fogom pakolászni a módosításokat.
Ismételten köszönöm a segítséget. :)

Felhasználó profiljának megtekintése Privát üzenet küldése
Hozzászólások megtekintése:  

Nem készíthetsz új témákat ebben a fórumban.
Nem válaszolhatsz egy témára ebben a fórumban.
Nem módosíthatod a hozzászólásaidat a fórumban.
Nem törölheted a hozzászólásaidat a fórumban.
Nem szavazhatsz ebben fórumban.

Hirdetés
Hirdetés