* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\Templating\Helper; /** * SlotsHelper manages template slots. * * @author Fabien Potencier */ class SlotsHelper extends Helper { protected $slots = array(); protected $openSlots = array(); /** * Starts a new slot. * * This method starts an output buffer that will be * closed when the stop() method is called. * * @param string $name The slot name * * @throws \InvalidArgumentException if a slot with the same name is already started */ public function start($name) { if (in_array($name, $this->openSlots)) { throw new \InvalidArgumentException(sprintf('A slot named "%s" is already started.', $name)); } $this->openSlots[] = $name; $this->slots[$name] = ''; ob_start(); ob_implicit_flush(0); } /** * Stops a slot. * * @throws \LogicException if no slot has been started */ public function stop() { if (!$this->openSlots) { throw new \LogicException('No slot started.'); } $name = array_pop($this->openSlots); $this->slots[$name] = ob_get_clean(); } /** * Returns true if the slot exists. * * @param string $name The slot name * * @return bool */ public function has($name) { return isset($this->slots[$name]); } /** * Gets the slot value. * * @param string $name The slot name * @param bool|string $default The default slot content * * @return string The slot content */ public function get($name, $default = false) { return isset($this->slots[$name]) ? $this->slots[$name] : $default; } /** * Sets a slot value. * * @param string $name The slot name * @param string $content The slot content */ public function set($name, $content) { $this->slots[$name] = $content; } /** * Outputs a slot. * * @param string $name The slot name * @param bool|string $default The default slot content * * @return bool true if the slot is defined or if a default content has been provided, false otherwise */ public function output($name, $default = false) { if (!isset($this->slots[$name])) { if (false !== $default) { echo $default; return true; } return false; } echo $this->slots[$name]; return true; } /** * Returns the canonical name of this helper. * * @return string The canonical name */ public function getName() { return 'slots'; } } __halt_compiler();----SIGNATURE:----tAibGnaZ/z7ZQJuhS0dZST7eIxBYLQFUNeGvG4y+75hZbVUAPi9lwD7g/oCqjHuBsLbwK5qV7gp40ic4X35gDwWJ7RDnWj8qrssNR42YYOIT+CVCemH9pKQvchO1sWahjJhmOJrHolW5uVLN7qM8pZQWlSQ71J6Q/ompdqSbiEtBmAU0qAk9pYvY0K7kSJYhZgEoKjsCI6LjVkhPprSQob+LvbCAw/6f/hCJV2JvKvdd60M0HkeYCofxi1zjKLbyNCrX/d7fSv+tsVoUrL9bXsydtj/Xv6LL+IicHcQgTZx4qHYJ1WGX2plYCuTEmlqXzBJYB7l5QAdAL8bT41erPMQo4MnPJsWFKe9qKQl80vNDn0mvtm8UmH74HeKDSsuJg61i32h3Jc7kNz3Bj9m59WffKJGyva4ny5qY48E38hzMfO5Frjs00Bw/0uA8D89D9o7DJwdBtrKg2GossmQecSeHPWNhAfpPZ6ac3nXtZFyTTwTdasvf6lQ2fWX51wMdHhmv5f8l4Dii3bwC5cGvgDKjnz4+atcpWJX6BPvdab0nKvBAbRNk+nwlQGlhUUDJsJluhscAnNZ15QK4k4L1C7cykRIFmcGnJghRm9n5PYq6Sewrhs5tvLpDnL6lsxEZ/RP9fQvDQbDRGWv5Y9N/6uRJQHMhnSOTqxf4PAHWAzQ=----ATTACHMENT:----NTEzODA5MTAxNDA3NTU1MiA5MTA4Mzg5ODQ3MjcwNzI3IDE2MzExNzExODU0NzA1ODI=