node-hoz rendeljük a szín nevével ellátott <span> HTML tag-et
[drupal_tuksi02.git] / nevergone_3.module
blob4609d649d7436434fabdbf086ab8ce6ac74c1d5f
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 */
33       break;
34     case 'insert':
35       /* új node létrehozása: adatok nevergone_3 táblába írása */
36       drupal_write_record('nevergone_3', $node);
37       break;
38     case 'view':
39       /* node megjelenítése */
40       $node->title = theme('nevergone_3_title', $node->title, $node->color);
41       break;
42     case 'delete':
43       /* node törlése */
44       break;
45   }
49 /* hook_form_alter() implementáció */
50 function nevergone_3_form_alter(&$form, &$form_state, $form_id) {
51   /* ha szerkesztés/hozzáadás formon vagyunk: $form_id változó tartalma (valami)_node_form */
52   if (preg_match('/_node_form$/', $form_id)) {
53     $node = $form['#node'];
54     $form['color'] = array(
55       '#type' => 'select',
56       '#title' => 'Milyen színű legyen a node címe',
57       '#required' => TRUE,
58       '#options' => array (
59         '' => '- Válassz színt -',
60         '1' => 'Piros',
61         '2' => 'Zöld',
62         '3' => 'Kék',
63       ),
64       /* ha node-ot szerkesztünk, kiválasztjuk a hozzá tartozó színt */
65       '#default_value' => isset($node->color) ? $node->color : '',
66     );
67   }
68   return $form;
72 /* hook_theme implementáció */
73 function nevergone_3_theme($existing, $type, $theme, $path) {
74   return array(
75     'nevergone_3_title' => array( /* sminkeléshez használt függvény neve: theme_nevergone_3_title), és az átadott paraméterek */
76       'arguments' => array(
77         'title' => NULL,
78         'color' => NULL,
79        ),
80     ),
81   );
85 /* sminkfüggvény a node-cím formázásához */
86 function theme_nevergone_3_title($title, $color) {
87   switch ($color) {
88     case '1':
89       $color_name = 'piros';
90       break;
91     case '2':
92       $color_name = 'zold';
93       break;
94     case '3':
95       $color_name = 'kek';
96       break;
97   }
98   $title = '<span class="nevergone_3_' . $color_name . '">' . check_plain($title) . '</span>';
99   return $title;