Paramètres', ); return array_merge($links, $mylinks); } /** * */ public static function initialisation_metaboxes() { add_meta_box('id_ma_meta', 'Multi duplicator', array(__CLASS__, 'meta_function'), 'post', 'side', 'low'); add_meta_box('id_ma_meta', 'Multi duplicator', array(__CLASS__, 'meta_function'), 'page', 'side', 'low'); } public static function meta_function($post) { global $wpdb; // on récupère la valeur actuelle pour la mettre dans le champ $blog_id = get_current_blog_id(); switch_to_blog(1); $good_prefix = $wpdb->prefix; restore_current_blog(); //liste les blogs $list_blog = Alt_Bdd_Model_Multiduplicator::List_blogs($good_prefix); //récupére la clef lier au blog $get_key = Alt_Bdd_Model_Multiduplicator::Get_key($blog_id, $post); //affiche les articler lier a la clef $liaisons_multiduplicator = Alt_Bdd_Model_Multiduplicator::Liaisons_MD($get_key); $table_liaison = array(); $source = ''; foreach ($liaisons_multiduplicator as $liaison) { $table_liaison[$liaison->altmd_blog_id]['altmd_id'] = $liaison->altmd_id; $table_liaison[$liaison->altmd_blog_id]['altmd_article_id'] = $liaison->altmd_article_id; $table_liaison[$liaison->altmd_blog_id]['altmd_synchro'] = $liaison->altmd_synchro; $table_liaison[$liaison->altmd_blog_id]['altmd_source'] = $liaison->altmd_source; if ($liaison->altmd_source != '' && $liaison->altmd_source != 0) { $source = $liaison->altmd_source; } } if ($source == '') { $source = $blog_id; } // Parcours des resultats obtenus ?> domain); $title = $domaine[0] . ' '; $title .= str_replace('/', '', $blog->path); $title = ($title == '') ? 'origin' : $title; $article_value = (isset($table_liaison[$blog->blog_id]['altmd_article_id'])) ? $table_liaison[$blog->blog_id]['altmd_article_id'] : '0'; if ($blog->blog_id == $blog_id) { $title = '' . $title . '*'; $article_value = $post->ID; } ?>
Blog Source ID Article synchro
blog_id]['altmd_source'] == 1 || $source == $blog->blog_id) ? 'checked' : '' ?>/>
blog_id == $blog_id) ? 'disabled' : '' ?> style=" width: 100% " value=""/>
blog_id]['altmd_synchro']) && $table_liaison[$blog->blog_id]['altmd_synchro'] == 1) ? 'checked' : '' ?>/> domain . $blog->path . 'wp-admin/post.php?post=' . $article_value . '&action=edit">+'; } ?>
$id_element, 'altmd_blog_id' => $blog_id, 'altmd_article_id' => $post_ID, 'altmd_synchro' => $synchro, 'altmd_source' => $source); if ($_POST['altmd_id'][$blog_id] != '') { $article['altmd_id'] = sanitize_text_field($_POST['altmd_id'][$blog_id]); $MultiduplicatorAdd = new Alt_Bdd_Object_Multiduplicator($article); Alt_Bdd_Model_Multiduplicator::update($MultiduplicatorAdd); } else { $MultiduplicatorAdd = new Alt_Bdd_Object_Multiduplicator($article); Alt_Bdd_Model_Multiduplicator::add($MultiduplicatorAdd); } foreach ($_POST['multiduplicator_article'] as $key => $value) { if (isset($value) && $value != '') { $synchro = (isset($_POST['multiduplicator_synchro'][$key])) ? '1' : '0'; $source = ($_POST['multiduplicator_source'] == $key) ? '1' : '0'; //si $synchro if ($synchro == '1') { global $wpdb; switch_to_blog($key); $post_infos = (array) $post_infos; unset($post_infos['filter']); unset($post_infos['ID']); if ($value != 0) { $where['ID'] = $value; $wpdb->update($wpdb->posts, $post_infos, $where, $format = null, $where_format = null); } else { $wpdb->insert($wpdb->posts, $post_infos, $format = null); //insséré ou update le post ici $wpdb->posts $value = $wpdb->insert_id; } restore_current_blog(); } //si value egale a 0 if ($synchro == '1' && ($value == '' || $value == '0')) { $value = $save_post->ID; } $article = array( 'altmd_key' => $id_element, 'altmd_blog_id' => $key, 'altmd_article_id' => $value, 'altmd_synchro' => $synchro, 'altmd_source' => $source); if ($_POST['altmd_id'][$key] != '') { $article['altmd_id'] = sanitize_text_field($_POST['altmd_id'][$key]); $MultiduplicatorAdd = new Alt_Bdd_Object_Multiduplicator($article); Alt_Bdd_Model_Multiduplicator::update($MultiduplicatorAdd); self::duplicate_image($key, $post_ID, $value); } else { $MultiduplicatorAdd = new Alt_Bdd_Object_Multiduplicator($article); Alt_Bdd_Model_Multiduplicator::add($MultiduplicatorAdd); self::duplicate_image($key, $post_ID, $value); } //si synchrom alors je met a jour le titre du port lier et tous son contennu } } } } public static function duplicate_image($blog_id, $post_id, $target_id) { $post_thumbnail_id = get_post_thumbnail_id($post_id); $image_url = wp_get_attachment_image_src($post_thumbnail_id, 'full'); $image_url = $image_url[0]; switch_to_blog($blog_id); // switch to target blog // Add Featured Image to Post $upload_dir = wp_upload_dir(); // Set upload folder $image_data = file_get_contents($image_url); // Get image data $filename = basename($image_url); // Create image file name // Check folder permission and define file location if (wp_mkdir_p($upload_dir['path'])) { $file = $upload_dir['path'] . '/' . $filename; } else { $file = $upload_dir['basedir'] . '/' . $filename; } // Create the image file on the server file_put_contents($file, $image_data); // Check image file type $wp_filetype = wp_check_filetype($filename, null); // Set attachment data $attachment = array( 'post_mime_type' => $wp_filetype['type'], 'post_title' => sanitize_file_name($filename), 'post_content' => '', 'post_status' => 'inherit' ); // Create the attachment $attach_id = wp_insert_attachment($attachment, $file, $target_id); // Include image.php require_once(ABSPATH . 'wp-admin/includes/image.php'); // Define attachment metadata $attach_data = wp_generate_attachment_metadata($attach_id, $file); // Assign metadata to attachment wp_update_attachment_metadata($attach_id, $attach_data); // And finally assign featured image to post set_post_thumbnail($target_id, $attach_id); restore_current_blog(); // return to original blog } public static function alt_canonical() { global $wpdb, $post; $blog_id = get_current_blog_id(); $get_key = Alt_Bdd_Model_Multiduplicator::Get_key($blog_id, $post); // si source alors j'ajoute rien sinon je recherche if ($get_key[0]->altmd_source != 1) { $liaisons = $wpdb->get_results("SELECT * FROM multiduplicator WHERE altmd_key=" . $get_key[0]->altmd_key . " AND altmd_source=1"); switch_to_blog($liaisons[0]->altmd_blog_id); echo ''; restore_current_blog(); } } } Alt_Multiduplicator::hooks(); } }