Помощь Модуль faq

Тема в разделе "DLE", создана пользователем clubmen, 13 мар 2012.

Информация :
Актуальная версия DataLife Engine 11.3
( Final Release v.11.3 | Скачать DataLife Engine | Скачать 11.3 demo )
Нужно ли обновляться | Как обновиться | Изменения в шаблонах
> Нет русских символов <
[Приватная тема DLE (Все подробности в ЛС к модератору раздела)]

Версии 11.2 и ниже - уязвимы!

Локализации | F.A.Q. | Внешний вид
Правила раздела | Правила форума
Обсуждение хайда карается баном!
В каждом сообщении указывайте версию DLE, которого они касаются!
Модераторы: killoff
  1. clubmen

    clubmen

    Регистр.:
    18 янв 2010
    Сообщения:
    200
    Симпатии:
    34
    Есть модуль FAQ, проблема заключается в том что на dle 9.2 при выводе на сайте, не работают bb коды. То есть выводит вот так на странице с факом

    Код:
    [thumb=left]http://site.ru/uploads/posts/2012-03/1331206260_1.jpg[/thumb]
    Не могу понять в чем дело, вожусь уже пол дня не получается сделать. Вот сам код мода

    modules:

    Код:
    <?php
    /*
    =====================================================
    myFAQ module, version 1.3, for DLE 8.2
    -----------------------------------------------------
    http://www.musichole.ru/
    -----------------------------------------------------
    Copyright (c) 2007-2010 DiGitaL, PAV
    =====================================================
    Данный код защищен авторскими правами
    =====================================================
    Файл: faq.php
    -----------------------------------------------------
    Назначение: вывод FAQ
    =====================================================
    */
    
    if (file_exists(ROOT_DIR.'/install.php')) { die("Внимание! Вы не удалили install.php файл который находится в корне сайта."); }
    
    if(!defined('DATALIFEENGINE')) {
    die("Hacking attempt!");
    }
    
    require_once(ENGINE_DIR.'/data/config.php');
    require_once(ENGINE_DIR.'/classes/parse.class.php');
    
    $parse = new ParseFilter();
    $parse->safe_mode = true;
    
    require_once(ENGINE_DIR.'/classes/mysql.php');
    
    
    $showfaq = $db->query("SELECT * FROM " . PREFIX . "_faq");
    $txtFAQ = "";
    $static_descr = stripslashes( strip_tags( $static_result['descr'] ) );
    while($row = $db->get_row($showfaq)) {
    $txtFAQ .= "<a href=\"javascript:ShowOrHide('".$row['id']."');\"><b>Вопрос: ". $parse->BB_Parse($row['question'])."</b></a><br />" . "<div id=\"".$row['id']."\" style=\"display : none;\">Ответ: ". $parse->BB_Parse ( $parse->process($row['answer']))."</div><br /><hr style='height:1px; border:0px; border-top: 1px dashed #d8d8d8; display:block;'/>";
    }
    
    $tpl->load_template('faq.tpl');
    $tpl->set('{static}', !empty($txtFAQ) ? $txtFAQ : "");
    $tpl->set('{description}', 'F.A.Q. - Часто задаваемые вопросы.');
    $tpl->set('{pages}', '');
    $tpl->compile('content');
    $tpl->clear();
    
    ?>
    и админка

    Код:
    <?php
    /*
    =====================================================
    myFAQ module, version 1.3, for DLE 8.2
    -----------------------------------------------------
    http://www.musichole.ru/
    -----------------------------------------------------
    Copyright (c) 2007-2010 DiGitaL, PAV
    =====================================================
    Данный код защищен авторскими правами
    =====================================================
    Файл: faq.php
    -----------------------------------------------------
    Назначение: Административная часть модуля FAQ
    =====================================================
    */
    
    if(!defined('DATALIFEENGINE')) {
    die("Hacking attempt!");
    }
    
    if($member_id['user_group'] != 1){ msg("error", $lang['addnews_denied'], $lang['db_denied']); }
    if (isset ($_REQUEST['id'])) $id = intval($_REQUEST['id']); else $id = "";
    
    require_once(ENGINE_DIR.'/data/config.php');
    require_once(ENGINE_DIR.'/classes/mysql.php');
    
    
    //Функции для работы модуля
    function opentable() {
    echo <<<HTML
    <div style="padding-top:5px;padding-bottom:2px;">
    <table width="100%">
    <tr>
    <td width="4"><img src="engine/skins/images/tl_lo.gif" width="4" height="4" border="0"></td>
    <td background="engine/skins/images/tl_oo.gif"><img src="engine/skins/images/tl_oo.gif" width="1" height="4" border="0"></td>
    <td width="6"><img src="engine/skins/images/tl_ro.gif" width="6" height="4" border="0"></td>
    </tr>
    <tr>
    <td background="engine/skins/images/tl_lb.gif"><img src="engine/skins/images/tl_lb.gif" width="4" height="1" border="0"></td>
    <td style="padding:5px;" bgcolor="#FFFFFF">
    HTML;
    }
    
    function closetable() {
    echo <<<HTML
    </td>
    <td background="engine/skins/images/tl_rb.gif"><img src="engine/skins/images/tl_rb.gif" width="6" height="1" border="0"></td>
    </tr>
    <tr>
    <td><img src="engine/skins/images/tl_lu.gif" width="4" height="6" border="0"></td>
    <td background="engine/skins/images/tl_ub.gif"><img src="engine/skins/images/tl_ub.gif" width="1" height="6" border="0"></td>
    <td><img src="engine/skins/images/tl_ru.gif" width="6" height="6" border="0"></td>
    </tr>
    </table>
    </div>
    HTML;
    }
    
    function tableheader($value) {
    echo <<<HTML
    <table width="100%">
    <tr>
    <td bgcolor="#EFEFEF" height="29" style="padding-left:10px;">
    <div class="navigation">$value</div></td>
    </tr>
    </table>
    <div class="unterline"></div>
    HTML;
    }
    // Конец функций работы модуля
    
    function faqmain() {
    echoheader("FAQ", "Админпанель модуля FAQ");
    }
    function faqmenu() {
    opentable();
    tableheader('Настройка модуля');
    echo<<<HTML
    <form action="$PHP_SELF?mod=faq" method="post">
    <table width="100%">
    <tr>
    <td width="50%"><div class="quick"><a href="$PHP_SELF?mod=faq"><img src="engine/skins/images/general.png" border="0" align="left"><h3>Главная</h3>Перейти на галвную страницу модуля в админпанели</a></div></td>
    <td><div class="quick"><a href="$PHP_SELF?mod=faq&action=add_faq"><img src="engine/skins/images/spset.png" border="0" align="left"><h3>Добавить FAQ</h3>Открыть форму добавления нового вопроса и ответа на него</a></div></td>
    </tr>
    <tr>
    <td><div class="quick"><a href="$PHP_SELF?mod=faq&action=list"><img src="engine/skins/images/comments.png" border="0" align="left"><h3>Управление FAQ</h3>Изменение, удаление существующих FAQ</a></div></td>
    <td><div class="quick"><a href="$PHP_SELF?mod=faq&action=dev"><img src="engine/skins/images/pset.png" border="0" align="left"><h3>Разработчики</h3>Информация о создателях модуля</a></div></td>
    </tr>
    
    </table>
    </form>
    HTML;
    closetable();
    }
    
    if ($_REQUEST['action'] == "list") {
    $entries_showed = 0;
    $entries = "";
    
    require_once(ENGINE_DIR.'/classes/parse.class.php');
    
    $parse = new ParseFilter();
    $parse->safe_mode = true;
    
    //Выводим список существующих FAQ
    $result = $db->query("SELECT * FROM " . PREFIX . "_faq");
    if($result) {
    while ($row = $db->get_array($result)) {
    if (strlen(trim($row['question'])) > 55) $question = substr (trim($row['question']), 0, 55)." ..."; else $question = trim($row['question']);
    $entries .= "<tr><td class=\"list\" style=\"padding:4px;\">".$question;
    $entries .= "<td class=\"list\" style=\"padding:4px;\">
    <a href=\"$PHP_SELF?mod=faq&action=edit&id=".$row['id']."\">[редактировать]</a>&nbsp;
    <a href=\"$PHP_SELF?mod=faq&action=delete_faq&id=".$row['id']."\">[удалить]</a>";
    $entries .= "</td><td class=\"list\" style=\"padding:4px;\">
    <input name=\"selected_faqs[]\" value=\"{$row['id']}\" type=\"checkbox\">";
    $entries .= "</td></tr><tr><td background=\"engine/skins/images/mline.gif\" height\"1\" colspan=\"3\"></td></tr>";
    $entries_showed++;
    }
    }
    
    echo <<<JSCRIPT
    <script language='JavaScript' type="text/javascript">
    <!--
    function ckeck_uncheck_all() {
    var frm = document.editfaq;
    for (var i=0;i<frm.elements.length;i++) {
    var elmnt = frm.elements[i];
    if (elmnt.type=='checkbox') {
    if(frm.master_box.checked == true){ elmnt.checked=false; }
    else{ elmnt.checked=true; }
    }
    }
    if(frm.master_box.checked == true){ frm.master_box.checked = false; }
    else{ frm.master_box.checked = true; }
    }
    -->
    </script>
    JSCRIPT;
    
    faqmain();
    faqmenu();
    if($entries_showed == 0){
    opentable();
    tableheader($lang['faq_list']);
    echo <<<HTML
    <table width="100%">
    <tr>
    <td align="center" style="height:50px;">{$lang['edit_nofaq']}</td>
    </tr>
    </table>
    HTML;
    closetable();
    echofooter();
    } else {
    echo <<<HTML
    <form action="" method="post" name="editfaq">
    HTML;
    opentable();
    
    tableheader($lang['news_list']);
    echo <<<HTML
    <table width="100%">
    <tr>
    <td>
    <table width="100%">
    <tr>
    <td class="list" style="padding:4px;" align="center">{$lang['edit_title_faq']}</td>
    <td class="list" width="180" style="padding:4px;" align="center">{$lang['edit_cl_faq']}</td>
    <td class="list" width="10" style="padding:4px;" align="center"><input type="checkbox" name="master_box" title="{$lang['edit_selall']}" onclick="javascript:ckeck_uncheck_all()" /></td>
    </tr>
    <tr><td colspan="3"><div class="hr_line"></div></td></tr>
    {$entries}
    <tr><td colspan="3"><div class="hr_line"></div></td></tr>
    </table>
    HTML;
    }
    
    if($entries_showed != 0){
    echo<<<HTML
    <table width="100%">
    <tr><td>{$npp_nav}</td>
    <td colspan="5" align="right" valign="top"><div style="margin-bottom:5px; margin-top:5px;">
    <select name="action">
    <option value="">{$lang['edit_selact']}</option>
    <option value="mass_delete">{$lang['edit_seldel']}</option>
    </select>
    <input type="hidden" name="mod" value="faq">
    <input class="edit" type="submit" value="{$lang['b_start']}">
    </table>
    </form><td></tr>
    HTML;
    }
    
    echo<<<HTML
    
    </td>
    </tr>
    </table>
    HTML;
    closetable();
    echofooter();
    }
    
    elseif ($_REQUEST['action'] == "add_faq") {
    //Вводим данные из форм выше в БД
    
    require_once(ENGINE_DIR.'/classes/parse.class.php');
    
    $parse = new ParseFilter(Array(), Array(), 1, 1);
    $parse->leech_mode = true;
    
    $question = trim($db->safesql($parse->process($_POST['question'])));
    $answer = trim($db->safesql($parse->process($_POST['answer'])));
    $isaddf=false;
    if (!empty($_POST['save_n'])) $save_n = $_POST['save_n'];
    if(isset($save_n) && $question!="" && $answer!="") {
    $row = $db->query("INSERT INTO " . PREFIX . "_faq (id, question, answer) VALUES (NULL, '".$question."', '".$answer."')");
    msg("info", $lang['mass_head_add_faq'], $lang['mass_addok_faq'], "$PHP_SELF?mod=faq&action=list");
    } else {
    faqmain();
    $isaddf=true;
    
    $question = stripslashes($_POST['question']);
    $answer = stripslashes($_POST['answer']);
    include(ENGINE_DIR.'/inc/include/inserttag.php');
    opentable();
    tableheader('Добавление FAQ');
    echo<<<HTML
    <form action="" method="post">
    <table width="100%">
    <tr>
    <td class="option" style="padding:4px;">
    
    <table width="100%">
    <tr>
    <td class="option" style="padding:4px;">
    <b> Вопрос: </b><br />
    <span class="small"> Введите вопрос, будет отображаться в модуле </span>
    <td align="middle" width="80%">
    
    HTML;
    
    echo "{$bb_code}<textarea rows=\"8\" style=\"width:98%; padding:0px; text-align:left;\" value=\"\" name=\"question\" id=\"short_story\" onclick=\"setFieldName(this.name)\">".$question."</textarea>";
    
    echo<<<HTML
    </td>
    </tr>
    
    <tr><td background="engine/skins/images/mline.gif" height="1" colspan="2"></td></tr>
    
    <tr>
    <td class="option" style="padding:4px;">
    <b> Ответ </b><br />
    <span class="small"> Ответ на поставленный выше вопрос </span>
    <td align="middle" width="400">
    HTML;
    
    echo "<textarea rows=\"8\" style=\"width:98%; padding:0px; text-align:left;\" value=\"\" name=\"answer\" id=\"full_story\" onclick=\"setFieldName(this.name)\">".$answer."</textarea>";
    
    if ($isaddf) {
    echo<<<HTML
    </td>
    </tr>
    
    <tr><td background="engine/skins/images/mline.gif" height="1" colspan="2"></td></tr>
    
    <tr>
    <td class="option" style="padding-bottom:10px; padding-top:10px; padding-left:4px;" colspan="2">
    <font color="darkred">Заполните все поля!</font>
    HTML;
    }
    
    echo<<<HTML
    </td>
    </tr>
    
    <tr><td background="engine/skins/images/mline.gif" height="1" colspan="2"></td></tr>
    
    <tr>
    <td class="option" style="padding-bottom:10px; padding-top:10px; padding-left:10px; text-align:right;" colspan="2">
    <input class="buttons" type="submit" name="save_n" value=" Сохранить " />
    HTML;
    
    
    
    echo<<<HTML
    
    </td>
    </tr>
    
    </table>
    
    </td>
    </tr>
    
    </table>
    </form>
    HTML;
    closetable();
    echofooter();
    }
    }
    
    //Редактируем выбранный FAQ по ID
    elseif($_REQUEST['action'] == "edit" AND $id) {
    include(ENGINE_DIR.'/inc/include/inserttag.php');
    faqmain();
    faqmenu();
    //Вводим данные из форм ниже в БД
    require_once(ENGINE_DIR.'/classes/parse.class.php');
    
    $parse = new ParseFilter(Array(), Array(), 1, 1);
    $parse->leech_mode = true;
    
    $question = trim($db->safesql($parse->process($_POST['question'])));
    $answer = trim($db->safesql($parse->process($_POST['answer'])));
    if (!empty($_POST['save_n'])) $save_n = $_POST['save_n'];
    if(isset($save_n) && $question!="" && $answer!="") {
    $row = $db->query("UPDATE " . PREFIX . "_faq SET question='".$question."', answer='".$answer."' WHERE id='$id'");
    if ($row) $result="Вопрос был изменён!";
    $db->free($row);
    }
    //КОНЕЦ Вводим данные из форм ниже в БД
    
    
    //Начало запроса из БД выбранного ID FAQ
    $row = $db->query("SELECT * FROM " . PREFIX . "_faq WHERE id='$id'");
    if($row) {
    $row1 = $db->get_array($row);
    
    opentable();
    tableheader('Редактирование FAQ');
    echo<<<HTML
    <form action="" method="post">
    <table width="100%">
    <tr>
    <td class="option" style="padding:4px;">
    
    
    
    <table width="100%">
    <tr>
    <td class="option" style="padding:4px;">
    <b> Вопрос: </b><br />
    <span class="small"> Введите вопрос, будет отображаться в модуле </span>
    <td align="middle" width="80%">
    
    HTML;
    
    echo "{$bb_code}<textarea rows=\"8\" style=\"width:98%; padding:0px; text-align:left;\" value=\"\" name=\"question\" id=\"short_story\" onclick=\"setFieldName(this.name)\">".$row1['question']."</textarea>";
    
    echo<<<HTML
    </td>
    </tr>
    
    <tr><td background="engine/skins/images/mline.gif" height="1" colspan="2"></td></tr>
    
    <tr>
    <td class="option" style="padding:4px;">
    <b> Ответ </b><br />
    <span class="small"> Ответ на поставленный выше вопрос </span>
    <td align="middle" width="400">
    HTML;
    
    echo "<textarea rows=\"8\" style=\"width:98%; padding:0px; text-align:left;\" value=\"\" name=\"answer\" id=\"full_story\" onclick=\"setFieldName(this.name)\">".$row1['answer']."</textarea>";
    
    if (!empty($result)) {
    echo<<<HTML
    </td>
    </tr>
    
    <tr><td background="engine/skins/images/mline.gif" height="1" colspan="2"></td></tr>
    
    <tr>
    <td class="option" style="padding-bottom:10px; padding-top:10px; padding-left:4px;" colspan="2">
    HTML;
    echo "<font color=\"green\">".$result."</font>";
    }
    
    
    if( $config['allow_static_wysiwyg'] != "yes" ) $fix_br = "<input type=\"radio\" name=\"allow_br\" value=\"1\" checked=\"checked\" /> {$lang['static_br_html']}<br /><input type=\"radio\" name=\"allow_br\" value=\"0\" /> {$lang['static_br_html_1']}";
    else $fix_br = "<input type=\"radio\" name=\"allow_br\" value=\"0\" /> {$lang['static_br_html_1']}";
    
    if ($member_id['user_group'] == 1 ) $fix_br .= "<br /><input type=\"radio\" name=\"allow_br\" value=\"2\" /> {$lang['static_br_html_2']}";
    
    echo<<<HTML
    </td>
    </tr>
    
    <tr><td background="engine/skins/images/mline.gif" height="1" colspan="2"></td></tr>
    <tr><td>{$lang['static_type']}</td><td>{$fix_br}</td></tr>
    <tr><td colspan="2"><div class="hr_line"></div></td></tr>
    <tr>
    <td class="option" style="padding-bottom:10px; padding-top:10px; padding-left:10px;" colspan="2">
    <input class="buttons" type="submit" name="save_n" value=" Сохранить " />
    HTML;
    
    
    
    echo<<<HTML
    
    </td>
    </tr>
    
    </table>
    
    </td>
    </tr>
    
    </table>
    </form>
    HTML;
    // Конец запроса из БД выбранного ID FAQ
    }
    $db->free($row);
    closetable();
    echofooter();
    }
    //Конец редактирования FAQ
    
    //Удаляем выбранный FAQ по ID
    elseif($_REQUEST['action'] == "delete_faq" AND $id) {
    faqmain();
    
    echo <<<HTML
    <form action="{$PHP_SELF}" method="post">
    HTML;
    opentable();
    tableheader('F.A.Q.');
    echo <<<HTML
    <table width="100%">
    <tr>
    <td style="padding:2px;" height="100" align="center">{$lang['mass_confirm']}
    HTML;
    
    echo "(<b>".count($selected_faqs)."</b>) $lang[mass_confirm_1_faq]<br><br>
    <input class=\"bbcodes\" type=\"submit\" value=\" $lang[mass_yes] \"> &nbsp; <input type=button class=bbcodes value=\" $lang[mass_no] \" onclick=\"javascript:document.location='$PHP_SELF?mod=faq&action=list'\">
    <input type=\"hidden\" name=\"action\" value=\"do_delete_faq\">
    <input type=\"hidden\" name=\"mod\" value=\"faq\">
    <input type=\"hidden\" name=\"id\" value=\"$id\">";
    
    echo <<<HTML
    </tr>
    </table>
    HTML;
    closetable();
    
    echo "</form>";
    
    echofooter();
    }
    
    elseif ($_REQUEST['action'] == "do_delete_faq"){
    $db->query("DELETE FROM " . PREFIX . "_faq WHERE id='$id'") or die("Error:<b> ". mysql_error()." </b>in file <b>".__FILE__."</b> on line <b>".__LINE__);
    msg("info", $lang['mass_head_del_faq'], $lang['mass_delok_faq'], "$PHP_SELF?mod=faq&action=list");
    }
    /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Подтвреждение удаления
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
    elseif ($_REQUEST['action'] == "mass_delete"){
    faqmain();
    
    echo <<<HTML
    <form action="{$PHP_SELF}" method="post">
    <div style="padding-top:5px;padding-bottom:2px;">
    HTML;
    opentable();
    tableheader('F.A.Q.');
    echo <<<HTML
    <table width="100%">
    <tr>
    <td style="padding:2px;" height="100" align="center">{$lang['mass_confirm']}
    HTML;
    
    echo "(<b>".count($selected_faqs)."</b>) $lang[mass_confirm_1_faq]<br><br>
    <input class=\"bbcodes\" type=\"submit\" value=\" $lang[mass_yes] \"> &nbsp; <input type=button class=bbcodes value=\" $lang[mass_no] \" onclick=\"javascript:document.location='$PHP_SELF?mod=faq&action=list'\">
    <input type=\"hidden\" name=\"action\" value=\"do_mass_delete\">
    <input type=\"hidden\" name=\"mod\" value=\"faq\">";
    foreach($selected_faqs as $faqid){
    echo "<input type=hidden name=selected_faqs[] value=\"$faqid\">\n";
    }
    
    echo <<<HTML
    </tr>
    </table>
    HTML;
    closetable();
    echo "</form>";
    
    echofooter();
    }
    /* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Удаление FAQ
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
    elseif($_REQUEST['action'] == "do_mass_delete"){
    if(!$selected_faqs){ msg("error", $lang['mass_error'], $lang['mass_denied_faq'], "$PHP_SELF?mod=faq&action=list"); }
    $deleted_faqs=0;
    foreach ($selected_faqs as $id) {
    $id = intval($id);
    $db->query("DELETE FROM " . PREFIX . "_faq WHERE id='$id'");
    $deleted_faqs++;
    }
    if(count($selected_faqs) == $deleted_faqs){ msg("info", $lang['mass_head_del_faq'], $lang['mass_delok_faq'], "$PHP_SELF?mod=faq&action=list"); }
    else{ msg("error", $lang['mass_notok_faq'], "$deleted_articles $lang[mass_i] ".count($selected_faqs)." $lang[mass_notok_1_faq]", "$PHP_SELF?mod=faq&action=list"); }
    }
    elseif ($_REQUEST['action'] == "dev") {
    faqmain();
    faqmenu();
    opentable();
    tableheader('F.A.Q.');
    echo<<<HTML
    <form action="" method="post">
    <table width="100%">
    <tr>
    <td class="option" style="padding:4px;">
    Модуль F.A.Q.<br>
    Автор: DiGitaL<br>
    Адаптация: eXtErNaL<br>
    </td>
    </tr>
    </table>
    </form>
    HTML;
    closetable();
    echofooter();
    } else {
    faqmain();
    faqmenu();
    echofooter();
    }
    
    
    ?>
     
  2. killoff

    killoff CD тихо, и не DVD меня ;)

    Moderator
    Регистр.:
    13 май 2008
    Сообщения:
    2.166
    Симпатии:
    796
    и куда все это нужно вводить?