Hello,
I'm currently writing an application that works with modules. The module part is all okay, but I am not entirely clear on what would be the best approach to display multiple modules on a same page. The way common MVC like systems could work is that an URL like "site.com/article/full/18543/how-to-lose-weight" (I'm not implying anything about you :)) -> would launch "article" -module and call its "full" -method with params "18543" and "how-to-lose-weight".
However, I'm writing an application where I need to have multiple modules on the same page. Currently, I let the user to create, delete and modify pages. He has an interface (a GUI) to decide how a page should look like. For example, he can name page "article" and make it to look like a two-column layout where he wants to have a shoutbox on the rightside in a sidebar and articles on the main body (the larger column). Now, how would I go for constructing the URL for something like that? I would like to keep my current page system, but I find it a bit hard to come up with a solution. You see, if the URL would load the "article" module, then the shoutbox wouldn't be loaded. So, I guess the URL is a reference to a DB entry containing the info about which modules to load? That's my current thought. So, after the user has created a page "article" and put two modules into the "article" -page (which is a two-column layout), then the URL "site.com/article/full/18543/how-to-lose-weight" would load the "article" -page, which tells the application the needed modules to load.
This leads me to two questions/problems. First, would the rest of the URL "/full/18543/how-to-lose-weight" go to the "article" -module or to the "shoutbox" -module? How do I determine that? The second problem is if this "shoutbox" -module has a link to register an account rather than posting as an anonymous, where will this link take the user to?
I'm basically trying to figure out a good way to build a relationship between different pages, modules and URLs.
Currently I have: Skins that handle the appearence and the possible positions where you can place modules. Pages that tell which modules are in which "page" and where they are positioned (in a skin).
And now I need to determine the way I work with URLs. Any help is welcome. :)
FYI: I'm using PHP and MySQL if that matters...