/[drupal]/contributions/modules/jquery_media/jquery_media.module
ViewVC logotype

Diff of /contributions/modules/jquery_media/jquery_media.module

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph | View Patch Patch

revision 1.5.2.4, Thu Aug 28 01:47:17 2008 UTC revision 1.5.2.5, Sat Sep 6 21:27:44 2008 UTC
# Line 1  Line 1 
1  <?php  <?php
2  // $Id: jquery_media.module,v 1.5.2.3 2008/07/03 14:33:28 aaron Exp $  // $Id: jquery_media.module,v 1.5.2.4 2008/08/28 01:47:17 aaron Exp $
3    
4  /**  /**
5   * @file   * @file
# Line 41  function jquery_media_menu() { Line 41  function jquery_media_menu() {
41   *  Implements hook_perm   *  Implements hook_perm
42   */   */
43  function jquery_media_perm() {  function jquery_media_perm() {
44    return array('administer jquery media');    return array('administer jquery media', 'add jquery media to content');
45  }  }
46    
47  /**  /**
# Line 72  function jquery_media_add($options = arr Line 72  function jquery_media_add($options = arr
72   *  Invoke the plugin if we support it for this node type.   *  Invoke the plugin if we support it for this node type.
73   */   */
74  function jquery_media_nodeapi(&$node, $op, $a3 = NULL, $a4 = NULL) {  function jquery_media_nodeapi(&$node, $op, $a3 = NULL, $a4 = NULL) {
75    if ($op == 'view') {    switch ($op) {
76      if (in_array($node->type, variable_get('jquery_media_node_types', array()))) {      case 'view':
77        jquery_media_add();        $types = variable_get('jquery_media_node_types', array());
78          if ($types[$node->type]) {
79            jquery_media_add();
80          }
81          if (is_array($node->jquery_media)) {
82            jquery_media_add($node->jquery_media);
83          }
84          break;
85        case 'delete':
86          db_query("DELETE FROM {jquery_media_node} WHERE nid=%d", $node->nid);
87          break;
88        case 'update':
89          db_query("DELETE FROM {jquery_media_node} WHERE nid=%d", $node->nid);
90          // Don't break yet; we may need to insert our new options.
91        case 'insert':
92          if ($node->jquery_media_insert) {
93            $node->jquery_media = array();
94            // @TODO: Build the node specific options from form.
95            db_query("INSERT INTO {jquery_media_node} (nid, options) VALUES (%d, '%s')", $node->nid, serialize($node->jquery_media));
96          }
97          unset($node->jquery_media_insert);
98          break;
99        case 'load':
100          $jquery_media = db_result(db_query("SELECT options FROM {jquery_media_node} WHERE nid = %d", $node->nid));
101          if (isset($jquery_media)) {
102            $node->jquery_media = unserialize($jquery_media);
103          }
104          break;
105      }
106    }
107    
108    /**
109     *  Implement hook_form_alter.
110     *  This will add a jQuery Media fieldset to node edit pages,
111     *  allowing to enable the plugin from a particular node.
112     */
113    function jquery_media_form_alter(&$form, $form_state, $form_id) {
114      if (substr($form_id, -10) == '_node_form') {
115        if (user_access('add jquery media to content')) {
116          $node = $form['#node'];
117          $form['jquery_media_fieldset'] = array(
118            '#type' => 'fieldset',
119            '#title' => t('jQuery Media'),
120            '#collapsible' => TRUE,
121            '#collapsed' => TRUE,
122          );
123          $form['jquery_media_fieldset']['jquery_media_insert'] = array(
124            '#type' => 'checkbox',
125            '#title' => t('Invoke jQuery Media'),
126            '#default_value' => is_array($node->jquery_media),
127          );
128          $form['jquery_media_fieldset']['jquery_media'] = array(
129            '#type' => 'value',
130            '#value' => $node->jquery_media,
131          );
132          // @TODO: Add specific options here, such as w/h.
133        }
134        else {
135          $form['jquery_media_insert'] = array(
136            '#type' => 'value',
137            '#value' => is_array($node->jquery_media),
138          );
139          $form['jquery_media'] = array(
140            '#type' => 'value',
141            '#value' => $node->jquery_media,
142          );
143      }      }
144    }    }
145  }  }

Legend:
Removed from v.1.5.2.4  
changed lines
  Added in v.1.5.2.5

  ViewVC Help
Powered by ViewVC 1.1.2