self::REQUEST_TEMPLATE, ); private $_template_numbers = array (); function acceptUserInput (ArrayObject $params) { if (! empty ($params [self::REQUEST_TEMPLATE])) { foreach (preg_split ('~\D+~', $params [self::REQUEST_TEMPLATE]) as $value) { if ($value = (int) $value) { $this->addTemplateNumber ($value); } } } elseif (isset ($params ['pseudo_template'])) { $this->setPseudoParameter (true); foreach ($params ['pseudo_template'] as $template) { $this->addTemplateNumber ($template); } } } function attachSql (Sql_Template $request) { if ($this->getTemplateNumbers ()) { $numbers = join (', ', $this->getTemplateNumbers ()); $request->addWhere ("`:prefix:templates`.id IN ($numbers)"); } } function isDegradeable () { return count ($this->getTemplateNumbers ()) > 0; } function degrade () { $this->_template_numbers = array (); } function getMacros () { return array ('TEMPLATE' => join (' ', $this->getTemplateNumbers ())); } protected function addTemplateNumber ($_template_number) { $this->_template_numbers [] = $_template_number; } protected function getTemplateNumbers () { return $this->_template_numbers; } }