Allow users to submit content that is approved before it is published I want to allow users to submit the content to my site, but the content must be first approved, and then it can be published.

Is there a module that do this? Which code should I write for such module, if one doesn't exist?
You might want to try: http://drupal.org/project/workflow &amp; http://drupal.org/project/formfilter

If you create a workflow you can set it to only allow users to create content in the 1st state, something like "needs review". Then, an admin can come in and progress to the 2nd sate, say to "published". 

I used an action and trigger to automatically publish any content placed into the 2nd state.

You can use the form filter to disable the ability to set the content straight as published in the normal node edit form.

Ideally you will want some type of approval queue too, you can use the default Workflow summary but I think this requires views.