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
?>
$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();
}
}