public function __construct(&$params) { $this->option = JFactory::getApplication()->input->get('option'); $this->params = $params; $this->params->comment_start = '<!-- START: Modules Anywhere -->'; $this->params->comment_end = '<!-- END: Modules Anywhere -->'; $this->params->message_start = '<!-- Modules Anywhere Message: '; $this->params->message_end = ' -->'; $this->params->protect_start = '<!-- START: MA_PROTECT -->'; $this->params->protect_end = '<!-- END: MA_PROTECT -->'; $this->params->module_tag = trim($this->params->module_tag); $this->params->modulepos_tag = trim($this->params->modulepos_tag); $tags = array(); $tags[] = preg_quote($this->params->module_tag, '#'); $tags[] = preg_quote($this->params->modulepos_tag, '#'); if ($this->params->handle_loadposition) { $tags[] = 'loadposition'; } $this->params->tags = '(' . implode('|', $tags) . ')'; // Tag character start and end list($tag_start, $tag_end) = $this->getTagCharacters(true); $this->params->start_tags = $tags; array_walk($this->params->start_tags, function (&$tag, $key, $tag_start) { $tag = $tag_start . $tag; }, $this->params->tag_character_start); // Break/paragraph start and end tags $this->params->breaks_start = NNTags::getRegexSurroundingTagPre(); $this->params->breaks_end = NNTags::getRegexSurroundingTagPost(); $breaks_start = $this->params->breaks_start; $breaks_end = $this->params->breaks_end; $spaces = NNTags::getRegexSpaces(); $inside_tag = NNTags::getRegexInsideTag(); $this->params->regex = '#' . '(?P<start_div>(?:' . $breaks_start . $tag_start . 'div(?: ' . $inside_tag . ')?' . $tag_end . $breaks_end . '\\s*)?)' . '(?P<pre>' . $breaks_start . ')' . $tag_start . '(?P<type>' . implode('|', $tags) . ')' . $spaces . '(?P<id>' . $inside_tag . ')' . $tag_end . '(?P<post>' . $breaks_end . ')' . '(?P<end_div>(?:\\s*' . $breaks_start . $tag_start . '/div' . $tag_end . $breaks_end . ')?)' . '#s'; $this->params->protected_tags = array(); foreach ($tags as $tag) { $this->params->protected_tags[] = $this->params->tag_character_start . $tag; } $this->params->message = ''; $this->aid = JFactory::getUser()->getAuthorisedViewLevels(); $this->params->disabled_components = array('com_acymailing'); }
function cleanTagsFromHead(&$string) { if (strpos($string, $this->src_params->tag_character_start . $this->src_params->syntax_word) === false && strpos($string, $this->src_params->tag_character_start . '/' . $this->src_params->syntax_word) === false) { return; } list($tag_start, $tag_end) = $this->getTagCharacters(true); $spaces = NNTags::getRegexSpaces('*'); $inside_tag = NNTags::getRegexInsideTag(); // Remove start tag to end tag $string = preg_replace($this->src_params->regex, '', $string); // Remove start tag with optional php stuff after it $string = preg_replace('#' . $tag_start . preg_quote($this->src_params->syntax_word, '#') . $spaces . '(' . $inside_tag . ')' . $tag_end . '(\\s*<\\?php(.*?)\\?>)?' . '#s', '', $string); // Remove left over end tags $string = preg_replace('#' . $tag_start . '\\/' . preg_quote($this->src_params->syntax_word, '#') . $tag_end . '#s', '', $string); }