Пример #1
0
/**
 * Writes HTML code for insertion of Ribcage specific releases feeds into the header of a page.
 *
 * @return void
 * @author Alex Andrews <*****@*****.**>
 */
function ribcage_release_feeds()
{
    global $wp_query;
    ?>
	<link rel="alternate" type="application/rss+xml" href="<a href="<?php 
    echo home_url();
    ?>
/releases/feed" title="<?php 
    echo get_option('blogname');
    ?>
 Releases RSS feed" />
	<?php 
    if (isset($wp_query->query_vars['artist_slug'])) {
        ?>
		<link rel="alternate" type="application/rss+xml" href="<a href="<?php 
        echo home_url();
        ?>
/artists/<?php 
        artist_slug();
        ?>
/feed" title="<?php 
        artist_name();
        ?>
 Releases RSS feed" />
		<?php 
    }
}
Пример #2
0
?>
</generator>
	<language><?php 
echo get_option('rss_language');
?>
</language>
	<?php 
while (have_releases()) {
    the_release();
    ?>
	<?php 
    $artist = get_artist($release['release_artist']);
    ?>
	<item>
		<title><?php 
    artist_name();
    ?>
 - <?php 
    release_title();
    ?>
</title>
		<link><a href="<?php 
    echo home_url();
    ?>
/artists/<?php 
    artist_slug();
    ?>
/<?php 
    release_slug();
    ?>
/</link>
Пример #3
0
/**
 * Manages artists - adds, deletes, edits.
 *
 * @author Alex Andrews <*****@*****.**>
 * @return void
 **/
function ribcage_manage_artists()
{
    global $artists;
    global $artist;
    $index = false;
    // If we aren't on an artist page then we are on the index page.
    if (isset($_REQUEST['artist'])) {
        $artist_id = (int) $_REQUEST['artist'];
    } elseif (isset($_REQUEST['page']) && $_REQUEST['page'] == 'add_artist') {
        $index = false;
    } else {
        $index = true;
    }
    register_column_headers('ribcage-manage-artist', array('cb' => '<input type="checkbox" />', 'artist' => 'Artist'));
    if (isset($_REQUEST['ribcage_action'])) {
        global $wpdb;
        // Refactor, this is a terrible place for this to do this.
        if ($_REQUEST['ribcage_action'] !== 'add') {
            check_admin_referer('manage_artists');
        } else {
            check_admin_referer('add_artist');
        }
        unset($_POST['_wpnonce']);
        unset($_POST['_wp_http_referer']);
        unset($_POST['Submit']);
        //split apart associative array into different parts to prepare for implodes
        $post_keys = array_keys($_POST);
        $post_vals = array_values($_POST);
        //construct field name list and vals to post
        $string_keys = implode($post_keys, ",");
        $string_vals = "'" . implode($post_vals, "','") . "'";
        $wpdb->show_errors();
        switch ($_REQUEST['ribcage_action']) {
            case 'edit':
                $sql = "UPDATE " . $wpdb->prefix . "ribcage_artists\n\t\t\t\t\t\tSET ";
                $i = 0;
                foreach ($post_keys as $field) {
                    $sql .= $field . "='" . $post_vals[$i] . "', ";
                    $i++;
                }
                $sql .= " artist_id = " . $artist_id . " \n\t\t\t\t\t\tWHERE artist_id = " . $artist_id;
                $results = $wpdb->query($sql);
                $wpdb->hide_errors();
                $artist = get_artist($artist_id);
                $message = 'updated';
                break;
            case 'add':
                $sql = "INSERT INTO " . $wpdb->prefix . "ribcage_artists\n\t\t\t\t\t\t({$string_keys})\n\t\t\t\t\t\tVALUES\n\t\t\t\t\t\t({$string_vals})";
                $results = $wpdb->query($sql);
                $wpdb->hide_errors();
                $artist = get_artist_by_slug($_POST['artist_slug']);
                $message = 'added';
                break;
            case 'delete':
                $del_artist = get_artistname_by_id($_REQUEST['artist']);
                delete_artist($_REQUEST['artist']);
                $message = "{$del_artist} deleted";
                $index = 1;
                break;
        }
        echo '<div id="message" class="updated fade"><p><strong>Artist ' . $message . '.</strong></p></div>';
    }
    if (!$index) {
        if (isset($_REQUEST['artist'])) {
            $artist = get_artist($_REQUEST['artist']);
        }
        ?>
	<div class="wrap">
			<div id="icon-options-general" class="icon32"><br /></div>
		<?php 
        if ($_REQUEST['page'] == 'add_artist') {
            ?>
			<h2>Add Artist</h2>
			<form action="<?php 
            echo str_replace('%7E', '~', $_SERVER['REQUEST_URI']);
            ?>
&ribcage_action=add" method="post" id="ribcage_edit_artist" name="edit_artist">
			<?php 
            wp_nonce_field('add_artist');
            ?>
		<?php 
        }
        ?>
		<?php 
        if (isset($_REQUEST['artist'])) {
            ?>
			<h2>Managing <?php 
            artist_name();
            ?>
</h2>
			<form action="<?php 
            echo str_replace('%7E', '~', $_SERVER['REQUEST_URI']);
            ?>
&ribcage_action=edit" method="post" id="ribcage_edit_artist" name="edit_artist">
			<?php 
            wp_nonce_field('manage_artists');
            ?>
		<?php 
        }
        ?>
					<table class="form-table">             
						<tr valign="top">
							<th scope="row"><label for="artist_name">Name</label></th> 
							<td>
								<input type="text" value="<?php 
        artist_name();
        ?>
" name="artist_name" id="artist_name" class="regular-text"/>												
							</td> 
						</tr>
						<tr valign="top">
							<th scope="row">Sort Name</th> 
							<td>
								<input type="text" value="<?php 
        artist_name_sort();
        ?>
" name="artist_name_sort" id="artist_name_sort" class="regular-text" />
								<span class="description">The name of the artist to be alphabetized. For example, 'Butterfly, The'.</span>
							</td> 
						</tr>
						<tr valign="top">
							<th scope="row">Artist Slug</th> 
							<td>
								<input type="text" style="width:320px;" class="regular-text code" value="<?php 
        artist_slug();
        ?>
" name="artist_slug" id="artist_slug" /><span class="description">The URL you want for the artist - for example <a href="<?php 
        echo home_url();
        ?>
/artists/artist_slug</span>
							</td> 
						</tr>
						<tr valign="top">
							<th scope="row">Signup Date</th> 
							<td>
								<input type="text" style="width:100px;" class="regular-text code" value="<?php 
        echo $artist['artist_signed'];
        ?>
" name="artist_signed" id="artist_signed" maxlength="50" /><span class="description">The date the artist signed for your label</span>
							</td> 
						</tr>
						<tr valign="top">
							<th scope="row">Creative Commons license</th> 
							<td>
								<?php 
        echo ribcage_cc_dropdown($artist_license_val);
        ?>
							</td> 
						</tr>
						<tr valign="top">
							<th scope="row">Artist's Music Brainz ID</th> 
							<td>
								<input type="text" style="width:320px;" class="regular-text code" value="<?php 
        artist_musicbrainz();
        ?>
" name="artist_mbid" id="artist_mbid" maxlength="50" />
							</td> 
						</tr>
						<tr valign="top">
							<th scope="row">Website URL</th> 
							<td>
								<input type="text" style="width:320px;" class="regular-text code" value="<?php 
        artist_website_link();
        ?>
" name="artist_link_website" id="artist_link_website" maxlength="200" />
							</td> 
						</tr>
						<tr valign="top">
							<th scope="row">MySpace URL</th> 
							<td>
								<input type="text" style="width:320px;" class="regular-text code" value="<?php 
        artist_myspace_link();
        ?>
" name="artist_link_myspace" id="artist_link_myspace" maxlength="200" />
							</td> 
						</tr>
						<tr valign="top">
							<th scope="row">Facebook URL</th> 
							<td>
								<input type="text" style="width:320px;" class="regular-text code" value="<?php 
        artist_facebook_link();
        ?>
" name="artist_link_facebook" id="artist_link_facebook" maxlength="200" />
							</td> 
						</tr>
						<tr valign="top">
							<th scope="row">Artist Biography</th> 
							<td>
								<textarea rows="5" cols="50" name="artist_bio" id="artist_bio" class="regular-text"><?php 
        echo $artist['artist_bio'];
        ?>
</textarea>
							</td> 
						</tr>
						<tr valign="top">
							<th scope="row">Short One Paragraph Description of Artist</th> 
							<td>
								<textarea rows="5" cols="50" name="artist_blurb_tiny" id="artist_blurb_tiny" class="regular-text"><?php 
        echo $artist['artist_blurb_tiny'];
        ?>
</textarea>
							</td> 
						</tr>
						<tr valign="top">
							<th scope="row">Artist Picture 1</th> 
							<td>
								<input type="text" style="width:320px;" class="regular-text code" value="<?php 
        artist_picture_1();
        ?>
" name="artist_picture_1" id="artist_picture_1" maxlength="200" />
							</td> 
						</tr>
						<tr valign="top">
							<th scope="row">Artist Picture 2</th> 
							<td>
								<input type="text" style="width:320px;" class="regular-text code" value="<?php 
        artist_picture_2();
        ?>
" name="artist_picture_2" id="artist_picture_2" maxlength="200" />
							</td> 
						</tr>
						<tr valign="top">
							<th scope="row">Artist Picture 3</th> 
							<td>
								<input type="text" style="width:320px;" class="regular-text code" value="<?php 
        artist_picture_3();
        ?>
" name="artist_picture_3" id="artist_picture_3" maxlength="200" />
							</td> 
						</tr>
						<tr valign="top">
							<th scope="row">Artist Picture HQ Zipfile URL</th> 
							<td>
								<input type="text" style="width:320px;" class="regular-text code" value="<?php 
        echo $artist_picture_zip_val;
        ?>
" name="artist_picture_zip" id="artist_picture_zip" maxlength="200" />
							</td> 
						</tr>
					</table>
					<p class="submit">
						<input type="submit" name="Submit" class="button-primary" value="Save Changes" />
					</p>
			</form>
	</div>
<?php 
    } else {
        ?>
	<?php 
        $artists = list_artists_blurb();
        $alt = 0;
        ?>
	<div class="wrap">
		<div id="icon-plugins" class="icon32"><br /></div>
		<h2>Manage Artists</h2>
			<form action="<?php 
        echo str_replace('%7E', '~', $_SERVER['REQUEST_URI']);
        ?>
" method="post" id="ribcage_manage_artists" name="manage_artists"> 
				<table class="widefat post fixed" cellspacing="0">
						<thead>
						<tr>
						<?php 
        print_column_headers('ribcage-manage-artist');
        ?>
			
						</tr>
						</thead>
						<tfoot>
						<tr>			
						<?php 
        print_column_headers('ribcage-manage-artist', FALSE);
        ?>
	
						</tr>
						</tfoot>            
						<tbody>
							<?php 
        while (have_artists()) {
            the_artist();
            ?>
							<?php 
            $manage_link = wp_nonce_url('?page=ribcage&artist=' . artist_id(false), 'manage_artists');
            $delete_link = wp_nonce_url('?page=ribcage&artist=' . artist_id(false) . '&ribcage_action=delete', 'manage_artists');
            ?>
							<?php 
            echo $alt % 2 ? '<tr valign="top" class="">' : '<tr valign="top" class="alternate">';
            ++$alt;
            ?>
		
							<th scope="row" class="check-column"><input type="checkbox" name="artistcheck[]" value="2" /></th>
							<td class="column-name">
								<strong><a class="row-title" href="?page=manage_artists&artist=<?php 
            artist_id();
            ?>
" title="<?php 
            artist_name();
            ?>
" ><?php 
            artist_name();
            ?>
</strong></a><br /><div class="row-actions"><span class='edit'><a href="<?php 
            echo $manage_link;
            ?>
">Edit</a> | </span><span class='delete'><a class='submitdelete' href='<?php 
            echo $delete_link;
            ?>
' onclick="if ( confirm('You are about to delete \'<?php 
            artist_name();
            ?>
\'\n  \'Cancel\' to stop, \'OK\' to delete.') ) { return true;}return false;">Delete</a></span></div></td>
							</tr>
							<?php 
        }
        ?>
						</tbody>
					</table>
			</form>
	</div>
	<?php 
    }
}
Пример #4
0
/**
 * Add a review of a specific release.
 *
 * @return void
 */
function ribcage_manage_reviews()
{
    global $releases, $release, $artist, $tracks, $track;
    $release = get_release($_REQUEST['release'], false, true);
    $reviews = $release['release_reviews'];
    $artist['artist_name'] = get_artistname_by_id($release['release_artist']);
    ?>
        <div class="wrap">
		<h2>Manage Reviews of <?php 
    artist_name();
    ?>
 - <?php 
    release_title();
    ?>
</h2>
        <?php 
    if (count($reviews) == 0) {
        echo "<p>No reviews yet. Why not add one now?</p>";
    } else {
        register_column_headers('ribcage-manage-reviews', array('cb' => '<input type="checkbox" />', 'review_' => 'Reviewer'));
        echo "<pre>" . print_r($reviews) . "</pre>";
    }
    ?>
                <h3>Add a review</h3>
                <table class="form-table">
                <tr valign="top">
                    <th scope="row"><label for="review_url">Review URL</label></th>
                    <td><input type="text" name="review_url" value="" class="regular-text code"/><span class="description">The URL of the review, if the review is online.</span>								</td>
		</tr>
		<tr valign="top">
                    <th scope="row"><label for="review_url">Publication</label></th>
                    <td><input type="text" name="review_url" value="" class="regular-text code"/><span class="description">The name of the publication that reviewed the release</span>
					</td>
				</tr>
		</table>
		<p class="submit">
                    <input type="submit" name="Submit" class="button-primary" value="Add Review" />
                </p>
		</form>
        </div>
        <?php 
}
Пример #5
0
    /**
     * Displays recent releases widget.
     */
    public function widget($args, $instance)
    {
        global $releases, $release, $artist;
        extract($args);
        $releases = list_recent_releases_blurb('16');
        $artists = list_artists_blurb();
        ?>
	        <?php 
        echo $before_widget;
        ?>
	            <?php 
        echo $before_title . 'Recent Releases' . $after_title;
        ?>
				<div class="textwidget" align="left">
	            <?php 
        while (have_releases()) {
            the_release();
            ?>
	
				<?php 
            $artist = get_artist($release['release_artist']);
            ?>
				<div class="artist_slug">
					<a class="slug" href="<?php 
            echo home_url();
            ?>
/artists/<?php 
            artist_slug();
            ?>
/<?php 
            release_slug();
            ?>
"><img src="<?php 
            release_cover_tiny();
            ?>
" alt="<?php 
            release_title();
            ?>
" /></a>
					<div class="artist_slug_info">
						<ul class="artist_slug_main">
							<li class="artist"><a href="<?php 
            echo home_url();
            ?>
/artists/<?php 
            artist_slug();
            ?>
/"><?php 
            artist_name();
            ?>
</a><h2><a href="<?php 
            echo home_url();
            ?>
/artists/<?php 
            artist_slug();
            ?>
/<?php 
            release_slug();
            ?>
"><?php 
            release_title();
            ?>
</a></h2></li>
						</ul>
						<ul class="artist_slug_meta">
							<li class="more"><a href="<?php 
            echo home_url();
            ?>
/artists/<?php 
            artist_slug();
            ?>
/<?php 
            release_slug();
            ?>
">More</a></li>
							<li class="listen"><a href="javascript:popUp('<?php 
            release_player_link();
            ?>
')">Listen</a></li>
						<?php 
            if (release_physical()) {
                ?>
							<li class="download"><a href="<?php 
                echo home_url();
                ?>
/download/<?php 
                release_slug();
                ?>
/">Free Download</a></li>
							<li class="last buy"><a href="<?php 
                echo home_url();
                ?>
/buy/<?php 
                release_product_id();
                ?>
">Buy</a></li>
						<?php 
            } else {
                ?>
							<li class="last download"><a href="<?php 
                echo home_url();
                ?>
/download/<?php 
                release_slug();
                ?>
/">Free Download</a></li>
						<?php 
            }
            ?>
						</ul>
					</div> <!-- end div.artist_slug_info -->
					<div class="clear"></div>
				</div> <!-- end div.artist_slug -->
				<?php 
        }
        ?>
				<div class="clear"></div>
				<p class="more_link"><a href="<?php 
        echo home_url();
        ?>
/releases/">more releases &rsaquo;</a></p>
			</div>
	        <?php 
        echo $after_widget;
        ?>
	<?php 
    }
Пример #6
0
/**
 * Displays a form used for editing or adding a product to database.
 *
 * @param string $error Error message from the manage_products form.
 * @param bool $related_to_release If true then we are passing from adding a release in general so we set the relation to this automatically
 * @return void
 */
function ribcage_edit_product_form($error = 0, $related_to_release = 0)
{
    global $artist;
    global $release, $releases;
    global $product;
    if (isset($_REQUEST['product'])) {
        $product = get_product($_REQUEST['product']);
    }
    $releases = list_recent_releases_blurb();
    if ($error) {
        echo '<div id="message" class="error"><p><strong>' . $error . '</strong></p></div>';
    }
    ?>
	<div class="wrap">
		<div id="icon-options-general" class="icon32"><br /></div>
		<?php 
    if (isset($_REQUEST['product'])) {
        ?>
		<h2>Editing <?php 
        product_name();
        ?>
</h2>
		<form action="<?php 
        echo home_url();
        ?>
/wp-admin/admin.php?page=manage_products&product=<?php 
        product_id();
        ?>
&ribcage_action=edited" method="post" id="ribcage_edit_artist" name="edit_artist">
		<?php 
    } else {
        ?>
		<h2>Add A Product</h2>
		<form action="<?php 
        echo home_url();
        ?>
/wp-admin/admin.php?page=manage_products&ribcage_action=add" method="post" id="ribcage_edit_artist" name="edit_artist">
		<?php 
    }
    ?>
				<table class="form-table">             
					<tr valign="top">
						<th scope="row"><label for="product_name">Name</label></th> 
						<td>
							<input type="text" value="<?php 
    product_name();
    ?>
" name="product_name" id="product_name" class="regular-text"/>												
						</td> 
					</tr>
					<tr valign="top">
						<th scope="row"><label for="product_name">Price</label></th> 
						<td>
							<input type="text" value="<?php 
    echo $product['product_cost'];
    ?>
" name="product_cost" id="product_cost" class="regular-text"/>												
						</td> 
					</tr>
					<tr valign="top">
						<th scope="row"><label for="product_related_release">Related To Release</label></th> 
						<td>
							<select name="product_related_release" id="product_related_release">
								<option value = "">None</option>
								<?php 
    while (have_releases()) {
        the_release();
        ?>
								<?php 
        $artist['artist_name'] = get_artistname_by_id($release['release_artist']);
        ?>
								<?php 
        if ($release['release_id'] == $product['product_related_release']) {
            ?>
								<option selected value="<?php 
            release_id();
            ?>
"><?php 
            artist_name();
            ?>
 - <?php 
            release_title();
            ?>
</option>
								<?php 
        } else {
            ?>
								<option value="<?php 
            release_id();
            ?>
"><?php 
            artist_name();
            ?>
 - <?php 
            release_title();
            ?>
</option>
								<?php 
        }
        ?>
								<?php 
    }
    ?>
							</select>												
						</td> 
					</tr>
					<tr valign="top">
						<th scope="row"><label for="product_name">Product Description</label></th> 
						<td>
							<textarea rows="10" cols="100" name="product_description" id="product_description" class="regular-text"><?php 
    product_description();
    ?>
</textarea>					
						</td> 
					</tr>
				</table>
				<p class="submit">
					<input type="submit" name="Submit" class="button-primary" value="Save Changes" />
				</p>
		</form>
</div>
	<?php 
}
Пример #7
0
/**
 * Displays a drop down menu of all the artists. 
 *
 * @param string $var_name Optional variable name which the dropdown corresponds to. For example release_artist is the default.
 * @param int $artist_id Optional artist to make selected.
 */
function ribcage_artists_dropdown($var_name = 'release_artist', $artist_id = null)
{
    global $artists, $artist;
    $artists = list_artists_blurb();
    $artist = $artists[$current_artist];
    ?>
	<select name="<?php 
    echo $var_name;
    ?>
" id="<?php 
    echo $var_name;
    ?>
">
	<?php 
    while (have_artists()) {
        the_artist();
        ?>
	<?php 
        if ($artist['artist_id'] == $artist_id) {
            ?>
	<option selected value="<?php 
            artist_id();
            ?>
"><?php 
            artist_name();
            ?>
</option>
	<?php 
        } else {
            ?>
	<option value="<?php 
            artist_id();
            ?>
"><?php 
            artist_name();
            ?>
</option>
	<?php 
        }
        ?>
	<?php 
    }
    ?>
	<?php 
}
Пример #8
0
/**
 * Creates a Twitter intent URL for tweeting about downloading a specific release.
 *
 * @author Alex Andrews <*****@*****.**>
 * @param bool $echo When true we echo the link to the MP3 download.
 * @return string The Twitter URL that pre-sets the tweet we are encouraging.
 */
function release_twitter_promotional_tweet($echo = true)
{
    $artist = '';
    if (artist_has_twitter()) {
        $artist = '@' . artist_twitter_user_name(false);
    } else {
        $artist = artist_name(false);
    }
    $release_link = release_download_short_link(false);
    if (!$release_link) {
        $release_link = release_download_link(false);
    }
    $stream_link = release_stream_short_link(false);
    if (!$stream_link) {
        $stream_link = release_soundcloud_url(false);
    }
    $tweet = urlencode('I just downloaded ' . release_title(false) . ' by ' . $artist . ' at @recordsonribs - Download now ' . $release_link . ', listen now ' . $stream_link);
    $url = 'https://twitter.com/intent/tweet?text=' . $tweet;
    if ($echo) {
        echo $url;
    }
    return $url;
}
Пример #9
0
    /**
     * Adds a widget for recent releases, the quantity of which is defined by an option.
     *
     * @author Alexander Andrews
     **/
    function recent_releases($args)
    {
        global $releases, $release, $artist;
        extract($args);
        $releases = list_recent_releases_blurb('5');
        $artists = list_artists_blurb();
        ?>
	        <?php 
        echo $before_widget;
        ?>
	            <?php 
        echo $before_title . 'Recent Releases' . $after_title;
        ?>
				<div class="textwidget" align="left">
	            <?php 
        while (have_releases()) {
            the_release();
            ?>
	
				<?php 
            $artist = get_artist($release['release_artist']);
            ?>
				<div style="margin-bottom:25px;font-size:12px;"><a href="<?php 
            echo get_option('siteurl');
            ?>
/artists/<?php 
            artist_slug();
            ?>
/<?php 
            release_slug();
            ?>
"><img src="<?php 
            release_cover_tiny();
            ?>
" align="right" style="margin-left: 10px; border: 1px solid #000;" height="65px" width="65px" alt="<?php 
            release_title();
            ?>
" /></a>		
				<a href="<?php 
            echo get_option('siteurl');
            ?>
/artists/<?php 
            artist_slug();
            ?>
/" style="font-size:12px;"><?php 
            artist_name();
            ?>
</a> - <a href="<?php 
            echo get_option('siteurl');
            ?>
/artists/<?php 
            artist_slug();
            ?>
/<?php 
            release_slug();
            ?>
" style="font-size:12px;"><?php 
            release_title();
            ?>
</a><br />
				<div style="font-size:9px;">
				<a href="<?php 
            echo get_option('siteurl');
            ?>
/artists/<?php 
            artist_slug();
            ?>
/<?php 
            release_slug();
            ?>
" style="font-size:11px;color:black;">More</a> - <a href="javascript:popUp('<?php 
            release_player_link();
            ?>
')" style="font-size:11px;color:black;">Listen</a> - <a href="<?php 
            echo get_option('siteurl');
            ?>
/download/<?php 
            release_slug();
            ?>
/" style="font-size:11px;color:black;">Download</a><?php 
            if (release_physical()) {
                ?>
 - <a href="<?php 
                get_option('siteurl');
                ?>
/buy/<?php 
                release_product_id();
                ?>
" style="font-size:11px;color:black;">Buy</a><?php 
            }
            ?>
				</div>
				</div>
				<?php 
        }
        ?>
				<p><a href="<?php 
        echo get_option('siteurl');
        ?>
/releases/">More Releases...</a></p>
			</div>
	        <?php 
        echo $after_widget;
        ?>
	<?php 
    }