إنتقل إلى المحتوى الرئيسي

اعرض طريقة عرض كجدول

الهدف​

ضع قائمة سجلات على بوابتك دون أن ترسم القائمة — جدول المنصّة نفسه، بالأعمدة التي تقرّرها طريقة عرض.

قبل أن تبدأ​

  • طريقة عرض على الجدول، بالأعمدة التي تريد أن يراها الزوّار. منها تأتي العناوين والعروض والترتيب.
  • Custom API يسرد الجدول، مؤشَّرًا عليه في ما الذي تقرؤه. انظر انشر تطبيقًا كبوابة.

الخطوات​

  1. في مصمّم التطبيق، أفلت المكوّنات ← عرض جدول أو نموذج في موضع القائمة.
  2. في تبويب الشاشة، اختر الجدول. اترك العرض على الافتراضي للجدول، أو اختر أحد عروض الجدول.
  3. اختر Custom API (بوابة) الذي تأتي منه الصفوف — Notices (api:par_list_notices@1) مثلًا. لا تُعرض إلا العقود التي تجيب عن GET، لأن الشبكة تقرأ فقط.
  4. انشر، ثم افتح البوابة.

هذا كل شيء على جانب الرسم. أنت لا تختار الأعمدة هنا — فقد اختارتها طريقة العرض.

للشبكة سؤالان، ويجيب كل صندوق عن واحد. الجدول وطريقة العرض يقرّران ماذا يُعرض — العناوين والعروض والترتيب — وتستخرجها المنصّة قبل تقديم الصفحة، فلا يصل شيء من شكل جدولك إلى متصفّح عام. وCustom API يقرّر أي صفوف، لأن كل قراءة على بوابة تمرّ عبر عقد كتبته أنت. أما في قائمة التطبيقات فيُتجاهَل صندوق الواجهة ويوفّر الجدولُ الاثنين.

ما على الـ API فعله​

أن يقسّم إلى صفحات، وأن يقول كم العدد. يطلب الجدول صفحة في كل مرة ويقرأ total ليعرف إن كانت هناك صفحة تالية:

var page = runQuery({
entity: 'par_notice',
select: ['par_name', 'par_category', 'par_published_on'],
order: [{ field: 'par_published_on', descending: true }],
top: num(getInput('top')),
skip: num(getInput('skip'))
});

setOutput('rows', page);
setOutput('total', page.length());

بدون total لا يستطيع المُقسِّم تمييز الصفحة الأخيرة من صفحة ممتلئة، فيعرض التالي الذي لا يقود إلى شيء.

عمود في العرض لا تُرجعه الواجهة​

يظهر فيه شَرطة في كل صف. العرض يقرّر العناوين؛ والواجهة تقرّر ما في كل صف، والحقل الذي يُسقطه select الخاص بها ليس في الصف. فإضافة عمود تعديلان: العمود في العرض، والحقل في select الواجهة.

هذا مقصود لا سهو. العرض مشترك مع التطبيق داخل المنصّة، وإضافة عمود هناك لفريقك لا ينبغي أن تنشر ذلك الحقل للغرباء. ما يغادر المنصّة هو ما تختاره الواجهة.

الشبكة بلا واجهة لا تظهر أصلًا​

اترك Custom API (بوابة) فارغًا، أو سمِّ واجهة لم تُمنَح للبوابة، فلا تُقدَّم الشبكة — لا ترى شبكة أصلًا، لا عناوين فوق جسم لن يمتلئ.

وهذا مقصود، وهو القاعدة نفسها التي تتبعها بقية البوابة: الشبكة الفارغة تُقرأ لا توجد سجلات، وهي دعوى تختلف عن لم يُسمح لهذه البوابة بعرضها قط. أما الرجوع إلى قراءة الجدول مباشرة فأسوأ — فهو البابُ نفسه الذي يغلقه §6.11.3، من طريق آخر.

من أين تأتي الأعمدة، ومتى​

من طريقة العرض، حين تُخدَم البوابة. عدّل طريقة العرض، أعد تحميل البوابة، فتتغيّر الأعمدة — لا شيء يُعاد نشره. ولهذا أيضًا لا تسأل صفحة البوابة المنصّة قط عمّا تحتويه طريقة عرض: الجواب يصل مع الصفحة.

وإن سمّيت طريقة عرض ثم حذفتها لاحقًا، يقول الجدول إنه غير متاح بدل أن يعود بهدوء إلى الافتراضية. أنت اخترت تلك الأعمدة، وظهور مجموعة مختلفة دون تحذير على صفحة عامة أسوأ من جدول صادق في عطله.

ماذا يستطيع الزائر أن يفعل به وماذا لا​

يستطيع قراءته وتصفّحه. لا يستطيع تحديد صفوف، ولا الدخول إلى سجل، ولا استخدام شريط أوامر — لا وجود لأي منها هنا. كل واحد منها فعل على سجل، وما يجوز لغريب فعله بسجل قرارُ الـ Custom API خاصتك لا قرار جدول.

وإن أردت أن يفعل الزائر شيئًا، فارسم زرًا وأعطه صفّه المسموح به.

غير متاح على بوابة​

  • نموذج سريع (سطحا الإنشاء/التحرير). النموذج يحتاج قواعد الجدول الإلزامية وخياراته وخطوات إضافاته، ولا شيء من ذلك مكانه موقع عام. ارسم الحقول بدلًا من ذلك، واكتب الـ Custom API خلف زر الحفظ — انظر دع الزوّار يحفظون التغييرات.
  • قائمة المهام. زائر البوابة ليس مستخدم منصّة ولا صندوق مهام له.

وكلاهما يقول ذلك على الصفحة بدل أن يفشل بصمت.

تأكّد أنه نجح​

افتح البوابة كما يفتحها غريب. يعرض الجدول أعمدة طريقة عرضك بعناوينها، ويتصفّح السجلات التي يعيدها الـ API. ثم عدّل أحد عناوين الأعمدة في طريقة العرض وأعد التحميل — تتبعه البوابة.