2009-03-03 8 views
1

現在、N2 CMSフレームワークにサイトをまとめています。私がしたいことの一つは、ユーザーがかなり標準的な星評価スタイルのユーザーコントロールなどを使ってサイトのさまざまな要素を評価できるようにすることでした。N2 CMS評価ユーザーコントロール

誰もN2の中で具体的に実装されているように見えますか? N2でこれを達成する最良の方法についていくつかのポインタを探しています。

また、それは違いがあるとは思わないが、私は現在、N2内でASP MVCを使用してこれを実装しています。

ここで事前に感謝

ポール

+0

に動作しますが、あなたは、快適な書き込みC#のはありますか?もしそうなら、これはユーザーコントロールと余分なページ項目ではかなり簡単です。 –

+0

AbstractItemは –

+0

ええ、私は実際に最後にそれに非常に似た何かをしました。ちょうど怠け者で、箱の外に何か素敵なものがあることを願って再利用することができました。アドバイスをいただきありがとうございます。 – pauldunlop

答えて

0

(すぐAtomサーバーと呼ばれるように)BlogSvcのsource codeを確認

ソース/ WebCore /プラグイン/評価者/ RaterService.cs

がAでスニペット:

public RaterModel Rate(Id entryId, float rating, User user, string ip) 
{ 
    LogService.Info("RateEntry: {0}, {1}, {2}", entryId, rating, ip); 

    if (!AuthorizeService.IsAuthorized(user, entryId, AuthAction.RateEntryOrMedia)) 
    throw new UserNotAuthorizedException(user.Name, AuthAction.RateEntryOrMedia.ToString()); 

    if (rating < 1 || rating > 5) throw new ArgumentOutOfRangeException("Rating value must be 1 thru 5."); 

    AtomEntry entry = AtomEntryRepository.GetEntry(entryId); 
    if (entry.Raters.Contains(ip)) throw new UserAlreadyRatedEntryException(ip, entry.Id.ToString()); 

    entry.RatingCount++; 
    entry.RatingSum += (int)Math.Round(rating); //temporarily force int ratings 
    entry.Edited = DateTimeOffset.UtcNow; 
    List<string> raters = entry.Raters.ToList(); 
    raters.Add(ip); 
    entry.Raters = raters; 
    entry = AtomEntryRepository.UpdateEntry(entry); 
    return new RaterModel() 
    { 
    PostHref = RouteService.RouteUrl("RaterRateEntry", entryId), 
    Rating = entry.Rating, 
    CanRate = false, 
    RatingCount = entry.RatingCount 
    }; 
} 
+0

役に立つリンクですが、私が探していたものではなく、N2と一体化したものが理想的でした。しかし、ありがとう。 – pauldunlop

0

これは私が使用しているものです評価内容のための私のウェブサイトに - 1〜5つ星

N2CMS - EditableEnumがこの仕事のために完璧に

[EditableEnum("RatingValue", 2, typeof(Rating))] 
    public virtual string RatingValue 
    { 
     get { return (string)(GetDetail("RatingValue")); } 
     set { SetDetail("RatingValue", value); } 
    } 

    /// <summary> 
    /// Enum for the Vehicle Review Ratings 
    /// </summary> 
    public enum Rating 
    { 
     one = 1, 
     two = 2, 
     three = 3, 
     four = 4, 
     five = 5 
    }