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

Diff of /contributions/modules/metrics/metrics.module

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

revision 1.1, Tue Jul 24 21:11:02 2007 UTC revision 1.2, Thu Aug 2 20:46:11 2007 UTC
# Line 1  Line 1 
1  <?php  <?php
2  // $Id: metrics.module,v 1.8 2007/07/12 18:53:34 drewish Exp $  // $Id: metrics.module,v 1.1 2007/07/24 21:11:02 drewish Exp $
3    
4  /**  /**
5   * Implementation of hook_help().   * Implementation of hook_help().
# Line 538  function metrics_property_form($edit = a Line 538  function metrics_property_form($edit = a
538      '#type' => 'fieldset',      '#type' => 'fieldset',
539      '#title' => t('Node types'),      '#title' => t('Node types'),
540      '#collapsible' => TRUE,      '#collapsible' => TRUE,
541      '#collapsed' => count($edit['node_types']),      '#collapsed' => FALSE,
542      '#description' => t('The property will be measured for these node types.'),      '#description' => t('The property will be measured for these node types.'),
543    );    );
544    $form['node']['node_types'] = array(    $form['node']['node_types'] = array(
# Line 559  function metrics_property_form($edit = a Line 559  function metrics_property_form($edit = a
559  function metrics_property_form_submit($form_id, $form_values) {  function metrics_property_form_submit($form_id, $form_values) {
560    if (!empty($form_values['property_id'])) {    if (!empty($form_values['property_id'])) {
561      db_query("UPDATE {metrics_property} SET name = '%s', description = '%s' WHERE property_id = %d", $form_values['name'], $form_values['description'], $form_values['property_id']);      db_query("UPDATE {metrics_property} SET name = '%s', description = '%s' WHERE property_id = %d", $form_values['name'], $form_values['description'], $form_values['property_id']);
562      db_query("DELETE FROM {metrics_property_node_types} WHERE property_id = %d", $form_values['property_id']);  
563      foreach (array_filter($form_values['node_types']) as $type => $selected) {      // Figure out which node types have been added and removed.
564        $new_types = array_keys(array_filter($form_values['node_types']));
565        $old_types = array();
566        $result = db_query('SELECT type FROM {metrics_property_node_types} mpnt WHERE property_id = %d', $form_values['property_id']);
567        while ($o = db_fetch_object($result)) {
568          $old_types[] = $o->type;
569        }
570        // Removals.
571        foreach (array_diff($old_types, $new_types) as $type) {
572          // When removing node type we should remove any {metrics_property_result} records for nodes of that type.
573          db_query("DELETE FROM {metrics_property_result} WHERE property_id = %d AND nid IN (SELECT nid FROM {node} n WHERE n.type = '%s')", $form_values['property_id'], $type);
574          db_query("DELETE FROM {metrics_property_node_types} WHERE property_id = %d AND type = '%s'", $form_values['property_id'], $type);
575        }
576        // Additions.
577        foreach (array_diff($new_types, $old_types) as $type) {
578        db_query("INSERT INTO {metrics_property_node_types} (property_id, type) VALUES (%d, '%s')", $form_values['property_id'], $type);        db_query("INSERT INTO {metrics_property_node_types} (property_id, type) VALUES (%d, '%s')", $form_values['property_id'], $type);
579      }      }
580    }    }

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.2

  ViewVC Help
Powered by ViewVC 1.1.2