Esempio n. 1
0
/**
 * Updates a guifi.net node
 * @param GuifiAPI $gapi
 * @param mixed[] $parameters
 * @return unknown_type
 */
function guifi_api_node_update($gapi, $parameters)
{
    if (!guifi_api_check_fields($gapi, array('node_id'), $parameters)) {
        return FALSE;
    }
    extract($parameters);
    $node = node_load($node_id);
    if (!_guifi_api_node_check_parameters($gapi, $parameters)) {
        return FALSE;
    }
    foreach ($parameters as $key => $value) {
        $node->{$key} = $value;
    }
    $gapi->addResponseField('node', $node);
    if (!guifi_node_access('update', $node)) {
        $gapi->addError(501);
        return FALSE;
    }
    if ($node->type != 'guifi_node') {
        $gapi->addError(500, "zone_id = {$node->id} is not a guifi node");
        return FALSE;
    }
    node_validate($node);
    if ($errors = form_get_errors()) {
        foreach ($errors as $err) {
            $gapi->addError(403, $err);
        }
    }
    node_save($node);
    return TRUE;
}
function insert_content($archive_data)
{
    $handle = fopen($archive_data, "r");
    $headers = fgetcsv($handle, 4096);
    //print_r($theHeaders);
    while ($line = fgetcsv($handle, 4096)) {
        //print_r($line);
        $node = array();
        $postpone = array();
        foreach ($line as $key => $value) {
            translate_value($key, $value, $headers, $node, $postpone);
        }
        // defaults for all imported nodes. feel free to change
        $node['format'] = 3;
        $node['status'] = 1;
        $node['promote'] = 0;
        $node['sticky'] = 0;
        $log = 'Imported node using import script at ' . date('g:i:s a');
        $node['log'] = $log;
        if ($node['title']) {
            $node = (object) $node;
            $nodes_array['pre'][] = $node;
            // adding to node array for debug info
            node_validate($node);
            $error = form_get_errors();
            if (!$error) {
                $node = node_submit($node);
                // comment this out to test first before changing the database
                foreach ($postpone as $key => $value) {
                    switch ($key) {
                        case 'og_groups':
                            $node->og_public = 0;
                            $node->og_groups = $value;
                            break;
                        case 'og_groups_names':
                            $node->og_public = 0;
                            $node->og_groups_names = $value;
                            break;
                    }
                }
                node_save($node);
                // comment this out to test first before changing the database
            } else {
                print_r($error);
            }
            $nodes_array['post'][] = $node;
            // adding to "post" node array for debug info
        }
    }
    // end while
    /*
    The nodes_array variable includes two arrays: pre and post. This shows you how your nodes look before Drupal takes a look at them (pre), and after the node submission process takes place (post). This helps to debug any problems you're having with field values being stored inccorectly
    
    Of course, if you  commented out the node_submit and node_save comamnds, (post) will not be as useful.
    */
    return $nodes_array;
}