Have you looked at the original CMS package? It is meant to accomplish pretty much what you suggest. Of course the UI is unpleasant and it was never fully integrated into OpenACS. It looks like we all agree that finishing that job is the way to go.