I am well underway with converting my website to drupal. The site contains guitar lessons. All content has been imported into drupal. I have lesson and exercise content types. A lesson can contain several exercises, and exercises can contain audio for instance. The way I set it up, I created custom filed for audio. But maybe audio should be content type and then I would use Entity Reference to link audio with exercises, much as I link exercises to lessons?

Now that I have been learning about page manager and selection rules, etc, I am trying to figure out if my chosen structure will support the behaviors I need. For instance, I want to make it so that listening to audio requires a visitor be registered - so in exercise panel/pane non-registered user would see a play audio button that would redirect them to a registration page. Registered users would see the embedded audio player. Right now audio is displayed as a regular field but I am thinking maybe this will cause problems later.

Based on above, can I accomplish what I need as I have it set up now, or do I need to organize/think differently? How would you organize?


  • 2
  • Hi, thi9s post is related but different. This post is about whether I should use audio content type or stick with filefield in my lesson content type. The referenced post is about forcing registration when listening to audio. – Brian Huether Sep 8 '15 at 12:55
  • I don't quite understand why you think that a regular file field will cause problems later. A field is mainly a way to store something in the database. A "field formatter" defines a way to render the field, like a download link or an audio player. If you can find a file field formatter that suits your need, I thing you should be fine. – marcvangend Sep 17 '15 at 14:48
  • Hi, for now I am accomplishing the changing of the format in preprocess_field. – Brian Huether Sep 17 '15 at 15:15

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.