
Perhaps add an @ to fActiveRecord->sortByCallback():
public function sortByCallback($callback)
{
@usort($this->records, $callback);
Reason: If you call a related records method like buildOtherClassNames() this modifies the array (because it adds to the object in the array) and will result in a warning if you have warnings on. I think in this case it is acceptable to ignore this warning. If a site is not using output buffering at all, then printing will occur usually at position 0 of the HTML output. This means it's no longer valid and JavaScript might fail to execute properly.
Also, your forum allows blank subjects.