2011-03-16 4 views
3

Umbraco 4.6.2를 사용 중이며 제공하는 기본 알림을 확장해야합니다. 이 질문을 위해 "게시 취소"알림을 추가하려고한다고 가정 해 봅시다.Umbraco - 맞춤 알림을 추가하는 방법은 무엇인가요?

\umbraco\presentation\umbraco\dialogs\notifications.aspx.cs에서 컨텍스트 메뉴에서 "알림"대화 상자를 열 때 사용자에게 표시되는 checkbx 항목의 목록을 구성합니다.

Action에는 ShowInNotifier 속성이 있습니다.이 값을 UnPublish 액션에 대해 true으로 설정하려면 어떻게해야합니까? 코어 코드베이스를 수정해야합니까, 아니면 정상적으로 Umbraco를 확장 할 수있는 좋은 방법이 있습니까?

그래서 이것을 추가하면 사용자가 게시 취소 알림을 구독 할 수 있습니다 (여기에 단계가 누락 되었습니까?). 알림이 자동으로 전송됩니까?

내가하지 같은데요, 그래서 수행 한 다음 일은이 게시 취소 이벤트 중독되어

: 실제되지 않은 코드의

public class CustomEvents : ApplicationBase 
{ 
    public CustomEvents() 
    { 
     Document.AfterUnPublish += new Document.UnPublishEventHandler(Document_AfterUnPublish); 
    } 

    void Document_AfterUnPublish(Document sender, umbraco.cms.businesslogic.UnPublishEventArgs e) 
    { 
     var user = User.GetCurrent(); 

     if (!string.IsNullOrEmpty(user.Email) && user.GetNotifications(sender.Path).Contains("UnPublish")) 
     { 
      //Send a notification here using default Umbraco settings, or, construct email and send manually: 
      string umbracoNotificationSenderAddress = ""; //How to get the address stored in umbracoSettings.config -> <notifications> -> <email> 

      //How to use the same subject/message formats used for other notifications? With the links back to the content? 
      string subject = "Notification of UnPublish performed on " + MyUtilities.GetFriendlyName(sender.Id); 
      string message = MyUtilities.GetFriendlyName(sender.Id) + " has just been unpublished."; 

      umbraco.library.SendMail(umbracoNotificationSenderAddress, user.Email, subject, message, true); 
     } 
    } 
} 

그래서 비트/I는 일부 포인터를 필요

  • 사용자가 특정 알림에 가입했는지 확인하는 올바른 방법입니까?

  • 기본 umbraco 설정을 사용하여 알림을 보내려면 어떻게해야합니까? 가능하지 않은 경우

(예 : 그냥 다른 통지처럼 이메일을 생성) 나는 내 자신의 이메일을 구성해야합니다

  • 가 어떻게 umbracoSettings에 저장된 이메일에서 주소를받을 수 있나요. config that

  • 기본 Umbraco 알림에서 사용되는 형식을 어떻게 복사 할 수 있습니까? 수동으로 복사해야합니까 (프로그래밍 방식으로) 이렇게하는 것이 더 좋은 방법일까요?

어떤 도움 (또는 단지 관련 사례에 대한 링크) 감사합니다 :>

답변

0

내 동료는이 작업을 얻었다.

알림을 받으려는 작업을 무시하는 클래스를 만듭니다. 당신은 오버라이드 (override) 클래스에서 /umbraco/cms/Actions

public class ActionUnPublishOverride : umbraco.BusinessLogic.Actions.ActionUnPublish, IAction 
{ 
    ... see what the other actions look like to find out what to put in here! 

에서 모든 작업을 볼 수 있습니다, 당신은 public char Letter있을 것이다. 후크 할 이벤트와 일치하도록 설정하십시오. 각 이벤트가 데이터베이스에 가지고있는 편지를 찾을 수 있습니다.

public bool ShowInNotifier을 참으로 설정하십시오.

그게 전부 야!

0

나는 Umbraco 4에서 작동하고 있습니다.UmbracoSettings 클래스를 사용하여 7 :

http://www.java2s.com/Open-Source/CSharp/Content-Management-Systems-CMS/umbraco/umbraco/businesslogic/UmbracoSettings.cs.htm

umbraco.library.SendMail(umbraco.UmbracoSettings.NotificationEmailSender, newMember.Email, "email subject", "email body", false); 
+0

오른쪽, 그래서 이것은 당신이 이메일을 보낼 수 있습니다,하지만 그것은 Umbraco 시스템 알림을 사용하지 않습니다. 즉, 사용자가 특정 이벤트에 '구독'할 수있는 방법을 제공하지는 않습니다. 나 또한 이미 내 질문에 그 정확한 라인을 가지고 :) – elwyn

관련 문제