nevergone_3 files moved
[drupal_tuksi02.git] / snufkin / snufkin_3 / snufkin_3.module
blob3dd483cbd2da15ef00631a2a4914cef1ef096b5e
1 <?php
2 // $Id$
4 /**
5  * @file
6  *
7  * Node title colour chooser. Allow users to set the colour of the node title on node edit and create.
8  */
10 /**
11  * Implementation of hook_form_alter().
12  */
13 function snufkin_3_form_alter(&$form, $form_state, $form_id) {
14   if (isset($form['#node']) && $form_id == $form['#node']->type .'_node_form') {
15     $form['colour'] = array(
16       '#type' => 'select',
17       '#title' => t('Title colour'),
18       '#weight' => -5,
19       '#options' => _snufkin_3_classes(),
20       '#default_value' => isset($form['#node']->colour) ? $form['#node']->colour : 'black',
21       '#description' => t('Title of this node will be rendered in this colour.'),
22     );
23   }
26 /**
27  * Implementation of hook_nodeapi().
28  */
29 function snufkin_3_nodeapi(&$node, $op, $teaser = NULL, $page = NULL) {
30   switch ($op) {
31     case 'load':
32       $node->colour = db_result(db_query('SELECT colour FROM {snufkin_3} WHERE nid = %d', $node->nid));
33       break;
34     case 'insert':
35       // The node is being created (inserted in the database).
36       drupal_write_record('snufkin_3', $node);
37       break;
38     case 'update':
39       // The node is being updated.
40       drupal_write_record('snufkin_3', $node, 'nid');
41       break;
42     case 'delete':
43       // The node is being deleted.
44       db_query('DELETE FROM {snufkin_3} WHERE nid = %d', $node->nid);
45       break;
46     case 'view':
47       drupal_add_css(drupal_get_path('module', 'snufkin_3') . '/snufkin_3.css');
48       drupal_set_title(theme('colourized_title', $node));
49       break;
50   }
53 /**
54  * Implementation of hook_theme().
55  */
56 function snufkin_3_theme() {
57   return array(
58     'colourized_title' => array(
59       'arguments' => array('node' => NULL),
60       'file' => 'snufkin_3.theme.inc',
61     ),
62   );
65 /**
66  * Helper function to return a list of colour classes used in the title.
67  *
68  * @return
69  *   Array keyed with class names, values are translated, user-friendly names.
70  */
71 function _snufkin_3_classes() {
72   return array(
73     'none' => t('None'),
74     'black' => t('Black'),
75     'red' => t('Red'),
76     'blue' => t('Blue'),
77     'green' => t('Green'),
78   );