Orchard Core ก็มี Helper

KwangTung Taesuji
3 min readJul 28, 2022

--

การพัฒนา 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

ถ้าต้องการศึกษาเพิ่มเติม สามารถดูเมธอดได้ที่

--

--