By outputting the key value pairs within the Director::urlParams() array I was able to discover the topic id was actually paired with the OtherID key rather than ID.
So by changing the following line:
$id = Convert::raw2sql(Director::urlParam('ID'));
to:
$id = Convert::raw2sql(Director::urlParam('OtherID'));
it fixed the issue.
However, after submitting the Forum Admin Features form. It redirects the user to the following url:
http://drugeducationalliance.ca/drug-addiction-discussion/
When it should be redirecting to the following url:
http://drugeducationalliance.ca/discussion-forums/drug-addiction-discussion/
Causing an 404 error which I was able to fix by changing the following line:
return Director::redirect($this->URLSegment.'/');
to:
return Director::redirect('discussion-forums/'.$this->URLSegment.'/');
Although everything is working fine now. This may not be the most flexible solution. So I am still open to other suggestions.
Cheers