Nastavení
Jako každý jiný informační systém i FreenetIS musí mít možnost různých nastavení, jak uživatelských, tak i systémových. V současné době se o to starají dvě knihovny:
application/libraries/settings.php (pro nastavení skrze databázi) system/core/config.php (pro nastavení skrze konfigurační soubor)
Obsah
- 1 Původní stav
- 2 Současný stav
- 3 Samotná implementace
- 3.1 Knihovna Settings
- 3.1.1 Proměnné
- 3.1.1.1 contact
- 3.1.1.2 currency
- 3.1.1.3 db_schema_version
- 3.1.1.4 debtor
- 3.1.1.5 default_country
- 3.1.1.6 domain
- 3.1.1.7 email_default_email
- 3.1.1.8 email_driver
- 3.1.1.9 email_hostname
- 3.1.1.10 email_port
- 3.1.1.11 email_password
- 3.1.1.12 email_username
- 3.1.1.13 gateway
- 3.1.1.14 index_page
- 3.1.1.15 info
- 3.1.1.16 interrupt
- 3.1.1.17 map_google_maps_api_key
- 3.1.1.18 optional_message
- 3.1.1.19 payment_notice
- 3.1.1.20 protocol
- 3.1.1.21 registration_info
- 3.1.1.22 registration_license
- 3.1.1.23 self_registration
- 3.1.1.24 suffix
- 3.1.1.25 title
- 3.1.1.26 unknown_device
- 3.1.1.27 upload_directory
- 3.1.1.28 use_javascript
- 3.1.1.29 voip_billing_driver
- 3.1.1.30 voip_billing_partner
- 3.1.1.31 voip_billing_password
- 3.1.1.32 voip_number_exclude
- 3.1.1.33 voip_number_interval
- 3.1.1.34 voip_sip_server
- 3.1.1.35 website_after_redirection
- 3.1.2 Metody
- 3.1.1 Proměnné
- 3.2 Knihovna Config
- 3.1 Knihovna Settings
Původní stav
V původním stavu framework Kohana podporoval pouze nastavení přes konfigurační soubory, žádné nastavení přes databázi neexistovaly. Z toho plyne, že v systému nešly vytvářet formulář pro nastavení - ty by pak totiž musely tyto soubory přegenerovávat => velké bezpečnostní riziko.
Současný stav
Takřka veškerá nastavení byla přesunuta do databáze, v konfiguračním souboru zůstaly pouze přístupové údaje k databázi.
Samotná implementace
Knihovna Settings
Všechna nastavení se ukládají do databázové tabulky Config.
Proměnné
contact
currency
- měna, které se bude používat v systému
- nastavuje se v Nastavení - Systém - Měna
- výchozí hodnota: CZK
db_schema_version
- zřejmě nejdůležitější proměnná - určuje aktuální revizi databázového schématu, používá se pří Autoupdate DB struktury
- nelze nastavit uživatelem v systému, určuje se sama
debtor
default_country
- základní země užívaná v systému (id z tabulky countries)
- výchozí hodnota: 55 (Czech Republic)
domain
- doména, na kterém poběží FreenetIS
- pokud je vaše adresa FreenetISu http://www.mojedomena.cz/freenetis/, bude tato proměnná www.mojedomena.cz
- výchozí hodnota: prázdná (pro vytvoření URL se pak používá server::http_host())
email_default_email
- výchozí e-mail - na všech e-mailech odeslaných z FreenetISu bude jako odesílatel uvedena tato adresa
- nastavuje se v Nastavení - Systém - Výchozí e-mail
- výchozí hodnota: no-reply@freenetis.org
email_driver
- ovladač posílání e-mailu - způsob, jakým se budou odesílat e-maily
- možné možnosti - nativní (pomocí funkce php mail), SMTP a Sendmail
- nastavuje se v Nastavení - E-mail - Ovladač
- výchozí hodnota: nativní
email_hostname
- hostitel SMTP serveru
- bere se v potaz, pouze pokud je email_driver nastaven na SMTP
- nastavuje se v Nastavení - E-mail - Název hostitele
- výchozí hodnota: prázdná
email_port
- port SMTP serveru
- bere se v potaz, pouze pokud je email_driver nastaven na SMTP
- nastavuje se v Nastavení - E-mail - Port
- výchozí hodnota: 25
email_password
- heslo pro přístup na hostitele SMTP serveru
- bere se v potaz, pouze pokud je email_driver nastaven na SMTP
- nastavuje se v Nastavení - E-mail - Heslo
- výchozí hodnota: prázdná
email_username
- uživatelské jméno pro přístup na hostitele SMTP serveru
- bere se v potaz, pouze pokud je email_driver nastaven na SMTP
- nastavuje se v Nastavení - E-mail - Uživatelské jméno
- výchozí hodnota: prázdná
gateway
index_page
- logická proměnná, zda-se má v URL zobrazovat index.php
- 1 => bude se zobrazovat, 0=> nebude se zobrazit
- nastavuje se v Nastavení - Systém - Čistá URL (přes negaci)
- výchozí hodnota: 1
info
interrupt
map_google_maps_api_key
- klíč pro Google maps API, které se v is využívají.
- výchozí hodnota: prázdná
optional_message
payment_notice
protocol
- protokol, na kterém poběží FreenetIS
- pokud je vaše adresa FreenetISu http://www.mojedomena.cz/freenetis/, bude tato proměnná http
- výchozí hodnota: prázdná (pro vytvoření URL se pak používá hodnota http)
registration_info
- informace, které se zobrazí na vyexportované přihlášce na horní části
- výchozí hodnota: prázdná
registration_license
- licenční podmínky, které se zobrazí na vyexportované přihlášce na dolní části
- výchozí hodnota: prázdná
self_registration
- logické proměnná, zda-li povolit samo-registraci zájemců o členství
- nastavuje se v Nastavení - Systém - Samo-registrace
- výchozí hodnota: 1
suffix
- přípona za doménou v URL, na které běží FreenetIS
- pokud je vaše adresa FreenetISu http://www.mojedomena.cz/freenetis/, bude tato proměnná /freenetis/
- vždy musí začínat i končit lomítkem (může být i /)
- výchozí hodnota: prázdná (pro vytvoření URL se pak používá substr(server::script_name(),0,-9))
title
- titulek stránky, který se zobrazuje v hlavičce (uvnitř HTML atributu title)
- nastavuje se v Nastavení - Systém - Titulek stránky
- výchozí hodnota: FreenetIS
unknown_device
upload_directory
- určuje adresář, do kterého se budou nehrávat soubory (importy, atd.)
- výchozí hodnota: upload
use_javascript
- logická proměnná, zda-li je používán javascript
- zastaralé, v budoucnu bude odstraněno
- výchozí hodnota: 1
voip_billing_driver
- proměnná obsahuje aktuálně zvolený driver pro VoIP
- momentálně je podporovaný pouze drver pro řešení VOIP od NFX z.s.p.o.
- výchozí hodnota: 0
voip_billing_partner
- proměnná obsahuje uživatelské jméno k přihlášení k billingu
- výchozí hodnota: prázdná
voip_billing_password
- proměnná obsahuje uživatelské heslo k přihlášení k billingu
- výchozí hodnota: prázdná
voip_number_exclude
- proměnná obsahuje devíti-místné čísla oddělená středníkem(;)
- čísla uvedená v tomto seznamu nebudou nabídnuta k výberu pro registraci VoIP účtu
- výchozí hodnota: prázdná
voip_number_interval
- proměnná obsahuje rozsah devítimístných čísel ve tvaru XXXXXXXXX-XXXXXXXXX
- čísla uvedená v tomto seznamu budou nabídnuta k výbeřu pro registraci VoIP ůčtu
- výchozí hodnota: prázdná
voip_sip_server
- proměnná uchovává řetezec s hostname SIP serveru. Např. sip.slfree.czf
- zobrazuje se v nastavení VoIP účtu jako doplňující informace. Nemá vliv na funkci ústředny.
- výchozí hodnota: prázdná
website_after_redirection
Metody
Celá knihovna obsahuje pouze dvě metody - set a get.
V kontrolerech a v pohledech (ve views) se používá dynamický přístup - v záhlaví hlavního kontroleru se vytvoří instance knihovny:
$this->settings = new Settings();
a pak např. hodnotu proměnné suffix získáme takto:
$this->settings->get('suffix');
V ostatních místech aplikace (helpers, atd.) se pak musí používat statický přístup:
$suffix = Settings::get('suffix');
get
- vrací hodnotu podle zadaného klíče
- pokud nalezne neprázdnou hodnotu, vrátí ji
- pokud nalezne prázdnou hodnotu nebo nestane neočekávaná chyba, zkontroluje, zda-li existuje stejnojmenný privátní atribut (tj. defaultní hodnota)
- pokud existuje, vrátí jej
- pokud neexistuje, zkusí vrátit stejnojmennou proměnnou z Configu (z konfiguračního souboru)
set
- nastaví proměnnou zadanou pomocí klíče na zadanou hodnotu
- pokud nastane neočekávaná chyba, vrátí neúspěch
- jinak pokud proměnná již v databázi existuje, aktualizuje ji
- pokus proměnná v databázi neexistuje, vytvoří ji
Knihovna Config
Jedná se o nastavení, které se zapisují do konfiguračního souboru config.php.
Jde však pouze o proměnné s údaji pro připojení k databázi.
Proměnné
db_type
- typ databáze (mysql, pgsql)
- zatím je podporováno pouze mysql
- výchozí hodnota: mysql
db_name
- název databáze, na které poběží FreenetIS
- výchozí hodnota: freenetis
db_host
- adresa hostitele, na kterém poběží FreenetIS
- výchozí hodnota: localhost
db_user
- uživatelské jméno pro připojení k databázi
- výchozí hodnota: freenetis
db_password
- uživatelské heslo pro připojení k databázi
- výchozí hodnota: freenetis
db_table_prefix
- předpona pro tabulky FreenetISu
- užitečné, pokud chcete používat společnou databázi pro FreenetIS a jiný projekt
- výchozí hodnota: prázdná
Metody
Na rozdíl od knihovny Settings se u této knihovny používá pouze statický přístup:
$db_name = Config::get('db_name')
get
- vrací hodnotu z konfiguračního souboru podle zadaného klíče
set
- nastaví zadanou hodnotu na zadaný klíč