How can I split the teaser from the rest of the content in the node.tpl.php to wrap the teaser text in special markup?
You could preprocess the theme variables to retrieve the teaser and store it separately, otherwise Drupal handles it internally and won't give you a choice.
Here is the code: http://www.mydiary.digiprosoft.com/?p=244 and below are the highlights from that link.
In template.php
function phptemplate_preprocess_node(&$variables) {
// we like to display teasers on the node view pages in a different style,
// but only if they were NOT set to “show summary on full view” (which seems
// backward, but the implication with that checkbox is that the teaser is
// PART of the node’s body, instead of an actual summary of the entire
// node’s body). if a node’s unbuilt body starts with , then
// a teaser has been manually set, and “show summary” is not checked.
if ($variables['page'] == TRUE) { // only do this on full page views.
$node = node_load($variables['nid']); // we reload the node because
// by the time it gets here has already been filtered out.
// this if logic stolen from node.module’s node_teaser_include_verify().
if (strpos($node->body, '') === 0) {
$variables['style_teaser_differently'] = TRUE;
$variables['teaser'] = check_markup($node->teaser, $node->format, FALSE);
}
}
}
In node.tpl.php
<?php
if ($style_teaser_differently){
print '<div class="fullview-teaser">'.$teaser.'<div>';
}
?>