Browse Source

Merge pull request #509 from cviebrock/section-append

Make Section::append public, and do a true append. Other methods are renamed but unchanged.
Taylor Otwell 12 years ago
parent
commit
78a2bce820
1 changed files with 25 additions and 4 deletions
  1. 25 4
      laravel/section.php

+ 25 - 4
laravel/section.php

@@ -39,7 +39,7 @@ class Section {
 		}
 		else
 		{
-			static::append($section, $content);
+			static::extend($section, $content);
 		}
 	}
 
@@ -79,19 +79,20 @@ class Section {
 	 */
 	public static function stop()
 	{
-		static::append($last = array_pop(static::$last), ob_get_clean());
+		static::extend($last = array_pop(static::$last), ob_get_clean());
 
 		return $last;
 	}
 
 	/**
-	 * Append content to a given section.
+	 * Extend the content in a given section.
+	 * The old content can be injected into the new using "@parent".
 	 *
 	 * @param  string  $section
 	 * @param  string  $content
 	 * @return void
 	 */
-	protected static function append($section, $content)
+	protected static function extend($section, $content)
 	{
 		if (isset(static::$sections[$section]))
 		{
@@ -103,6 +104,26 @@ class Section {
 		}
 	}
 
+	/**
+	 * Append content to a given section.
+	 * This concatenates the old content and the new.
+	 *
+	 * @param  string  $section
+	 * @param  string  $content
+	 * @return void
+	 */
+	public static function append($section, $content)
+	{
+		if (isset(static::$sections[$section]))
+		{
+			static::$sections[$section] .= $content;
+		}
+		else
+		{
+			static::$sections[$section] = $content;
+		}
+	}
+
 	/**
 	 * Get the string contents of a section.
 	 *