Реализация раздела "Вопрос - ответ"
День добрый.
Необходимо на сайте реализовать функционал «Вопрос — ответ». Для этого выбрал компонент «Tickets».
что-то типа того — www.moihottur.ru/faq/
читал вот эту тему modx.pro/help/2793/ похожие проблемы.
Необходимо чтобы кнопка «ответить» была только у администратора сайта.
если вызвать так
а если так:
Как быть в этой ситуации?
Какая возможна реализация без костылей как предлагал автор в теме modx.pro/help/2793/
Необходимо на сайте реализовать функционал «Вопрос — ответ». Для этого выбрал компонент «Tickets».
что-то типа того — www.moihottur.ru/faq/
читал вот эту тему modx.pro/help/2793/ похожие проблемы.
Необходимо чтобы кнопка «ответить» была только у администратора сайта.
если вызвать так
[[!TicketComments?
&allowGuest=`1`
&autoPublishGuest=`0`
&autoPublish=`0`
]]
то чанк tpl.Tickets.comment.one.guest игнорируетсяа если так:
[[!TicketComments?
&allowGuest=`0`
&autoPublishGuest=`0`
&autoPublish=`0`
]]
то отзывы не могут писать неавторизованные пользователи.Как быть в этой ситуации?
Какая возможна реализация без костылей как предлагал автор в теме modx.pro/help/2793/
Комментарии: 34
Я сделал такой компонент, но его нет в магазине.
Могу поделиться, если понравится.
Ответ осуществляется из админки.
Вот ссылка (пример работы): yaguar-m.ru/vopros-i-otvet
Вот так редактируется в админке:
joxi.ru/p27Wz9DHovRa72
Могу поделиться, если понравится.
Ответ осуществляется из админки.
Вот ссылка (пример работы): yaguar-m.ru/vopros-i-otvet
Вот так редактируется в админке:
joxi.ru/p27Wz9DHovRa72
Может в магазин выложите?
Я бы с радостью, но, как оказалось, для этого нужно времени потратить больше, чем сам компонент писать (у меня он простой, как калаш). Выложу, как будет время и силы.
Если кому интересно — можете попробовать 1drv.ms/u/s!Aryb646WHtY9uFCHYVe5fHDpSnkC
Буду рад отзывам и предложениям, но если компонент сильно усложнять — получим еще один tickets :)
Запланирован сейчас для простейшего функционала — реализации страницы «вопрос-ответ» на сайте. Для добавления новых вопросов используется formit + ajaxform.
На всякий случай перед установкой лучше сделать бэкап — я проверял только на своих сайтах, там все работало как часы.
Если кому интересно — можете попробовать 1drv.ms/u/s!Aryb646WHtY9uFCHYVe5fHDpSnkC
Буду рад отзывам и предложениям, но если компонент сильно усложнять — получим еще один tickets :)
Запланирован сейчас для простейшего функционала — реализации страницы «вопрос-ответ» на сайте. Для добавления новых вопросов используется formit + ajaxform.
На всякий случай перед установкой лучше сделать бэкап — я проверял только на своих сайтах, там все работало как часы.
Олег, добрый день!
Подскажите пожалуйста вызов на странице, если не сложно? Спасибо.
Подскажите пожалуйста вызов на странице, если не сложно? Спасибо.
Здравствуйте!
Есть примеры в описании компонента.
Вывод без пагинации:
[[!FAQ_get_questions?
&limit=`100`
]]
Вывод с pdoPage
[[!pdoPage?
&element=`FAQ_get_questions`
&limit=`4`
&ajaxMode=`default`
&sortdir=`DESC`
&sortby=`id`
]]
[[!+page.nav]]
Также можно использовать pdoResources, если мне не изменяет память вот так:
[[pdoResources?
&class=«FAQItem»]]
Есть примеры в описании компонента.
Вывод без пагинации:
[[!FAQ_get_questions?
&limit=`100`
]]
Вывод с pdoPage
[[!pdoPage?
&element=`FAQ_get_questions`
&limit=`4`
&ajaxMode=`default`
&sortdir=`DESC`
&sortby=`id`
]]
[[!+page.nav]]
Также можно использовать pdoResources, если мне не изменяет память вот так:
[[pdoResources?
&class=«FAQItem»]]
Спасибо огромное! Описание нашел. Только ставлю:
А все допер:)). Он по умолчанию! Еще раз спасибо!!!
&tpl=`tpl.FAQ.outer`
и пишет ошибку.А все допер:)). Он по умолчанию! Еще раз спасибо!!!
Что за ошибка? Не должно ее быть.
Там шаблон выставлен по умолчанию, а я его еще раз в pdoPage вызывал. В общем все работает! Компонент действительно простой, спасибо огромное. Сейчас вызываю вот так:
А вот так на сайте:
Скрин
<div id="pdopage">
<div class="rows">
[[!pdoPage?
&element=`FAQ_get_questions`
&limit=`3`
&ajaxMode=`default`
&sortdir=`DESC`
&sortby=`id`
]]
</div>
[[!+page.nav]]
</div>
[[!AjaxForm?
&snippet=`FormIt`
&emailFrom=`[[++emailsender]]`
&emailFromName=`Мой сайт`
&emailTo=`myemail@site.com`
&hooks=`FAQ_add_question,email,FormItSaveForm`
&formName=`FAQ - новый вопрос`
&emailSubject=`Новый вопрос на моем сайте!`
&emailTpl=`tpl.FAQ.email`
&form=`tpl.FAQ.form`
&validate=`question:required, email:required`
]]
Вот только пагинация чет не работает, но думаю разберусь.А вот так на сайте:
Скрин
Попробуйте сделать вот такой вызов:
[[!pdoPage?
&element=`pdoResources`
&class=`FAQItem`
&limit=`3`
&ajaxMode=`default`
&sortdir=`DESC`
&sortby=`id`
]]
Вообще пагинация должна работать, у меня с ней проблем не было.
А так вообще все пропадает. У меня сборка siteExtra. Убрал галку «Показывать дочерние ресурсы» и заработала пагинация по старому моему вызову. Все как надо!
Скрин
Еще раз спасибо!
Скрин
Еще раз спасибо!
Не знал, что это так сказывается. Надо будет посмотреть, благодарю.
Всегда пожалуйста :)
Всегда пожалуйста :)
Олег, добрый день)
Пишу спустя годы, т.к. пользуюсь до сих пор вашим готовым решением вопрос-ответ.
И после обновления modx revo На 2.8.6 при написании в админке ответа на вопрос и сохранении появляется 0, как на скриншоте:
И возможно вы это уже как-то исправили… и если возможно поделитесь пожалуйста новой версией) Сам пытался найти почему так, но не удалось(
Пишу спустя годы, т.к. пользуюсь до сих пор вашим готовым решением вопрос-ответ.
И после обновления modx revo На 2.8.6 при написании в админке ответа на вопрос и сохранении появляется 0, как на скриншоте:
И возможно вы это уже как-то исправили… и если возможно поделитесь пожалуйста новой версией) Сам пытался найти почему так, но не удалось(
Нашёл ниже ответ
поправил в 3 файлах
components/faq/model/faq/mysql/faqitem.map.inc.php
components/faq/model/bd_faq/mysql/bd_faqitem.map.inc.php
components/faq/model/schema/faq.mysql.schema.xml
тип на string и все заработало
поправил в 3 файлах
components/faq/model/faq/mysql/faqitem.map.inc.php
components/faq/model/bd_faq/mysql/bd_faqitem.map.inc.php
components/faq/model/schema/faq.mysql.schema.xml
тип на string и все заработало
Добрый день!
А можно маленькую дороботку сделать, что бы была возможно перетаскивать ответы в админке? т.е. менять их порядок?
А можно маленькую дороботку сделать, что бы была возможно перетаскивать ответы в админке? т.е. менять их порядок?
Спасибо за модуль, подскажите куда вставить форму для отправки Вопроса?
Автор Вы гений! Могу помочь допилить компонент! По сути там осталось внешний вид сделать нормальный. Он обязательно должен быть в репозитории!
Я больше не создаю сайты на modx, можно на основе моего кода делать что угодно.
Ясно. Компонент оказался неподходящим для меня т.к он делает общий список вопрос-ответов и выводит на всех страницах все подряд. Мне же нужен свой список вопрос ответов для каждой страницы индивидуально.
Это можно легко поправить, добавив новое Поле в таблицу, фильтровать записи по этому полю.
Если я вам заплачу вы можете поправить?
Могу поделиться, если понравится.было бы чудесно, моя почта hellhands@yandex.ru
Ну а что бы свое дополнение не прорекламировать:)
modstore.pro/packages/utilities/easycomm
modstore.pro/packages/utilities/easycomm
Доброго дня, уточните пожалуйста, как можно сделать, чтобы появлялось сообщение об успешной отправки. Ну чтобы было понятно, что вопрос был отправлен.
Добрый день, вы оставили заявку, modx.pro/work/15531/ но в чём соль как с вами связаться? данных в заявке нет ваших, комментировать этот раздал нельзя, в Вашем профиле стоит запрет на отправку сообщений, напишите мне в скайп, мой логин она же почта likelid@yandex.ru
Добрый день,
возникла потребность в данном дополнении, но возникла проблема.
При добавлении вопроса в базу через админку и в поле вопрос и в поле ответ пишет 0. Если руками поправить в базе, то отражает нормально, но если в админке отредактировать запись, то и в вопрос и в ответ опять пишутся 0.
modx 2.7.2.
Может кто подскажет, что где поправить?
возникла потребность в данном дополнении, но возникла проблема.
При добавлении вопроса в базу через админку и в поле вопрос и в поле ответ пишет 0. Если руками поправить в базе, то отражает нормально, но если в админке отредактировать запись, то и в вопрос и в ответ опять пишутся 0.
modx 2.7.2.
Может кто подскажет, что где поправить?
Прям штатная установка и ничего не меняли?
Версия компонента свежая?
Версия компонента свежая?
абсолютно чистая установка… вообще ничего нету…
я про компонент FAQ из сообщения Олега, вот отсюда
1drv.ms/u/s!Aryb646WHtY9uFCHYVe5fHDpSnkC
я про компонент FAQ из сообщения Олега, вот отсюда
1drv.ms/u/s!Aryb646WHtY9uFCHYVe5fHDpSnkC
Известная проблема :-)
В файле faq.mysql.schema.xml
В файле faq.mysql.schema.xml
<field key="question" dbtype="text" length="1023" phptype="text" null="false" default=""/>
phptype=«text» нет такого. Когда-то работало, а сейчас надо phptype=«string». Замените phptype=«text» на phptype=«string» везде в схеме и перегенируйте классы XPDO. Я с помощью migx это делаю. Создание таблиц через MIGX
спасибо. поправил в 3 файлах
components/faq/model/faq/mysql/faqitem.map.inc.php
components/faq/model/bd_faq/mysql/bd_faqitem.map.inc.php
components/faq/model/schema/faq.mysql.schema.xml
тип на string и все заработало
components/faq/model/faq/mysql/faqitem.map.inc.php
components/faq/model/bd_faq/mysql/bd_faqitem.map.inc.php
components/faq/model/schema/faq.mysql.schema.xml
тип на string и все заработало
А как в Ответ «answer» к полю в окне редактирования включить редактор Ace?
// assets/components/faq/js/mgr/widgets/items.windows.js
Ext.onReady(function(){
if(MODx.ux.Ace.replaceTextAreas) {
MODx.ux.Ace.replaceTextAreas(Ext.query('[name="answer"]'));
}
});
добавляю Ext, но почему-то не получилось
По сути на обновление надо повесить ace, и на создание, вопрос как?
FAQ.window.UpdateItem = function (config) {
config = config || {};
if (!config.id) {
config.id = 'faq-item-window-update';
}
Ext.applyIf(config, {
title: _('faq_item_update'),
width: 550,
autoHeight: true,
url: FAQ.config.connector_url,
action: 'mgr/item/update',
fields: this.getFields(config),
keys: [{
key: Ext.EventObject.ENTER, shift: true, fn: function () {
this.submit()
}, scope: this
}]
});
MODx.ux.Ace.replaceTextAreas(Ext.query('[name="answer"]')); // вроде правильно, но не работает
FAQ.window.UpdateItem.superclass.constructor.call(this, config);
};
в FAQ_get_questions добавьте idx для удобства в отображении корректных нумераций
// строка ~37
$idx = 0;
foreach ($items as $item) {
$idx += 1;
$list[] = $modx->getChunk($tpl, array_merge($item->toArray(), ['idx' => $idx]));
}
В чанке просто [[+idx]] или {$idx}
А если с pdoPage, то $idx не пашет, как вариант просто отключить удаление, чтоб id не сбивался.
Возможно в ext.как-то заменить record.id и будет от последнего из бд, а не из record.id x2
Возможно в ext.как-то заменить record.id и будет от последнего из бд, а не из record.id x2
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.