'Import content',
'description' => 'Import content from a CSV or TSV file.',
'access callback' => 'user_access',
'access arguments' => array('import content'),
'page callback' => 'drupal_get_form',
'page arguments' => array('node_import_list_tasks_form'),
'file' => 'node_import.admin.inc',
);
$items['admin/content/node_import/list'] = array(
'type' => MENU_DEFAULT_LOCAL_TASK,
'weight' => -10,
'title' => 'List',
);
$items['admin/content/node_import/list/tasks'] = array(
'type' => MENU_DEFAULT_LOCAL_TASK,
'weight' => -10,
'title' => 'Tasks',
);
$items['admin/content/node_import/list/files'] = array(
'type' => MENU_LOCAL_TASK,
'title' => 'Files',
'access callback' => 'user_access',
'access arguments' => array('import content'),
'page callback' => 'drupal_get_form',
'page arguments' => array('node_import_list_files_form'),
'file' => 'node_import.admin.inc',
);
$items['admin/content/node_import/add'] = array(
'type' => MENU_LOCAL_TASK,
'title' => 'New import',
'access callback' => 'user_access',
'access arguments' => array('import content'),
'page callback' => 'drupal_get_form',
'page arguments' => array('node_import_add_form'),
'file' => 'node_import.admin.inc',
);
$items['admin/content/node_import/settings'] = array(
'type' => MENU_LOCAL_TASK,
'title' => 'Settings',
'weight' => 10,
'access callback' => 'user_access',
'access arguments' => array('administer imports'),
'page callback' => 'drupal_get_form',
'page arguments' => array('node_import_settings_form'),
'file' => 'node_import.admin.inc',
);
$items['admin/content/node_import/%node_import'] = array(
'type' => MENU_CALLBACK,
'title' => 'Importing...',
'access callback' => 'node_import_access',
'access arguments' => array(3),
'page callback' => 'drupal_get_form',
'page arguments' => array('node_import_view_form', 3),
'file' => 'node_import.admin.inc',
);
$items['admin/content/node_import/%node_import/view'] = array(
'type' => MENU_DEFAULT_LOCAL_TASK,
'title' => 'View',
'weight' => -10,
);
$items['admin/content/node_import/%node_import/continue'] = array(
'type' => MENU_CALLBACK,
'title' => 'Continue import',
'access callback' => 'node_import_access',
'access arguments' => array(3),
'page callback' => 'node_import_js',
'page arguments' => array(3),
'file' => 'node_import.inc',
);
$items['admin/content/node_import/%node_import/debug'] = array(
'type' => MENU_CALLBACK,
'title' => 'Debug report',
'access callback' => 'node_import_access',
'access arguments' => array(3),
'page callback' => 'node_import_debug_report',
'page arguments' => array(3),
'file' => 'node_import.admin.inc',
);
$items['admin/content/node_import/%node_import/delete'] = array(
'type' => MENU_LOCAL_TASK,
'title' => 'Delete',
'weight' => 10,
'access callback' => 'node_import_access',
'access arguments' => array(3),
'page callback' => 'drupal_get_form',
'page arguments' => array('node_import_delete_form', 3),
'file' => 'node_import.admin.inc',
);
//TODO: %node_import/clone ? %node_import/edit ?
return $items;
}
/**
* Load an import task by id. Used in hook_menu().
*
* @param $taskid
* Integer.
*
* @return
* FALSE or the task object.
*
* @ingroup node_import_tasks
*/
function node_import_load($taskid) {
if (isset($taskid)) {
$values = db_fetch_array(db_query("SELECT * FROM {node_import_tasks} WHERE taskid = %d", $taskid));
if ($values !== FALSE) {
foreach (array('file_options', 'headers', 'map', 'defaults', 'options') as $key) {
$values[$key] = unserialize($values[$key]);
}
$values['file'] = db_fetch_object(db_query("SELECT * FROM {files} WHERE fid = %d", $values['fid']));
module_invoke_all('node_import_task', $values, 'load');
return $values;
}
}
return FALSE;
}
/**
* Check access to an import task. Used in hook_menu().
*
* @param $task
* Array.
*
* @return
* TRUE if the current user can access the task.
*
* @ingroup node_import_tasks
*/
function node_import_access($task) {
global $user;
if (user_access('administer imports') || $task['uid'] == $user->uid) {
return TRUE;
}
return FALSE;
}
/**
* Implementation of hook_cron().
*/
function node_import_cron() {
module_load_include('inc', 'node_import');
$unit = variable_get('node_import:cron:unit', 'rows');
$count = variable_get('node_import:cron:count', 25);
node_import_do_all_tasks($unit, $count);
}
/**
* Implementation of hook_theme().
*/
function node_import_theme() {
return array(
'node_import_file_select' => array(
'arguments' => array(
'form' => NULL,
),
'file' => 'node_import.admin.inc',
),
'node_import_imports_list' => array(
'arguments' => array(
'form' => NULL,
),
'file' => 'node_import.admin.inc',
),
'node_import_file_format_select' => array(
'arguments' => array(
'form' => NULL,
),
'file' => 'node_import.admin.inc',
),
'node_import_sample_data' => array(
'arguments' => array(
'data' => NULL,
),
'file' => 'node_import.admin.inc',
),
'node_import_field_table' => array(
'arguments' => array(
'form' => NULL,
),
'file' => 'node_import.admin.inc',
),
);
}