הצגת פוסטים של תתי-קטגוריות בתוך קטגורית אב

image_thumb_9

כאשר נכנסים לעמוד של קטגוריה, BlogEngine.net מציג רק את הפוסטים שקשורים ישירות לקטגוריה הזאת. אבל מה אם זוהי בעצם קטגורית אב, ואנו רוצים להציג את הפוסטים אשר שייכים לתתי-קטגוריות שלה?

במקרה הזה אנו רק צריכים ללכת לעמוד default.aspx ולשנות את הפונקציה DisplayCategories לקוד הבא:

 

private void DisplayCategories()
{
    if (!String.IsNullOrEmpty(Request.QueryString["id"]))
    {
        Guid categoryId = new Guid(Request.QueryString["id"]);
        PostList1.Posts = Post.GetPostsByCategory(categoryId).ConvertAll(p => { return p as IPublishable; });
        List<Category> subCategories = Category.Categories.FindAll(c => c.Parent.GetValueOrDefault() == categoryId );
        foreach (Category cat in subCategories)
        {
            PostList1.Posts.AddRange(Post.GetPostsByCategory(cat.Id).ConvertAll(p => {return p as IPublishable; }));
        }
        PostList1.Posts = PostList1.Posts.Distinct().ToList();
        Page.Title = Category.GetCategory(categoryId).Description;
    }
}

 

שינוי זה יגרום לכל הפוסטים בתתי-הקטגוריות להופיע כאשר נכנסים לעמוד של קטגורית אב, ובכך הופך את קטגוריות האב לכלי שימושי להצגת מספר פוסטים מקטגוריות שונות בבת אחת.

שימו לב לשימוש ב- Linq בשביל לפשט תהליכים: השתמשי באופרטור <= כדי להמיר מחלקה מסוג אחד לאחר, במקום השורה הבאה:

 

Post.GetPostsByCategory(categoryId).ConvertAll(
    new Converter<Post, IPublishable>(delegate (Post p) {
        return p as IPublishable;
    }
));

 

וכמו כן הישתמשי ב- ()Distinct כדי לוודא שלא יהיו פוסטים כפולים (מה שיכול לקרות אם תייגתם פוסט בשני קטגוריות שמוצגות פה).

שתפו את הפוסט:
תגיות: ,

זכויות יוצרים

cc88x31 תכני הבלוג המקוריים חופשיים לשימוש תחת רשיון Creative Commons מסוג ייחוס-שיתוף זהה (CC-by-share alike) (הרשיון באנגלית, עברית), אלא אם צוין אחרת.

התגובות המתפרסמות בבלוג חופשיות גם הן לשימוש תחת רשיון Creative Commons מסוג ייחוס-שיתוף זהה (CC-by-share alike). אם אינכם מעוניינים שתגובותיכם יקבלו רשיון זה – אל תגיבו כאן.

תכני הבלוג הלא-מקוריים מופיעים כאן ברשות או בשימוש הוגן.

השארו מעודכנים

הזן את כתובת המייל שלך כדי להירשם לאתר ולקבל הודעות על פוסטים חדשים במייל.

RSS Feed RSS - פוסטים RSS Feed RSS - תגובות

אודות האתר

הגיון הוא הכלי העיקרי שעזר לנו להפריד בין דימיון למציאות. מטרת הבלוג VoiceOfLogic היא להשתמש בכלי זה כדי לנסות ולהסביר בצורה הכי קלה ופשוטה גם את הנושאים המורכבים ביותר.

ערן הרץ הוא היוצר של VoiceOfLogic. מתגורר בהוד השרון ועובד בתחום ההיטק בפיתוח ווב.