Questions and answers

Хочу сделать на сайте полноценный q&a раздел. Сейчас он работает так, есть специальный тип блога и тип контента.

Сейчас хочу сделать выбор ответа, как проще мне это сделать?

Похожие статьи

  • Comments
    как создать условие, если Тип топика к примеру QA то подключается шаблон {include file="comments/comment.qa-tree.tpl" {extends file="_index.tpl"} {block name="layout_vars"} {$menu="...
  • Предлагаю ввести тестирование в цикл
    Здравствуйте! Заранее извиняюсь, но буду говорить. Метаюсь между ЛС и альто. ЛС развивается медленно, но практически без глюков. Альто идет вперед семимильными шагами, но очень много битого функционала, что не...

59 комментариев

+1
Программить можете? Если немного покодить, то примерно так:
1) Пишется плагин, где переопределяется сущность ModuleTopic_EntityTopic
2) В нее добавляются методы
public function setBestComment($nCommentId) {
    $this->setExtraValue('best_comment');
}
public function getBestComment($nCommentId) {
    return $this->getExtraValue('best_comment');
}
3) Немного дорабатывается шаблон отображения этого типа топика так, чтобы если нет лучшего коммента, то рядом с каждым комментом добавляется кнопка «Лучший ответ», по клику на которую ID коммента сохраняется методом setBestComment()
4) Если лучший коммент есть, то его выводить перед всеми комментами, а кнопку «Лучший ответ» не показывать.
5) Протестировать работу плагина у себя и потом поделиться им в каталоге :)

Вот, как-то так
0
Программить можете?
не очень) как я понимаю, нужно сделать таблицу в базе с best_comment?
+1
Не нужно делать в базе полей. У сущности топика есть текстовое поле topic_extra. Вот в него можно писать значение правильного ответа.
Вам нужно в своем плагине переопределить сущность ModuleTopic_EntityTopic. В вашем файле entity указать приведенный Вадимом код.

Но это далеко не все.

Нужно написать js код для назначения комментария правильным ответом.
Обработчик вашего аякс запроса.
И шаблоны, для выделения правильного комментария.
И хук для вывода правильного ответа, например над всеми комментариями
+1
А сколько стоил бы такой плагин если его заказать?
+1
Честно, не знаю, у меня с оценкой стоимости всегда проблемы были. Меня тут смущает что нужно делать для трех шаблонов, как минимум. А также как привязать это только к одному виду топика (толи этот вид топика создавать при активации плагина, толи просто в конфиге плагина просить указывать уже созданный)
0
А если предположить, что плагин нужен только под Experience Simple, а в настройках была бы возможность задавать для любого типа топика, в т.ч. и для нескольких?
+1
Я думаю мы с вами приватно договоримся =)
0
Позовите меня в приват ;)
0
Обязательно
Нужно написать js
?
+1
Конечно обязательно, а как иначе вы сообщите движку что назначили комментарий правильным ответом? Нужны js и хуки и шаблоны, куда ж без всего этого
0
Ага с этим сейчас у меня и проблемы) все что выше написали, вроде сделал
+1
Народ, ну ведь кроме краудфандинга может быть еще и краудсорсинг. Если не стоит задача запилить коммерческий продукт для продажи, и готовы им делиться, то можно так: выкладыватся плагин на гитхаб, заводится тут тема, пишите о том, что и как делаете, спрашиваете совета, делитесь своими проблемами. И сообща можно вполне, я считаю, доводить до ума такие плагины.
0
Согласен ;) Так как кроме выбранного ответа, нужен статус решен и не решен, закрывать комментарии
+1
так если ответ есть, то значит есть решение, опираться на туже переменную можно
0
Можно и так :) нужен вывод в списке топиков и в самом топике статус. И комменты оставлять можно закрывать опцианально :)
+2
Добро пожаловать в краудсорсинг на github. Направляйте коммиты
+2
В общем вот, делается потихоньку. Желающие присоединиться не только словом приветствуются
0
А плагин действительно под 1.1 заточен? Или под 1.0 тоже будет работать?
0
сначала был под 1.1, по очень быстро мне дали понять что в данный момент нужен под 1.0
0
Я спрашиваю, т.к. в plugin.xml стоит 1.1
0
это немного устаревшая информация =)
+2
По плагину предложения: логику проверки, можно для топика определять лучший коммент или нет, я бы тоже в сущность топика вынес. Т.е. аяксом передается и ИД топика, и ИД коммента. В экшене дергается сначала топик, и далее примерно так:
if ($oTopic->isAllowBestComment($oComment)) {
    $oTopic->setBestComment($oComment);
}
Это более правильно и идеологически (т.к. топик сам должен знать, можно у него отмечать лучшие комменты или нет), и с точки зрения инкапсуляции — внутрь isAllowBestComment() можно впихнуть любую логику и проверку, не связанную непосредственно с обработкой http-запросов.

Вот прямо сейчас напрашиваются проверки:
1) Разрешен ли этот функционал для данного типа топика
2) Может ли данный коммент быть отмеченным, как лучший (т.е. не удален ли, к этому ли топику цепляется)
3) Может ли текущий юзер отметить лучший коммент у этого топика

Дополнительно возникают вопросы: а можно ли редактировать и/или удалять коммент, отмеченный, как лучший?
0
А я считаю что не нужно передавать и коммент и топик. По мне это избыточно. Ну как человек может передать комментарий от другого топика? Штатно никак, а значит может использоваться исключительно для поиска потенциальной уязвимости. Передавая комментарий мы уже знаем знаем топик где он является правильным ответом.

1) Разрешен ли этот функционал для данного типа топика
Вынес в сущность топика

2) Может ли данный коммент быть отмеченным, как лучший (т.е. не удален ли, к этому ли топику цепляется)
Вынес в сущность комментария

3) Может ли текущий юзер отметить лучший коммент у этого топика
Там же в сущности комментария

Дополнительно возникают вопросы: а можно ли редактировать и/или удалять коммент, отмеченный, как лучший?
По хорошему такой удалять нельзя. Посмотрю.
Отредактирован:
0
Где можно узнать весь список хуков в альто? Просто вывод ответа в блоке комментариев самым первым. Как сейчас ответ даже в списке постов
+1
Поиск по слову hook в шаблоне проще всего найти. А в своем шаблоне вы можете вставить хук куда угодно
+1
Увы, полного списка хуков нет :( Звучит странно, но факт. После релиза 1.1 думаю более плотно заняться документацией, в т.ч. и такой список надо будет подготовить
+1
Можно сказать сделал то, что изначально просил автор топика. Т.е. комментарий можно выбрать правильным ответом. При этом текст комментарий отображается внизу топика.

За пару дней я услышал разные мнения. Разные пожелания. От простых о поставке статуса, до создания полноценного плагина вопросов ответов, со своими виджетами.

Писали выше о краудсорсинге.
Если кто-нибудь готов присоединиться и сделать что-то большее, пишите.
0
И на этом огромное спасибо ;) думаю в будущем можно будет доработать, так же я попробую и выложу свои нароботки. А сейчас буду думать как ставить статус и закрытие комментов при выборе ответа)
+2
Ох, вы так написали страшно.
Закрыть комментарии, в ActionAjax добавить
$oTopic->setForbidComment(1);
Ну и с «0» если вы убираете наличие правильного ответа и хотите вернуть возможность комментировать.

А насчет статуса, не уверен что для него нужно отдельное поле, проще сделать проверку в шаблоне
{if $oTopic->getBestCommentId()}
Статус: Решена
{/if}
Отредактирован:
+1
Сейчас все работает на ура ;) спасибо вам! Заценить можно тут
+1
Я бы еще label в комменте выводил что это правильный ответ. Опять же проверка простая
{if $oComment->getTarget()->getBestCommentId()==$oComment->getId()}
Правильный ответ
{/if}
0
Да я думал над этим, просто когда один ответ и он верный, получается дублирования ответа :)
+1
Не хватает автора правильного ответа. И почему правильный? правильных может быть несколько, да и правильный он только по мнению автора вопроса, обычно выбранный называют «Лучший». Например «Лучший от Admin, дата и ссылка на ответ»
0
Правильный или лучший это все в языковых файлах регулируется. А уж формат отображения ответа только от фантазии владельца сайта зависит =)
+3
Если решите опубликовать в каталоге, возможно пригодится простая иконка :)

0
А сайт хорош ) наверное один из лучших на Alto.

Какой плагин использовали для входа через соц. сети?
0
Спасибо)) стараемся ;)

А плагин куплен из лс
0
тот, что за 300р? работает с плагином совместимости?
0
Ага, но пришлось загрузку аватарок отрубить, выдавал ошибку
+1
Если нужен адаптированный плагин — обращайся.
0
авы загружаются?
0
Да. И аватары и фото. Конечно с тех соцсетей которые их отдают.
0
Да нужен) мне вот нужно именно загрузка авы) так как это я адаптировать не смог :(
0
Если есть денежка на шоколадку — пиши в личку :-)
0
Пока краудсорсинг не работает, ок.
Из мыслей что еще можно сделать

1. Вынести в конфиг
-отображения лейбла что это правильный ответ (у комментария)
-отображения лейбла что это правильный ответ (у топика)
-запрещать писать новые комментарии если есть ответ

2. Сделать отдельный экшен для указанных типов топиков
В этом экшене создать разделы
-Новые
-Решенные
-Не решенные

Логично если будет свое облако тэгов, но у нас это обычные топики, надо думать.
Хотели еще и другие блоки, но опять же, это типовые материалы, которые переплетаются с другими материалами и как выцеплять данные стандартными методами плохо представляю.
0
Отлично ;) я у себя сделал вывод лэйбла, и выделил ответ цветом, и + вывод правильно ответа сделал ссылкой (дублирование не красиво, особенно с картинками)

Свои теги не так актуальны как поиск по типовому матерялу (например поиск похожих вопросов)
0
а для этого тэги и нужны, чтоб найти по общей тематике
0
А сложно реализовать поиск по блогам одного типа?
+1
через сфинкс пожалуй сложно и непонятно как потом скрещивать. А через запросы в базу это не самый правильный путь, но попроще.
0
Sphinx я не подключал :)
+2
Я конечно извиняюсь но мне кажется, jangle, если бы вы присоединились к проекту плагина Klaus, польза была бы вам обоим (и другим участникам) больше чем по отдельности вы делаете в своей песочнице. А адаптация под шаблон, дизайн уже можно свои делать.
0
Проблема в то, что я плохо знаю ньюансы альто и лс :) так бы давно присоединился
+1
А как сейчас работает поиск по сайту на Альто? Он как бы не требует наличия сфинкса и он работает, но при этом полнотекстового поиска нет…
0
По тексту он ищет вроде бы вот
+1
у меня не показывает ключевые слова в тексте, как у вас. Возможно дело в шаблоне Experience
0
присоединяюсь к вопросу. каким образом ключевики оборачиваются клссом searched-item?

Или просто у меня smarty все вырезает…

вы не могли бы показать код tpl который это выводит?
0
У меня шаблон на основе start-kit
+1
Внёс исправления в ветки 1.0 и 1.1. Действительно в шаблонах experience такой подсветки не было, хотя тегом searched-item результаты поиска оборачивались.

Сам тег класса searched-item устанавливается экшеном поиска ActionSearch
0
А этот Плагин «Questions and answers» от LS catalog.livestreetcms.com/addon/view/40/ будет на alto работать или нет? Есть смысл его искать?:)
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.