Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Initialisation
- function mes_metaboxes(){
- add_meta_box('things', 'choses à faire', 'things_to_do', 'post', 'normal', 'default');
- }
- add_action('add_meta_boxes','mes_metaboxes');
- // Fonction de construction de la metabox
- function things_to_do($post){
- global $wpdb;
- //taches
- $to_do = array_filter( get_post_meta($post->ID,'_descr_chose', true) );
- // Eviter d'avoir une chaine vide au lieu d'un array vide et faire peter le foreach
- $to_do = is_array( $to_do ) ? $to_do : array();
- //duree
- $duree_chose = array_filter( get_post_meta($post->ID,'_duree_chose', true) );
- // nonce
- wp_nonce_field( 'update-taches_'.$post->ID, '_wpnonce_update_taches' );
- //boucle
- echo '<div id="all_things">';
- // Je vérifie que le nombre d'entrées des choses soit égal à celui des durées
- if( count( $to_do )>0 && count( $to_do )==count( $duree_chose ) ):
- foreach( $to_do as $k => $t ){
- $duree_c = $duree_chose[$k];
- ?>
- <div class="item-chose"><label for="">Description : </label><input type="text" class="description_des_choses" name="descr_chose[]" id="" style="width:50%" value="<?php echo $t; ?>" /> <label for="">Durée allouée : </label><input type="text" class="duree_des_choses" name="duree_chose[]" id="" style="width:56px;" value="<?php echo $duree_c; ?>" />h <a class="suppr-chose button-secondary hide-if-no-js" href="javascript:void(0);">supprimer</a><span class="hide-if-js"><em>Pour supprimer, videz les contenus.</em></span></div>
- <?php
- }
- endif; ?>
- <div class="item-chose"><label for="">Description : </label><input type="text" class="description_des_choses" name="descr_chose[]" id="" style="width:50%"/> <label for="">Durée allouée : </label><input type="text" class="duree_des_choses" name="duree_chose[]" id="" style="width:56px;" />h <a class="suppr-chose button-secondary hide-if-no-js" href="javascript:void(0);">supprimer</a><span class="hide-if-js"><em>Pour supprimer, videz les contenus.</em></span></div>
- <?php
- echo '</div>';
- ?>
- <!-- lien ajout -->
- <p>
- <a id="ajout-chose" class="button-primary hide-if-no-js" href="javascript:void(0);" style="margin-top:10px;position:relative;">Ajouter une tâche</a>
- <span class="hide-if-js">Pour ajouter une nouvelle entrée, sauvegardez l'article.<br /><em>JAVASCRIPT désactivé, vous aurez une meilleure ergonomie avec le javascript activé.</em></span>
- </p>
- <!-- script-->
- <script>
- jQuery(document).ready(function($){
- //suppression champ
- $('.suppr-chose').live('click',function(){
- $(this).parent().remove();
- });
- //ajout champ
- $('#ajout-chose').on('click',function(){
- $('.item-chose:last').clone().appendTo('#all_things');
- $('.item-chose:last input').val('');
- });
- });
- </script>
- <?php
- }
- // Sauvegarde
- function ma_sauvegarde()
- {
- if( ( !defined( 'DOING_AJAX' ) || !DOING_AJAX )
- && isset( $_POST['descr_chose'], $_POST['descr_chose'], $_POST['ID'] ) ):
- check_admin_referer( 'update-taches_'.$_POST['ID'],'_wpnonce_update_taches' );
- update_post_meta( $_POST['ID'], '_descr_chose', $_POST['descr_chose'] );
- update_post_meta( $_POST['ID'], '_duree_chose', $_POST['duree_chose'] );
- endif;
- }
- add_action('save_post','ma_sauvegarde', 10, 0 );
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement