error_message(__("You must specify at least two languages to make a translation group.", GENGO_DOMAIN)); $post_ids = implode(',', $posts); $new_group = $wpdb->get_var("SELECT MAX(translation_group) FROM $gengo->post2lang_table") + 1; $wpdb->query("UPDATE $gengo->post2lang_table SET translation_group = $new_group WHERE post_id IN ($post_ids)"); // Now create a new summary group from the supplied posts and resolved clashes. if ($summary_ids) { $new_group = $wpdb->get_var("SELECT MAX(summary_group) FROM $gengo->summary_table") + 1; foreach ($posts as $post) $post_strings[] = "($post, $new_group)"; $post_string = implode(', ', $post_strings); $wpdb->query("UPDATE $gengo->post2lang_table SET summary_group = $new_group WHERE post_id IN ($post_ids)"); $wpdb->query("UPDATE $gengo->summary_table SET summary_group = $new_group WHERE summary_id IN ($summary_ids)"); if ($removed_summary_ids) $wpdb->query("DELETE FROM $gengo->summary_table WHERE summary_id IN ($removed_summary_ids)"); } return $gengo->update_message(__("New translation group created.", GENGO_DOMAIN)); } function gengo_remove_post_from_translation_group($post_id) { global $gengo, $wpdb; if ($group_info = $wpdb->get_row("SELECT translation_group, COUNT(*) AS count FROM $gengo->post2lang_table GROUP BY translation_group HAVING 0 != COUNT(CASE WHEN post_id = $post_id THEN 37337 END)")) { if (!$group_info->translation_group) return $gengo->error_message(__("The specified post is not in a translation group.", GENGO_DOMAIN)); // Either remove the entire group or just this post from the group. if ($group_info->count <= 2) $wpdb->query("UPDATE $gengo->post2lang_table SET translation_group = 0 WHERE translation_group = $group_info->translation_group"); else $wpdb->query("UPDATE $gengo->post2lang_table SET translation_group = 0 WHERE post_id = $post_id"); // Remove the summary links too. $wpdb->query("UPDATE $gengo->post2lang_table SET summary_group = 0 WHERE post_id = $post_id"); return $gengo->update_message(__("Post successfully removed from group.", GENGO_DOMAIN)); } else return $gengo->error_message(__("Please specify a valid Post ID.", GENGO_DOMAIN)); } function gengo_remove_translation_group($translation_group) { global $gengo, $wpdb; if ($post_id = $wpdb->get_var("SELECT post_id FROM $gengo->post2lang_table WHERE translation_group = $translation_group LIMIT 1")) { $wpdb->query("UPDATE $gengo->post2lang_table SET translation_group = 0 WHERE translation_group = $translation_group"); if ($summary_group = $wpdb->get_var("SELECT summary_group FROM $gengo->post2lang_table WHERE post_id = $post_id LIMIT 1")) { $wpdb->query("UPDATE $gengo->post2lang_table SET summary_group = 0 WHERE summary_group = $summary_group"); $wpdb->query("DELETE FROM $gengo->summary_table WHERE summary_group = $summary_group"); } return $gengo->update_message(__("Translation group successfully removed.", GENGO_DOMAIN)); } else return $gengo->error_message(__("Please specify a valid translation group.", GENGO_DOMAIN)); } if (isset($_POST['gengo_create_group_submit'])) gengo_create_translation_group(); elseif (isset($_POST['gengo_group_remove_submit'])) gengo_remove_translation_group(key($_POST['gengo_group_remove_submit'])); elseif (isset($_GET['gengo_action'])) { if ('remove_from_translation_group' == $_GET['gengo_action']) gengo_remove_post_from_translation_group($_GET['post_id']); } $flag1 = $flag2 = ""; $show = $_REQUEST['show']; switch($show): case "all": case "": $flag1=' class="current"'; break; case "new": case "": $flag2=' class="current"'; break; endswitch; if($show!="new"): ?>

get_col("SELECT DISTINCT translation_group FROM $gengo->post2lang_table WHERE translation_group != 0 ORDER BY translation_group DESC LIMIT $lower_bound, ". GENGO_TRANSLATIONS_PAGED)) { $groups = implode(',', $groups); $results = $wpdb->get_results("SELECT ID AS post_id, post_title, translation_group, language FROM $wpdb->posts p INNER JOIN $gengo->post2lang_table p2l ON p.ID = p2l.post_id INNER JOIN $gengo->language_table l ON p2l.language_id = l.language_id WHERE p2l.translation_group IN ($groups) ORDER BY translation_group, post_id", ARRAY_A) ?>

$post_title"; ?> ');">Remove

get_the_summaries($post_id)) $gengo->list_summaries($summaries, $dummy, 'existing', false); else { ?>


');" />


get_col("SELECT DISTINCT translation_group FROM $gengo->post2lang_table WHERE translation_group != 0")); if ($translation_groups > ($lower_bound + GENGO_TRANSLATIONS_PAGED)) { $remaining = $translation_groups - ($lower_bound + GENGO_TRANSLATIONS_PAGED); if ($remaining > GENGO_TRANSLATIONS_PAGED) $remaining = GENGO_TRANSLATIONS_PAGED; ?>


not delete the affected posts.', GENGO_DOMAIN) ?>

languages)) > 1) { if ($posts = $wpdb->get_results("SELECT ID AS post_id, post_title, language_id FROM $wpdb->posts p INNER JOIN $gengo->post2lang_table p2l ON p.ID = p2l.post_id WHERE translation_group = 0 ORDER BY language_id ASC, post_id DESC")) { ?>

$post) { if ($posts[$key - 1]->language_id != $post->language_id) $option_string = ''; $title = (strlen($post->post_title) > GENGO_SIDEBAR_SELECT_LENGTH) ? substr($post->post_title, 0, GENGO_SIDEBAR_SELECT_LENGTH-2) . ".." : $post->post_title; $option_string .= ""; if ($posts[$key + 1]->language_id != $post->language_id) { if ($posts[$key + 1]->language_id) $options_available++; elseif ($options_available == 1) break; if (($options_available == 2) && !$header_written) { ?> languages as $language_id => $entry) { ?>
languages[$post->language_id]->language ?> ' style="width: 155px">
1) { ?>