Szeretném a nagyérdemű segítségét kérni.
Kezdő Drupal felhasználó szeretnék lenni, de sajna a telepítésen kívül igazából nem jutottam tovább. Fogalmam sincs, hogy merre kell elindulnom.
Első lépésként letöltöttem egy theme-t és sikerült is installálnom, de....
És itt a gond, nem tudom, hogy kell menüt szerkeszteni, és egyáltalán a tartalmat kezelni. Ehhez megpróbáltam végignézni a drupallal foglakozó témákat elolvasni a neten, de hát egyértelmű segítséget nem találtam.
Pedig ha van a telepítésről egy lépésről-lépésre útmutató itt az oldalon, akkor az elindulást miért nem segíti senki? Át böngésztem az oldalt és igazából, számomra is érthető formában nem találtam leírást. Lehet hogy van, de én nem találtam. :(
Tudom nem mindenkinek kell a segítség, de az olyanok mint én, esetleg nagyon hálásak lennének érte.
Olyan szájbarágós, alsótagozatos szintű kézenfogós, vezetgetős magyarázat kéne, ami azzal kezdi, hogy klikkelj az XY linkre, hogy megnyíljon az admin felület, stb... stb...
Tud valaki ilyen jellegű leírást valahol, vagy esetleg leírná valaki ide?
Reménykedve várom az útmutatást. :(
Ebben a cikkben az admin modul kódjából kiindulva, kis változtatásokkal eljutunk egy olyan új modulig, amely webhelyünk címlapját is kiszolgálhatja. Azért esett a választás a címlapra, mert itt gyakorta teljesen egyedi oldalszerkezettel találkozhatunk. Ha már értünk egy kicsit a PHP programozáshoz, akkor ez egyáltalán nem nehéz, csak egyszer neki kell vágnunk.
Kiindulásunk az admin modul, melynek forrása a következő:
/*01*/ function admin_help($section) {
/*02*/ switch ($section) {
/*03*/ case 'admin/modules#description':
/*04*/ return t('Handles the administration pages.');
/*05*/ case 'admin':
/*06*/ return t('Welcome to the administration section. Below are the most recent system events.');
/*07*/ }
/*08*/ }
/*09*/ function admin_menu($may_cache) {
/*10*/ $items = array();
/*11*/ if ($may_cache) {
/*12*/ $items[] = array(
/*13*/ 'path' => 'admin',
/*14*/ 'title' => t('administer'),
/*15*/ 'access' => user_access('access administration pages'),
/*16*/ 'callback' => 'admin_main_page',
/*17*/ 'weight' => 9);
/*18*/ }
/*19*/ return $items;
/*20*/ }
/*21*/ function admin_main_page() {
/*22*/ watchdog_overview('actions');
/*23*/ }
?>
Mivel ez a modul is csak egy oldalt definiál, emellett meglehetősen rövid, ezért ezt fogjuk végignézni sorrol-sorra, hogy lássuk, hogy épül fel egy ilyen modul. Saját modulunk építését bátran kezdhetjük úgy, hogy lemásoljuk az admin.module
fájt cimlap.module
néven, és kezdetnek lecseréljük az admin_
karaktersorozatokat cimlap_
-ra. Lássuk miből áll az admin modul, és ebből nekünk mire van szükségünk.
Az első függvény a 1-8. sorokban az admin_help
, ez a hook_help
kampó megvalósítása. Mit jelent egyáltalán az, hogy hook_help
? Egyszerűen annyit, hogy az admin.module
modul help
(súgó) függvényét admin_help
néven hívja a rendszer. Szabadon dönthetünk arról, hogy a számos kampó közül melyiket valósítjuk meg, és melyiket nem.
Mint látjuk, a hook_help
hívásakor egy paramétert kapunk, a $section
értéket. Ennek tartalma egy Drupal útvonal, majd egy esetleges kettőskereszt és egy leíró. Legfontosabb az admin/modules/#description
értéket kezelnünk, hiszen ez a modulok listájában megjelenő szöveg. Adjuk meg saját modulunkhoz ezt a harmadik sorban a 'Handles the administration pages.'
helyére. Ha nem írunk be semmit, vagy akár az egész _help
kampót kihagyjuk, akkor sincs probléma, modulunk egyszerűen nem fog súgókat nyújtani. Ettől ugyan még használható lesz, de nem érdemes ezen a pár szón spórolni.
Bár az admin modul az 5-7. sorokban az admin
útvonal meghívásakor is megjelenít egy segítő szöveget, amit a táblázat felett láthatunk, nekünk ilyenre nem lesz szükségünk, ezeket a sorokat törölhetjük.
A 9-20. sorokban az admin_menu
függvény következik, mely a hook_menu
megvalósítása. Vigyázat, a név kissé becsapós: ennek a segítségével nem csak a navigációs blokkban látható menübe szúrhatunk be menüpontokat. Ugyanitt tudunk füleket definiálni, sőt a menüben meg nem jelenő elérési utakhoz is itt tudunk hozzárendelni kezelőfüggvényeket. Paramétere a $may_cache
. Ez igen friss a Drupalban, a http://drupal.org/node/8179 tanúsága szerint 2004. szeptember 13-án vezették be, és a legjobb dokumentáció hozzá – legalábbis szerintem – jelenleg ezen az oldalon található megjegyzés: ha a menüpontunk nem függ az útvonaltól, akkor bátran betehetjük az if ($may_cache) {...}
blokkba. Ha azonban függ az oldaltól, mint például a tartalom szerkesztése fül, akkor ennek az else
ágába tegyük.
Egy kétdimenziós tömbbel kell visszatérnünk, ezt építi fel a modul a következő három sorban. Ha használtuk már az adminisztrációs felületet, akkor csupa ismerős dologgal találkozhatunk. Láthatjuk a 13. sorban, hogy ez a modul az admin
Drupal útvonalban érdekelt. A saját modulunkban ennek értéke legyen cimlap
. A menüben egy administer
feliratú bejegyzés jön létre a 14. sor hatására, nekünk itt a címlap
felel meg. Az adminisztrációs az oldalt csak az access administration pages
elérési jog birtokában nézhetjük meg (15. sor), nekünk jobban megfelel a szintén beépített access content
jog használata. A callback
adja meg a 16. sorban, hogy mely függvényt hívja majd meg a Drupal az oldal előállításához. Legyen ez cimlap_page
, a Drupal hagyományoknak megfelelően. A 17. sorban a weight
szokásos módon a bejegyzés súlyát mondja meg, mely szerint a menüben sorrendezhető. Ha ezt nem adjuk meg, akkor ábécé rendben kerülnek sorba a menüpontok.
A cimlap_page
függvényben állítsunk össze egy $output
karakterláncot, ami az oldal tartalma és függvényünk utolsó utasításaként írassuk ezt ki egy print theme('page', $output);
hívással. Ennek hatására megjelenik az előállított HTML kód az aktuális sminkben. Mostanra a következő kódhoz jutottunk:
function cimlap_help($section) {
switch ($section) {
case 'admin/modules#description':
return 'A címlap tartalmát állítja elő';
}
}
function cimlap_menu($may_cache) {
$items = array();
if ($may_cache) {
$items[] = array(
'path' => 'cimlap',
'title' => 'címlap',
'access' => user_access('access content'),
'callback' => 'cimlap_page',
'weight' => 0);
}
return $items;
}
function cimlap_page() {
$output = 'Ez a címlap tartalma';
print theme('page', $output);
}
?>
Próbáljuk ki a http://drupal.site/cimlap
oldalunkat. Ha ez jó, akkor állítsuk át az admin/settings
alatt a címlapra behívott elérést node
-ról cimlap
értékre. Egy igazán élvezhető főoldlahoz persze tartalom is dukál, de ezt már PHP tudásunk birtokában könnyen el tudjuk készíteni. Tippekhez érdemes megnézni a node_page
kódját, mely az alapértelmezett főoldalt generálja.
A főoldal egyediségéhez tartozhat még, hogy bizonyos blokkok csak ott jelennek meg, vagy éppen csak ott nem jelennek meg. Ezt az admin/block
oldal Elérési út oszlopában szabályozhatjuk, mintaillesztő kifejezések segítségével. Ha például azt szeretnénk, hogy egy blokk csak a főoldalon jelenjen meg, akkor annak az elérési útja legyen |^$|
. Ha viszont szeretnénk meggátolni, hogy egy blokk megjelenjen a főoldalon, akkor ugyanide pl. a |^.|
ajánlható.