Index: nodeteaser/nodeteaser.info
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/nodeteaser/nodeteaser.info,v
retrieving revision 1.2
diff -u -p -r1.2 nodeteaser.info
--- nodeteaser/nodeteaser.info	18 Jun 2007 22:53:51 -0000	1.2
+++ nodeteaser/nodeteaser.info	13 Apr 2008 13:12:06 -0000
@@ -1,4 +1,10 @@
-; $Id: nodeteaser.info,v 1.2 2007/06/18 22:53:51 dww Exp $
+; $Id: nodeteaser.info,v 1.1 2007/02/14 00:22:36 ideaoforder Exp $
 name = Node Teaser
 description = This module provides a separate teaser field.
 
+version = "5.0" 
+
+; Information added by drupal.org packaging script on 2007-02-16
+version = "5.x-1.1"
+project = "nodeteaser"
+
Index: nodeteaser/nodeteaser.install
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/nodeteaser/nodeteaser.install,v
retrieving revision 1.1
diff -u -p -r1.1 nodeteaser.install
--- nodeteaser/nodeteaser.install	11 Sep 2006 17:47:22 -0000	1.1
+++ nodeteaser/nodeteaser.install	13 Apr 2008 13:12:06 -0000
@@ -1,29 +1,101 @@
 <?php
+// $Id$
+/**
+ * @file
+ * The (un)install logic for Node Teaser.
+ */
+
+
+/**
+ * Implementation of hook_install().
+ *
+ * @todo Verify pgsql install.
+ */
 function nodeteaser_install() {
+  $success = FALSE;
+  
   switch ($GLOBALS['db_type']) {
     case 'mysql':
     case 'mysqli':
-      db_query("CREATE TABLE {nodeteaser} (
-  							nid int(11) NOT NULL default '0',
-  							teaser text NOT NULL,
-  							KEY nid (nid)
-								)  /*!40100 DEFAULT CHARACTER SET utf8 */;");
+      $result1 = db_query("CREATE TABLE {nodeteaser} (
+                                  nid    int(11) NOT NULL default 0,
+                                  teaser text    NOT NULL,
+                                  KEY    nid (nid)
+                           )  /*!40100 DEFAULT CHARACTER SET utf8 */;");
+      // Modules are processed in module_implements() by weight, and we
+      // want Node Teaser's hook_nodeapi() implementation running last.
+      $result2 = db_query("UPDATE {system} SET weight=99 WHERE name='nodeteaser';");
+      
+      $success = ($result1 && $result2);
       break;
     case 'pgsql':
-      db_query("CREATE TABLE {nodeteaser} (
-  							nid int NOT NULL default '0',
-  							teaser text NOT NULL,
-  							KEY nid (nid)
-								)  /*!40100 DEFAULT CHARACTER SET utf8 */;");
+      $result1 = db_query("CREATE TABLE {nodeteaser} (
+                                  nid    int  NOT NULL default '0',
+                                  teaser text NOT NULL,
+                                  KEY    nid (nid)
+                           )  /*!40100 DEFAULT CHARACTER SET utf8 */;");
+      // Modules are processed in module_implements() by weight, and we
+      // want Node Teaser's hook_nodeapi() implementation running last.
+      $result2 = db_query("UPDATE {system} SET weight=99 WHERE name='nodeteaser';");
+      
+      $success = ($result1 && $result2);
       break;
   }
 
-  // Notify of changes
-  drupal_set_message(t('Node teaser module was successfully installed with default options. To customize node teaser, please view the <a href="%settings">node teaser settings page</a>.', array('%settings' => url('admin/settings/nodeteaser'))));
-
+  if ($success !== FALSE) {
+    $link = array('!settings' => l(t('Node Teaser Settings'), 'admin/settings/nodeteaser'));
+    drupal_set_message(t('Node Teaser was successfully installed with the default options. To customize Node Teaser, please view the !settings page.', $link));
+  }
+  else {
+    drupal_set_message(t('Node Teaser could not be installed.'));
+  }
 }
 
+
+/**
+ * Implementation of hook_update_N().
+ */
 function nodeteaser_update_1() {
   return _system_update_utf8(array('nodeteaser'));
 }
-?>
\ No newline at end of file
+
+
+/**
+ * Implementation of hook_update_N(). Updates the system table to increase
+ * the weight of Node Teaser.
+ *
+ * @todo Verify pgsql behavior.
+ */
+function nodeteaser_update_2() {
+  $result   = array();
+  $result[] = update_sql("UPDATE {system} SET weight=99 WHERE name='nodeteaser';");
+  
+  return $result;
+}
+
+
+/**
+ * Implementation of hook_uninstall().
+ *
+ * @todo Verify pgsql uninstall.
+ */
+function nodeteaser_uninstall() {
+  $success = false;
+  
+  switch ($GLOBALS['db_type']) {
+    case 'mysql':
+    case 'mysqli':
+      $success = db_query('DROP TABLE IF EXISTS {nodeteaser};');
+      break;
+    case 'pgsql':
+      $success = db_query("DROP TABLE IF EXISTS {nodeteaser};");
+      break;
+  }
+  
+  if ($success !== FALSE) {
+    drupal_set_message(t('Node Teaser was uninstalled successfully.'));
+  }
+  else {
+    drupal_set_message(t('Node Teaser could not be uninstalled.'));
+  }
+}
Index: nodeteaser/nodeteaser.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/nodeteaser/nodeteaser.module,v
retrieving revision 1.2
diff -u -p -r1.2 nodeteaser.module
--- nodeteaser/nodeteaser.module	14 Feb 2007 00:22:36 -0000	1.2
+++ nodeteaser/nodeteaser.module	13 Apr 2008 13:12:06 -0000
@@ -1,13 +1,10 @@
 <?php
+// $Id$
 /**
- * Valid permissions for this module
- * @return An array of valid permissions for the nodeteaser module
+ * @file
+ * The application logic for Node Teaser.
  */
-function nodeteaser_perm() {
-	
-	return array('administer nodeteaser');
-	
-} // function nodeteaser_perm()
+ 
 
 /**
  * Implementation of hook_menu().
@@ -17,15 +14,16 @@ function nodeteaser_menu($may_cache) {
 
   if ($may_cache) {
 		$items[] = array(
-			'path' => 'admin/settings/nodeteaser',
-			'title' => t('Node Teaser'),
+			'path'        => 'admin/settings/nodeteaser',
+			'title'       => t('Node Teaser'),
 			'description' => t('Set a variety of options for node teaser input and display.'),
-			'callback' => 'drupal_get_form',
+			'callback'    => 'drupal_get_form',
 			'callback arguments' => array('nodeteaser_admin_settings'),
-			'access' => user_access('administer site configuration'),
-			'type' => MENU_NORMAL_ITEM, // optional
+			'access'      => user_access('administer site configuration'),
+			'type'        => MENU_NORMAL_ITEM,
 		);
   }
+
   return $items;
 }
 
@@ -44,207 +42,284 @@ function nodeteaser_nodeapi(&$node, $op,
     case 'update':
       _nodeteaser_update($node);
       break;
-    case 'prepare':
-      $node = _nodeteaser_load($node);
-      $node = node_prepare($node, $teaser);
-      break;
-    case 'view':
-			$node = _nodeteaser_load($node);
-			$node = node_prepare($node, $teaser);
-      break;
+    case 'load':
+      return _nodeteaser_load($node);
   }
 }
 
 
 /**
  * Implementation of hook_form_alter().
+ *
+ * @param $form_id string
+ *  The ID of the form being operated on.
+ * @param &$form array
+ *  The form element array being altered/
  */
 function nodeteaser_form_alter($form_id, &$form) {
-	if (_nodeteaser_page_match()) { // Make sure that teaser should be displayed on this page
-		if (isset($form['type']) && $form_id == $form['type']['#value'] . '_node_form') {
-			$type = 'node';
-			$id = $form['nid']['#value'];
-		} else if ($form_id == 'taxonomy_form_vocabulary') {
-			$type = 'vocabulary';
-			$id = $form['vid']['#value'];
-			$form['submit']['#weight'] = 5;
-			$form['delete']['#weight'] = 5;
-		} else if ($form_id == 'taxonomy_form_term') {
-			$type = 'term';
-			$id = $form['tid']['#value'];
-			$form['submit']['#weight'] = 5;
-			$form['delete']['#weight'] = 5;
-		}
+  // Verify that the teaser field should be displayed on this form.
+	if (_nodeteaser_page_match()) {
+		if ($form_id == $form['type']['#value'] . '_node_form') {
+			$nid = $form['nid']['#value'];
 	
-		if (isset($type)) {
-			if (isset($id) && is_numeric($id)) {
-				$tags = _nodeteaser_load($id);
-			} else {
-				$tags = array();
-			}
-
-		$form['nt'] = array(
-					'#type' => 'fieldset', 
-					'#title' => t('Teaser or Summary'), 
-					'#collapsible' => TRUE, 
-					'#collapsed' => variable_get('nodeteaser_collapsed', FALSE),
-			);
-
-		$form['nt']['nodeteaser'] = array(
-			'#type' => 'textarea',
-			'#default_value' => $tags->teaser,
-			'#cols' => 65,
-			'#rows' => 12,
-			'#description' => t('Enter a teaser, summary, or description for this node. If you would like the whole body to display, DO NOT enter a teaser!'),
-			);
+      if (is_numeric($nid)) {
+        $teaser = _nodeteaser_get_teaser($nid);
+      }
+
+      $nodeteaser = array(
+        '#type'        => 'fieldset', 
+        '#title'       => t('Teaser or Summary'), 
+        '#collapsible' => TRUE, 
+        '#collapsed'   => variable_get('nodeteaser_collapsed', FALSE),
+      );
+
+      $nodeteaser['nodeteaser'] = array(
+        '#type' => 'textarea',
+        '#default_value' => $teaser,
+        '#cols' => 65,
+        '#rows' => 12,
+        '#description'   => _nodeteaser_description(),
+      );
+
+      if (isset($form['body_filter'])) {
+        $form['body_filter']['nt'] = $nodeteaser;
+        $form['body_filter']['body']['#weight']   = 0;
+        $form['body_filter']['nt']['#weight']     = 1;
+        $form['body_filter']['format']['#weight'] = 2;
+      }
+      else {
+        $form['nt'] = $nodeteaser;
+      }
 		}
   }
 }
 
+
 /**
- * Implementation of hook_load().
+ * Produces the description to place under the teaser text area based on the
+ * module's current settings.
+ *
+ * @return string
+ *  The translated description.
  */
-function _nodeteaser_load($node) {
-	if (!is_object($node)) {
-		$id = $node; 
-		$node = (object) $node;
-	}
-	else {
-		$id = $node->nid;
-	}
-	if (isset($node->nodeteaser)) {
-		$nt->teaser = $node->nodeteaser;
-	} else {
-  	$nt = db_fetch_object(db_query('SELECT teaser FROM {nodeteaser} WHERE nid = %d', $id));
-  	if(!$nt) {
-  		$node->nodeteaser = FALSE;
-  	}
+function _nodeteaser_description() {
+  $result = t('Enter a teaser, summary, or description for this node.');
+  
+  switch (variable_get("nodeteaser_empty", 'drupal_default')) {
+    case 'drupal_default':
+      $add = t('Based on current settings, the site\'s default teaser behavior will be used if you do not enter anything here.');
+      break;
+    case 'nothing':
+      $add = t('Based on current settings, no teaser will be displayed if you do not enter anything here.');
+      break;
+    case 'node_title':
+      $add = t('Based on current settings, the node\'s title will be displayed if you do not enter anything here.');
+      break;
+    case 'full_no_break':
+      $add = t('Based on current settings, the node\'s entire body will be displayed if you do not enter anything here and there is no %break is present in the node body. If a %break is present in the node\'s body, the site\'s default teaser behavior will be used.',
+               array('%break' => '<!--break-->'));
+      break;
+    case 'full_post':
+      $add = t('Based on current settings, the node\'s entire body will be displayed if you do not enter a teaser here.');
+      break;
   }
   
-	if ($nt->teaser != '') {
-		$node->teaser = $nt->teaser;
-		$node->nodeteaser = TRUE;
-	}else {
-		switch (variable_get("nodeteaser_empty", 'drupal_default')) {
+  return $result . ' ' . $add;
+}
+
+
+/**
+ * Process the teaser for a node at load time.
+ *
+ * @param $node object
+ *  The node being loaded.
+ *
+ * @return array
+ *  The array of data to merge into the node being loaded.
+ */
+function _nodeteaser_load($node) {
+  $result = array();
+  $teaser = _nodeteaser_get_teaser($node->nid);
+
+  if (empty($teaser)) {
+    switch (variable_get("nodeteaser_empty", 'drupal_default')) {
 			case 'drupal_default':
-				break;
+			  return;
 			case 'nothing':
-				$node->teaser = '&nbsp;';
+			  $teaser = '&nbsp;';
 				break;
 			case 'node_title':
-				$node->teaser = $node->title;
+			  $teaser = $node->title;
 				break;
-			case 'full_post':
-				$node->teaser = $node->body;
+		  case 'full_no_break':
+		    if (_nodeteaser_node_has_break($node->vid)) {
+		      return;
+		    }
+		    // No break -> falls through.
+      case 'full_post':
+			  $teaser = $node->body;
 				break;
 		}
-		$node->nodeteaser = FALSE;
-	}
+		
+		$result['teaser'] = $teaser;
+  }
+  else {
+    $result['teaser']     = $teaser;
+    $result['nodeteaser'] = $teaser;
+  }
 
-  return $node;
+  return $result;
 }
 
-/* This function formats the teaser for display */
-/*function _nodeteaser_format($node) {
-	$output = $node->teaser;
-	
-	$path = $node->path;
-	if (!isset($path)) {
-		$path = "node/".$node->nid;
-	}
-	
-	if ($node->nodeteaser) {
-		if (variable_get('nodeteaser_readmore', FALSE)) {
-			$node->teaser .= "<br /><br /><a href=\"{$path}\">continue reading \"".$node->title."\"</a>";
-		}
-	} elseif (variable_get('nodeteaser_readmore', FALSE)) {
-		// Get the unformatted teaser and body for comparison
-		$nt = db_fetch_object(db_query('SELECT body FROM {node_revisions} WHERE nid = %d', $node->nid));
-		$body = $nt->body;
-		$teaser = $node->teaser;
-		$blength = strlen(htmlentities($body));
-		$tlength = strlen(htmlentities($teaser));
-		if ($blength > $tlength) {
-			$node->teaser .= "<br /><br /><a href=\"{$path}\">continue reading \"".$node->title."\"</a>";
-		}
-	}
-	return $node;
-}*/
 
-/* Delete teaser from table */
+/**
+ * Get the nodeteaser for a given node ID if present.
+ *
+ * @param $nid int
+ *  The node ID to get the teaser for.
+ *
+ * @return string
+ *  The teaser, if present.
+ */
+function _nodeteaser_get_teaser($nid) {
+  return db_result(db_query('SELECT teaser FROM {nodeteaser} WHERE nid = %d', $nid));
+}
+
+
+/**
+ * Determine if the given node contains a <!--break--> in its
+ * body.
+ *
+ * @param $nid int
+ *  The node revision ID to check.
+ *
+ * @return boolean
+ *  TRUE if the node body contains a break, FALSE if not.
+ */
+function _nodeteaser_node_has_break($vid) {
+  $body = db_result(db_query('SELECT body FROM {node_revisions} WHERE vid = %d', $vid));
+  $pos = strpos($body, '<!--break-->');
+  
+  return ($pos !== FALSE);
+}
+
+
+/**
+ * Remove a teaser.
+ *
+ * @param $node object
+ *  The node that is being deleted.
+ *
+ * @return mixed
+ *  The result of the db_query to delete the node teaser entry.
+ */
 function _nodeteaser_delete($node) {
   return db_query("DELETE FROM {nodeteaser} WHERE nid = %d", $node->nid);
 }
-/* Insert teaser into table */
+
+
+/**
+ * Insert a new teaser.
+ *
+ * @param $node object
+ *  The newly created node.
+ *
+ * @return mixed
+ *  The result of the db_query to insert the node teaser entry.
+ */
 function _nodeteaser_insert($node) {
-  return db_query("INSERT INTO {nodeteaser} (nid, teaser) VALUES (%d, '%s')", $node->nid, $node->nodeteaser);
+  return db_query("INSERT INTO {nodeteaser} (nid, teaser) VALUES (%d, '%s')", 
+                  $node->nid, $node->nodeteaser);
 }
 
+
 /**
- * Update teaser for new and existing content
+ * Update teaser for an existing node.
+ *
+ * @param $node object
+ *  The node being updated.
+ *
+ * @return mixed
+ *  The result of the db_query to update the node teaser entry.
  */
 function _nodeteaser_update($node) {
 
- $nt = db_fetch_object(db_query('SELECT teaser FROM {nodeteaser} WHERE nid = %d', $node->nid));
+  $nt = db_result(db_query('SELECT teaser FROM {nodeteaser} WHERE nid = %d', $node->nid));
+
+  if ($nt !== FALSE) {
+   return db_query("UPDATE {nodeteaser} SET teaser = '%s' WHERE nid = %d", 
+                   $node->nodeteaser, $node->nid);
+  }
+
+  return _nodeteaser_insert($node);
+}
 
- if ($nt)
-   return db_query("UPDATE {nodeteaser} SET teaser = '%s' WHERE nid = %d", $node->nodeteaser, $node->nid);
- else
-   return _nodeteaser_insert($node);
- }
 
 /**
  * Module configuration settings
- * @return settings HTML or deny access
+ *
+ * @return array
+ *  The Node Teaser settings form.
  */
 function nodeteaser_admin_settings() {
-  /*$form['nodeteaser_readmore'] = array('#type' => 'checkbox',
-    '#title' => t('"continue reading" link'), 
-    '#default_value' => variable_get("nodeteaser_readmore", FALSE), 
-    '#description' => t('Display a "continue reading" link below teasers'), 
-    '#required' => FALSE,
-    '#weight' => 0,
-  );*/
+
+  $options = array(
+      'drupal_default' => t('Drupal Default'), 
+      'nothing'        => t('Nothing'), 
+      'node_title'     => t('Node Title'), 
+      'full_post'      => t('Full Post'),
+      'full_no_break'  => t('Full Post if no %break in node body', 
+                            array('%break' => '<!--break-->'))
+  );
   
   $form['nodeteaser_empty'] = array('#type' => 'radios',
-    '#title' => t('If node teaser is empty'), 
+    '#title'         => t('If node teaser is empty, display'), 
     '#default_value' => variable_get("nodeteaser_empty", 'drupal_default'), 
-    '#description' => t('Default display for empty node teasers'),
-    '#options' => array('drupal_default' => 'Drupal default', 'nothing' => 'display nothing', 'node_title' => 'node title', 'full_post' => 'full post'), 
-    '#required' => FALSE,
-    '#weight' => 0,
-  );  
+    '#description'   => t('Default display for empty node teasers'),
+    '#options'       => $options,
+    '#required'      => FALSE,
+    '#weight'        => 0,
+  );
+  
   $form['nodeteaser_collapsed'] = array('#type' => 'checkbox',
-    '#title' => t('Collapse node teaser'), 
+    '#title'         => t('Collapse node teaser'), 
     '#default_value' => variable_get("nodeteaser_collapsed", FALSE), 
-    '#description' => t('Collapse node teaser by default'),
-    '#required' => FALSE,
-    '#weight' => 0,
+    '#description'   => t('Collapse node teaser by default'),
+    '#required'      => FALSE,
+    '#weight'        => 0,
+  );
+
+  $options = array(
+    t('Show on every page except the listed pages.'), 
+    t('Show on only the listed pages.')
+  );
+  
+  $subs = array(
+    '%blog'          => 'blog',
+    '%blog-wildcard' =>  'blog/*', 
+    '%front'         => '<front>'
   );
+  
+  $description = t("Enter one page per line as Drupal paths. The '*' character is a wildcard. Example paths are '%blog' for the blog page and %blog-wildcard for every personal blog. %front is the front page.", $subs);
 
-  // Check if user has permission to 'use PHP for block visibility' 
-  // in Administer > access control > block
-  //$access = user_access('use PHP for block visibility');
-
-  $options = array(t('Show on every page except the listed pages.'), t('Show on only the listed pages.'));
-  $description = t("Enter one page per line as Drupal paths. The '*' character is a wildcard. Example paths are '%blog' for the blog page and %blog-wildcard for every personal blog. %front is the front page.", array('%blog' => theme('placeholder', 'blog'), '%blog-wildcard' =>  theme('placeholder', 'blog/*'), '%front' => theme('placeholder', '<front>')));
-
-  // If user does not have access to PHP code for visibility in Administer > access control > block,
-  // radio button option for 'PHP for visibility' and description won't appear
-  //if ($access) {
-    $options[] = t('Show if the following PHP code returns <code>TRUE</code> (PHP-mode, experts only).');
-    $description .= t(' If the PHP-mode is chosen, enter PHP code between %php. Note that executing incorrect PHP-code can break your Drupal site.', array('%php' => theme('placeholder', '<?php ?>')));
-  //}
+  // -------------------------------------------------------------------------
+  // Configuring the site requires 'administer site configuration', so we
+  // allow the PHP. It's kept separate in case we decide to change this later.
+  $options[] = t('Show if the following PHP code returns %true (PHP-mode, experts only).', 
+                 array('%true' => t('TRUE')));
+  $description .= t(' If the PHP-mode is chosen, enter PHP code between %php. Note that executing incorrect PHP-code can break your Drupal site.', 
+                    array('%php' => '<?php ?>'));
 
   $form['nodeteaser_access'] = array(
-    '#type' => 'radios', 
-    '#title' => t('Show Teaser on specific pages'), 
+    '#type'    => 'radios', 
+    '#title'   => t('Show Teaser on specific pages'), 
     '#default_value' => variable_get('nodeteaser_access', 1), 
     '#options' => $options,
   );
+  
   $form['nodeteaser_access_pages'] = array(
-    '#type' => 'textarea', 
-    '#title' => t('Pages'), 
+    '#type'        => 'textarea', 
+    '#title'       => t('Pages'), 
     '#default_value' => variable_get('nodeteaser_access_pages', ''), 
     '#description' => $description,
   );
@@ -252,34 +327,41 @@ function nodeteaser_admin_settings() {
   return system_settings_form($form);
 }
 
+
 /**
  * Determine if nodeteaser has permission to be used on the current page.
  *
- * @return
+ * @return boolean
  *   TRUE if can render, FALSE if not allowed.
  */
 function _nodeteaser_page_match() {
-  $page_match = "FALSE";
+  $page_match = FALSE;
 
   // If one of the options to control nodeteaser visibility was selected
   if (variable_get('nodeteaser_access_pages', '')) {
+  
     // If the PHP option wasn't selected
-    if (variable_get('nodeteaser_access', 1)< 2) {
-      $path = drupal_get_path_alias($_GET['q']);
-      $regexp = '/^('. preg_replace(array('/(\r\n?|\n)/', '/\\\\\*/', '/(^|\|)\\\\<front\\\\>($|\|)/'), array('|', '.*', '\1'. preg_quote(variable_get('site_frontpage', 'node'), '/') .'\2'), preg_quote(variable_get('nodeteaser_access_pages', ''), '/')) .')$/';
+    if (variable_get('nodeteaser_access', 1) < 2) {
+      $path   = drupal_get_path_alias($_GET['q']);
+      $regexp = '/^('. preg_replace(array('/(\r\n?|\n)/', '/\\\\\*/', '/(^|\|)\\\\<front\\\\>($|\|)/'), 
+                                    array('|', '.*', '\1'. 
+                                          preg_quote(variable_get('site_frontpage', 'node'), '/') .'\2'),
+                                    preg_quote(variable_get('nodeteaser_access_pages', ''), '/')) .
+                ')$/';
       $page_match = !(variable_get('nodeteaser_access', 1) xor preg_match($regexp, $path));
     }
+    
     // If the PHP option was selected 
     else {
-      $page_match = drupal_eval(variable_get('nodeteaser_access_pages', ''));
+      $page_match = (bool)drupal_eval(variable_get('nodeteaser_access_pages', ''));
     }
   }
+  
   // If no options to control nodeteaser visibility are selected,
   // visibility defaults to show nodeteaser on every page
   else {
-    $page_match = "TRUE";
+    $page_match = TRUE;
   }
-    return $page_match;
+  
+  return $page_match;
 }
-
-?>
Index: nodeteaser/po/nodeteaser.pot
===================================================================
RCS file: nodeteaser/po/nodeteaser.pot
diff -N nodeteaser/po/nodeteaser.pot
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ nodeteaser/po/nodeteaser.pot	13 Apr 2008 13:12:06 -0000
@@ -0,0 +1,149 @@
+# $Id$
+#
+# LANGUAGE translation of Drupal (general)
+# Copyright YEAR NAME <EMAIL@ADDRESS>
+# Generated from files:
+#  nodeteaser.module: n/a
+#  nodeteaser.info,v 1.1 2007/02/14 00:22:36 ideaoforder
+#  nodeteaser.install: n/a
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PROJECT VERSION\n"
+"POT-Creation-Date: 2008-03-18 13:11-0500\n"
+"PO-Revision-Date: YYYY-mm-DD HH:MM+ZZZZ\n"
+"Last-Translator: NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <EMAIL@ADDRESS>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
+
+#: nodeteaser.module:18 nodeteaser.info:0
+msgid "Node Teaser"
+msgstr ""
+
+#: nodeteaser.module:19
+msgid "Set a variety of options for node teaser input and display."
+msgstr ""
+
+#: nodeteaser.module:71
+msgid "Teaser or Summary"
+msgstr ""
+
+#: nodeteaser.module:106
+msgid "Enter a teaser, summary, or description for this node."
+msgstr ""
+
+#: nodeteaser.module:110
+msgid "Based on current settings, the site's default teaser behavior will be used if you do not enter anything here."
+msgstr ""
+
+#: nodeteaser.module:113
+msgid "Based on current settings, no teaser will be displayed if you do not enter anything here."
+msgstr ""
+
+#: nodeteaser.module:116
+msgid "Based on current settings, the node's title will be displayed if you do not enter anything here."
+msgstr ""
+
+#: nodeteaser.module:119
+msgid "Based on current settings, the node's entire body will be displayed if you do not enter anything here and there is no %break is present in the node body. If a %break is present in the node's body, the site's default teaser behavior will be used."
+msgstr ""
+
+#: nodeteaser.module:123
+msgid "Based on current settings, the node's entire body will be displayed if you do not enter a teaser here."
+msgstr ""
+
+#: nodeteaser.module:267
+msgid "Drupal Default"
+msgstr ""
+
+#: nodeteaser.module:268
+msgid "Nothing"
+msgstr ""
+
+#: nodeteaser.module:269
+msgid "Node Title"
+msgstr ""
+
+#: nodeteaser.module:270
+msgid "Full Post"
+msgstr ""
+
+#: nodeteaser.module:271
+msgid "Full Post if no %break in node body"
+msgstr ""
+
+#: nodeteaser.module:276
+msgid "If node teaser is empty, display"
+msgstr ""
+
+#: nodeteaser.module:278
+msgid "Default display for empty node teasers"
+msgstr ""
+
+#: nodeteaser.module:285
+msgid "Collapse node teaser"
+msgstr ""
+
+#: nodeteaser.module:287
+msgid "Collapse node teaser by default"
+msgstr ""
+
+#: nodeteaser.module:293
+msgid "Show on every page except the listed pages."
+msgstr ""
+
+#: nodeteaser.module:294
+msgid "Show on only the listed pages."
+msgstr ""
+
+#: nodeteaser.module:303
+msgid "Enter one page per line as Drupal paths. The '*' character is a wildcard. Example paths are '%blog' for the blog page and %blog-wildcard for every personal blog. %front is the front page."
+msgstr ""
+
+#: nodeteaser.module:308
+msgid "Show if the following PHP code returns %true (PHP-mode, experts only)."
+msgstr ""
+
+#: nodeteaser.module:309
+msgid "TRUE"
+msgstr ""
+
+#: nodeteaser.module:310
+msgid " If the PHP-mode is chosen, enter PHP code between %php. Note that executing incorrect PHP-code can break your Drupal site."
+msgstr ""
+
+#: nodeteaser.module:315
+msgid "Show Teaser on specific pages"
+msgstr ""
+
+#: nodeteaser.module:322
+msgid "Pages"
+msgstr ""
+
+#: nodeteaser.install:46
+msgid "Node Teaser Settings"
+msgstr ""
+
+#: nodeteaser.install:47
+msgid "Node Teaser was successfully installed with the default options. To customize Node Teaser, please view the !settings page."
+msgstr ""
+
+#: nodeteaser.install:50
+msgid "Node Teaser could not be installed."
+msgstr ""
+
+#: nodeteaser.install:96
+msgid "Node Teaser was uninstalled successfully."
+msgstr ""
+
+#: nodeteaser.install:99
+msgid "Node Teaser could not be uninstalled."
+msgstr ""
+
+#: nodeteaser.info:0
+msgid "This module provides a separate teaser field."
+msgstr ""
