Orchard Core ก็มี Helper
การพัฒนา Orchard Core นอกจากจะใช้ Orchard Core API แล้ว เรายังสามารถใช้ไลบารี่ (Library) ที่เป็นตัวช่วยในการเข้าถึงข้อมูลส่วนที่มาจาก CMS ได้อีกด้วย โดยจะต้องติดตั้ง OrchardCore Abstractions ผ่าน Nuget ดังนี้
หรือจะลองเข้าไปค้นหา Nuget ของ Orchard Core ได้ที่
เมื่อทำการติดตั้งแล้วสามารถ using Orchard Helper ได้ทั้ง 2 ส่วน คือ ส่วนของ Razor page หรือส่วนของ C# Class ดังนี้
1. วิธีการ using ในส่วนของ Razor page
เพิ่มคำสั่ง Dependency Injection (DI) ของ IOrchardHelper ไว้ที่ด้านบนของ Razor page และกำหนดตัวแปร Variable เพื่อนำไปใช้ในส่วนอื่น ๆ ของเพจนี้ต่อไป
2. วิธีการ using ส่วนของ C# Class
เพิ่มคำสั่งประกาศการใช้งานของ Content Management ของ Orchard โดยใช้คำสั่งดังนี้ using OrchardCore.ContentManagement ไว้ที่ด้านบนใน Controller.cs ซึ่งจะเป็นไฟล์ C#
จากนั้นเพิ่มโค้ด Dependency Injection (DI) ที่เป็นส่วน IOrchardHelper และเรียกใช้ DI ผ่าน Constructor ของ Controller.cs หลังจากนั้นเราจะสามารถใช้ Helper ใน Method ต่าง ๆ ใน Controller ได้
ตัวอย่าง เมธอดของ IOrchardHelper ที่น่าสนใจมีดังนี้
1. GetContentItemByIdAsync(string contentItemId, bool latest = false)
ใช้สำหรับการเรียกดูข้อมูลจาก ContentItem โดยส่งพารามิเตอร์ที่ชื่อว่า contentItemId เข้าไป อาจจะกำหนดสถานะของข้อมูลว่าล่าสุดหรือไม่ โดยใช้พารามิเตอร์ latest
ผลลัพธ์ คือ จะได้ข้อมูล ContentItem ตาม contentItemId ที่ระบุเพียง 1 ข้อมูลเท่านั้น
2. GetContentItemsByIdAsync(IEnumerable<string> contentItemIds, bool latest = false)
ใช้สำหรับการเรียกดูข้อมูลจาก ContentItem โดยส่งพารามิเตอร์ที่ชื่อว่า contentItemIds ที่มีลักษณะเป็นชุดของ ContentItemId หลาย ๆ ตัวเข้าไป อาจจะกำหนดสถานะของข้อมูลว่าล่าสุดหรือไม่ โดยใช้พารามิเตอร์ latest
ผลลัพธ์ คือ จะได้ข้อมูล ContentItem ตาม contentItemId ที่ระบุได้หลายข้อมูล
3. SanitizeHtml(string html)
ใช้สำหรับการเปลี่ยนข้อความที่อยู่ในรูปแบบ string ยาว ๆ ให้กลายเป็น Html จากตัวอย่าง
ผลลัพธ์ที่ได้
4. AssetUrl(string assetPath, int? width = null, int? height = null, ResizeMode resizeMode = ResizeMode.Undefined, bool appendVersion = false)
ใช้สำหรับการเรียกดูข้อมูลรูปภาพจาก Media โดยส่งพารามิเตอร์ assetPath และสามารถกำหนดขนาด width ของรูปภาพ, กำหนดโหมดในการ resize รูปภาพ หรือส่งพารามิเตอร์ appendVersion เพื่อใช้กำหนดเวอร์ชั่นที่ต้องการได้
ผลลัพธ์ที่ได้
5. CultureName()
ใช้สำหรับการเรียกดูข้อมูล Culture เช่น th-TH คือ ภาษาไทย, en-US คือ ภาษาอังกฤษ เป็นต้น
ตัวอย่างข้อมูลที่ได้หลังจากการดึงข้อมูลจาก IOrchardHelper
1. การแสดงผลผ่านคำสั่ง @contentPage.Content.FlowPart ที่หน้า Razor Page ซึ่งจะอยู่ในรูปแบบ JSON
2. การแสดงผลผ่านคำสั่ง @contentPage.ContentItem.DisplayText ที่หน้า Razor Page ซึ่งจะอยู่ในรูปแบบ Object
3. การแสดงผลผ่าน output ในระหว่างที่ทำการใช้ Debug tools ใน Visual Studio