You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
115 lines
2.9 KiB
115 lines
2.9 KiB
<?php |
|
|
|
/** |
|
* AVE.cms - Модуль Вопрос-Ответ |
|
* |
|
* @package AVE.cms |
|
* @subpackage module_FAQ |
|
* @since 2.0 |
|
* @filesource |
|
*/ |
|
if (!defined('BASE_DIR')) exit; |
|
|
|
if (defined('ACP')) |
|
{ |
|
$modul['ModuleName'] = 'Вопрос/ответ'; |
|
$modul['ModuleSysName'] = 'faq'; |
|
$modul['ModuleVersion'] = '1.0.1'; |
|
$modul['ModuleDescription'] = 'Модуль создания раширенной справочной системы на основе тегов.'; |
|
$modul['ModuleAutor'] = 'Freeon'; |
|
$modul['ModuleCopyright'] = '© 2007-2008 Overdoze Team'; |
|
$modul['ModuleStatus'] = 1; |
|
$modul['ModuleIsFunction'] = 1; |
|
$modul['ModuleAdminEdit'] = 1; |
|
$modul['ModuleFunction'] = 'mod_faq'; |
|
$modul['ModuleTag'] = '[mod_faq:XXX]'; |
|
$modul['ModuleTagLink'] = null; |
|
$modul['ModuleAveTag'] = '#\\\[mod_faq:(\\\d+)]#'; |
|
$modul['ModulePHPTag'] = "<?php mod_faq(''$1''); ?>"; |
|
} |
|
|
|
/** |
|
* Обработка тега модуля |
|
* |
|
* @param int $id идентификатор рубрики вопросов и ответов |
|
*/ |
|
function mod_faq($id) |
|
{ |
|
global $AVE_Template; |
|
|
|
$AVE_Template->caching = 1; // Включаем кеширование |
|
$AVE_Template->cache_lifetime = -1; // Неограниченное время жизни кэша |
|
// $AVE_Template->cache_dir .= '/faq'; // Папка для кеша модуля |
|
|
|
$tpl_dir = BASE_DIR . '/modules/faq/templates/'; // Путь к шаблону модуля |
|
|
|
// Если нету в кеше, то начинаем обрабатывать |
|
if (!$AVE_Template->is_cached($tpl_dir . 'show_faq.tpl', $id)) |
|
{ |
|
// Проверяем, есть ли папка для кеша, если нет (первый раз) — создаем |
|
if (!is_dir($AVE_Template->cache_dir)) |
|
{ |
|
$oldumask = umask(0); |
|
@mkdir($AVE_Template->cache_dir, 0777); |
|
umask($oldumask); |
|
} |
|
|
|
require_once(BASE_DIR . '/modules/faq/class.faq.php'); |
|
|
|
Faq::faqShow($id); |
|
} |
|
|
|
echo rewrite_link($AVE_Template->fetch($tpl_dir . 'show_faq.tpl', $id)); |
|
|
|
$AVE_Template->caching = false; // Отключаем кеширование |
|
} |
|
|
|
/** |
|
* Администрирование |
|
*/ |
|
if (defined('ACP') && !empty($_REQUEST['moduleaction'])) |
|
{ |
|
require_once(BASE_DIR . '/modules/faq/class.faq.php'); |
|
|
|
$tpl_dir = BASE_DIR . '/modules/faq/templates/'; |
|
$lang_file = BASE_DIR . '/modules/faq/lang/' . $_SESSION['user_language'] . '.txt'; |
|
|
|
$AVE_Template->config_load($lang_file); |
|
|
|
switch ($_REQUEST['moduleaction']) |
|
{ |
|
case '1': |
|
Faq::faqList($tpl_dir); |
|
break; |
|
|
|
case 'new': |
|
Faq::faqNew(); |
|
break; |
|
|
|
case 'del': |
|
Faq::faqDelete($tpl_dir); |
|
break; |
|
|
|
case 'save': |
|
Faq::faqListSave($tpl_dir); |
|
break; |
|
|
|
case 'questlist': |
|
Faq::faqQuestionList($tpl_dir); |
|
break; |
|
|
|
case 'questedit': |
|
Faq::faqQuestionEdit($tpl_dir); |
|
break; |
|
|
|
case 'questsave': |
|
Faq::faqQuestionSave($tpl_dir); |
|
break; |
|
|
|
case 'questdel': |
|
Faq::faqQuestionDelete($tpl_dir); |
|
break; |
|
} |
|
} |
|
|
|
?>
|