DeeEmm AKA Michael Percy is an industrial software engineer specialising in language based programming. A long time supporter and contributor to the open source community, he can mostly be found tinkering about creating web sites and writing code for various CMS platforms as well as maintaining several websites of his own.

Dolphin is not very good with permissions, as a result it is impossible to assign permissions to individual pages. So if you have created some custom pages for your site that you only want to display to logged in members, you will need the following hack...

You can (fairly) easily record the userid along with the ip address by adding an extra field to the database table and modifying member.phpHere's how...Add the following fields to the sys_ip_members_visits table in database

To disabled the un-register buttons on your site - go to admin > builders > navigation builder and un-check both member and guest check boxes from the unregister link. This will prevent it from being displayed in the top menu and the quick links menu.You will then need to also get rid of the link from the members menu too.To do this you will need to edit your database - look in the sys_menu_member table for the entry named Dashboard - Then you will need to edit the PopupMenu field - simply remove the following text, leaving the rest intact

For those of you who have been using Dolphin for a while, you will remember that Boonex used to offer a free RMS hosting service for it's free licenses. This service has long since been discontinued, leaving users to either ensure that they find a combined Web / RMS hosting package, or look for a third party RMS host.

Smoge over at ModMySite, has recently introduced a free RMS hosting package on their own servers, for small low bandwidth sites. There are also a variety of paid packages that should support all sizes of sites from small to large.

ModMySite, are a long time Dolphin support site that has been around since the original days of AEDating, way back in 2003, so they certainly know their stuff.

Well, maybe the title is not strictly true, but for all intents and purposes, the user blogs over at Boonex Unity are now dead. Andrew Boon, in his infinite wisdom, has decided to remove the user blogs from displaying in the blog index, leaving this solely for Boonex team posts. Whilst there is (some) merit in this, from a commercial perspective, it leaves the user blogs with no index, and no way of knowing if there is a new post.

So whilst the blogs still exist, you now have to navigate to each blog individually, via each members user profile to view them. Needless to say, I cannot imagine anyone bothering to post any more.

It's ironic that the focus on the community at Boonex has always centered around their core philosophy of 'Unity', it seems that this is far from uniting people, in fact I woud go as far as to say that it has the opposite effect.

If I were to be blatantly honest, I think that it is Andrews way of dealing with opinions that do not agree with his. I am probably one of the contributing factors in this respect, as i have often made very pointed statements in the Blogs, but if you do not want people to have opinions, why have blogs in the first place? I guess that is what has now happened.

If you are experiencing memory issues with scripts, it may be necessary to increase the memory available to the script.

If you have access to your servers php.ini file, this is relatively straightforward - simply increase the value of the memory_limit directive to 128M then restart apache. However, I'm guessing that if you're reading this post, looking for a solution to memory issues, then the last sentence probably made little sense, and chances are that you do not have access to your servers php.ini file - this is true for most shared servers.

If you do not have access, all is not lost - you can override the value in either a custom php.ini file, or via the htaccess file - the method needed depends on the following:

If PHP is compiled to run as a cgi script then you will need to use a custom php.ini, but if it is compiled to run as a module then you will need to use htaccess. (tip - you can view your servers php_info() to find out which one)

If like me, you used the migration tool to transfer your Dolphin 6 based site over to Dolphin 7, you will notice that there are some things that need a little tweaking. One of these things for me was the tags.

On D6 tags could use a space as a delimiter, but on Dolphin 7 the space is ignored, this is to allow multi word tags. What this effectively does is create massive long 'tag words' out of those tags that were entered without using a comma as a delimiter in D6.

The following code reads the tags and splits them up if more than one word is detected. it then deletes the original entry and creates a new entry for each word detected using the original data. Single word tags are ignored

It seems like this week is a bit of a strange one so far. Not only is it National Cyber Security Awareness Week here in Australia, but first the Boonex site suffered a massive DDOS attack and then my own dolphin site suffered a similar fate. I believe that the two events are probably coincidental, as the attack on my site was not particularly well formed, and was easily defeated - most likely just some kiddie with a script. I managed to get the service that the attack was coming from terminated due to a violation of the providers TOS - they're probably in big trouble with mom and dad now. The attack on the Boonex site continued over the weekend, and there are still some services out of action.

I believe that the main source of the attack on my site was to take advantage of the exploit recently published on Boonex's site, and reported about here on DeeEmm.com in an earlier news article - http://www.deeemm.com/news/154-dolphin-7-security-vulnerability-exposed.html Whilst the noise about this issue seems to have been muted a little, after the attack on my site I am pretty convinced that the solution given by Boonex is no solution at all.

The main crux of the problem was claimed to be the DB_FULL_VISUAL_PROCESSING or DB_FULL_DEBUG_MODE settings, which caused the debug backtrace to be echoed directly to the browser in the event of a fault. Boonex's comments were simply that these were disabled by default and so the issue was a non-issue. This glaring oversight caused an obvious embarrassment to those who made the claims that the issue was with the DB_FULL_VISUAL_PROCESSING setting, this then caused them to promptly back off a little.

Whilst Boonex's solution has seemingly pacified the masses, it does not address the initial issue - that the debug back-trace is getting echoed to the browser in some error situations. The fact is that the issue has been reported by many, and until now no one had been sure of a definite cause, unfortunately the DB_FULL_VISUAL_PROCESSING setting was little more than a red herring, and whilst easily dismissed by Boonex, their solution does not actually fix the issue.

Some of you may be familiar with the heredoc string handler which allows multi-line strings to be easily assigned to a variable, this great tool has many uses - such as retaining pre-formatted layout and improving the readability of code. The heredoc handler also parses variables contained within the string - much the same way that using double quotes does. Replacing any variables with their respective values

This has some not so obvious drawbacks, one of which i discovered whilst trying to inject complex PHP code into a database for later evaluation via the eval() statement. (please don't ask why)

The problem I found was that whilst it was easy to escape the string so that it would not break the SQL statement, The same escape characters also broke the evaluation. This might not have been an issue in any other situation, but for this particular project i did not have access to the code that carried out the evaluation so that I could strip the escape characters out before running the eval query.

However, PHP 5.3 has now introduced the nowdoc syntax - this basically operates in the same manner as heredoc, but does not parse any of the content. This means that not only are variables not parsed, but neither are any characters that would normally require escaping. In essence, any string read into a variable by the nowdoc handler will not require any escaping whatsoever.

The latest release to Boonex's CMS system - Dolphin 7, has now been out on the wild for some time. Released at Christmas, the much anticipated Dolphin 7 was to be heralded as the latest in web tech, offering an advanced platform for social networking sites that was far ahead of the competition. With several public beta releases, the anticipation was fueled by the glimpses offered in each release, building up the expectations to a massive level. Also adding fuel to this fire, was the long overdue update and bugfix release due for Dolphin 6. As a result, Dolphin 7 had a lot to deliver.

With the release of Dolphin 7 finally made a year later than expected, it was unleashed into the public with a massive amount of issues, over 300 bugs to be precise. This left the Dolphin community a little abashed, with many users having stuck with Dolphin, through the extended development period, now feeling disappointed. Lots of these users had put development plans on hold, with the expectation that the promised release would be the answer to their needs.

It is now a further 5 months down the line, and the recent update release 7.0.1 has addressed many of the problems that plagued version 7. The problems are not completely fixed however, and there are still many issues surrounding how development and releases are handled, but it seems that Boonex are moving in the right direction with a shorter release cycle, and prioritisation of bugs addressed for each release. I previously touched on this issue with one of my blog posts over at unity - http://www.boonex.com/unity/blog/entry/Product_release_cycles

Based on past performance at Boonex, and anticipating the issues and extended wait with version 7, when it was originally announced, I decided to stick with version 6 - This is a choice that i am glad i made. Not only as the expected release date slipped way beyond the original estimate, and there were more issues than even I anticipated, but also as it has meant that I have managed to build my user-base over the past year, and develop the community for which the site serves.

After updating my Dolphin 6 site to the new version 7 software I decided that I wanted to move the avatar to the banner - basically the same as for my D6 site. I also wanted to put the quotes at the bottom - I decided to mimick the style and layout for my D6 site - I wanted my upgrade to D7 to be more or less transparent to my users.

How To Relocate the daily quotes

To modify the quotes position is simple enough - you just need to modify the sys_injections table - look for quotes_injection and then change the key to injection_footer_after

injection_footer_after refers to the tag that the content will replace - in this case the tag in the footer

In a recent forum post about DMCMS, i promised that at some point the current version would be spruced up a little and released as version 1. This is something that I actually started on late last year, but the work was lost when our house was burgled and my laptop (and also the backup drive) was stolen. This happened last September, and it's taken this long to renew the enthusiasm in DMCMS. This is probably spurned in the most part, by the new direction that the site has recently taken, with more time being spent putting web based code mods together, I've began to start thinking about getting DMCMS finished off again.

With more visitors coming for code tutorials and to buy modifications from the store, DMCMS is a bit of a show-case - not in the respect that it is anything worth looking at (it's 6 years old now, and very basic by today's standards) but in the respect that it may be used as some kind of yard stick for my work. So it needs to be tidied to the point where it is at least presentable.

My ideal goal would be to take it and completely re-write it using the jquery framework, smarty template's and maybe a few other Web 2 goodies. Probably the most important aspect would be making it a multi-user version, to allow commenting and third party participation, and using object based code to allow for extensibility.

So with this in mind - I've taken the first steps to getting the current version up to a version 1 release standard. The main changes that I previously carried out were mostly a simple code restructure. The administration interface was completely split away from the main code so that it functioned as a stand alone interface - and some of the other functions that were crammed into the main code were also parred away.