I still think you might be seing things in terms of pages, that is, a forum class which contains a header, body and footer. The presentation layer of an application should be completely separate to the business logic. Doing so makes the code more portable and reusable, and also allows both layers to change without causing problems. Going back to your shoutbox example, I would define the following
class Shout{}
class ShoutList{}
class Database{}
class ShoutAdd{}
The Shout class defines the basic properties of an 'shout', so that would be the text itself, the author, the date it was created etc.
The ShoutList class is a container for instances of Shout. You might implement Iterator here to standardise accessing the list.
Database would be a database abstraction. You might define methods like query(), fetch(), getNumRows() etc.
ShoutAdd would contain various methods for dealing with user input and storing to a database.
All of the above classes are considered to contain business logic. They don't have any knowledge of the presentation layer. The presentation layer might just be some procedural PHP intermingled in HTML, which lays up each Shout (using the ShoutList object to gain access) and presenting the user with a form for adding more.