
Тема обновления ресурса Xenforo + Discord Integration + БОТ
- Исправление проблемы, при которой синхронизация с пользователями в платной роли Discord не работала.
- Добавлена поддержка дополнения Tickets.
- Добавлена возможность отключить отправку оповещений пользователям Discord DMs.
- Добавлена возможность отключить отправку уведомлений о разговорах в Discord DM.
- Добавить возможность для администраторов применять регистрационные настройки по умолчанию для уведомлений о тревогах и разговорах в Discord...
UPDATE `xf_user_option`
SET `nf_discord_dm_on_conversation` = replace(nf_discord_dm_on_conversation, '1', '0')
UPDATE `xf_user_option`
SET `nf_discord_dm_on_alert` = replace(nf_discord_dm_on_alert, '1', '0')
- Исправление ошибок
ваш сайт\src\addons\NF\Discord\_data\templates.xml
<div>{{ $providerData.username }}</div>]]></template>
ваш сайт/admin.php?add-ons/
Ваш сайт\src\addons\NF\Discord\hashes.json
"src/addons/NF/Discord/_data/templates.xml"
, и полностью стираете всю строку, вместе с переносом строки. Это варварский способ, но самый быстрый.ВаСайт/src/addons/NF/Discord/XFRM/Service/ResourceUpdate/Create.php
if ($resource->isVisible())
if (!$resource->isVisible())
<?php
namespace NF\Discord\XFRM\Service\ResourceUpdate;
use NF\Discord\ApiMessage\MessageToChannel;
/**
* Extends \XFRM\Service\ResourceUpdate\Create
*/
class Create extends XFCP_Create
{
public function sendNotifications()
{
parent::sendNotifications();
$resource = $this->resource;
$update = $this->update;
$category = $this->resource->Category;
if (!$resource->isVisible())
{
return;
}
/** @var \NF\Discord\Repository\Server $serverRepo */
$serverRepo = $this->repository('NF\Discord:Server');
[$api, $channelId] = $serverRepo->getServerApiForStoredChannel($category->nf_discord_channel_id ?? null);
if (!$api)
{
return;
}
$router = \XF::app()->router('public');
$url = $router->buildLink('full:resources', $resource);
$phrase = \XF::phrase('nfDiscord_notice.xfrm_resource_update_new', [
'username' => $resource->username,
'title' => $resource->title,
]);
$snippet = $this->app->stringFormatter()->stripBbCode($update->message, [
'stripQuote' => false,
]);
$snippet = $this->app->stringFormatter()->wholeWordTrim($snippet, 500);
$user = $resource->User;
if ($user === null)
{
/** @var \XF\Repository\User $userRepo */
$userRepo = $this->repository('XF:User');
$user = $userRepo->getGuestUser($resource->username);
}
MessageToChannel::create($api)
->setup($channelId, $phrase, $this->enrichDiscordEmbed([
'author' => [
'name' => $user->username,
'url' => $router->buildLink('full:members', $user),
'icon_url' => $user->getAvatarUrl('s', null, true),
],
'footer' => [
'text' => $category->title,
],
'title' => MessageToChannel::discordTitle($resource->title),
'url' => $url,
'description' => $snippet,
'timestamp' => date('c', $update->post_date),
]))->queue();
}
protected function enrichDiscordEmbed(array $embed): array
{
return $embed;
}
}
Ваш сайт\src\addons\NF\Discord\hashes.json
"src/addons/NF/Discord/XFRM/Service/ResourceUpdate/Create.php": "4393ec4efa4f6eaca0457becbbaffdf8e5dbe2f57f1d17ce044986add67014f1",
и полностью стереть её, чтобы в ПУ не мозолило глаза, что файл изменён.Вот так, из-за одного восклицательного знака, не поставленного разработчиком, не работает функция.
offtop