The first step is to set up and configure the NewsListing snippet to create the basic blog or news structure.
The Structure
I will be using my "home" page, [(site_start)], as the folder for the blog entries, as well as the site's home page. Of course, you can use another page for the blog folder/start page if you want to. I'm just keeping it simple here.

The Templates
I chose a 2-column template that is easy to modify, and is fully XHTML valid. I will use the same basic template with slight modification for the individual blog entries and their comments. The template files can be downloaded here.
In the main template, I have four main sections, a top banner with the [(site_name)] tag (which can easily be replaced with a logo image) and a simple search field, a left column that has the PageTrail snippet, the [*longtitle*] tag as a heading, and the [*content*] tag, a right column for the DropMenu snippet and the WebLogin snippet, and a footer with a chunk for my footer content. So all of the content is controlled using MODx tags; there is nothing in the template except XHTML markup and MODx tags. Everything else is either the output of a snippet, a site or content variable, or contained in a chunk. This way the template is clean and easy to modify.
I am using the same template with a few modifications for the individual posts of the blog, such as this page. I have kept the banner and search field, minimized the blocks in the right column, and added the UserComments snippet under the [*content*] tag, since I want each post to have comments enabled. I could instead add the UserComments snippet to the individual post documents, but since I'll be wanting comments enabled for all my posts, putting the snippet in the template, enabling it for all documents using that template, is easier.
The Main Page
For the home page, the content consists of an [*introtext*] tag, to display the summary as a heading, and the NewsListing snippet.
The NewsListing snippet has a lot of options that can be added to the snippet tag to control its behavior. For the most part, I left it with the default behavior, only changing three options.
[!NewsListing?startID=`[(site_start)]` &summarize=`5` &truncSplit=`false`!]
The first, startID, tells the snippet which document to use as the parent folder for the blog posts; in this case I used [(site_start)] since I'm using the site's home page as the blog start page/folder.
The second, summarize, tells it how many posts to summarize at a time. The default is three, I set it to show 5.
The third, truncSplit, is set to false so the snippet will use the document's Summary for its summary instead of part of the main content.
Blog Posts
For each individual blog post, create a document under the home page folder/document, with the [*introtext*] tag to use the document's Summary as a heading, and then enter the rest of the post's content as usual.
Later in this tutorial we will set up the NewsPublisher snippet that allows the creating of new posts from the website, without having to log in to the Manager.
NewsListing Options
- &startID - the folder containing the posts
Default: [the document called from] - &summarize - number of posts to list partially/fully
Default: [3] - &total - max number of posts to retrieve
Default: [100] - &trunc - truncate to summary posts? if set to false, shows entire post
Default: [true] - &truncSplit - use a marker to truncate for summary posts
Default: [true] - &truncAt - the split-point marker itself
Default: [<!-- splitter -->] - &truncText - text for the summary "show more" link
Default: ["More on this story >"] - &comments - whether or not the posts have comments
Default: [false] - &commText - comments link text
Default: ["Read Comments"] - &tpl - name of the chunk to use for the summary view template
- &dateformat - the format for the summary date (see http://php.net/strftime)
Default: [%d-%b-%y %H:%M] - &pubOnly - only show Published posts
Default: [true] - &emptytext - text to use when no news items are found
Default: ["<p>No entries found.</p>"] - &showarch - whether or not to show Post Archives listing
Default: [true] - &archivetext - text to use for the Post Archives listing
Default: ["Older Items"]

