Hi all,
today I actually received a question about my Summer of Code project, so I thought I'd bring any discussion into the public, so that more people can get involved
First of all, what is the project Extending the Nested Sets Model with "Hardlinked Nested Sets" all about?As some of you may know, the Nested Sets Model is a data model for organizing data in tree structures of unlimited depth. This model can be used for almost everything which can be organized in hierarchical trees. To give an example, "Categories" are almost always a candidate for this. But it applies to many more things. Currently, there's another Joomla! Summer of Code Project, the
Joomla 1.5 Forum Component. I'm in contact with Niels, and his project will use the Nested Sets Model to save the structure of Forum Boards as well as Forum threads.
Now I called my project 'Extending the Nested Sets Model with "
Hardlinked Nested Sets"', because I want to work on one very specialized part of this broad topic. I want to make it possible to put subtrees multiple times into the whole tree. This allows for example to copy a category into many different parent categories, and when a content item (articles, weblinks, newsfeeds, whatever...) is added to one of these categories, it will automatically appear in the other categories as well. Think of it like hardlinked filesystem paths under operating systems which support it. (For the more technical oriented reader, I named it hardlinked instead of softlinked, because I'm not setting up pointers like softlinks, as they would need recursive processing. That can be avoided by using my proposed model.)
So what will be the outcome of this project? Does Joomla! support unlimited nested categories with this?I know that this feature has been requested many many times, and I also want to have it. However, we are not there yet... I will provide libraries which allow dealing with the Nested Set Data Structure. These libraries will be fully unit tested (actually, I use test-driven-development, which means that I write automated tests for the libraries first, while they are not even implemented. Only after that, I write the actual library code). So by the end of this years Summer of Code, we should have some very stable libraries for dealing with Nested Sets, and Hardlinked Nested Sets.
That means that I will not yet implement anything like a new category manager. When the code I produce will be implemented into Joomla! is a decision of the whole development workgroup, and of our Coordinator and our Lead Developers especially. I'm currently writing the libraries for PHP5 only, but it could be that they can be made compatible with PHP4 quite easily. So it *could* be that they end up in 1.6 or 1.7, to be used by 3PD developers. But it could also happen that they will be integrated not before 2.0. I can't give you an answer about that yet, though I wish to see them in one of the 1.x releases of course

From there on, the libraries can be used for almost everything which can be organized in a hierarchical structure.
What about the technical details?I've put up my
proposal for the SoC project on the JoomlaCode documents section some time ago. You can download it as a PDF document.
Questions? Suggestions? Comments?I'm open for questions and suggestions, so if you would like to know anything about the project, or have anything to add, just reply to this thread

Enno