1.Uvod
PHP-Nuke je web portal koji se temelji na sustavu korisnika i najvažnije obilježje mu je jednostavna distribucija ?lanaka i vijesti. Uz to pruža još veliki broj prakti?nih usluga dizajniranih za korisnike, ali i jako dobro administracijsko su?elje. Grafi?ka organizacija temelji se na kombinaciji blokova i programskih modula. Blokovi se nalaze na lijevom i desnom dijelu stranice, te zapravo uokviruju stranicu modula koji se trenutno koristi. Svaka postoje?a usluga realizirana je programskim modulom, a njihovo kreiranje, dodavanje i na?in rada objašnjeni su u 3.poglavlju. Blokovi se tako?er mogu dodavati po vlastitom izboru što je, zajedno s njihovim kreiranjem, opisano u 4.poglavlju. Ve?ina korisni?kih usluga dostupna je svim posjetiteljima, što kao administrator uvijek možete promijeniti, no neki moduli su specijalno posve?eni upravo registriranim korisnicima, npr. mail klijent, vo?enje dnevnika, personalizacija po?etne stranice i sl. Svim "anonimnim" posjetiteljima ponu?ena je registracija na web ?ime odmah stje?u pravo korištenja i posebnih usluga. Sve korisni?ke usluge podrobno su opisane u 5.poglavlju.
Raspored modula i blokova, njihov sadržaj, te skupina posjetitelja koja ih smije koristiti podešava se vrlo jednostavno preko bogatog administracijskog su?elja. Sve detalje vezane uz administraciju nalaze se u 6.poglavlju.
2.Instalacija
2.1. Osnovni preduvjeti instalacije
Da bi se na ra?unalo uop?e mogao postaviti PHP-Nuke prema ovom instalacijskom postupku, potrebno je imati instalirano sljede?e:
* operacijski sustav linux(http://www.linux.com)
* Apache web poslužitelj (http://www.apache.org)
* PHP verziju 4.xx (http://www.php.net)
* MySQL server (http://www.mysql.com)
PHP-Nuke može raditi i u druga?ijim okruženjima, ali ova dokumentacija se odnosi samo na gore navedenu konfiguraciju. Operacijski sustavi pod kojima se sigurno može koristiti su sve verzije Windowsa, FreeBSD, OS/2, MacOS, a što se baze podataka ti?e, nova verzija osim MySQL-a podržava i mSQL, PostgreSQL, PostgreSQL_local, ODBC, ODBC_Adabas, Sybase i Interbase servere.
2.2.Instalacija paketa (samo za MySQL, mSQL i Sybase)
PHP-Nuke 6.0 instalira se iz tar.gz paketa koji je mogu?e na?i na sljede?oj URL adresi:
http://prdownloads.sourceforge.net/p...uke-6.0.tar.gz
Taj paket se treba otpakirati u direktorij koji ?e se koristiti na web poslužitelju. Ime tog direktorija nalazi se me?u konfiguracijskim postavkama web poslužitelja u datoteci httpd.conf u kojoj je ta lokacija zapisana kao Document Root.
# tar -xzvf PHP-Nuke.tar.gz
Nakon izvo?enja te naredbe u gore navedenom direktoriju ?e se uz desetak tekstualnih datoteka konstruirati i sljede?a struktura direktorija:
html/
admin/
includes/
language/
modules/
sql/
blocks/
docs/
images/
themes/
sql/
upgrades/
Stoga ?e URL weba biti: http://www.ime_weba/html .
U daljnim poglavljima se koristi URL http://www.ime_weba , pa bi bilo preporu?ljivo u liniji Document Root, u datoteci httpd.conf poslužitelja, dodati "/html" da se može koristiti link u istom obliku.
Sada treba podesiti podatke u datoteci config.php koja se nalazi u direktoriju html. Na po?etku te datoteke nalazi se sljede?i tekst :
$dbhost = "localhost";
$dbuname = "root";
$dbpass = "";
$dbname = "nuke";
$prefix = "nuke";
$user_prefix = "nuke";
$dbtype = "MySQL";
Jedino što se ovdje nužno mora podesiti je lozinka za bazu podataka, ali mogu?e je promijeniti i ostale postavke.
Sada bi sustav trebao registrirati prvo pokretanje i automatski kreirati bazu podataka, sve tablice i sve po?etne podatke za novu bazu. Ako sve dobro pro?e, sa strane korisnika više ništa nije potrebno.
Ako instalacija nije uspjela ili ako se koristi PostgreSQL, ODBC, Adabas i Interbase, morati ?e se baza podataka ru?no podesiti, što je opisano u sljede?em poglavlju.
2.3.Alternativni postupak instalacije
Ako instalacija prema koracima u prethodnom poglavlju nije uspjela, potrebno je ru?no konfigurirati bazu podataka. Da bi se to uspješno realiziralo, moraju se koristiti naredbe za izgradnju cjelokupne strukture baze koje se nalaze u datoteci nuke.sql, u direktoriju /sql. Ovdje ?e biti prikazana konfiguracija za PostgreSQL bazu podataka.
Nakon spajanja na bazu kao korisnik s dozvolama za kreiranje nove baze podataka:
./psql ime_postoje?e_baze
treba kreirati novu bazu podataka (npr. nuke) :
create database nuke;
i prekinuti komunikaciju s bazom ( \q ). Sada se na novu bazu spaja tako da se automatski izvrše sve naredbe iz datoteke nuke.sql:
./psql nuke < nuke.sql
Time je završena konfiguracija baze podataka. Sada treba podesiti postavke u datoteci config.php kao što je ve? objašnjeno u prethodnom poglavlju.
2.4.Testiranje instalacije
Za po?etak rada, u preglednik se upisuje sljede?a adresa:
http://www.ime_weba
i tamo ?e se mo?i prona?i sve daljne upute.
Obavezno se treba odmah kreirati korisnik s posebnim ovlastima (administrator) radi sigurnosnih razloga. Administracijsko su?elje aktivira se sljede?im URL-om:
http://www.ime_weba/admin.php
iza ?ega slijedi postupak identifikacije administratora.
3. Sustav programskih modula
Uz module koji dolaze u instalacijskom paketu, mogu?e je instalirati i nove. PHP-Nuke još od ina?ice 5.0 omogu?uje dodavanje novih modula jednostavnim kopiranjem PHP skripte u odre?eni direktorij. Time je postignut visok stupanj modularnosti, a postupak instalacije i brisanja pojedinih modula maksimalno je olakšan.
3.1.Instalacija modula
Veliki broj korisnika diljem svijeta kreira svoje vlastite programske module, pa njihova koli?ina svakodnevno raste. Njihovi programi mogu se na?i na službenoj stranici PHP-Nuke-a: http://www.phpnuke.org, i obi?no su to tar.gz paketi. Takav paket kopira se u direktorij /html (poglavlje 2.2., struktura direktorija) i otpakira se naredbom tar xzvf. Sve datoteke iz paketa time ?e se smjestiti u odgovaraju?e poddirektorije (/modules, /blocks).
Osnovna konstrukcija sustava modula svodi se na to da unutar direktorija /modules svaki od modula ima svoj direktorij, a u svakom od njih nalazi se odgovaraju?a index.php datoteka. Ime direktorija istovjetno je imenu modula samo što se praznine zamijenjuju znakom "_". ?im se kreira novi direktorij s datotekom index.php, njegov link ?e se pojaviti na popisu modula na administracijskom su?elju weba, sa statusom Neaktivan. Kao takvog ga može vidjeti i ure?ivati samo administrator koji ?e ga onda po potrebi i aktivirati.
3.2.Kreiranje modula
Kreiranje vlastitih modula s ovim sustavom je poprili?no lagano. Da bi ?itava stvar regularno radila, moraju se samo slijediti neka pravila opisana u ovom poglavlju.
Kao što je ve? prije spomenuto direktorij modula bi se trebao zvati jednako kao i sam modul, s tim da su praznine zamijenjene znakom "_". Takvim sustavom postiže se automatsko dodavanje modula na popis u bloku modula putem parsiranja imena svih direktorija u samom direktoriju /modules.
Da bi se sprije?ilo direktno pristupanje stranici modula, korisno je dodati slijede?i kod na po?etku PHP skripte:
if (!eregi("modules.php", $PHP_SELF)){
die ("You can't access this file directly...");
}
Tako ?e korisnici mo?i do?i do njega samo preko linka, pa ?e se osigurati grafi?ki izgled stranice u skladu s odgovaraju?om temom (poglavlje 5.25. - Themes).
Tako?er bi bilo dobro raditi u skladu sa sustavom prevo?enja. To zna?i da unutar direktorija novog modula treba kreirati direktorij languages i u svaku novu PHP skriptu uklju?iti sljede?i kod:
require_once("mainfile.php");
$module_name = basename(dirname(__FILE__));
get_lang($module_name);
Time ?e se uklju?iti (ako postoji) datoteka za odabrani jezik prema korisnikovom odabiru.
Svaki link na datoteke modula mora imati sljede?u sintaksu:
http://www.ime_weba.com/modules.php?...ula&file=index
Pri tome je Ime_Weba direktorij u kojem se modul nalazi, a index datoteka sa .php ekstenzijom kojoj se treba pristupiti (ekstenzija se dodaje automatski).
Ako treba pozvati specifi?nu funkciju, njeno ime se tako?er proslije?uje kao argument, tj. na kraj linka se dodaje &funkcija=ime_funkcije, pri ?emu je ime_ funkcije postoje?a funkcija koja se poziva, a funkcija varijabla koja se ispituje u datoteci.
Npr., ako se u datoteci koristi ovako definirana naredba switch:
switch($funkcija) {
case "funkcija_1":
 funkcija_1();
 break;
 case "funkcija_2":
funkcija_2($br,$ime);
 break;
}
link bi trebao izgledati ovako:
http://www.ime_weba.com/modules.php?...ija=funkcija_1
ili ako funkcija treba primiti i vrijednosti svojih argumenata: http://www.ime_weba.com/modules.php?mop=modload&name=Ime_Modula&file=index&funkcija=funkcija_2&br=$br&ime=$ime
Prakti?na opcija koja je tako?er omogu?ena je odluka o tome ho?e li novi modul prikazivati desne blokove. To se može realizirati deklariranjem varijable $index na po?etku PHP skripte. Ako joj se vrijednost postavi na "1", modul ?e prikazivati desne blokove, a ako joj se pridruži broj "0", pokazivat ?e samo lijeve blokove.
Još jedna bitna ?injenica na koju je potrebno obratiti pažnju je da sustav modula ima rezervirane varijable koje autor PHP skripte ne bi smio koristiti ako želi da sve ispravno funkcionira. To su:
$name: koristi se za ime modula
$file: koristi se za ime datoteke modula koja se poziva
$mop: koristi ga naredba switch u datoteci modules.php
$index: koristi se za dodavanje ili brisanje desnih blokova
$modload: koristi se za poziv modula
$mod_active: koristi se za evidenciju modulovog statusa
Da bi se zadovoljio HTML 4.01 standard, preporu?uje se zamjena svih znakova "&" u URL adresama sa oznakom "&". Iz tog istog razloga se umjesto oznaka LI kod kreiranja liste koristi sljede?i html kod:
<strong>· </strong>Ime Modula
4.Sustav blokova
Kao što je uvodu ve? re?eno, blokovi se nalaze s lijeve i desne strane weba i zapravo uokviruju stranicu modula koji se trenutno koristi. Blokovi koji su inicijalno postavljeni na web su popis aktivnih modula, broj trenutnih posjetitelja, izbor jezika i reklame s Amazona na lijevoj strani:

slika 4.1.
te anketa, obrazac za prijavu, popis starih ?lanaka i bitniji linkovi na desnoj strani:

slika 4.2.
Upute za aktiviranje novih blokova (koji ve? postoje u paketu) mogu se prona?i u poglavlju 6.4.
4.1.Postavljanje blokova
Uz blokove koji dolaze u instalacijskom paketu, jednako kao i u sustavu modula, korisnik sam može dodavati i nove blokove. Taj postupak se još od verzije PHP-Nuke 5.1 svodi na kopiranje odgovaraju?ih datoteka blokova u direktorij /blocks (poglavlje 2.2., struktura direktorija).
Kao i direktoriji modula, datoteke blokova moraju imati to?no odre?en oblik imena:
block-Ime_Bloka.php
Sve datoteke u direktoriju /blocks koje imaju takvo ime biti ?e automatski uklju?ene u administracijskom su?elju za ure?ivanje blokova. Da bi se tamo aktivirao samo ga treba odabrati u polju Filename (poglavlje 6.4.). Ako se ne specificira njegovo ime, sustav ?e mu ga automatski dodijeliti izbacivanjem praznina iz imena njegove datoteke.
Naravno, preporu?ljivo je prije kopiranja bloka pro?itati autorove upute o instalaciji.
4.2.Kreiranje blokova
Pri stvaranju novog bloka omogu?eno je komuniciranje s bazom podataka, uklju?ivanje drugih datoteka bloka, korištenje HTML i PHP koda, Jave, Javascripta, Perla, Flasha itd. Ako se korisnik pridržava pravila opisanih u ovom poglavlju, postupak ne bi trebao kompliciran.
Isto kao i kod modula, poželjno je uklju?iti sljede?i PHP kod da se izbjegne direktan pristup bloku:
if (eregi("block-Sample_Block.php",$PHP_SELF)) {
Header("Location: index.php");
die();
}

Autor:
Odg: Instalacija PHP Nuke Portala
