Giter Club home page Giter Club logo

audiotheme's Introduction

AudioTheme

Easily manage and display discography, gigs, and videos in WordPress. Find out more and browse our WordPress music themes at AudioTheme.com.

Requires WordPress 4.6+. Licensed under the GPL-2.0+.

Getting Started

Clone the repo in your plugins folder:

git clone https://github.com/audiotheme/audiotheme.git --recursive
cd audiotheme

Install dependencies with Composer:

composer install

Install Grunt modules and run the default task:

npm install
grunt

Activate the plugin in WordPress.

That's it!

audiotheme's People

Contributors

bradyvercher avatar lukemcdonald avatar sawyerh avatar vonday avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

audiotheme's Issues

Use Relative Units of Measurements Instead of Fixed

I see that you are mixing fixed units of measurements (pixels) with relative units of measurements (em or percent) and am suggesting you only use relative. That way, the framework stylesheet simply inherits the theme’s type setting.

Instead of something like this

.audiotheme-archive-intro {
    margin: 0 0 30px 0;
    line-height: 1.5;
}

.audiotheme-archive-title {
    margin: 0 0 1.5em 0;
    font-size: 24px;
    font-weight: normal;
}

I recommend this

.audiotheme-archive-intro {
    margin: 0 0 1.875em 0;
    line-height: 1.5;
}

.audiotheme-archive-title {
    margin: 0 0 1.5em 0;
    font-size: 1.5em;
    font-weight: normal;
}

Now you don't have to concern yourself with whether or not the body is left at the default 16px sizing or not.

Thoughts?

Tracklist enhancements

I would like to see a separation of Track # and Play/Pause button in a track list.

  1. Track # should always be visible.
  2. Play/Pause button should only be shown when Javascript is available.
  3. Play button should always be shown when there is a playable file and JS available (not only onHover) as a separate button --- that could improve accessibility and keyboard navigation.
  4. If track has a duration set, it should always be shown ----- it is currently always -:-- or hidden entirely when there is no playable file.

Templates: AudioTheme Wrapper

What do you think about wrapping all the default templates in an audiotheme wrapper? The most common layout issue I'm seeing is the content butting up against it's container's edge.

no-padding

If we wrapped everything in a wrapper, similiar to woocommerce, we could quickly rectify the issue with a bit of CSS.

.audiotheme { padding: 40px; }

padding

This might be helpful when providing support to customers who are experiencing this issue.

Videos in Tag Archives

The video CPT uses the standard Tags taxonomy. If a video is tagged, it does not show in the tag archives. There are a few methods online about adding CPT's to the tags archive with pre_get_posts, however, I'm wondering if this can be done automatically via the Framework or if each theme will need to add this functionality individually.

Archive Featured Image Support

Any reason why archive pages couldn't have a Featured Image option? I'm working on a Blocco implementation where this would come in useful. Maybe it's possible to add this functionality via a filter?

Gigs: Upcoming and Past gig counts in admin

I'm showing incorrect Gig counts for Upcoming and Past gigs when viewing the Gigs list in the admin. I've created a short screencast below to better explain what I'm seeing.

http://www.screenr.com/AfNH

I believe the issue can be recreated by importing all content from both the Americanuara and Shaken Encore demo's via demo.audiotheme.com.

Update AudioTheme Archive default column value when switching themes

This is a small bug that can potentially be confusing, or at least it was for me initially when troubleshooting.

When switching themes, if an AudioTheme archive had a Column number set, that number is carried over to the new theme. However, the new theme may not have styles implemented to support that number of columns, which will break the layout visually. Also, the number of columns shown on the archive page setting may not reflect the number of columns shown on the front end.

For example, Nowell supports 2-3 columns for the Archive pages. Promenade supports 3-5. If you were using Nowell and had the number of columns was set to 2, when making the switch to Promenade, things may not display correctly.

In this scenario, Promenade will also show 3 columns for the archive page column setting, but will actually be showing 2 columns on the front end. Promenade sets a default value of 3 within the page templates using get_audiotheme_archive_meta( 'columns', 3 ), which the theme should default to if possible;

Maybe we can make these archive settings theme specific?

Importing Records and Tracks

I'm setting up a theme demo and wanted to quickly add the Records setup from a different theme demo. When doing this, it appears there are some issues with importing Records and Tracks. By default, WordPress only allows you to export all your site content or one particular Post Type at a time. I think this causes the issue as you can only upload the exported Records and Tracks .xml file one at a time.

Is it possible to modify the export functionality of WordPress to only show Records and have it include the Tracks?

Allow widget titles to be modifed in the new templates

The Recent Posts widget allows the widget title to be customized, but the other widgets prepend it automatically. We'll need to consider backwards compatibility for themes using the output filter, but the templates are new enough that we should be able to do this without much issue.

Venue Featured Image Support

Would it be a good idea to allow the featured image to be set for a Venue? I'm thinking an artist or label could set a featured image of what the venue looked like. It might be useful to view the Venues archive page where users could see a list of all available venues and select the one they are most interested in. In this case, a Featured Image would make things look a little snazzier.

Single Gig Title Class

We should consider adding entry-title class to the single Gig h1 tag as it's a common class name. I noticed we had this for Single Record and Video titles.

Default scripts and styles

The default scripts and styles were originally only supposed to be enqueued when the default templates were loaded from the framework. When templates are copied to the theme folder, then the theme should explicitly include them. I have a fix ready to go for the framework, but just want to open this for discussion first.

I believe it will require a minor update to Blocco to enqueue the default script and the line dequeuing the default style can be removed.

Record Type Archives?

I'm assuming Record types (albums, single) are similar to Post Formats in terms of functionality and usage. It would be great if their was an archive page for these that would default to the record archive. Post formats archives can be viewed via /type/format/. It would be nice to access record types via /record_slug/record_type/; e.g. /music/album/.

Add Record Types

From a support thread:

Is it possible to add more categories to the discography, like, say "compilations, guest artist, with bands, solo" as opposed to just singles and albums? I ask because I'm a composer and play in bands, but also have other people releasing CDs with my pieces on them.

I figured I would post this here so we know what users are looking for, not that these ideas should be implemented.

Record and video widgets display global post data in some cases

If a record or video widget is added to a sidebar without selecting a record or video, the widget uses global post data instead. This should really only be possible if the discography or video library don't have any published posts.

The widgets should most likely only display any output if a post has been selected.

Make it easier to discover archives and how they work

Without reading the documentation, it's difficult for new users to understand how the archives for Discography, Gigs, and Videos work.

Menus Screen

When a user first visits the Menus screen, WordPress runs wp_initial_nav_menu_meta_boxes(), which hides anything that doesn't have one of the following IDs: add-page, add-post, add-custom-links, add-category.

On a brand new install, only add-post_tag will be hidden by default.

If a user activates AudioTheme before ever visiting the Menus screen, all of the AudioTheme options will be hidden by default. Otherwise, everything will be visible.

If the Archives nav menu meta box is hidden, we should display a dismissible notice on the Menus screen to let users know how to enable it.

Improve Discovery

Some ideas for improving discovery:

  • Display a dismissable notice on the All Posts screen about Archives and how to add them to a menu. This should probably only happen after at least one post has been published.
  • Display a dismissible notice on the Archive screen with information on how to add it to a menu.

Multi-Site Network Activation

When network activating the plugin, I get an error message when saving the License key; "Oops, there was an error."

[screenshot removed]

It appears the option saves and my account on audiotheme.com reflects the changes.

[screenshot removed]

One other small issue with this same setting, is if I empty the license input option, and then save changes, I get the following PHP warnings:

Warning: Invalid argument supplied for foreach() in .../plugins/audiotheme/admin/includes/settings-screens.php on line 355

Warning: Invalid argument supplied for foreach() in .../plugins/audiotheme/admin/includes/settings-screens.php on line 355

Warning: Invalid argument supplied for foreach() in .../plugins/audiotheme/admin/includes/settings-screens.php on line 355

Warning: Cannot modify header information - headers already sent by (output started at .../plugins/audiotheme/admin/includes/settings-screens.php:355) in .../wp-includes/pluggable.php on line 875

Create new widgets for listing videos and records

Using a custom recent posts widget has worked fine, but it can be a little confusing for beginners. Creating new widgets for listing videos and records should make them more discoverable and would provide more control over the markup in themes.

Archive Class

It would be nice to have a filterable function similar to post_class() for AudioTheme archive pages; maybe audiotheme_archive_class().

Archive menu item duplication in WP Menus

The WP Menus Archive meta box gets duplicated menu options when importing data from another install that previously had AudioTheme activated. It might help to see the result by reproducing the steps below (multi-site install).

  1. Create a new site
  2. Activate the AudioTheme Framework Plugin
  3. Import data from an AudioTheme demo; I used Americanuara's demo content (file).

You'll notice in the Archive meta box of Appearance > Menus there are six menu items:

  • Videos
  • Records
  • Gigs
  • Videos
  • Music
  • Shows

You'll also notice in the Primary menu, the Music, Shows, and Videos menu items will 404. This is because the slugs are indexed with a -2 and point to archive pages that don't exist.

Hopefully that explanation makes some sort of sense. You should be able to reproduce the issue with the steps provided. If not, I'll double check the steps as I went of the top of my head.

Add Track and Upload MP3 buttons issues

The "Add Track" button in the Tracks section of the Record edit screen and the "Upload MP3" button in the Track Details section of the Track edit screen do not work with WP 3.9 beta 3.

In a previous conversation, the issue on the Record screen was because Plupload changed their API and WP updated code that interacted with it.

Warnings in audiotheme updater class.

A customer of ours is reporting an issue where they are seeing warnings in their WP admin:

Warning: Attempt to modify property of non-object in /home/liliana/public_html/wp-content/plugins/audiotheme/admin/includes/class-audiotheme-updater.php on line 107

Warning: array_search() expects parameter 2 to be array, null given in /home/liliana/public_html/wp-content/plugins/audiotheme/admin/includes/class-audiotheme-updater.php on line 108

Warning: Attempt to modify property of non-object in /home/liliana/public_html/wp-content/plugins/audiotheme/admin/includes/class-audiotheme-updater.php on line 108

Warning: Invalid argument supplied for foreach() in /home/liliana/public_html/wp-includes/update.php on line 275

Add a filter for the timezone dropdown

The timezone dropdown currently filters the core dropdown and removes manual offsets via regex, so the output isn't all that useful, but some developers have requested the ability to further restrict the options based on their region.

PHP Fatal Error trying to load LESS files

I'm working on integrating AudioTheme with Blocco. I've been using Americanuara as a reference of how everything is all hooked up. I'm currently getting the following warning and error:

PHP Warning: require_once(lessc/lessc.inc.php): failed to open stream: No such file or directory in ..//wp-content/plugins/audiotheme/includes/lib/wp-less/wp-less.php on line 18

PHP Fatal error: require_once(): Failed opening required 'lessc/lessc.inc.php' (include_path='.:/Applications/MAMP/bin/php/php5.4.4/lib/php') in ../wp-content/plugins/audiotheme/includes/lib/wp-less/wp-less.php on line 18

Ideas?

Add a conditional template tag for displaying the year in a gig list

Most (if not all) of our themes are keeping track of the year in a gig list so a heading can be output when it changes. We can probably introduce a conditional to manage that better.

<?php if ( has_audiotheme_gig_year_changed() ) : ?>
    <h2><?php echo get_audiotheme_gig_year( 'Y' ); ?></h2>
<?php endif; ?>

Add filters to on_record_save function

It would be useful if filters existed within the on_record_save function add additional fields to the save routine array. The exact line would be:

// Whitelisted fields.
$fields = array( 'release_year', 'artist', 'genre' );

I had an instance when I had to add record label and a few other variables and it would be useful to be able to add this via a filter.

WPML Integration

WPML namespaces permalinks with the language, which doesn't work with our custom permalink structures. We'll need to get a copy to test this out and see what it would take to integrate properly.

Use mp3 metadata for length in track lists

WordPress 3.6 included the ID3 library and some methods for reading and saving mp3 metadata. I'm not sure if WordPress automatically extracts those tags when an mp3 is uploaded or not, but if so, we should do it for existing mp3s.

The length meta can be included in the AudiothemeTracklist object so track lengths can be shown instead of '0:00'.

Date-based and ID-based gig permalinks conflict

If a title is entered for a gig, the ID is used as its slug. When the ID is 4 digits, it conflicts with date-based archives, which start with a year. For example:

/shows/3456/
/shows/2014/

There's no way to tell whether 2014 is an ID or a year.

Considering we haven't exposed functionality for the date-based archives yet, we may need to namespace them when we do. Or we can consider prefixing default gig slugs.

I'm currently leaning towards the latter. Then the first permalink above would be something like this instead:

/shows/gig-3456/

AudioTheme Unit Test Data

At some point, it would be beneficial to put together a sample unit test file to quickly add sample content to the AudioTheme features. Often times, users want to use the sample content to get an idea of how things are setup in addition to get a quick glimpse of the theme in action. I'm not sure if it would be beneficial to package this with the framework or even link to it for quick download.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.