tags of the html code * * @var array */ protected $_headerCode = array(); /** * * code to be added between the tags, preferably towards the * bottom, usable for javascript code etc * * @var array */ protected $_bodyCode = array(); /** * * add code to the page header, duplicates will be skipped * * @param string $code * * @return \Cube\View\Helper\Script */ public function addHeaderCode($code) { $code = (string)$code; if (!in_array($code, $this->_headerCode)) { $this->_headerCode[] = $code; } return $this; } /** * * remove header code * * @param string $code * * @return $this */ public function removeHeaderCode($code) { $code = $this->_addSpecialChars($code); foreach ($this->_headerCode as $key => $value) { $value = $this->_addSpecialChars($value); if ($value == $code) { unset($this->_headerCode[$key]); } } return $this; } /** * * clear header code variable * * @return $this */ public function clearHeaderCode() { $this->_headerCode = array(); return $this; } /** * * add code to the page body, duplicates will be skipped * * @param string $code * * @return $this */ public function addBodyCode($code) { if (is_array($code)) { foreach ($code as $c) { $this->addBodyCode($c); } } else { $code = (string)$code; if (!in_array($code, $this->_bodyCode)) { $this->_bodyCode[] = $code; } } return $this; } /** * * remove body code * * @param string $code * * @return $this */ public function removeBodyCode($code) { $code = $this->_addSpecialChars($code); foreach ($this->_bodyCode as $key => $value) { $value = $this->_addSpecialChars($value); if ($value == $code) { unset($this->_bodyCode[$key]); } } return $this; } /** * * clear body code variable * * @return $this */ public function clearBodyCode() { $this->_bodyCode = array(); return $this; } /** * * method that is called by the reflection class, returns an instance of the object * * @return \Cube\View\Helper\Script */ public function script() { return $this; } /** * * display the header code * * @return string */ public function displayHeaderCode() { return implode("\n", $this->_headerCode); } /** * * display the footer code * * @return string */ public function displayBodyCode() { return implode("\n", $this->_bodyCode); } /** * * add special chars * * @param string $input * * @return mixed */ private function _addSpecialChars($input) { return str_ireplace( array('&', ''', '"', '<', '>', ' '), array('&', "'", '"', '<', '>', ' '), $input); } }