Plugin Directory

Changeset 2283003


Ignore:
Timestamp:
04/14/2020 09:20:43 AM (6 years ago)
Author:
grosbouff
Message:

3.2.9

Location:
wp-soundsystem/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • wp-soundsystem/trunk/readme.txt

    r2282204 r2283003  
    142142
    143143== Changelog ==
     144
     145= 3.2.9 =
     146* bugfix playlist manager was broken
    144147
    145148= 3.2.8 =
  • wp-soundsystem/trunk/wp-soundsystem.php

    r2282204 r2283003  
    66Author: G.Breant
    77Author URI: https://profiles.wordpress.org/grosbouff/#content-plugins
    8 Version: 3.2.8
     8Version: 3.2.9
    99License: GPL2
    1010*/
     
    3737    * @public string plugin version
    3838    */
    39     public $version = '3.2.8';
     39    public $version = '3.2.9';
    4040    /**
    4141    * @public string plugin DB version
  • wp-soundsystem/trunk/wpsstm-core-tracks.php

    r2249711 r2283003  
    181181
    182182    function handle_manager_action(){
    183         global $wpsstm_track;
    184         $success = null;
    185 
    186         if ( !$subtrack_id = get_query_var( 'subtrack_id' ) ) return;
    187         if ( 'manage' !== get_query_var( 'wpsstm_action' ) ) return; //action does not exist
    188 
    189         $manager_action = wpsstm_get_array_value(array('wpsstm_manager_action'),$_REQUEST);
    190         $manager_data = wpsstm_get_array_value(array('wpsstm_manager_data'),$_REQUEST);
    191 
    192 
    193         switch ($manager_action){
    194             case 'toggle_tracklists':
    195 
    196                 $checked_tracklists = wpsstm_get_array_value(array('new_tids'),$manager_data);
    197                 $previous_values = wpsstm_get_array_value(array('old_tids'),$manager_data);
    198                 $edit_values = array();
    199 
    200                 if (!$previous_values) break; //no range to compare to
    201 
    202                 //use bool values instead of strings
    203                 foreach((array)$previous_values as $key => $value){
    204                     $previous_values[$key] = ($value === '1') ? true : false;
    205                 }
    206 
    207                 foreach((array)$checked_tracklists as $key => $value){
    208                     $checked_tracklists[$key] = true;
    209                 }
    210 
    211                 //build an array containing the tracklists IDs that have been updated
    212                 foreach((array)$previous_values as $key => $value){
    213                     if ( $value && !array_key_exists($key,$checked_tracklists) ){//item has been unchecked
    214                         $edit_values[$key] = false;
    215                     }elseif ( !$value && array_key_exists($key,$checked_tracklists) ){//item has been checked
    216                         $edit_values[$key] = true;
    217                     }
    218                 }
    219 
    220                 //process changed values
    221                 if ($edit_values){
    222 
    223                     foreach($edit_values as $tracklist_id => $is_child){
    224 
    225                         $tracklist = new WPSSTM_Post_Tracklist($tracklist_id);
    226 
    227                         if ($is_child){
    228                             $success = $tracklist->queue_track($wpsstm_track);
    229                         }else{
    230                             $success = $tracklist->dequeue_track($wpsstm_track);
    231                         }
    232 
    233                         if ( is_wp_error($success) ){
    234                             break; //break at first error
    235                         }
    236                     }
    237 
    238                 }
    239 
    240 
    241 
    242             break;
    243 
    244             case 'new_tracklist':
    245                 $tracklist_title = wpsstm_get_array_value(array('new_tracklist_title'),$manager_data);
    246                 if (!$tracklist_title){
    247                     $success = new WP_Error('wpsstm_missing_tracklist_title',__('Missing tracklist title','wpsstm'));
    248                 }else{
    249 
    250                     //create new tracklist
    251                     $tracklist = new WPSSTM_Post_Tracklist();
    252                     $tracklist->title = $tracklist_title;
    253 
    254                     $success = $tracklist->save_tracklist();
    255 
    256                     //append subtrack if any
    257                     if ( !is_wp_error($success) ){
    258                         $tracklist_id = $success;
    259                         $tracklist = new WPSSTM_Post_Tracklist($tracklist_id);
    260                         $success = $tracklist->queue_track($wpsstm_track);
    261                     }
    262                 }
    263 
    264 
    265 
    266             break;
    267         }
    268 
    269         if ($success){
    270             if ( is_wp_error($success) ){
    271                 //TOUFIX we should remove that track notice function.
    272                 $wpsstm_track->add_notice($success->get_error_code(),$success->get_error_message());
    273             }else{
    274                 $wpsstm_track->add_notice('success',__('Track action success!','wpsstm'));
     183      global $wpsstm_track;
     184      $success = null;
     185
     186      if ( 'manage' !== get_query_var( 'wpsstm_action' ) ) return; //action does not exist
     187
     188      $manager_action = wpsstm_get_array_value(array('wpsstm_manager_action'),$_REQUEST);
     189      $manager_data = wpsstm_get_array_value(array('wpsstm_manager_data'),$_REQUEST);
     190
     191      switch ($manager_action){
     192        case 'toggle_tracklists':
     193
     194          $checked_tracklists = wpsstm_get_array_value(array('new_tids'),$manager_data);
     195          $previous_values = wpsstm_get_array_value(array('old_tids'),$manager_data);
     196          $edit_values = array();
     197
     198          if (!$previous_values) break; //no range to compare to
     199
     200          //use bool values instead of strings
     201          foreach((array)$previous_values as $key => $value){
     202            $previous_values[$key] = ($value === '1') ? true : false;
     203          }
     204
     205          foreach((array)$checked_tracklists as $key => $value){
     206            $checked_tracklists[$key] = true;
     207          }
     208
     209          //build an array containing the tracklists IDs that have been updated
     210          foreach((array)$previous_values as $key => $value){
     211            if ( $value && !array_key_exists($key,$checked_tracklists) ){//item has been unchecked
     212              $edit_values[$key] = false;
     213            }elseif ( !$value && array_key_exists($key,$checked_tracklists) ){//item has been checked
     214              $edit_values[$key] = true;
    275215            }
    276         }
     216          }
     217
     218          //process changed values
     219          if ($edit_values){
     220
     221            foreach($edit_values as $tracklist_id => $is_child){
     222
     223              $tracklist = new WPSSTM_Post_Tracklist($tracklist_id);
     224
     225              if ($is_child){
     226                $success = $tracklist->queue_track($wpsstm_track);
     227              }else{
     228                $success = $tracklist->dequeue_track($wpsstm_track);
     229              }
     230
     231              if ( is_wp_error($success) ){
     232                break; //break at first error
     233              }
     234            }
     235
     236          }
     237
     238        break;
     239
     240        case 'new_tracklist':
     241          $tracklist_title = wpsstm_get_array_value(array('new_tracklist_title'),$manager_data);
     242          if (!$tracklist_title){
     243            $success = new WP_Error('wpsstm_missing_tracklist_title',__('Missing tracklist title','wpsstm'));
     244          }else{
     245
     246            //create new tracklist
     247            $tracklist = new WPSSTM_Post_Tracklist();
     248            $tracklist->title = $tracklist_title;
     249
     250            $success = $tracklist->save_tracklist();
     251
     252            //append subtrack if any
     253            if ( !is_wp_error($success) ){
     254              $tracklist_id = $success;
     255              $tracklist = new WPSSTM_Post_Tracklist($tracklist_id);
     256              $success = $tracklist->queue_track($wpsstm_track);
     257            }
     258          }
     259
     260
     261
     262        break;
     263      }
     264
     265      if ($success){
     266        if ( is_wp_error($success) ){
     267          //TOUFIX we should remove that track notice function.
     268          $wpsstm_track->add_notice($success->get_error_code(),$success->get_error_message());
     269        }else{
     270          $wpsstm_track->add_notice('success',__('Track action success!','wpsstm'));
     271        }
     272      }
    277273
    278274    }
Note: See TracChangeset for help on using the changeset viewer.