Advertisement
Guest User

Untitled

a guest
Jun 11th, 2012
190
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 3.21 KB | None | 0 0
  1. //Initialisation
  2. function mes_metaboxes(){
  3.   add_meta_box('things', 'choses à faire', 'things_to_do', 'post', 'normal', 'default');
  4. }
  5. add_action('add_meta_boxes','mes_metaboxes');
  6.  
  7. // Fonction de construction de la metabox
  8. function things_to_do($post){
  9.   global $wpdb;
  10.   //taches
  11.   $to_do = array_filter( get_post_meta($post->ID,'_descr_chose', true) );
  12.     // Eviter d'avoir une chaine vide au lieu d'un array vide et faire peter le foreach
  13.   $to_do = is_array( $to_do ) ? $to_do : array();
  14.   //duree
  15.   $duree_chose = array_filter( get_post_meta($post->ID,'_duree_chose', true) );
  16.   // nonce  
  17.   wp_nonce_field( 'update-taches_'.$post->ID, '_wpnonce_update_taches' );
  18.  
  19.   //boucle
  20.   echo '<div id="all_things">';
  21.   // Je vérifie que le nombre d'entrées des choses soit égal à celui des durées
  22.   if( count( $to_do )>0 && count( $to_do )==count( $duree_chose ) ):
  23.     foreach( $to_do as $k => $t ){
  24.     $duree_c = $duree_chose[$k];
  25.     ?>
  26.     <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>
  27.     <?php
  28.     }
  29.   endif; ?>
  30.   <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>
  31.   <?php
  32.   echo '</div>';
  33.   ?>
  34.  
  35.   <!-- lien ajout -->
  36.   <p>
  37.   <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>
  38.   <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>
  39.   </p>
  40.  
  41.   <!-- script-->
  42.   <script>
  43.   jQuery(document).ready(function($){
  44.     //suppression champ
  45.     $('.suppr-chose').live('click',function(){
  46.         $(this).parent().remove();
  47.     });
  48.  
  49.     //ajout champ
  50.     $('#ajout-chose').on('click',function(){
  51.       $('.item-chose:last').clone().appendTo('#all_things');
  52.       $('.item-chose:last input').val('');
  53.     });
  54.   });
  55.   </script>
  56. <?php
  57. }
  58.  
  59. // Sauvegarde
  60. function ma_sauvegarde()
  61. {
  62.    if( ( !defined( 'DOING_AJAX' ) || !DOING_AJAX )
  63.         && isset( $_POST['descr_chose'], $_POST['descr_chose'], $_POST['ID'] ) ):
  64.     check_admin_referer( 'update-taches_'.$_POST['ID'],'_wpnonce_update_taches' );
  65.     update_post_meta( $_POST['ID'], '_descr_chose', $_POST['descr_chose'] );
  66.     update_post_meta( $_POST['ID'], '_duree_chose', $_POST['duree_chose'] );
  67.   endif;
  68. }
  69. add_action('save_post','ma_sauvegarde', 10, 0 );
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement