Power Pages: قطعه های محتوای سفارشی با هک قسمت 1

Power Pages یک پلت فرم کم کد برای ساختن وب سایت ها از اجزای داخلی است. اما اگر دوست داشته باشید که من از اجزای از پیش ساخته شده متنفر باشید و بخواهید کنترل کاملی بر آنچه که پیاده سازی می کنید و چگونه داشته باشید، چه می شود؟
به عنوان مثال، یک برنامه تک صفحه ای بدون وابستگی های داخلی PowerApps بسازید، رجوع کنید. سری قبلی پست های من در اینجا در حال انجام است.
برنامه های پیش فرض Power Pages Management
هنگامی که یک محیط و یک سایت Power Pages ایجاد می کنید، برنامه های پیش فرض مدل محور را برای مدیریت وب سایت خود دریافت می کنید:
- یکی الف است مدیریت پورتال برنامه در make.powerpages.microsoft.com قابل دسترسی است و در اینجا توضیح داده شده است.
- دیگری الف است برنامه پیکربندی در make.powerapps.com -> Apps -> Power Pages Management در اینجا توضیح داده شده است، جایی که می توانید قطعه های محتوا و فایل های وب خود را مدیریت کنید.
برنامه Power Pages Management در make.powerapps.com
قطعات محتوای این برنامه به شکل زیر است:
تکههای محتوا فقط قطعات html هستند که میتوانید در وبسایت خود جایگذاری کنید. یک قطعه ساده ممکن است به همین سادگی باشد .
All snippets sit in a Dataverse table Content Snippet (mspp_contentsnippet)
و از طریق:
- make.powerapps.com -> راه حل ها -> راه حل پیش فرض -> جستجو برای
Content Snippet
- در یک مرورگر وب با پرس و جو
https://your-env.api.crm4.dynamics.com/api/data/v9.2/mspp_contentsnippets
اگر دریافت کنید HTTP ERROR 401
هنگام فراخوانی این پرسش، ابتدا باید به https://your-env.api.crm4.dynamics.com
و با اعتبار کاربری خود احراز هویت کنید (شما باید نقش مدیر داشته باشید).
تفاوت بین نقش های امنیتی Dataverse و نقش های وب پاور پیج
تیم های Dataverse با نقش های امنیتی چه تفاوتی با نقش های وب پاور پیج دارند؟
تیم های Dataverse با نقش های امنیتی اگر از کتابخانه MSAL برای احراز هویت با Dataverse استفاده می کنید (در سری SPA من توضیح داده شده است) استفاده می شود، یعنی وابستگی ها به طور کامل توسط شما از ابتدا کنترل می شوند.
نقش های وب پاور صفحات هنگامی که شما یک پورتال با اصل کم کدی که توسط مایکروسافت طراحی شده است، قابل استفاده هستند.
از آنجایی که من در حال ساختن یک SPA با کنترل کامل بر وابستگی ها هستم، از نقش های وب استفاده نخواهم کرد.
چرا به جدول دیگری از محتوای سفارشی نیاز دارید؟
در اینجا یک سناریوی معمولی وجود دارد. فرض کنید یک صفحه Frame Agreements دارید که در آن هم ابرداده قراردادها و هم اسناد را برای دانلود دارید. ما دو تیم کاربری ایجاد میکنیم و صفحه قرارداد چارچوب را به شکلی متفاوت ارائه میکنیم:
- برای پرسنل تدارکات با قابلیت دانلود اسناد.
- برای سایرین در سازمان که میتوانند فقط ابرداده اسناد را بدون دکمه دانلود ببینند.
سناریوی پیشفرض با یک جدول Content Snippets
ما باید به خواندن اجازه دهیم Content Snippets (mspp_contentsnippet)
به هر دو گروه ممکن است دو قطعه محتوای متفاوت داشته باشیم: یکی با قابلیت دانلود برای تهیه، دیگری بدون – برای دیگران.
با این حال، نقطه ضعف اصلی این است که هر کسی از گروه است دیگران با دانش کدنویسی می توانید به راحتی تمام قطعات محتوا را از آنجایی که به آنها دسترسی دارند دریافت کنید mspp_contentsnippets
، عملکرد دانلود را رندر کنید و به فایل ها دسترسی داشته باشید (در صورتی که کنترل دسترسی در Azure Storage نیز نداریم).
چگونه رفع کنیم
میتوانیم یک جدول سفارشی Content Snippets ایجاد کنیم که در آن قطعه عملکرد دانلود را ذخیره کنیم. این جدول سفارشی فقط توسط پرسنل تدارکات مجاز به خواندن خواهد بود.
چالش هایی که باید بر آن غلبه کرد
ما به راحتی می توانیم یک جدول جدید با اسنیپت ها ایجاد کنیم. با این حال، هنگام ذخیره html در این جدول سفارشی، تگ های html توسط Power Apps حذف می شوند. بنابراین به جای داشتن شما فقط یک متن پاک شده را خواهید دید
Download
وقتی ذخیره شد
علاوه بر این، ما میخواهیم محتوای زیبای html را در این جدول سفارشی همانطور که در برنامه پیشفرض میبینیم، ببینیم:
برای رفع این مشکل، باید یک برنامه مدیریت صفحات Power سفارشی ایجاد کنیم و این کاری است که در ادامه انجام خواهم داد…