/[drupal]/contributions/modules/webservices/wsservice_dcore/wsservice_dcore.node.inc
ViewVC logotype

Diff of /contributions/modules/webservices/wsservice_dcore/wsservice_dcore.node.inc

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

revision 1.1, Thu Sep 11 00:11:04 2008 UTC revision 1.2, Wed Oct 1 02:12:34 2008 UTC
# Line 1  Line 1 
1  <?php  <?php
2  // $Id: wsservice_dcore.node.inc,v 1.4 2008/09/09 20:25:24 brmassa Exp $  // $Id: wsservice_dcore.node.inc,v 1.1 2008/09/11 00:11:04 brmassa Exp $
3  /**  /**
4   * @author Web Services Dev Team   * @author Web Services Dev Team
5   * @file   * @file
# Line 73  function _wsservice_dcore_node_load($nod Line 73  function _wsservice_dcore_node_load($nod
73   * Save a node. It creates a new one, in case the 'nid' field   * Save a node. It creates a new one, in case the 'nid' field
74   * is missing.   * is missing.
75   *   *
76   * @param $edit   * @param $node
77   *   Array. The node fields' values, just like created on   *   Array. The node fields' values, just like created on
78   *   node edit form.   *   node edit form.
79   * @return   * @return
80   *   Number. The node ID.   *   Number. The node ID.
81   */   */
82  function _wsservice_dcore_node_save($edit) {  function _wsservice_dcore_node_save($node) {
83    // Load the required includes for drupal_execute    // Load the required includes for drupal_execute
84    module_load_include('inc', 'node', 'node.pages');    module_load_include('inc', 'node', 'node.pages');
   $nid = NULL;  
   
   if ($edit['nid']) {  
     $node = node_load($edit['nid']);  
     if ($node->nid) {  
       // Setup form_state.  
       $form_state = array();  
       $form_state['values'] = (array) $edit;  
       $form_state['values']['op'] = t('Save');  
   
       // Later on in the chain node_form seems to expect a copy of  
       // the old node object.  
       $form_state['node'] = (array) $node;  
   
       $ret = drupal_execute($node->type .'_node_form', $form_state, (object)$node);  
   
       // If the node is immediately reloaded after update, it will  
       // load the OLD cached version.  
       node_load(0, NULL, TRUE);  
85    
86        // Set $nid, so it can be returned    // Check if its updating an existing node
87        $nid = $node->nid;    if ($node['nid'] and !$node_existing = node_load($node['nid'])) {
88      }      return webservices_error(t('Node not found'));
     else {  
       return webservices_error(t('Node not found'));  
     }  
89    }    }
   else {  
     // Setup form_state  
     $form_state = array();  
     $form_state['values'] = (array) $edit;  
     $form_state['values']['op'] = t('Save');  
90    
91      $ret = drupal_execute($edit['type'] .'_node_form', $form_state, (object)$edit);    // Setup form_state
92      $form_state = array();
93      $form_state['values'] = (array) $node;
94      $form_state['values']['op'] = t('Save');
95    
96      drupal_execute($node['type'] .'_node_form', $form_state, (object)$node);
97    
     // Fetch $nid out of $form_state  
     $nid = $form_state['nid'];  
   }  
98    if ($errors = form_get_errors()) {    if ($errors = form_get_errors()) {
99      return webservices_error(implode("\n", $errors));      return webservices_error(implode("\n", $errors));
100    }    }
101    
102    watchdog('content', '@type: updated %title.',    watchdog('content', '@type: updated %title.',
103      array('@type' => t($node->type), '%title' => $node->title),      array('@type' => t($form_state['node']['type']), '%title' => $node['node']['title']),
104      WATCHDOG_NOTICE, l(t('view'), 'node/'. $node->nid));      WATCHDOG_NOTICE, l(t('view'), 'node/'. $form_state['nid']));
105    return $nid;    return $form_state['nid'];
106  }  }
107    
108  /**  /**

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

  ViewVC Help
Powered by ViewVC 1.1.2