Как исключить определенные подпапки внутри включенной папки, используя Geta Sitemap? - PullRequest
0 голосов
/ 14 июня 2019

Как исключить подпапки, которые соответствуют определенному шаблону, из карты сайта, которая находится внутри включенной папки?

Например, я хочу исключить все подпапки, соответствующие следующим критериям: / Research / Content / Short-reports / * pptx /

Хотя все еще включает все другие папки в: / Исследования / Содержание / Короткие сообщения /

Гета, похоже, игнорирует мой шаблон и рассматривает его как буквальный текст.

ТИА

1 Ответ

0 голосов
/ 15 июня 2019

К сожалению, Geta выполняет только сопоставление строк и не обрабатывает подстановочные знаки или регулярные выражения.

Geta рекомендует вам реализовать собственный IContentFilter для пользовательской фильтрации.

Если указанные папки являются папками содержимого в CMS, одним из вариантов может быть создание свойства ContentArea в глобальных настройках для хранения ссылок на все папки, которые вы хотите исключить. Затем в методе AlwaysExcludeContent реализации IContentFilter вы можете выполнить проверку, чтобы убедиться, что содержимое является потомком одной из папок, добавленных в глобальный параметр.

public class MyCustomSitemapContentFilter : Geta.SEO.Sitemaps.Utils.ContentFilter
{
    public override bool ShouldExcludeContent(IContent content)
    {
        var baseEvaluation = base.ShouldExcludeContent(content);

        var shouldExclude = false;

        //shouldExclude = code to check if content is 
        //   is descendant of any of the folders referenced
        //   in global setting property

        return shouldExclude || baseEvaluation;
    }
}
...