We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 897
    • 1,620 Posts
    товарищи, а кто знает на чем реализовать FAQ?

    нуно:
    - возможность постть вопросы
    - премодерация
    - отвечать на вопросы админом или манагером
    - выборочно формировать список вопросов с ответами
      "Und wenn du lange in einen Abgrund blickst, blickt der Abgrund auch in dich hinein."

      Не используйте Revo для "просто сайтов". Используйте Evo

      Who can defeat the Russian bear?
      • 33114
      • 518 Posts
      много сниппетов есть и в Modx и в Etomite для этого

      однако, я так понял у тебя вопросы посетители постить будут? такого честно признаюсь не встречал, видимо нужно писать свое (кстати при помощи того же Doc API от Дениса нашего)
        http://modx.ru - российская поддержка MODx
        http://newscup.ru - экспериментальный проект
        http://yentsun.com - персональный сайт
        • 897
        • 1,620 Posts
        да вот я тоже озадачился... не хочется, янтсун, а что похожее есть, может подправить удасться
          "Und wenn du lange in einen Abgrund blickst, blickt der Abgrund auch in dich hinein."

          Не используйте Revo для "просто сайтов". Используйте Evo

          Who can defeat the Russian bear?
          • 33114
          • 518 Posts
          вообще имей ввиду, что FAQ ни в коем случае не создается посетителями непосредственно. это действительно гостевая получается или минифорум. для гостевых есть в Etomite всего масса, может и не придется заново писать.
            http://modx.ru - российская поддержка MODx
            http://newscup.ru - экспериментальный проект
            http://yentsun.com - персональный сайт
            • 31113
            • 45 Posts
            Дух ur001 проснулся после бурных выходных...

            aleksey.stepanov: я для чего-то подобного и создавал свой DocAPI. Сейчас тот сайт пока в офлайне, но могу рассказать как там что устроено.

            1) Создаем шаблон документа для записи в FAQ, например "FAQTempleate"
            2) Дополняем его TV для ответа. Например с именем "Comment" и типом RichText
            3) Создаем папку в которой будут складываться посты
            4) Создаем чанк с формой для отправки вопроса, что-то типа:
            <form method="post" action="[~[*id*]~]">
            <input name="GuestbookForm" type="hidden" value="on" />
            Тема:<br/>
            <input name="pagetitle" type="text" size="40" value="[+pagetitle+]" /><br />
            Вопрос:<br/>
            <textarea name="content" cols="50" rows="4">[+content+]</textarea><br />
            <input name="send" type="submit" value="Отправить вопрос" />
            </form>

            5) Создаем снипет для добавления вопроса:
            require_once('assets/libs/docapi/document.class.inc.php');
            
            $isPostBack = isset($_POST['GuestbookForm']) ? true:false;
            $formTpl = $modx->getChunk($formtpl);
            
            if($isPostBack){
            	$doc = new Document();
            	$doc->Set('parent',$folder);
            	$doc->Set('alias','post'.time());
            	$doc->Set('template','FAQTempleate');
            	$doc->Set('published',0); // Если нужна премодерация, не публикуем по-умолчанию
            
            	foreach($_POST as $n=>$v){
            		// Проверка - то ли это поле, которое надо
            		// Экранирование спецсимволов в $v
            		// Проверка - заполнено ли поле, etc
            		// ....
            		$doc->Set($n,$v);
            	}
            
            	if(!isset($error)) $doc->Save();
            	else /* Выдача ошибки зполнения */
            }
            
            return $formTpl;
            

            6) Весь FAQ можно выводить Ditto или NewsListing, соответственно в шаблоне вывода надо отвести место для комментария (tvComment):
            <div class="summaryPost"> 
                 <h3>[+title+]</h3> 
                 <div class="summary">[+summary+]</div>
                 <div class="comment"><i>Комментарий:</i> [+tvComment+]</div>
            </div>

            7) Создать чанк {{FAQ}} где будет вызываться NewsListing и созданный снипет:
            [!NewsListing? &tpl=`FAQRecord` &startID=`29` &summarize=`10` &emptytext=`нет записей` &showarch=`0` &paginate=`1` &trunc=`false`!]
            [!FAQ? &folder=`29` &formtpl=`FAQForm`!]
            <div class="pagination">
            Страницы: [+pages+]
            </div>


            Что-то в этом духе. В моем случае нет премодерации, и, следовательно, вопрос должен выводиться сразу после поста. Тут возникают проблемы с кешированием, мало того, вызов снипета NewsListing должен располагаться после снипета FAQ, т.к. новый пост создастся только после его отработки. По-этому всему я не привел полностью свой код. Да и понять так проще
              • 31113
              • 45 Posts
              Ну, кто торжественно клялся? Прошу результаты тестирования/использования. Интересно же? Что-нибудь получилось?
                • 897
                • 1,620 Posts
                я к стыду своему ещё не курил эту проблему. но клятву сдержу. потому что заказчик уже канючит "где моя гостевая" smiley
                  "Und wenn du lange in einen Abgrund blickst, blickt der Abgrund auch in dich hinein."

                  Не используйте Revo для "просто сайтов". Используйте Evo

                  Who can defeat the Russian bear?
                  • 897
                  • 1,620 Posts
                  в общем покурил я, покурил... почитал, сташние товарищи советуют UserComment заюзать, что я и буду делать. По результатам, как и обещал, выложу how-to. а пока вот перевод статьи мануала о UserComments. всяческие попрвки приветствуются.
                    "Und wenn du lange in einen Abgrund blickst, blickt der Abgrund auch in dich hinein."

                    Не используйте Revo для "просто сайтов". Используйте Evo

                    Who can defeat the Russian bear?
                    • 28002
                    • 1 Posts
                    Подскажите, пожалуйста, как должен выглядеть этот FAQTempleate huh