Details
-
Type:
Task
-
Status:
Open
-
Priority:
Minor
-
Resolution: Unresolved
-
Affects Version/s: 1.9
-
Fix Version/s: None
-
Component/s: Block: My courses
-
Labels:None
-
Affected Branches:MOODLE_19_STABLE
Description
The history between Julian Ridden's, Rosario Carco's and Nate Baxley's blocks for site navigation has become a little confusion. I would like to create a docs page in which each of the involved parties can discuss the features, differences, and history of the development of these two blocks. That way we can agree upon features and outlining what is distinctive about these blocks as well as what collaboration might be feasible. Peace - Anthony
Attachments
-
- navigation2x.gif
- 11 kB
- 14/Jul/10 10:26 PM
Issue Links
| This issue has been marked as being related by: | ||||
| CONTRIB-2032 | My Courses block contribution |
|
|
|
Activity
- All
- Comments
- History
- Activity
- Source
- Test Sessions
I'm happy to work with anyone to improve navigation. To avoid confusion, here is the plugin link for my module. My block is similarly named (Sorry
) but the code is not based on any other block. I haven't looked at the other two blocks, but will try to look at them this week. If the other authors can post links to their blocks, it might help avoid confusion about which versions are the latest.
Nate
I have only little time these days. The siteNavigation Block is here: http://moodle.org/mod/forum/discuss.php?d=103703#p545899 and the myCourses Block is here: http://moodle.org/mod/forum/discuss.php?d=67494#p544820
As I already announced in both forum threads, I am pondering the option to merge those two blocks into one, with user config options, so that the user can decide on the fly what has to be displayed: siteNavigation (by Category or with all courses), myCourses (flat list or hierarchical view with nested folders, and so on).
This would free up some place on each Course-Page, as only one multifunctional Block could be displayed instead of actually two. - Rosario
OK - Let me see if I can get this straight.
The myCourses block (http://moodle.org/mod/data/view.php?d=13&rid=744&filter=1) was originally written by Julian Ridden. The code for Julian's block is not on Moodle's CVS server but can be downloaded at: http://moodle.org/mod/data/view.php?d=13&rid=744&filter=1. Is Julian's actively maintaining his myCourses block? Should we add this to the Moodle CVS server? If so, what should we call it? I think renaming it would be best. Even though Julian's block was first added to the M&P database, Nate's was the first one to the CVS server and CVS is a bit less forgiving.
Nate came along later and independently wrote another myCourses 2 block (http://moodle.org/mod/data/view.php?d=13&rid=2178&filter=1) which he added to Moodle's CVS server so that it can be downloaded at: http://download.moodle.org/download.php/plugins/blocks/my_courses.zip. Nate is continuing to work on supporting his code.
Rosario began working with Nate's version of the myCourses block by renaming it to SiteNavigation. The site navigation block does not have an entry in the Modules and Plugins database and is not on the Moodle CVS server. Rosario continues to support this and is working on possibly merging the functionality of both blocks into one.
Rosario it would probably be helpful if you went ahead and reviewed http://docs.moodle.org/en/Development:Guidelines_for_contributed_code and added the siteNavigation block - although I would change the name to all lower case - to Moodle's CVS server and created an entry in the M&P database. Once Rosario finishes merging the two blocks, my hope would be that all three of you might be able to work together on maintaining the SiteNavigation block. Let me know any questions, concerns, ideas, etc. you may have.
Peace - Anthony
Gee, to think that such a little block would come such a long way. I always feel I have been unfairly credited with it's creation. The MyCourses block was originally prt of the FN_Moodle project. I just forked the code back out and adjusted it to work in a standard Moodle.
Since then many have added/changed the code base and yes, we now have a confusing situation.
I would love to see a "real" developer fix up my forked block and put it on CVS for others to use. Now, what has confused things is that rather than just being properly ported, others have been making their own versions with their own ideas added. This has been brilliant and brought some nice functionality, but as noted in the ticket description, has caused a fair bit of confusion.
you have my complete support when it comes to merging these codes (or replacing) so we can have one block that performs this task rather than several.
Julian
Julian - Thanks for clarifying how the code that you submitted came to be. I think our best hopes of integration are with Rosario's SiteNavigation code so hopefully we can get folks working collaboratively on that. At least I feel like I have a better understanding of what happened and where things are and perhaps even some idea of how to move things forward. I appreciate your willingness to collaborate as needed. We'll keep you posted. Peace - Anthony
p.s. - Have you met Topher?
You know, I never saw this bug or these blocks. What's the status of these now in relation the new navigation in 2.0?
Martin - I am not sure we ever resolved anything. I'll have to give it some thought and see how things are handled in Moodle 2.0. I'm not sure if Rosario and Nate are still actively working on these projects or not as they did not comment on the issue. I'll go ahead and put this back on my active queue to investigate but it will likely be a couple of weeks before I get back to it. In the meantime, if Rosario or Nate have insights and wish to comment that would be greatly appreciated and help reduce the amount of mystery and confusion. Peace - Anthony
I have to correct a little detail:
>>Rosario began working with Nate's version of the myCourses
NO, as I explained in the mentioned myCourses Thread, I first resumed JULIAN's work. There were some old code relicts and things I could not understand any more (because the code had wandered through too many hands) so I decided to download the oldest possible original of the myCourses Block that was used in the First Nation School edition of Moodle. I tried to understand logic and commented a lot to make it understandable also for other programmers and I just added and modified what was necessary to get the block working in Moodle 1.9.x
As I continue to explain in the mentioned threads, I was looking for a means to show all the categories and courses to not logged in users because at our University we want everybody to be able to browse through all categories/courses we offer. I wanted to realize a siteNavigation on the central part of the FrontPage, but I only found the code of Kevin Treussier (have a look here: https://moodle.fhnw.ch/moodleTest/). Unfortunately his code is not a good solution for medium to big scale sites with a lot of nested categories and courses because his menu expands horizontally and not vertically. So I continued to search for code and accidentally found JULIAN's thread and myCourses Block.
Now, as I mentioned, I took the best original I could find of FN code, modified and commented it to work fine on Moodle 1.9x without modifying it's original functionality and reimplementing also the features others had pointed out in the myCourses Thread.
And only then I started reworking the code to obtain the siteNavigation Block. Besides some minor problems with multilanguage strings in fullname and shortname of the courses and category-names, both blocks work fine.
I discovered a performance issue only late in November 2009: the original code does a lot of sql-queries to build up the hierarchical tree of categories and courses in recursive and/or loops with nested function calls which yield more than 1000 queries and if you use both blocks myCourses and siteNavigation on the same page you get about 1500 sql-queries on our site with many categories and 2600 courses.
For the moment I am still lacking time because I have to migrate my server onto a VMWare Virtual Machine which resulted in a complete mess last September.
But as soon as I am freed of this I could merge myCourses and siteNavigation into one code-base as already mentioned and look for a better logic to avoid nested sql-queries and maybe this will also solve another issue I mentioned in the siteNavigation Block: if you have more than 500 courses building up the hierarchical tree, the page takes too long to be rendered. That's why I added a config option to include only categories but no courses for large sites like ours. I always thought it was the HTML-Tree-Menu Library on which the code is built to be slow to render, but now I think it could also be the nested and recursive sql-queries. On our site I get 1000 queries with siteNavigation set to show only categories and 3000 if it has to display also the 2600 courses in them. So maybe resolving the queries will solve every problem.
So if you could give me a query that yields all categories and all courses contained in them or maybe one query to find all categories and another one to find all courses in them, I could loop over the category-set and build up hierarchical tree of categories, subcategories and courses, like siteNavigation already does with poor performance due to the recursive sql-queries. Assuming, this could be solved with one or two queries whilst on my site 1000 are needed for the cat-tree and 3000 for cat-tree with all courses in them. This would help me a lot. And if it can not be done, if building the tree needs recursive sql-queries then I would know that the actual code can be left as it is and I could concentrate fully on merging both blocks.
I commented about site navigation in Moodle 2 in a Thread started by Martin (http://moodle.org/mod/forum/discuss.php?d=116936#p517344). So Moodle 2 should at least offer three things:
a) the possibility to navigate the whole site for NOT LOGGED IN people. Like in my siteNavigation this should be an Admin config option to toggle on and off.
b) the possibility to put the site navigation onto every page, I guess as Block, AND also as FrontPage Item, where at the moment you can only choose to show a list of categories and/or a list of courses.
c) the navigation should also expand to Mnet-Servers, if the Admin decides to do so
Of course the site navigation should not be a flat list of categories and/or courses like it was until now. It should be the nice hierarchical tree with nested folders my siteNavigation Block offers already.
And last thing: I do not know the plans for segmenting large sites like Universities in Moodle 2, whether Mnet-Servers should be used, whether more than one moodle-instance could be used or whether in one Moodle instance a multi-site setup could be realized, i.e. ONE Moodle but instead of having a lot of top categories, we would have as many sites as a University needs (have a look on my site https://moodle.fhnw.ch, where every top category represents ONE University which is indipendent from all others at every level). Having sites at the top level would give us the possibility of having separate Admins, separate Themes, separate Databases for each site, and so on, but keeping all on one server, which reduces resources to administer, upgrade, etc.
Rosario
I haven't looked at the navigation changes in 2.0. We continue to use the module I created here at University of Illinois, but I haven't made many changes since we released it. I'm happy to help out if I can, but I'm not really familiar with the other modules beyond looking them over a bit back in July. Does 2.0 offer similar functionality that could replace these modules?
Nate and Rosario - Thank you both for the follow up. I will try to wrap my head around this after I finish up this week long intensive course and get through the iMoot. Peace - Anthony
Hello,
We created the first version of myCourses a few years back as part of the MoodleFN Project (www.moodlefn.knet.ca) for Moodle 1.8. Unfortunately, our attention turned elsewhere (i.e. myMenu block) and we did not update this block when 1.9 came around. Glad to see that Julian and others were able to adopt and make further use of it... I wasn't aware that this block had made so many rounds!
More recently, our teachers requested that we bring this block back and so after searching Moodle.org, I came across this thread as well as CONTRIB-2030 (http://tracker.moodle.org/browse/CONTRIB-2032). So, at this point, I'm just trying to figure out where this block is at (what's the latest version? who's working on it?) and if it would be possible to join in to fix any outstanding issues.
Thanks,
Fernando
As you can see in both threads where I uploaded and commented my versions of myCourses and siteNavigation, the latest versions still work on my test-sites on Moodle 1.9.9+
And the points to think about are two:
first, I began to ponder whether to merge myCourses and siteNavigation back into one block with according user-switches instead of the actual Admin-Config-Options. This would allow the users and teachers to display courses, categories at their will and on the fly either of the whole site, as siteNavigation does,s and/or their own courses only, as myCourses originally did and still does.
second, on large sites the nested recursive and looping sql-queries AND the HTML-Tree library take too long to render and too many queries, tipycally 1000 to show only categories on our site.
So if we wanted to join our forces and mostly time at our disposal, I could merge both blocks into one, whilst someone should have a look at the looping and recursive sql-queries and someone else should have an eye on the HTML-Tree library which maybe takes more time to render the DHTML-Code than the 1000 queries on our site. We should find the bottleneck which became obvious on large sites like ours. See also my comments in the two mentioned threads in my first comment at the top.
Rosario - It seems that you are the one taking the lead on this for both sitenavigation and mycourses. Would it be OK for me to simply assign this issue to you as you seem to have a plan for bringing things together. Do not hesitate to let me know if I need to do anything. I've been working on catching up on things and am happy to do whatever you might think would be helpful. Peace - Anthony
My appologies. Just got back from some time at the cottage. I am still interested in helping out. I will catch up on comments and post some feedback later today. Thx.
Ok, I had a look at the navigation Block code of Moodle 2.x
It seems a lot of YUI and a special renderer.php is used to produce the output. I can only guess that this could be faster than the HTML-TreeMenu Library we use in myCourses and siteNavigation.
The look and feel of this navigation block is very smart and neat. So I would suggest to try an imitation of it. I guess again, that a backport is not possible due to the many underlying classes and libraries, so our best bet will still be to:
1) redesign/reengineer the myCourses and siteNavigation block as I already described here: http://moodle.org/mod/forum/discuss.php?d=103703#p671235
2) this first version will rughly be a merge of my actual myCourses and siteNavigation blocks with underlying HTML-TreeMenu and hence be a good block for small sites
3) a major revision would then investigate on possibilities to render the whole siteNavigation with many nested categories and many many courses >500. A heck I already thougth of would be not to load the tree for every course page and every user when he navigates to it, but doing it by a cron-job e.g. every 30 Minutes. So the block would only load and display a fast file which is rendered only once every 30 Minutes for all users and course-pages. Such a cron job could be scheduled like my uploaduserandcourses_silently.php script to simply render the content of the siteNavigation as a tree of categories including or excluding the courses as set per admin config option. Again, per admin config option could be decided whether the block loads its content from a file or renders it on the fly.
Expect a merged prototype in the next 2 weeks. I attach also a screenshot of the navigation Block of Moodle 2.x so as to give an idea of what we are aiming at.
Navigation Block as can be found here: http://qa.moodle.net/course/view.php?id=2
Hi Rosario (and all)
I'm inclined to stick with a course list (ie. myCourses) for the sake of simplicity (also because Moodle 2.0 seems to cover the navigation part fairly well), but I'm open to merging the functionality of both. If we go with the merge, I think we should include a toggle to enable/disable navigation functions. Personally, I'm mostly interesting in a format that shows a collapsible tree with colour-coded icons.
I'm a design-oriented kinda guy, so I'll put together a mock-up based on the main functions of the existing blocks and the various forum posts. We can then then have a concrete discussion about what to keep, not to keep and how to go about doing it. Even if we don't end up using the mock-up, I think it could help plan a way forward. How does that sound?
Fernando
>>format that shows a collapsible tree with colour-coded icons
Of course. Give me a couple of days and you will be able to implement all the fancy stylish things directly on the merged prototype.
>>I'm a design-oriented
That's perfect, I like style but I am not capable, so this will be your job ![]()
Rosaio, do you mean to say that you are already working on the merged prototype? Might be best to do some more planning first. I should have the mockups ready later today.
Can you tell me the latest version numbers for your myCourses and SiteNativation blocks? I want to make sure that I am looking at the latest versions before putting together the mock-up. Thanks
Yes, already finished. With a little luck we'll be done in the next 2 hours.
As I promised, I will upload Versions 1.9.07 of both blocks into the corresponding threads first, because I discovered the REAL Bug that made some links break when special chars were used in course/category names/titles.
After that follows the version 1.9.08 which is the prototype of our new merged navigation block.
Planning has then to be done really because it seems that even the new navigation block in Moodle 2.x offers only a flat list of courses like the built in course_list (courses) Block does, which is not acceptable for medium and large scale sites. See my last post in the siteNavigation thread.
Ok. I'll wait until you're done before going any further.
We might also want to start thinking about ways to bring some clarity between the various versions of this block. Here's a few suggestions/questions:
1. What do you think about giving this new merged version a new name (something like mycourses-m) so that it doesn't get confused with all the other myCourses blocks?
2. Anthony suggested the creation of a myCourses doc page. I'd be happy to help put this together.
3. I wonder if we could get a "myCourses" forum created (in the Moodle Contributed Code forums area) and then move the various discussion threads there.
4. When it's ready, we should put this in the Modules and Plug-ins repository.
Sorry, I wa stuck with a feature that did not continue to work as it was intended in the myCourses block. I investigated and corrected it first. You will find this last version here in its thread:
http://moodle.org/mod/forum/discuss.php?d=67494
Now I will apply these corrections as needed in the final siteNavigation block version and release it.
Unfortunately I will be out of office for a couple of weeks now but I will do the same corrections also in the merged version and release it as soon as possible.
No worries Rosario, I trust this issue is in good hands and appreciate your work on it as you can. Peace - Anthony
Rosario & Anthony,
Any chance we can get this on the Modules and Plugins page soon? Sorry to be the continual pest but this has been evolving in the forums for a long time and really should be in the Modules and Plugins area where people can access specific versions (especially the latest) easily.
Another reason is that I'd really like to add a screen shot to my book from the Modules and Plugins page ![]()
Jason
Sorry, but I got stuck again with siteNavigation on our Moodle which now has more than 3'300 courses in about 900 course_categories. It yields more than 4'000 DB queries and more than 5 seconds to render a course or FrontPage containing it. The same applies for Moodle-Admins using the myCourses block, as the code is the same at its core. So Anthony and I are looking for a better solution. If we do not find any before christmas, I will freeze myCourses and siteNavigation at its 1.9.07 version, so that we can upload it - as is - in the modules section, well documented, that it has its limits on medium to large scale sites.
Jason - I'm leaving this in Rosario's hands as I'm swamped with other projects. Peace - Anthony
Anthony,
No problem, I understand.
Rosario,
I don't have a large a site so I don't see the performance hit that you are mentioning. I have a little over 600 courses and I also have the MyCourses block set so that it only shows me courses that I'm enrolled in so that when I log in as admin it doesn't have to return the entire tree. Then when I want to see all courses I use the toggle colored squares to get all of them into the tree. There is a little delay (maybe a second at most) when I do that but it isn't significant enough for me to worry about. We also don't have super high traffic on our site in terms of students logging in (maybe 300 logins at day at most and those are staggered throughout the day) so I don't think I'm adversely affecting students either.
At any rate, I'm sure others with larger sites might experience problems so I understand your desire to keep working with it. I'll wait anxiously to see this in Modules and Plugins.
In the meantime, if there is anything I can do to help (testing, etc.) please let me know.
Jason
Please note that toggling is only toggling what the block is going to display. Behind the scenes, unfortunately, since the capabilities and roles concept was introduced, when you log in as admin you are allowed to see ALL courses, so the original code goes through the process of retrieving the data from the database even if you toggle off. One reason more to reengineer this outdated code.
Rosario - Are you getting any ideas from how this was accomplished in Moodle 2.0 so that it would not be a huge performance issue - I believe part of it had to do with caching some of the results. The navigation block is pretty slick if you have not seen it there may be some ideas that you can use. Peace - Anthony
Rosario,
Thanks for that information. I was just assuming that the call to retrieve all of the courses wasn't performed until I clicked on the toggle button. And it seemed, from a performance perspective, that was the case but maybe I was just wanting it to appear that way.
I'm not familiar with how this is done in 2.0 so maybe there are some clues there as Anthony has mentioned.
Also, would modifying it so that all courses are only retrieved when the toggle is used be one way to reduce the burden placed on the database? At least reduce the frequency. It wouldn't reduce the actual burden when the call is made would it.
Again, if there is anything I can do to help, please let me know.
Jason
Jason, I just verified why the original code retrieves all courses the admin is allowed to see, even if later on, they are not going to be displayed, if the admin toggled not to see them. This is because two functions are used which could probably be merged into one. So in the first function call it is only checked whether the user is an admin or anything else (Student or Teacher). If it is a Student or Teacher, the $courses variable gets populated with only their own courses, which is the normal and most used case. If it is an admin, unfortunately the $courses variable gets populated with ALL courses, i.e. with more than 3'500 on my site. Later the second function gets called and the $courses list gets filtered on the toggles the Teacher and Admins have set: display active and/or inactive courses, display own courses. So, if you log in as Admin and you toggle on the blue button to display your own courses, you will get the fastest way through the code, as it SHOULD load only your own courses AND NOT all the courses of the site. That explains why you remarked some speed differences depending on the combination of the three toggle options. That's why, at the beginning, I did not want to offer those options to admins: because showing the admins own courses is the opposite of showing all the courses he is allowed to see, which is mutually exclusive. And in either case he is able to toggle on/off active and inactive courses. So every single combination should be checked rather than postponing two function calls, one for loading the needed courses and the other to filter what you want to see or not. I will think about this little optimization in the next weeks.
Jason, it is even worse: I just made a test-run with my debug settings on. It turned out, what I had feared and commented already in the myCourses thread, that the Moodle-API-function get_my_courses() returns ALL courses for admins because they have VIEW capability in all courses. The according Documentation of the function states we should use another approach to get the courses where admins are enrolled as teacher, students, etc.
>>
For admins and others with access to "every" course in the system, we should
try to get courses with explicit RAs.
... call the lower-level
get_user_courses_bycap()
>>
So for the moment I have no clue on how to check against RoleAssignments. And as I stated also in the thread, we must define which roles/capabilities would make up the admins own courses. Maybe it is the following function I use to filter the courses to display: has_capability('moodle/legacy:editingteacher', $context, $USER->id, false). So for the moment I could check on moodle/legacy:editingteacher, moodle/legacy:teacher, moodle/legacy:student to get the courses where the admin is enrolled in those roles. Unfortunately this function is course based so that I would have to cycle through ALL courses anyway. I hope I can do it with the mentioned lower level function get_user_courses_bycap(). Let me test this last one.
Oh, I just studied the get_my_courses function which is very complicated because the function deals also correctly with courses in hidden categories, whilst get_user_courses_bycap() would return all courses in all categories. So my actual guess is to make an own copy of the get_my_courses function and pass it the capability as parameter.
And at this level of complexity my big question arises again: why would the admin user enrol in any courses? I use the admin account only for administrative tasks and I use separate accounts to enrol as teacher as student etc. in courses. And if you log in as Student or Teacher, get_my_courses retrieves correctly and quickly a small course list. But this functionality to toggle own courses was already present in the original FN-Code, so people asked for it when I left it away in my first version. But since the get_my_courses function started to return ALL courses for admins which slows down everything on large sites like ours, whilst it returned a correct list in old FN-days where we had only a few roles like editingteacher, teacher, student, etc.
OK, I just finished Version 1.9.07a (2010110401) of the myCourses Block in which I only enhanced the logic to gain speed if an admin is logged in and wants to use the three buttons/toggles to display own courses (blue), active courses (orange) and or inactive courses (gray). As announced, I had to use an own and slightly modified copy of the get_my_courses function (I called it get_my_courses_bycap), so that I can collect only the courses where the admin user has moodle/legacy:editingteacher, moodle/legacy:teacher, moodle/legacy:student capabilities. This now yields correctly a litle course list compared to what get_my_courses returned in the previous versions. See further explanations in the according myCourses Thread.
And now I just uploaded Version 1.9.07 (2010110801) of the siteNavigation Block.
Now we can decide, whether it is worth uploading these blocks into the Modules&Plugins CVS or whether we do it only with the new merged block sitenavigation I am going to finish these days.
See my latest posts in the siteNavigation and myCourses threads. To continue my tests with YUI's treeview library, I have to recode the myCourses block from scratch (I fear). The longer I study the old FN-Code, the more I feel that recoding from scratch using the treeview library will yield better results and a less complex code. So instead of merging the two blocks (as they are), I would postpone this goal until I have a new code base. So version 1.9.08 of both blocks will not be the merged one, but the reengineered one, using YUI's treeview and - another benefit - writing the Javascript code into a loadable/include file instead of embedding the code into the HTML-Page/Block. It seems that loading/including a Javascript file can be cached by the client browsers, so that the users should experience a real speed gain when they navigate from one course page to another where the myCourses block is enabled. Ooooohhh and that's what I have been fearing all along the last 3 years: if doing maintenance works on the existing code was exciting and hard work, rewriting from scratch must be like escalating a peak beyond reach. And here is already a difficult question to solve: as soon as a user logs in, his myCourses tree should be composed and saved into a user specific/individual file to be reused as long as the actual session lasts. I saw there are session files in moodle/data/sessions which could be used for this or could be imitated in its behaviour. So I have to investigate when/how these session files are deleted periodically or after a certain time-out.
We are lucky insofar that all files with name sess_xyz in the mentioned session directory are removed/purged automatically I guess after the time-out period specified in admin->server->session handling. So I will start recoding this week-end and report again when I have a working prototype. The YUI examples of treeview show a problem though: the expanded nodes do not preserve their state between page reloads. Strangely with the actual HTML-TreeMenu the siteNavigation Block keeps the whole tree with expanded and collapsed folders even across multiple course pages, which is very handy. Only after a new login the tree returns to its all collapsed default. So maybe YUI will cause us other headaches...
I researched the topic, and found that HTML-TreeMenu DOES use cookies to preserve the folder's state. I was not aware of it and found the YUI cookies to be the only approach to maintain our look & feel. Here you can find my first YUI treeview prototype with cookies:
https://moodle.fhnw.ch/lib/yui/treeview/tv_tooltip5100PreserveWithCookies.html
The next step would be to implement that code into our siteNavigation and myCourses blocks. Give me a few days/weeks.
If you want to follow the programming progress, have a look here from time to time:
I uploaded the first merged BETA Version into the siteNavigation thread (http://moodle.org/mod/forum/discuss.php?d=103703). See the screen-shots and the features list there. So the next steps are:
- upload this version into CVS contributed Modules&Plugins, if Anthony finds it worth
- rewrite the whole using YUI libraries
- rewrite or adapt for Moodle 2.x
- add any new features users might want
Fernando Oliveira could start his design rework on this version 1.9.08 keeping an eye on Moodle 2.x not to be completely incompatible with the TRIANGLES in its built in navigation.
- upload this version into CVS contributed Modules&Plugins, if Anthony finds it worth
- rewrite the whole using YUI libraries
- rewrite or adapt for Moodle 2.x
- add any new features users might want
Rosario - As we prepare for a new plugins database, I am trying to encourage folks away from using the CVS server at this point. It would really be better for the code to be hosted in a Git repository. Github.com provides a free service. Let me know if you have questions or need help setting that up. This avoids having to deal with permissions on the CVS server and actually gives the developer of the code more control over how things are managed. I periodically update Guidelines for CONTRIB Code (http://docs.moodle.org/en/Development:Guidelines_for_contributed_code) with suggestions for naming conventions and things like that. If I can be of any help at all just let me know. I still get dizzy when I try to wrap my head around all the work you have done sorting out the difference between myCourses and siteNavigation blocks. The nice thing with Git is that if you and Fernando wanted to collaborate it will be much easier as he can just fork your repository and you can pull in changes from them. There is a good book on Git called Pro Git available freely online at http://progit.org/book/. Hopefully this will not be too overwhelming. I forget if you were familiar with Git already or not. Keep up the good work. Peace - Anthony
I just uploaded version 1.9.09 of the merged line into the new Modules & Plugins Database (waiting for approval):
http://moodle.org/plugins/view.php?plugin=block_sitenavigation
I wonder if it is better to leave the 07 line in their respective forum threads for download to avoid confusion. Or maybe it is better to have the three blocks myCourses07, siteNavigation07 and sitenavigation09 upward in the same place. But I must check, if I can upload several zip-files into the same place.
I will study GIT and then hopefully be able to maintain the code there. So I need the advice of Antony now to decide whether to rewrite that code with YUI libraries or not. See discussion on such libraries taking place in the developer forum.
I studied navigation in 2.x and it is deeply integrated in the big $PAGE Object. I see only little chances of hooking in there to implement cookies to save the expanded/collapsed state of the folders/objects or to implement display in popUp-windows, unless rewriting the whole block again as separate third party block.
OK, I've added Nate, Rosario and Julian so that we can have one place to collaborate. Peace - Anthony