อะพอสทรอฟี่ CMS จัดการกับชุดย่อยของชิ้นส่วนและความสัมพันธ์

นี่คือคำจำกัดความเหตุการณ์ของฉัน

module.exports = {
  extend: 'apostrophe-pieces',
  name: 'event',
  label: 'Event',
  pluralLabel: 'Events',
  addFields: [
    {
      name: 'eventName',
      label: 'Event Name',
      type: 'string',
      required: true
    },
    {
      name: 'location',
      label: 'Location',
      type: 'string',
      required: true
    },
    {
      name: 'date',
      label: 'Date',
      type: 'date',
      required: true
    },
    {
      name: 'thumbnail',
      label: 'Thumbnail',
      type: 'singleton',
      widgetType: 'apostrophe-images',
      options: {
        limit: 1,
        minSize: [ 200, 200 ],
        aspectRatio: [ 1, 1 ]
      }
    }
  ]
};

ฉันจะใช้ชุดย่อยของเหตุการณ์ในอนาคตที่ใกล้ที่สุด 5 เหตุการณ์บนเพจได้อย่างไร

นอกจากนี้ หากฉันกำลังจะทำอะไรที่คล้ายกันกับลูกค้า ฉันสามารถใช้ชุดย่อยที่แตกต่างกันในหน้าต่างๆ โดยอิงตามฟิลด์สตริงที่ระบุอุตสาหกรรมของพวกเขาได้หรือไม่


person Nick Ellis    schedule 23.09.2019    source แหล่งที่มา


คำตอบ (1)


หากคุณใช้โมดูล apostrophe-events npm แทนที่จะดำเนินการด้วยตนเอง สิ่งที่คุณขอจะเป็นพฤติกรรมเริ่มต้นของโมดูล apostrophe-events-widgets (แสดง 5 เหตุการณ์ถัดไปที่ยังไม่สิ้นสุด)

หากคุณต้องการทำสิ่งนี้ด้วยตนเอง คุณสามารถทำได้โดยการตั้งค่าตัวเลือก sort ของโมดูล events ของคุณเป็น { date: 1 } และเพิ่มตัวกรองเคอร์เซอร์แบบกำหนดเองเพื่อละเว้นเหตุการณ์ที่มีวันที่ในอดีตเมื่อเรียกใช้ จากนั้นคุณจะเรียกใช้วิธีการกรองนั้นจากโมดูล events-widgets ของคุณ

แต่เนื่องจาก apostrophe-events ทำทั้งหมดนี้ให้กับคุณด้วยข้อกำหนดเพิ่มเติมสำหรับการจัดการวันที่เริ่มต้นและสิ้นสุดอย่างถูกต้อง หากคุณต้องการ ฉันไม่แนะนำให้ "วาง"

เพื่อให้เสร็จสมบูรณ์ คุณสามารถดูการใช้งานตัวกรองเคอร์เซอร์ "ที่กำลังจะมีขึ้น" สำหรับ apostrophe-events ที่นี่:

https://github.com/apostrophecms/apostrophe-events/blob/master/lib/cursor.js

และนี่คือตรรกะใน apostrophe-events-widgets ที่จะใช้ตัวกรองนั้นเพื่อแสดงเฉพาะกิจกรรมที่กำลังจะเกิดขึ้นในวิดเจ็ตนั้น ซึ่งคุณสามารถเพิ่มลงในหน้าแรกของคุณเพื่อรับเอฟเฟกต์ที่คุณต้องการ:

https://github.com/apostrophecms/apostrophe-events/blob/master/lib/modules/apostrophe-events-widgets/index.js

โมดูล apostrophe-events-pages (ส่วนหนึ่งของชุด apostrophe-events) ยังใช้ตัวกรองนี้ตามค่าเริ่มต้น แต่สนับสนุนการเรียกดูตามวันที่เช่นกัน ซึ่งจะแทนที่เพื่อให้สามารถเข้าถึงเหตุการณ์ที่ผ่านมา

person Tom Boutell    schedule 23.09.2019