четверг, 15 ноября 2012 г.

Рассылка информационных бюллетеней (14). Идентификатор бюллетеня

Существуют ситуации, когда вам нужно использовать идентификатор информационного бюллетеня при отсылке последнего.

Например, вы используете идентификатор в качестве параметра в ссылке, по которой этот бюллетень либо дополнительную информацию, связанную с ним, можно также прочитать на вашем сайте. (Что-то вроде http://contoso.ru/ShowNewsletter?Id={ID}.) И вы хотите, чтобы такая ссылка с соответствующим идентификатором присутствовала в бюллетене, который вы рассылаете.

Для этого вы можете воспользоваться специальным способом получения идентификатора бюллетеня - путем создания XSLT-функции и использования определенного параметра в ней.

  1. Создайте новую XSLT-функцию, например, Contoso.Newsletter.ShowAsPage.
  2. Добавьте в нее входной параметр строкового типа (String), например, Newsletter.
  3. В значении по умолчанию этого параметра замените функцию Composite.Constant.String функцией Composite.Utils.GetInputParameter.
  4. В параметре Parameter name функции GetInputParameter, напишите NewsletterId (именно так, без изменений).

  5. Теперь в шаблоне вашей функции Contoso.Newsletter.ShowAsPage используйте ваш входной параметр Newsletter как вам нужно, например, чтобы сгенерить ссылку на странице, где вы показываете этот же бюллетень. Например, так:

    <a href="~/ShowNewsletter?Newsletter={/in:inputs/in:param[@name='Newsletter']}">Дополнительно...</a>

  6. Сохраните вашу функцию.
  7. Добавьте ее в ваш информационный бюллетень.
Как именно вы будете использовать идентификатор в 5-ом шаге  - вам решать. Плюс, на упомянутой странице вы также должны добавить код, который будет получать идентификатор бюллетеня из адреса и использовать его для показа содержимого бюллетеня на странице.

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

Читайте также в этом блоге:

Предыдущие сообщения:

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

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