<?php if (!defined('BASEPATH')) exit('No direct script access allowed'); 

/**
 * MaxSite CMS
 * (c) http://maxsite.org/
 */

# функция автоподключения плагина
function faq_autoload($args = array())
{
	mso_hook_add( 'content', 'faq_custom'); # хук на вывод контента
}

# callback-функция вычленения заголовков
function faq_custom_headers_callback($matches)
{
	return '<li><a href="#' . mso_slug($matches[1]) . '">' . $matches[1] . '</a></li>';
}

# callback-функция вычленения текстов
function faq_custom_text_callback($matches)
{
	return '<a name="' . mso_slug($matches[1]) . '"></a><h3>' . $matches[1] . '</h3>'
			. '<div class="faq-text">' . $matches[2] . '<a href="#faq-top">К списку</a></div>';
}

function faq_custom_faqs_callback($matches)
{
	$text = $matches[1]; // все faq
	
	$pattern = '~\[faq=(.*?)\](.*?)\[/faq\]~si';
	$text1 = '<ul>' . preg_replace_callback($pattern, 'faq_custom_headers_callback', $text) . '</ul>';
	
	$text2 = preg_replace_callback($pattern, 'faq_custom_text_callback', $text);
	
	$text = '<div class="faq-list">' . $text1 . '</div><div class="faq-out">' . $text2 . '</div>';
	
	return $text;
}

# функции плагина
function faq_custom($text = '')
{
	if (strpos($text, '[faqs]') !== false) // есть вхождения [faqs]
	{
		$pattern = '~\[faqs\](.*?)\[/faqs\]~si';
		$text = '<div class="faq"><a name="faq-top"></a>' 
				. preg_replace_callback($pattern, 'faq_custom_faqs_callback', $text) 
				. '</div><!--div class="faq"-->';
	}
	return $text;
}

?>