18 сентября 2012 г.

Как получить ссылку на сообщение из дискуссии на CodePlex?

Дискуссии на CodePlex
Каждая дискуссия на CodePlex имеет свой веб-адрес в виде http://codeplex.codeplex.com/discussions/360079.

Однако некоторые дискуссии обрастают огромным количеством сообщений. Кроме того, некоторые дискуссии, на самом деле, могут включать в себя "под-дискуссии"  (то есть фактически обсуждение разных тем).  Или достаточно старые дискуссии могут обрести новую жизнь.

Так или иначе, часто необходимо указать веб-адрес не на целую дискуссию, а на конкретное сообщение в этой дискуссии.

Но если вы откроете страницу дискуссии, то вы нигде не обнаружите ссылку на конкретное сообщение.  Не знаю, сделано это нарочно или просто упущение.

В любом случае, возможность обращаться к конкретному сообщению дискуссии у CodePlex есть.  Вы можете сами убедиться, если зайдете в список дискуссии какого-нибудь проекта, и наведете курсор на FIRST POST или LAST POST в дискуссии, у которой не одно сообщение.

Вы увидите URL типа:  http://codeplex.codeplex.com/discussions/360079#post850669

Если разобрать этот адрес, то 360079 - это идентификатор дискуссии. Мы его всегда можем узнать. А вот 850669 - это идентификатор сообщения.

Как же узнать идентификатор сообщения для любого сообщения?


К сожалению, более удобного способа, кроме как лезть в исходный код страницы нет:
  1. Войдите в свой аккаунт на CodePlex.
  2. Откройте страницу дискуссии с интересующим вас сообщением.
  3. Откройте исходный код страницы.
  4. Найти то сообщение (по какому-нибудь слову).
Каждое сообщение - это ряд в таблице: <tr/>. Ряд разбит на две ячейки <td/>: деталей сообщения id="PostDetailsCell_854023" и содержимого сообщения id="PostContent_854023".


Как видите и ряд, и ячейки уже включают в себя идентификатор сообщения.  (У ряда он записан в атрибуте d:forid,например,  d:forid="854023").
  1. Для простоты найдите закладку, то есть элемент <a name=...>,   и скопируйте из его атрибута все значение, например post854023.
  2. Добавьте к ссылке на дискуссию #, а затем значение этого атрибута  post854023.
У вас получится что-то вроде http://codeplex.codeplex.com/discussions/360079#post854023.

Это и есть ваше сообщение.

Кстати, если вы пользуетесь инструментами разработчика (F12) в любом из современных браузеров (например, Firebug в Firefox), сделать это будет легче. А раз вы ими пользуетесь, то вы точно знаете, как выбрать элемент на странице и увидеть его эквивалент в исходном коде.


Подытожим:
  1. Войдите в свой аккаунт.
  2. Откройте исходный код страницы  нужной дискуссии.
  3. Найдите сообщение и скопируйте его идентификатор.
  4. Сформируйте ссылку по этому шаблону: http://{адрес_дискуссии}#post{иднетификатор сообщения},  например,  http://codeplex.codeplex.com/discussions/360079#post854023.

Комментариев нет:

Отправить комментарий