function recipe_mastercook4_import_form_submit in Recipe 7.2
Same name and namespace in other branches
- 6 plugins/recipe_mastercook4.module \recipe_mastercook4_import_form_submit()
- 7 includes/recipe_mastercook4.module \recipe_mastercook4_import_form_submit()
File
- modules/
recipe_mastercook4.module, line 247 - Enables importing and exporting of MasterCook4 format recipes.
Code
function recipe_mastercook4_import_form_submit($form, &$form_state) {
// save to a temp files
$data = array();
$validators = array(
'file_validate_extensions' => array(
'mxp xml',
),
);
if ($file = file_save_upload('recipe_import_file', $validators, FALSE, FILE_EXISTS_RENAME)) {
$data = file($file->uri);
drupal_set_message(t('The attached file was successfully uploaded'));
}
else {
drupal_set_message(t('The attched file failed to upload.'), 'error');
return;
}
$recipe_txt = '';
foreach ($data as $line) {
if (preg_match("/\\* +Exported +from/i", $line)) {
$recipe_txt = trim($recipe_txt);
// Save recipe
if (strlen($recipe_txt) > 0) {
$parsed_recipe_object = recipe_mastercook4_import_single($recipe_txt);
if (strlen($parsed_recipe_object['title']) > 0) {
if (($node = recipe_import_get_node($parsed_recipe_object)) != FALSE) {
// Save the recipe.
node_save($node);
}
}
}
// Clear recipe buffer.
$recipe_txt = '';
}
$recipe_txt .= $line;
}
// Handle the last one needed.
$parsed_recipe_object = recipe_mastercook4_import_single($recipe_txt);
if (strlen($parsed_recipe_object['title']) > 0) {
if (($node = recipe_import_get_node($parsed_recipe_object)) != FALSE) {
node_save($node);
}
}
}