Я использовал для вопросов-ответов 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