Development Diary for 2002

Date: 2008-11-02 11:52:02 Created: null


Martin has a point, I did move the externals to the right. That's what I meant all along, of course :-P ...


Moved the externals menu to the left of pages, right below the sub page menu. I think I like the change. Have also worked on the search page, it now enables you to search externals and noteboard messages as well, and hopefully more is to come soon.


My personal trustworthy computing effort takes another step forward. Knocked a bit more on various security issues today, with the result that you can no longer view a hidden category without access even if you know the ID for it. Not only that, I got around to enable hiding of individual pages and proper handling of that in menus as well. Security is cool, right? Reports of any issues/side effects/general nastyness are of course thankfully recieved.

Also optimized away one database call on the main page. Compensated by adding a few more for the new security measures though :-) ...


Enhanced the logging features of the site. Now I should be able to catch every new visitor, regardless of where they enter the site, just the way I want it. I'm curious to see if many people come in other ways. Also found out that there's not much effect in trying to execute queries before you've connected to the database :-) ...


Ever since the menuId work described below there's been some minor strangeness going on with the menus. Overly observant visitors may have noticed that (most of the time, sometimes testing produced even stranger results) the option "Welcome" in the top menu didn't seem to produce any bottom menu. Today that was solved. Martin solved it to be more exact. By checking the length of a string in the right place everything suddenly worked. None of us were sure why though. But then, mid-message, Martin suddenly realized why as well, which was even cooler. Huge thanks Martin!

A little later, I also made the autolinker behave enough not to link things it can't find matches for into nothingness.


Have hammered on things concerning menuId and suddenly reached what seems to be complete success when I removed my "debug" printouts. Now I no longer (with reservations for anything that comes up in further testing) need to pass menuId along everywhere, meaning somewhat nicer links and a suddenly fully working autolinker! Victory is here! Also noted some quite horrendous and ugly code in the process, which I hope to fix one day or the other. Tonight's work has already cleaned up some things in nice ways.


Have done serious work on the autolinker, actual coding and stuff like that. It actually works! Well, sort of ... The only problem is that the result doesn't seem to get saved into the database for some reason. If I echo it out it's all there just like I want it to be (well, except passing menuId along of course. Don't know if that's even possible, but I need to find some kind of solution to that too before I'll start using this), but it doesn't seem to make its way down into storage. I don't get it at all, but it must have something to do with the changes I make when replacing my link characters with the real stuff. But, it's all right if I echo ... Stuck in a logical circle, if you see what I mean :-) ...

About 15 minutes later ...

Yes! It works! Just had to throw in backslashes before the quotation marks in the links to make everyone happy. Now all that remains is getting menuId along for the ride somehow ... We'll see about that tomorrow!


Rather long between updates here right now, don't you think? Anyway, felt too tired to do any actual coding and experimentation tonight, but thought I'd at least sit down and browse/think a little bit about how to do the "auto-linking" I've always wanted for internal site links. Surprisingly, I think I've almost got it all figured out by now. As usual, it's not quite as difficult as it might seem initially once you sit down and really think it through and look at some php manuals complete with examples of course :-) ... Seems like I might manage to become friends with regular expressions with time ... Of course, all this feeling of progress could in part be that I've decieved myself by not doing any testing, we'll see about that tomorrow or so ...


Picked up and finished kicking on the statistics page. Still nothing that an average unpriviliged user can see, but for us roots that can view log files on that page things just got a lot more maneagable. Nice links let me click on them to display the 20 latest entries in a log, another click can let me see the whole log, and only one log at a time is being viewed (or dragged out of the database for that matter). Much better.


Kicked around a bit with the statistics page. Nothing that ordinary users will be able to notice (only for root users!), but if I get things done nicely I might be able to adjust other pages in a similar way. Has to do with displaying larger amounts of database content in a less massive way.


Made the edit page for pages display a combobox of available categories instead of allowing you to type any number on your own. Also made the "add page" link in the subpage menu set the menuId to the category of the page. Otherwise hitting that link would add a page with the category initially set to the current menuId, which probably isn't what you wanted if you click it after going to a page directly, I.E. via the news page.


Moved the code that connects to the database to its own include file instead of having it in each and every page. This site loves includes!


Back to editing the code after what feels like a long break (think it's shorter than it seems when you look at this page though). Implemented a quick fix that gives pages their headline as subject if you forget to enter a subject. This previously made the pages rather hard to find ...

More important today: fixed (by splitting into different pages) so that hitting reload after posting on the noteboard doesn't post again. That was about time. Also there is now a button to preview and further edit your post before actually posting it. Threw in a nice questionmark next to each external as well. Clicking it brings up the more detailed information about the link on a nice page of its own. Thought it might be nice to have ... A very good day for site updates in all.


Finally fixed a problem with ids getting lost in the process of editing access levels, and of course it was the most classic of classic simple mistakes; forgetting to send the ids in the first place ... So, now I think the ids never get lost at all, what a grand day for the site!


Yauza, I can't believe it's June already! Anyway, I'm polishing everything I can find to polish related to the project work as much as I can, in the hope that everything will just radiate on Wednesday. Need to go through things more logged in as less priviliged users to see if I've missed changing any controls, Martin quickly found some yesterday by being logged in for about 3 minutes :-) ...


Lots of development is going on connected to creating a nice multiuser environment, most of it invisible to normal visitors of course. The changes to the top left menu are easily spotted by everyone though. It's now generated dynamically from the categories in the database, and the order of it has changed so that all the dynamic stuff comes in a group after the static ones. Even further down some links for logged in people turn up but that, again, is in the area invisible to casual browsers.


Fixed a bug in the fix of the logging lie, a classic "right replacement, wrong thing replaced"-mistake. Also made the login page a little more informative for logged in users (doesn't say you're not logged in when you actually are).


Fixed a slight logging lie yesterday. Apparently the proxy server Telia is using gave away its own IP as REMOTE_ADDR, not mine. So that's what HTTP_X_FORWARDED_FOR is good for, that gives my real IP and nothing else. I wonder how many times it has changed without me noticing :-) ... Anyway, the logging now checks for HTTP_X_FORWARDED_FOR first and logs that as IP if it exists, otherwise it goes for REMOTE_ADDR as usual.

Have started work on creating documentation for the site as well (big part of the school project), and have already come up with old things that would be nice to improve. Oh yes, and I think I should move and/or secure the delete button for pages a bit more, can't believe I've never hit it by accident before :-) ...


So, now I've set myself up with a nice school assignment, documenting this site's inner workings, then making and executing a plan for supporting multiple users/access levels for it. Oh yeah, and editing the look of the site through nice web based functions was a possible feature as well. Will be fun!


Reorganized code a bit, moved some things common to all pages into the include file it was right above. Also changed around the admin-only statistics page a bit. Making one showing interesting stuff to everyone is on the list for nice future updates.


Made today's date appear by default as headline and subject when you add something in the diary category. One less thing you need to remember when updating ...