Example #1
0
/**
 * Format the playlist results for emailing/printing.
 *
 * @since	1.3
 * @param	int		$event_id		The event ID to retrieve the playlist for.
 * @param	str		$orderby		Which field to order the playlist entries by.
 * @param	str		$order			Order ASC or DESC.
 * @param	int		$repeat_headers	Repeat the table headers after this many rows.
 * @param	bool	$hide_empty		If displaying by category do we hide empty categories?
 * @return	str		$results		Output of playlist entries.
 */
function mdjm_format_playlist_content($event_id, $orderby = 'category', $order = 'ASC', $hide_empty = true, $repeat_headers = 0)
{
    global $current_user;
    $mdjm_event = mdjm_get_event($event_id);
    // Obtain results ordered by category
    if ($orderby == 'category') {
        $playlist = mdjm_get_playlist_by_category($event_id, array('hide_empty' => $hide_empty));
        if ($playlist) {
            foreach ($playlist as $cat => $entries) {
                foreach ($entries as $entry) {
                    $entry_data = mdjm_get_playlist_entry_data($entry->ID);
                    $results[] = array('ID' => $entry->ID, 'event' => $event_id, 'artist' => stripslashes($entry_data['artist']), 'song' => stripslashes($entry_data['song']), 'added_by' => stripslashes($entry_data['added_by']), 'category' => $cat, 'notes' => stripslashes($entry_data['djnotes']), 'date' => mdjm_format_short_date($entry->post_date));
                }
            }
        }
    } else {
        $args = array('orderby' => $orderby == 'date' ? 'post_date' : 'meta_value', 'order' => $order, 'meta_key' => $orderby == 'date' ? '' : '_mdjm_playlist_entry_' . $orderby);
        $entries = mdjm_get_playlist_entries($event_id, $args);
        if ($entries) {
            foreach ($entries as $entry) {
                $entry_data = mdjm_get_playlist_entry_data($entry->ID);
                $categories = wp_get_object_terms($entry->ID, 'playlist-category');
                if (!empty($categories)) {
                    $category = $categories[0]->name;
                }
                $results[] = array('ID' => $entry->ID, 'event' => $event_id, 'artist' => stripslashes($entry_data['artist']), 'song' => stripslashes($entry_data['song']), 'added_by' => stripslashes($entry_data['added_by']), 'category' => !empty($category) ? $category : '', 'notes' => stripslashes($entry_data['djnotes']), 'date' => mdjm_format_short_date($entry->post_date));
            }
        }
    }
    // Build out the formatted display
    if (!empty($results)) {
        $i = 0;
        $output = '<p>' . sprintf(__('Hey %s', 'mobile-dj-manager'), $current_user->first_name) . '</p>' . "\n";
        $output .= '<p>' . __('Here is the playlist you requested...', 'mobile-dj-manager') . '</p>' . "\n";
        $output .= '<p>' . __('Client Name', 'mobile-dj-manager') . ': ' . mdjm_get_client_display_name($mdjm_event->client) . '<br />' . "\n" . __('Event Date', 'mobile-dj-manager') . ': ' . mdjm_get_event_long_date($mdjm_event->ID) . '<br />' . "\n" . __('Event Type', 'mobile-dj-manager') . ': ' . mdjm_get_event_type($mdjm_event->ID) . '<br />' . "\n" . __('Songs in Playlist', 'mobile-dj-manager') . ': ' . count($results) . '<br />' . "\n" . '</p>';
        $output .= '<hr />' . "\n";
        $headers = '<tr style="height: 30px">' . "\n" . '<td style="width: 15%"><strong>' . __('Song', 'mobile-dj-manager') . '</strong></td>' . "\n" . '<td style="width: 15%"><strong>' . __('Artist', 'mobile-dj-manager') . '</strong></td>' . "\n" . '<td style="width: 15%"><strong>' . __('Category', 'mobile-dj-manager') . '</strong></td>' . "\n" . '<td style="width: 40%"><strong>' . __('Notes', 'mobile-dj-manager') . '</strong></td>' . "\n" . '<td style="width: 15%"><strong>' . __('Added By', 'mobile-dj-manager') . '</strong></td>' . "\n" . '</tr>' . "\n";
        $output .= '<table width="90%" border="0" cellpadding="0" cellspacing="0">' . "\n";
        $output .= $headers;
        foreach ($results as $result) {
            if ($repeat_headers > 0 && $i == $repeat_headers) {
                $output .= '<tr>' . "\n" . '<td colspan="5">&nbsp;</td>' . "\n" . '</tr>' . "\n" . $headers;
                $i = 0;
            }
            if (is_numeric($result['added_by'])) {
                $user = get_userdata($result['added_by']);
                $name = $user->display_name;
            } else {
                $name = $result['added_by'];
            }
            $output .= '<tr>' . "\n" . '<td>' . stripslashes($result['song']) . '</td>' . "\n" . '<td>' . stripslashes($result['artist']) . '</td>' . "\n" . '<td>' . stripslashes($result['category']) . '</td>' . "\n" . '<td>' . stripslashes($result['notes']) . '</td>' . "\n" . '<td>' . stripslashes($name) . '</td>' . "\n" . '</tr>' . "\n";
            $i++;
        }
        $output .= '</table>' . "\n";
    } else {
        $output = '<p>' . __('The playlist for this event does not contain any entries!', 'mobile-dj-manager') . '</p>' . "\n";
    }
    return $output;
}
 /**
  * Retrieve the entries for this playlist.
  *
  * @since	1.3
  * @param	int		$per_page		The number of items to display per page
  * @param	int		$page_num		The current page number
  * @return	arr		The array of data to display within the table.
  */
 private function get_entries($per_page = -1, $page_num = 1)
 {
     if (!isset($_GET['event_id'])) {
         return false;
     }
     $result = array();
     $mdjm_event = new MDJM_Event($_GET['event_id']);
     $orderby = isset($_GET['orderby']) ? $_GET['orderby'] : 'category';
     $order = isset($_GET['order']) ? $_GET['order'] : 'ASC';
     if ($orderby == 'category') {
         $args = array('orderby' => 'name', 'order' => $order, 'hide_empty' => true);
         $playlist = mdjm_get_playlist_by_category($mdjm_event->ID, $args);
         if ($playlist) {
             foreach ($playlist as $cat => $entries) {
                 foreach ($entries as $entry) {
                     $entry_data = mdjm_get_playlist_entry_data($entry->ID);
                     $result[] = array('ID' => $entry->ID, 'event' => $mdjm_event->ID, 'artist' => stripslashes($entry_data['artist']), 'song' => stripslashes($entry_data['song']), 'added_by' => stripslashes($entry_data['added_by']), 'category' => $cat, 'notes' => stripslashes($entry_data['djnotes']), 'date' => mdjm_format_short_date($entry->post_date));
                 }
             }
         }
     } else {
         $args = array('orderby' => $orderby == 'date' ? 'post_date' : 'meta_value', 'order' => $order, 'meta_key' => $orderby == 'date' ? '' : '_mdjm_playlist_entry_' . $orderby);
         $entries = mdjm_get_playlist_entries($mdjm_event->ID, $args);
         if ($entries) {
             foreach ($entries as $entry) {
                 $entry_data = mdjm_get_playlist_entry_data($entry->ID);
                 $categories = wp_get_object_terms($entry->ID, 'playlist-category');
                 if (!empty($categories)) {
                     $category = $categories[0]->name;
                 }
                 $result[] = array('ID' => $entry->ID, 'event' => $mdjm_event->ID, 'artist' => stripslashes($entry_data['artist']), 'song' => stripslashes($entry_data['song']), 'added_by' => stripslashes($entry_data['added_by']), 'category' => !empty($category) ? $category : '', 'notes' => stripslashes($entry_data['djnotes']), 'date' => mdjm_format_short_date($entry->post_date));
             }
         }
     }
     return apply_filters('mdjm_list_event_playlist', $result, $mdjm_event->ID);
 }
 <?php 
        echo _n('entry', 'entries', $entries_in_category, 'mobile-dj-manager');
        ?>
 | <?php 
        echo mdjm_playlist_duration($mdjm_event->ID, $entries_in_category);
        ?>
)</span></div>
                    
                </div>
                
                <?php 
        foreach ($entries as $entry) {
            ?>
                	
                    <?php 
            $entry_data = mdjm_get_playlist_entry_data($entry->ID);
            ?>
                    
                	<div class="row mdjm-playlist-entry mdjm-playlist-entry-<?php 
            echo $entry->id;
            ?>
">
                    	<div class="mdjm-playlist-song col"><?php 
            echo $entry_data['song'];
            ?>
</div>
                        
                        <div class="mdjm-playlist-artist col"><?php 
            echo $entry_data['artist'];
            ?>
</div>