is_cpm_managing_posts = true; foreach ($_POST as $field => $value) { if (($_POST['bulk-action'] != "-1") && ($_POST['bulk-action'] != "individual")) { $bulk_posts_updated = array(); if (preg_match("#^(file|post),([^\,]*),(.*)$#", $field, $matches) > 0) { list ($all, $type, $date, $id) = $matches; if (isset($_POST["batch-${date}"])) { switch ($_POST['bulk-action']) { case "delete": switch ($type) { case "file": if (($result = cpm_match_id_to_file($id)) !== false) { $files_to_delete[] = $result; } break; case "post": $posts_to_delete[] = $id; break; } break; case "regen-thumbs": if ($type == "file") { if (($result = cpm_match_id_to_file($id)) !== false) { $thumbnails_to_regenerate[] = $result; } } break; case "edit": if ($type == "post") { foreach (array('hovertext' => 'bulk-hovertext', 'transcript' => 'bulk-transcript') as $meta_name => $post_name) { if (isset($_POST[$post_name])) { update_post_meta($id, $meta_name, $_POST[$post_name]); } } $post_categories = wp_get_post_categories($id); $did_change = false; if (isset($_POST['bulk-storyline-in-comic-category'])) { foreach ($comic_categories as $category_id) { if (in_array($category_id, $_POST['bulk-storyline-in-comic-category'])) { if (!in_array($category_id, $post_categories)) { $did_change = true; $post_categories[] = $category_id; } } else { if (($index = array_search($category_id, $post_categories)) !== false) { $did_change = true; array_splice($post_categories, $index, 1); } } } } if ($did_change) { wp_set_post_categories($id, $post_categories); } $bulk_posts_updates[] = $id; } break; case "import": switch ($type) { case "file": if (($result = cpm_match_id_to_file($id)) !== false) { $posts_to_generate[] = $result; } break; case "post": $posts_that_exist[] = $date; break; } break; } } } } else { if (preg_match('#^([0-9]+)-in-comic-category#', $field, $matches) > 0) { if (get_post($matches[1])) { $posts_to_recategorize[$matches[1]] = $value; } } if (preg_match("#^delete-file-(.*)$#", $field, $matches) > 0) { if (($result = cpm_match_id_to_file($matches[1])) !== false) { $files_to_delete[] = $result; } } if (preg_match("#^delete-post-(.*)$#", $field, $matches) > 0) { if (get_post($matches[1])) { $posts_to_delete[] = $matches[1]; } } if (preg_match('#^regen-(.*)$#', $field, $matches) > 0) { if (($result = cpm_match_id_to_file($matches[1])) !== false) { $thumbnails_to_regenerate[] = $result; } } if (preg_match("#^do-redate-file-(.*)$#", $field, $matches) > 0) { if (($result = cpm_match_id_to_file($matches[1])) !== false) { $files_to_redate[$result] = $value; } } if (preg_match("#^generate-post-(.*)$#", $field, $matches) > 0) { if (($result = cpm_match_id_to_file($matches[1])) !== false) { $posts_to_generate[] = $result; } } if (preg_match("#^delete-post-(.*)$#", $field, $matches) > 0) { if (get_post($matches[1])) { $posts_to_redate[$matches[1]] = $value; } } } } $did_generate_thumbs = array(); $ok_to_keep_uploading = true; $files_created_in_operation = array(); if (count($thumbnails_to_regenerate) > 0) { $thumbnails_written = array(); $thumbnails_not_written = array(); foreach ($thumbnails_to_regenerate as $file) { $comic_file = pathinfo($file, PATHINFO_BASENAME); $wrote_thumbnail = cpm_write_thumbnail($file, $comic_file, true); if (!is_null($wrote_thumbnail)) { if (is_array($wrote_thumbnail)) { $files_created_in_operation = array_merge($files_created_in_operation, $wrote_thumbnail); $thumbnails_written[] = $comic_file; } else { $thumbnails_not_written[] = $comic_file; } } if (function_exists('cpm_wpmu_is_over_storage_limit')) { if (cpm_wpmu_is_over_storage_limit()) { $ok_to_keep_uploading = false; break; } } } if (count($thumbnails_written) > 0) { $cpm_config->messages[] = sprintf(__("The following thumbnails were written: %s", 'comicpress-manager'), implode(", ", $thumbnails_written)); } if (count($thumbnails_not_written) > 0) { $cpm_config->warnings[] = sprintf(__("The following thumbnails were not written: %s", 'comicpress-manager'), implode(", ", $thumbnails_not_written)); } } if (count($bulk_posts_updates) > 0) { $cpm_config->messages[] = sprintf(__("The following posts were updated: %s", 'comicpress-manager'), implode(", ", $bulk_posts_updates)); } if (count($files_to_delete) > 0) { $comic_files_deleted = array(); foreach ($files_to_delete as $file) { $comic_file = pathinfo($file, PATHINFO_BASENAME); $delete_targets = array($file); foreach ($cpm_config->thumbs_folder_writable as $type => $value) { $path = CPM_DOCUMENT_ROOT . '/' . $cpm_config->properties[$type . "_comic_folder"]; if (($subdir = cpm_get_subcomic_directory()) !== false) { $path .= '/' . $subdir; } $path .= '/' . $comic_file; $delete_targets[] = $path;; } foreach ($delete_targets as $target) { if (file_exists($target)) { @unlink($target); } } $comic_files_deleted[] = $comic_file; } $cpm_config->messages[] = sprintf(__("The following comic files and their associated thumbnails were deleted: %s", 'comicpress-manager'), implode(", ", $comic_files_deleted)); } if (count($posts_to_delete) > 0) { foreach ($posts_to_delete as $post) { wp_delete_post($post); } $cpm_config->messages[] = sprintf(__("The following posts were deleted: %s", 'comicpress-manager'), implode(", ", $posts_to_delete)); } $master_category = end(explode("/", reset($category_tree))); foreach ($posts_to_generate as $file) { $ok = false; $comic_file = pathinfo($file, PATHINFO_BASENAME); if (($result = cpm_breakdown_comic_filename($comic_file)) !== false) { if (!in_array(date("Y-m-d", strtotime($result['date'])), $posts_that_exist)) { if (($post_hash = generate_post_hash($result['date'], $result['converted_title'])) !== false) { $post_hash['post_category'] = array($master_category); $ok = !is_null($post_id = wp_insert_post($post_hash)); } } } if ($ok) { $cpm_config->messages[] = sprintf(__('Created post %1$s for %2$s.', 'comicpress-manager'), $post_id, $comic_file); } else { $cpm_config->warnings[] = sprintf(__("Could not create post for %s.", 'comicpress-manager'), $comic_file); } } foreach ($posts_to_recategorize as $id => $requested_comic_categories) { if (!in_array($id, $posts_to_delete)) { $post_categories = wp_get_post_categories($id); $did_change = false; foreach ($comic_categories as $category_id) { if (in_array($category_id, $requested_comic_categories)) { if (!in_array($category_id, $post_categories)) { $did_change = true; $post_categories[] = $category_id; } } else { if (($index = array_search($category_id, $post_categories)) !== false) { $did_change = true; array_splice($post_categories, $index, 1); } } } if ($did_change) { wp_set_post_categories($id, $post_categories); $cpm_config->messages[] = sprintf(__("Storyline for post %s updated.", 'comicpress-manager'), $id); } } } if (!$ok_to_keep_uploading) { $cpm_config->warnings = array($cpm_config->wpmu_disk_space_message); foreach ($files_created_in_operation as $file) { @unlink($file); } } $cpm_config->comic_files = cpm_read_comics_folder(); } function cpm_match_id_to_file($id) { global $cpm_config; foreach ($cpm_config->comic_files as $file) { $filename = str_replace(".", "_", pathinfo($file, PATHINFO_BASENAME)); if ($filename == $id) { return $file; } } return false; } ?>