XF 2.2 Префикс - скрыть или переместить для RSS

Версия XenForo
2.2.12

Sadorimatsu

Проверенные
Сообщения
383
Решения
13
Реакции
208
Баллы
345
Всем привет.

Подскажите, пожалуйста.
Как скрыть префикс в RSS? Мне нужно использовать префикс, но не хочу, чтобы RSS отображал их. Как я могу их скрыть? Мне нужно убрать упоминание префикса в заголовках. Это портит всю публикацию... Не путаем выдачи в поиске. Есть один плагин, что отключает префикс на мета-выдачу, но он никак не влияет на выдачу в RSS.

Или, можно ли префикс в заголовках переместить в конец заголовка? Мне не столько важно его скрыть, как убрать перед заголовком. Если возможно просто переместить его на выдаче в конец заголовка, то отлично.
Сможет, кто-нибудь помочь?🤔
 
Последнее редактирование:
vLimovs, зачем скрывать весь rss, когда речь о скрытии только префикса или его переносе в конец заголовка для rss? Вы вопрос прочтите внимательней. Скрыть сам RSS не вариант т.к. он активно используется для публикаций в соц.сетях.
 
Или, можно ли префикс в заголовках переместить в конец заголовка? Мне не столько важно его скрыть, как убрать перед заголовком. Если возможно просто переместить его на выдаче в конец заголовка, то отлично.
Сможет, кто-нибудь помочь?🤔
Если я не ошибаюсь за вывод RSS отвечает файл FeedHelper.php
Лежит: src/XF/Pub/View/FeedHelper.php
Хоть править файлы движка и грех, но попробуйте изучить этот файл, возможно в нём кроется ответ на вашу задачу.
Возможно кто из форумчан подскажет что в нём поправить.
Код:
<?php

namespace XF\Pub\View;

use Laminas\Feed\Writer\Entry;
use Laminas\Feed\Writer\Feed;

use function strlen;

class FeedHelper
{
    public static function setupFeed(
        Feed $feed,
        string $title,
        string $description,
        string $feedLink
    )
    {
        $app = \XF::app();
        $options = $app->options();
        $router = $app->router('public');

        $indexUrl = $router->buildLink('canonical:index');
        $title = $title ?: $indexUrl;
        $description = $description ?: $title; // required in rss 2.0 spec

        $feed->setEncoding('utf-8')
            ->setTitle($title)
            ->setDescription($description)
            ->setLink($indexUrl)
            ->setFeedLink($feedLink, 'rss')
            ->setDateModified(\XF::$time)
            ->setLastBuildDate(\XF::$time)
            ->setGenerator($options->boardTitle);
    }

    public static function setupEntryForThread(
        Entry $entry,
        \XF\Entity\Thread $thread,
        string $order = 'last_post_date'
    )
    {
        $app = \XF::app();
        $options = $app->options();
        $router = $app->router('public');

        $title = empty($thread->title)
            ? \XF::phrase('title:') . ' ' . $thread->title
            : $thread->title;
        $link = $router->buildLink('canonical:threads', $thread);

        switch ($order)
        {
            case 'post_date':
                $date = $thread->post_date;
                break;

            default:
                $date = $thread->last_post_date;
                break;
        }

        $entry
            ->setId((string)$thread->thread_id)
            ->setTitle($title)
            ->setLink($link)
            ->setDateCreated($date);

        $authorLink = $router->buildLink('canonical:members', $thread);
        $entry->addAuthor([
            'name' => $thread->username,
            'email' => '[email protected]',
            'uri' => $authorLink
        ]);

        $threadForum = $thread->Forum;
        if ($threadForum)
        {
            $threadForumLink = $router->buildLink(
                'canonical:forums',
                $threadForum
            );
            $entry->addCategory([
                'term' => $threadForum->title,
                'scheme' => $threadForumLink
            ]);
        }

        $firstPost = $thread->FirstPost;
        $maxLength = $options->discussionRssContentLength;
        if ($maxLength && $firstPost && $firstPost->message)
        {
            $bbCodeParser = $app->bbCode()->parser();
            $bbCodeRules = $app->bbCode()->rules('post:rss');

            $bbCodeCleaner = $app->bbCode()->renderer('bbCodeClean');
            $bbCodeRenderer = $app->bbCode()->renderer('html');

            $stringFormatter = $app->stringFormatter();

            $snippet = $bbCodeCleaner->render(
                $stringFormatter->wholeWordTrimBbCode(
                    $firstPost->message,
                    $maxLength
                ),
                $bbCodeParser,
                $bbCodeRules
            );
            if ($snippet != $firstPost->message)
            {
                $readMore = \XF::phrase('read_more');
                $snippet .= "\n\n[URL='{$link}']{$readMore}[/URL]";
            }

            $renderOptions = $firstPost->getBbCodeRenderOptions(
                'post:rss',
                'html'
            );
            $renderOptions['noProxy'] = true;
            $renderOptions['lightbox'] = false;

            $content = trim($bbCodeRenderer->render(
                $snippet,
                $bbCodeParser,
                $bbCodeRules,
                $renderOptions
            ));
            if (strlen($content))
            {
                $entry->setContent($content);
            }
        }

        if ($thread->reply_count)
        {
            $entry->setCommentCount($thread->reply_count);
        }
    }
}
 
tirpix, про файл верно заметили т.к. в плагине Feed export он и изменяется. Напрямую править файлы движка не рискну, да и неправильно. Такие вещи только на плагин надо ставить, как понимаю хотелка судя по всему из разряда поиска исполнителя или помощи правки того плагина. Штатными способами видимо не решить. Если префикс в RSS не скрыть без вмешательства в файл движка, то возможно хотя бы переместить в конец заголовка? Или так же затруднительно?
 
Последнее редактирование:
Современный облачный хостинг провайдер | Aéza

Похожие темы

Назад
Сверху Снизу