Čo práve čítam
No čítam všeličo ale keďže si na Drupale robím weblog tak ma napadlo že by som v ňom chcel mať podobnú funkčnosť ako som už na niektorých weblogoch videl. Keďže som nikde na taký modul nenarazil (alebo zle hľadám), tak som sa rozhodol že si taký modul naprogramujem sám.
Eh a nenapíšem nikde aký modul. Ide o modul „Čo práve čítam“, blok v ktorom sa zobrazí autor, meno knihy a obálka. S tým že by som rád aby sa na to potom ešte prípadne dala navesiť recenzia či hodnotenie prečítanej knihy.
Kostra je pomerne jednoduchá:
<?php
/* $Id$ */
/**
* @file
* What i read DRUPAL module
*/
/**
* Implementation of hook_help().
*/
function whatiread_help($section) {
switch ($section) {
case 'admin/help#whatiread':
$output = '<p>What i read module help...</p>';
return $output;
case 'admin/modules#description':
return 'What i read module description...';
}
}
/**
* Implementation of hook_menu().
*/
function whatiread_menu($may_cache) {
$items = array();
if ($may_cache) {
// polozka menu v administracii
// zaroven zobrazi stranku zo zoznamom uz pridanych poloziek
// po kliknuti (alebo po kliknuti na nasledujucu defaul polozku) zavola
// callback funkciu whatiread_page ktora vygeneruje stranku zo zoznamom uz
// pridanych poloziek
$items[] = array(
'path' => 'admin/whatiread',
'title' => t('what i read'),
'callback' => 'whatiread_page',
'access' => TRUE
);
// prvy tab - list (zoznam pridanych poloziek)
$items[] = array(
'path' => 'admin/whatiread/overview',
'title' => t('list'),
'type' => MENU_DEFAULT_LOCAL_TASK,
'weight' => -10
);
// druhy tab - add (stranka na ktorej sa bude pridavat nova polozka)
// po kliknuti zavola callback funkciu whatiread_add_new_book ktora vygeneruje
// (a zobrazi) stranku s formularom pre zapis novej polozky
$items[] = array(
'path' => 'admin/whatiread/add',
'title' => t('add new book'),
'callback' => 'whatiread_add_new_book',
'access' => TRUE,
'type' => MENU_LOCAL_TASK
);
}
else {
}
return $items;
}
/**
* Function which generate page
*/
function whatiread_page() {
return '<p>Show all books!</p>';
}
/**
* Function which generate page
*/
function whatiread_add_new_book() {
// nasleduje definicia formularovych policiek
$form = array();
$form['book_title'] = array(
'#type' => 'textfield',
'#title' => t('Title of book')
);
$form['book_autor'] = array(
'#type' => 'textfield',
'#title' => t('Autor of book')
);
$form['book_image'] = array(
'#type' => 'textfield',
'#title' => t('Image')
);
$form['book_node_about'] = array(
'#type' => 'textfield',
'#title' => t('Node with book review')
);
// tu niekde by mal byt formular pre vyber a upload obalky
return drupal_get_form('whatiread_book_add',$form);;
}
Samozrejme to zďaleka nie je hotové (a pri mojom tempe programovania to asi ani tak skoro nebude), ale povedal som si že by to mohol byť celkom pekný vzor a príklad ako na to aj pre ostatných. Stačí sa trochu vyznať v PHP a v DRUPALe celkom slušne rýchlo vykúzlite požadovanú funkčnosť.
Ešte mi zostáva povytvárať tabuľky, dokončiť formulár, ošetriť kontrolu vstupu z formuláru a zapísať nové údaje do databázy atď. Ale v podstate už sa to črtá :D. Ako to funguje sa dá pozrieť tu: http://www.fem.uniag.sk/…in/whatiread

Poslat nový komentář