We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 9932
    • 66 Posts
    Подкиньте идеику как организовать "Вопрос-Ответ" ... smiley
    Клиент задает вопрос, без регистрации, ну максимум с каптчей ... Он попадаен в unpublished на странице его не видно.
    Админ его смотрит , если надо отвечает, и тогда его можно видеть в в писке всех вопросо-ответоов.

    Только мне бы надо через админку ответы писать т.к. во фронтэнде у меня нет регистрации. Но это не проблема если нет я сделаю. Главное это фронтэнд. Чтоб клиент мог вопрос закинуть.
      • 785
      • 2,113 Posts
      Я использовал для вопросов-ответов ListFaqFolder, а для добавления вопросов написал небольшой сниппет (писал быстро, наверняка можно улучшить):

      [tt]
      <?php
      require_once(’assets/libs/docmanager/document.class.inc.php’);
      $maxChildren = 100;
      $parid = $modx->documentObject[’id’];
      $numChildren = count($modx->getDocumentChildren($parid,0));
      if (count($_POST) && isset($_POST[’sendque’])) {
      $question = $_POST[’question’];
      if ($question === "") {
      $output=’<p class="error">Необходимо ввести текст вопроса</p>’;
      }
      else {
      if ($numChildren < $maxChildren) {
      if (mb_strlen ($question) > 50) $begquestion= mb_substr($question,0,50)."...";
      else $begquestion= $question;
      $doc = new Document();
      $doc->Set(’parent’, $parid);
      $doc->Set(’pagetitle’,’Вопрос ’.time());
      $doc->Set(’longtitle’, $begquestion);
      $doc->Set(’menutitle’, $begquestion);
      $doc->Set(’alias’, ’faq’.time());
      $doc->Set(’template’,’4’);
      $doc->Set(’introtext’, $question);
      $doc->Set(’published’,’0’);
      $doc->Set(’searchable’,’1’);
      $doc->Save();

      $output=’<p class="error">Вопрос отправлен, постараемся не задерживаться с ответом</p>’;
      }
      else {
      $output=’<p class="error">Вопрос не сохранен! Слишком много накопилось вопросов, попробуйте задать вопрос в другой раз.</p>’;
      }
      }
      }
      elseif ($numChildren < $maxChildren) {
      $output=<<<EOD
      <form method="post" action="[~[*id*]~]">
      <label for="question">Вопрос:

      <textarea name="question" id="question" cols="50" rows="2"></textarea>
      </label>


      <input name="sendque" type="submit" class="submit" value="Отправить вопрос" />


      </form>
      EOD;
      }
      else {
      $output=’<p class="error">Вопросы задавать временно нельзя, пока не введены ответы на прошлые вопросы</p>’;
      }
      return $output;
      ?>
      [/tt]

      Реализацию можно посмотреть на http://e-kao.ru/faq
        Создание сайтов на MODx, поддержка сайтов, поисковая оптимизация, программирование, копирайтинг
        Статьи о MODx, регулярно новые публикации