I've been using jinzora(http://jinzora.com) at home for my mp3 managing and consumption needs and some of it's quirks almost have me wanting to get rid of it.
it seems that drupal would make an excellent foundation on which to build something similair on and a quick search of the modules around here confirm that some wor has been done from specializing flexinode to a creating a module for this purpose. However, it doesn't have all the features that I like in jinzora. So, I'm wondering whether there is development going on in this area that I could use/contribute to, or just go it alone and write my own.
Here's the features I want/need(not necessarily complete).
1: configure a list of directories on the server containing mp3s
2: Periodically read id3 information from mp3s contained in the directory list and populate the database or remove database entries that no longer exist on the disk(jinzora does not do this).
3: List of artists, albums,songs
4: artist view showing all albums and a bit of information about the artist (play all albums, order by year released if available)
5: album view listing songs in order by sequence play album, play individual songs must work properly on albums with various artists as well(something jinzora does not do)
6: song view showing all id3 tag information available option to play
7: playlist creation, playlists saved/shared etc...
I'm using Drupal for a couple of month now and since I want to use it for all my further projects I'd really like to be able to write my modules using some basic MVC architecture.
So here is how I want to do it: I want to have a module called 'mvc' which will include my basic classes for Model's, Controller's and Views and I want to have a new Folder in modules called mvc with the following sub-folders:
mvc/models
mvc/controllers
mvc/views
Whenever a page is requested and no page is found I want to make drupal call a function of my mvc modules which is going to look for a controller with the name of the first argument. So for example if somebody calls www.my-site.com/projects/add and drupal doesn't have a path for that registered I want my mvc module to check if there is a file called mvc/controllers/projects.php and if yes include that file (+ models, views) and check if there is a class called mvc_projects and if yes initalize it and call a function in it passing the other arguments (here: 'add'). Then the controller will use a switch statement to figure out the kind of request and after that calling various functions on the model and finally call a function in the view class in order to display the entire thing.
So my question basically is:
- How do I tell drupal to make a function of my module the default 'page not found' callback?
For everybody interested in the mvc the module itself here is what I want to accomplish: