1. When you save a submitted article, I'd like it if the code returns you to the module/news/index.php?op=newarticle
Just change the redirect at the end of the save (in the case statement) to this:
redirect_header("index.php?op=newarticle",1,_AM_DBUPDATED);
That way you can continue to preview/approve articles (and if the next suggestion is adopted, move them around). There are probably other places where it would be better to have an operation return you to a more convenient admin location so you don't have to keep navigating the admin menus.
2. Ability to move article positions in the TOC (Table of Contents, or news module home page). I implemented a way to do this in my hacked version of Xoops, but if there's a better way, go for it!
3. Main menu that only shows options available to the group viewing the page. Again, if you like this idea, my hacked version of dynamenu does this (and includes the pretty icons, although some people justifiably don't like icons), so feel free to use that code or if there's a better way, ignore that code.
4. A top_news module that lists the X most recent stories in order of popularity. This avoids the problem of really old articles staying at the top of the counter list. I modified the news_top.php to do this, but I recently realized I could simply have created a new module and left the original code undisturbed. I'll do that and submit it in case anyone wants the same feature.
5. Pass an object to the theme handlers instead of variables. That way people can customize things to a greater extent without breaking existing themes. In other words, suppose you pass the object $article to themenews($article). Your standard themes would access the variables through $article->title, $article->morelink, etc. Now, if I decide to add $article->storyurl as a property, the old themes will simply ignore it and continue to work, but new themes can make use of the additional information. All the themes can coexist happily on the same site. (Yes, I know you can add parameters at the end of the list to get approximately the same behavior, but IMO that's a sloppier and more error-prone way to do it.)
6. Indeed, pass objects (or arrays) whenever possible to make backward compatibility easier at all levels.