HAIM
Проверенные
- Сообщения
- 1,251
- Решения
- 6
- Реакции
- 2,224
- Баллы
- 1,020
Я уже не пользуюсь этим плагином, но предполагаю, что там же где и везде в Ксенфоро — во фразахИ ещё, скажите, где там слово Comment перевести? не выходит
Смотрите видео ниже, чтобы узнать, как установить наш сайт в качестве веб-приложения на домашнем экране.
Примечание: В настоящее время эта функция требует доступа к сайту с помощью встроенного браузера Safari.
Я уже не пользуюсь этим плагином, но предполагаю, что там же где и везде в Ксенфоро — во фразахИ ещё, скажите, где там слово Comment перевести? не выходит
Блин, спасибо, а то я понять не мог что за фигня)TechSide, Возможно у тебя стоит плагин [MMO] Tag User, у меня также было пока не отключил и все заработало.
Конфлик найден. Кофнликтует с аддоном - [SVG] Tag User Post and Conversation
В чем может быть проблема??? Шаблоны дефолтный, поотключал другие плагины не помогать. На этом же VPS протестировал на другом домене и всё работает. На нужном не в какую, открывается комментарий только в новом окне.На тестовом сайте форма комментария появляется через JS. Поставил на рабочем вроде все тоже, но форма открывается на новой странице. Почему так, может где-то надо что-то довключить?
Нашел проблему. Это плагин SEO (SEO2) 2.3.0 Beta5 XF21, отключаю его и комментария начинают работать через JS. Может кто подскажет как исправить?На тестовом сайте форма комментария появляется через JS. Поставил на рабочем вроде все тоже, но форма открывается на новой странице. Почему так, может где-то надо что-то довключить?
Поставил на тестовый сайт SEO плагин и на нем комментарии работают как надо. Посмотрел модификации, вторе всё срабатывает. Дальше глянул консоль браузера и там ошибки:Больше информации, что в консоли браузера, может просто что-то из модификаций не срабатывает.
Да, что-то тупанул, подумал, что из консоли текст не копируется. ?Это текстом обычно ошибки постятся
Меня тоже это не устраивает, но уведомления плагин шлет, только если кого-то цитируют или @упоминают в комментах. Поэтому мое решение смотри ниже :)гайсы и гайсесы кто-то знает плагин поддерживает уведомления о комментариях?
А то обидно, что твой пост комментят а ты даже не в курсах об этом.
Визуально мы скрыли, но по гет запросу нет. Для этого мы сделаем так:
#<xf\:formrow>.*?</xf\:formrow>#s
<div class="message-cell" style="margin-top: -25px;">
<div class="formButtonGroup">
<div class="formButtonGroup-primary">
<xf:button class="button--link u-jsOnly" data-xf-click="preview-click" icon="preview" />
<button type="submit" class="button--primary button button--icon button--icon--reply">
<span class="button-text">{{ phrase('thpostcomments_post_comment') }}</span>
</button>
<button type="button" class="js-cancelButton button">
<span class="button-text">{{ phrase('button.cancel') }}</span>
</button>
</div>
<xf:if is="$attachmentData">
<div class="formButtonGroup-extra">
<xf:macro template="helper_attach_upload" name="upload_block"
arg-attachmentData="{$attachmentData}"
arg-forceHash="{$thread.draft_reply.attachment_hash}" />
</div>
</xf:if>
</div>
</div>
#<xf\:submitrow.*?</xf\:submitrow>#s
/(<xf:if is="\$thread\.canReply\(\))(">.*?>{{ phrase\('reply'\) }}<\/a>\s*<\/xf:if>)/s
$1 && !$post.thpostcomments_depth && (($post.canComment() && (!$xf.options.thpostcomments_max_comment_depth || !$xf.options.thpostcomments_replaceReplyButton)) || !$post.canComment()) $2
<a href="{{$post.isFirstPost()?
link('threads/reply', $thread):
($post.canComment()?
link('posts/comment', $post):
link('posts/'.{$post.thpostcomments_parent_post_id}.'/comment'))
}}"
title="{{ phrase('mut_insert_username')|for_attr }}"
class="actionBar-action actionBar-action--comment"
data-username="{{ $post.username }}"
data-isfirstpost="{{ $post.isFirstPost() }}"
data-editor-target="#js-post-{$post.post_id}"
data-xf-click="comment">{{ phrase('reply') }}
</a>
$message = $this->plugin('XF:Editor')->fromInput('message');
// уведомление кому ответили, если никто @не_указан
if(strpos($message, '@')===false && \XF::visitor()->username != $post->username)
$message = "@{$post->username},\n{$message}";
// уведомление ТСу
//if(strpos($message, "@{$post->Thread->username}")===false && \XF::visitor()->username != $post->username)
// $message = "@{$post->Thread->username},\n{$message}";
/src/addons/ThemeHouse/PostComments/hashes.json
Решение кривое, которое ставить на лайв точно не рекомендуется.Меня тоже это не устраивает, но уведомления плагин шлет, только если кого-то цитируют или @упоминают в комментах. Поэтому мое решение смотри ниже :)
и что? Гет запрос досих пор живой, он всегда будет живой с любыми правками, пока в коде не будет проверок соответствующих, так что дальше уже и читать бесмысленно. Там уже полностью описано как сдлеать, что бы и закрыть. Но посмотрим в якобы решение.1. Чтобы запретить комментирование первого сообщения выполняем все по этой инструкции после строкиВизуально мы скрыли, но по гет запросу нет. Для этого мы сделаем так:
2) добавляем модификацию:
Просто нет желания комментировать, поэтому соберу в 1:4) добавляем модификацию:
3. Заменяем файлы /js/themehouse/post-comments/comment.js и comment.min.js на прикрепленные к этому сообщению.
И ещё 1 нарушение стандартов, когда в той ссылке был и пример4. Файл /src/addons/ThemeHouse/PostComments/XF/Pub/Controller/Post.php после строки:
А что делать с удаленными пользователями или тех кого не существует? И что если удалят? Тег сгенерирован и лежит уже под тегом [USER] в движке, так что бред и проблем вызовет в разы больше в будущем.добавляем:
Разработчики не для этого делали, что бы потом удалять хеш. Подрезать хеш, да можно. Удалять не имеет смысла, и помимо этого хеши решают множество проблем и их решение.5. В админке, на главной, вероятнее всего появится сообщение от "Инспектора файлов", что были изменены файлы. Нужно будет просто удалить файл/src/addons/ThemeHouse/PostComments/hashes.json
Ну так я ведь и написал, что нужно сделать после строкии что? Гет запрос досих пор живой, он всегда будет живой с любыми правками, пока в коде не будет проверок соответствующих, так что дальше уже и читать бесмысленно. Там уже полностью описано как сдлеать, что бы и закрыть. Но посмотрим в якобы решение.
Визуально мы скрыли, но по гет запросу нет. Для этого мы сделаем так:
. Т.е. проверка именно в коде (MMO\ExtendThComments\PostComments\XF\Pub\Controller\Post ), а не просто в модификации.Посмотри, что на что заменяется в оригинальной модификации.Просто нет желания комментировать, поэтому соберу в 1:
У Вас недостаточно прав для просмотра ссылок. Вход или Регистрация
Оставит коммент с добавлением "@Удалённый пользователь" - всего-то. Если удалит @ник, то пусть удаляет - оповещение пользователю уже пришло - это стандартная функция движка.А что делать с удаленными пользователями или тех кого не существует? И что если удалят? Тег сгенерирован и лежит уже под тегом [USER] в движке, так что бред и проблем вызовет в разы больше в будущем.
Даже если автор и не обновит до нужного функционала возникнут проблемы и не 1 в будущем с такими правкамиНо, если автор обновит плагин до нужного функционала, то можно легко откатиться назад
thpostcomments_post_comment_fix1
thpostcomments_post_comment_fix2
thcomments_post_macros_reply_new
С чего бы это? Все отправляет. При отправке коммента юзер оставляет @ник, а движок отправляет уведомление @ник'у о том, что его упомянули. Потом хоть редактируй сообщение, хоть нет - уведомление пришло. Или может я не понял тебя?..Только после добавления или редактирования движок не отправит оповещение новому пользователю.
Вот за эту реализацию я плюсану тебе, если поможешь) т.к. пытался добавить что-то типа:Для всех оповещений есть нотифер система, которую нужно и делать.
$UserIds = $this->postPreparer->getQuotedUserIds(); // кто цитирует
$UserIds[] = $parentPost->Thread->user_id; // автор темы
$UserIds[] = $parentPost->user_id; // кому написали коммент
/** @var \XF\Service\Post\Notifier $notifier */
$notifier = $this->service('XF:Post\Notifier', $this->post, 'reply');
$notifier->setMentionedUserIds($this->postPreparer->getMentionedUserIds()); // @упомянул
$notifier->setQuotedUserIds($UserIds); // процетировал
$notifier->notifyAndEnqueue(3);
из замен там только файлы js и хак в файле Post.php - всё! Они перезапишутся при обновлении плагина.
js-файлы добавляют плавное появление формы под нужным комментом и @ник в редактор, а Post.php добавляет @ник в сообщение, если он не был добавлен пользователем. (можно, кстати, если немного подправить код, обойтись только правкой js-файла, который будет добавлять @ник при отправке сообщения, чтобы не редактировать Post.php).
У Вас недостаточно прав для просмотра ссылок. Вход или РегистрацияМожно переопределить в js своих, или же при помощи TMS указать на новые, что бы не лезть в шаблоны. Если это делать ещё и напрямую, то дополнение не будет ставиться, а это вообще нарушение 2 пункта
The add-on must be installable.
хак в файле Post.php - всё!
И ещё 1 нарушение стандартов, когда в той ссылке был и пример
Existing classes must be extended using the XenForo Class Proxy (XFCP) system via the built in “Class extensions” system.
If a class extension is required to extend core methods then it must be extended properly, rather than overridden, by calling the parent method.
If a core method has different return types with different behaviours (e.g. controller actions return different types of reply objects) then the extended code must check to ensure it’s working with the correct type.
Даже если автор и не обновит до нужного функционала возникнут проблемы и не 1 в будущем с такими правками
Потому что нужно инициализировать в конструкторе соответствующую сущность и указывать контент тайп этой сущности.но на каких-то уровнях комментирования выдавало ошибку типа NULL in 'content_id'. Я не стал разбираться в чем дело и пошел проще - просто добавил @ник в форму. И это, я думаю, даже лучше чем код выше, т.к. добавление @ника в форму - это стандартная функция движка, который сам знает, как лучше отправить уведомление пользователю, а также это стандарт для комментариев, когда нужно упомянуть того, кому пишешь.
Мы используем основные cookies для обеспечения работы этого сайта, а также дополнительные cookies для обеспечения максимального удобства пользователя.
Посмотрите дополнительную информацию и настройте свои предпочтения