<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
/**
* MaxSite CMS
* (c) http://max-3000.com/
*/
# функция автоподключения плагина
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 id="' . mso_slug($matches[1]) . '"></a><h3 class="mso-faq">' . trim($matches[1]) . '</h3>'
. '<div class="mso-faq-text">' . trim($matches[2]) . '<a href="#faq-top" class="mso-to-faq-top">' . t('К списку') . '</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="mso-faq-list">' . $text1 . '</div><div class="mso-faq-out">' . $text2 . '</div>';
return '<div class="mso-faq"><a id="faq-top"></a>' . $text . '</div><!--div class="mso-faq"-->';
}
# функции плагина
function faq_custom($text = '')
{
if (strpos($text, '[faqs]') !== false) // есть вхождения [faqs]
{
$text = preg_replace_callback('~\[faqs\](.*?)\[/faqs\]~si', 'faq_custom_faqs_callback', $text);
}
return $text;
}
# end file