Как получить список страниц, если на сайте две страницы с одинаковым названием?

Например

http://www.sitename.com/section1/pagename.aspx

http://www.sitename.com/section2/pagename.aspx

Мне нужен быстрый отчет только для страниц с таким же названием. как "pagename.html" в примере.


person Jitendra Vyas    schedule 01.03.2010    source источник


Ответы (5)


сканировать ваш сайт, переворачивать найденные URL-адреса и сортировать?

person No Refunds No Returns    schedule 01.03.2010

Если это сайт Sitecore, как мне кажется, не могли бы вы просто зайти в редактор контента и найти имя, которое вы ищете? Например, любой элемент с именем «имя страницы» будет иметь URL-адрес, заканчивающийся на «имя страницы. aspx» в вашей стандартной установке Sitecore. Просто убедитесь, что вы смотрите на фактическое имя элемента, а не на отображаемое имя, поскольку иногда они могут сильно отличаться в зависимости от того, как вы настроили URL-адрес.

person Blair Scott    schedule 01.03.2010
comment
но я в многосайтовой среде. как сделать поиск только по одному сайту - person Jitendra Vyas; 01.03.2010
comment
Находятся ли сайты в одном и том же экземпляре Sitecore? - person Blair Scott; 01.03.2010
comment
в этом случае вы все равно сможете искать все элементы независимо от того, на каком сайте они находятся, с помощью функции поиска в редакторе контента. - person Blair Scott; 01.03.2010

Я бы написал быструю служебную программу, чтобы просто программно перемещаться по дереву содержимого, сохраняя имена в словаре... когда вы нажимаете на элемент, который уже есть в словаре, у вас возникает конфликт имен.

person Bryan    schedule 01.03.2010

Одна вещь, которую вы могли бы рассмотреть, это написать фильтр (я думаю, что это так и называется) для этого

http://trac.sitecore.net/AdvancedSystemReporter

Это позволит вам иметь приятный интерфейс в Sitecore для просмотра повторяющихся имен элементов.

person Gabriel Boys    schedule 01.03.2010

Насколько велика ваша база данных и каков ваш LINQ to Objects? Теоретически вы можете написать запрос LINQ к базе данных Database.Items, который ищет элементы с тем же именем, которые происходят из одной и той же ветви сайта вашего дерева контента. Это может быть очень интенсивным с точки зрения памяти, если ваша главная БД большая, но это не составит труда закодировать.

Изменить - если вы можете перебрать все элементы вашего сайта, вы можете сделать что-то вроде этого (непроверено):

        var items = siteItem.Axes.GetDescendants();
        var dupes = from item in items
                    join item2 in items on item.Name equals item2.Name
                    where item.ID != item2.ID
                    select item;
person nickwesselman    schedule 02.03.2010