modulhoz tartozó CSS fájl betöltése a megjelenítéskor
[drupal_tuksi02.git] / nevergone_3.module
blobed2a3ebd274884a197223ac3f87ab88f1085a7da
1 <?php
2 // $Id$
4 /*
5 Házi feladat kiírás:
6 http://www.tanarurkerem.hu/node/436
8 Készíts egy olyan modult, mely segítségével a felhasználó 3 lehetséges szín közül kiválaszthatja,
9 hogy milyen színű legyen a bejegyzés címe amikor létrehozza vagy szerkeszti az adott tartalmat.
13 /* hook_nodeapi() implementáció */
14 function nevergone_3_nodeapi(&$node, $op, $a3 = NULL, $a4  = NULL) {
15   /* szétválasztás műveletek szerint */
16   switch ($op) {
17     case 'load':
18       /* node betöltése az adatbázisból: kiegészítő adatok a nevergone_3 táblából */
19       $data= db_fetch_array(db_query("SELECT color FROM {nevergone_3} WHERE nid=%d", $node->nid));
20       return $data;
21       break;
22     case 'prepare':
23       /* node megjelenítése a szerkesztés/hozzáadás formon */
24       if (isset($node->nid)) {
25         /* létező node szerkesztése */
26       }
27       break;
28     case 'validate':
29       /* node-ban megadott adatok ellenőrzése mentés előtt */
30       break;
31     case 'update':
32       /* szerkesztett node mentése: törlés és adatbázisból majd újra felvitel */
33       db_query("DELETE FROM {nevergone_3} WHERE nid=%d", $node->nid);
34       drupal_write_record('nevergone_3', $node);
35       break;
36     case 'insert':
37       /* új node létrehozása: adatok nevergone_3 táblába írása */
38       drupal_write_record('nevergone_3', $node);
39       break;
40     case 'view':
41       /* node megjelenítése */
42       drupal_set_title(theme('nevergone_3_title', $node->title, $node->color));
43       drupal_add_css(drupal_get_path('module', 'nevergone_3') . '/nevergone_3.css');
44       break;
45     case 'delete':
46       /* node törlése */
47       db_query("DELETE FROM {nevergone_3} WHERE nid=%d", $node->nid);
48       break;
49   }
53 /* hook_form_alter() implementáció */
54 function nevergone_3_form_alter(&$form, &$form_state, $form_id) {
55   /* ha szerkesztés/hozzáadás formon vagyunk: $form_id változó tartalma (valami)_node_form */
56   if (preg_match('/_node_form$/', $form_id)) {
57     $node = $form['#node'];
58     $form['color'] = array(
59       '#type' => 'select',
60       '#title' => 'Milyen színű legyen a node címe',
61       '#required' => TRUE,
62       '#options' => array (
63         '' => '- Válassz színt -',
64         '1' => 'Piros',
65         '2' => 'Zöld',
66         '3' => 'Kék',
67       ),
68       /* ha node-ot szerkesztünk, kiválasztjuk a hozzá tartozó színt */
69       '#default_value' => isset($node->color) ? $node->color : '',
70     );
71   }
72   return $form;
76 /* hook_theme implementáció */
77 function nevergone_3_theme($existing, $type, $theme, $path) {
78   return array(
79     'nevergone_3_title' => array( /* sminkeléshez használt függvény neve: theme_nevergone_3_title), és az átadott paraméterek */
80       'arguments' => array(
81         'title' => NULL,
82         'color' => NULL,
83        ),
84     ),
85   );
89 /* sminkfüggvény a node-cím formázásához */
90 function theme_nevergone_3_title($title, $color) {
91   if (isset($color)) {
92     switch ($color) {
93       case '1':
94         $color_name = 'piros';
95         break;
96       case '2':
97         $color_name = 'zold';
98         break;
99       case '3':
100         $color_name = 'kek';
101         break;
102     }
103     $title = '<span class="nevergone_3_' . $color_name . '">' . check_plain($title) . '</span>';
104   }
105   return $title;