Score:0

ลำดับชั้นของประเภทเนื้อหา

ธง in

ฉันค่อนข้างใหม่สำหรับ Drupal ที่มีประเภทเนื้อหาที่วนซ้ำในประเภทเนื้อหาสำหรับเด็กโดยใช้ฟิลด์ ผลที่ได้คือสิ่งนี้

ประเภทเนื้อหาสำนักงาน
ฟิลด์: ประเภทเนื้อหา Office
- ประเภทเนื้อหาสำนักงาน
- ฟิลด์: ประเภทเนื้อหาบุคคล
- ฟิลด์: ประเภทเนื้อหาบุคคล
- ฟิลด์: ประเภทเนื้อหาบุคคล
- ประเภทเนื้อหาสำนักงาน
-- ฟิลด์: ประเภทเนื้อหา Office
-- ฟิลด์: ประเภทเนื้อหาบุคคล
-- ฟิลด์: ประเภทเนื้อหาบุคคล

ฉันต้องการประเภทเนื้อหาเพื่อให้สามารถรับรู้ได้ว่ามีพ่อแม่หรือปู่ย่าตายาย อย่างไรก็ตามไดเร็กทอรีนี้สร้างขึ้นโดยใช้ชนิดเนื้อหาสำหรับสำนักงานแทนอนุกรมวิธาน เป็นไปได้หรือไม่ที่จะดึงข้อมูลลำดับชั้นจากประเภทเนื้อหาที่ซ้อนกัน ควรสร้าง Office Content Type เป็นอนุกรมวิธานแทนหรือไม่

ยินดีรับลิงก์ไปยังรายละเอียดและเอกสารประกอบ

ฉันใช้ Drupal 9.3.x

cn flag
ใน Drupal อนุกรมวิธานมีลำดับชั้น แต่ประเภทเนื้อหาไม่มี ดังนั้น ถ้าคุณต้องการลำดับชั้น คุณจะพบว่าการปรับใช้โดยใช้อนุกรมวิธานนั้นง่ายกว่าการแฮ็กประเภทเนื้อหาเพื่อทำเอง
No Sssweat avatar
ua flag
สิ่งเดียวที่ใกล้เคียงกับสิ่งนั้นสำหรับ D9 คือ [การอ้างอิงเอนทิตีที่สอดคล้องกัน](https://www.drupal.org/project/cer) แต่ตามคำอธิบายแล้ว ดูเหมือนว่าจะไม่ทำให้คุณจำปู่ย่าตายายได้ ดังนั้นคุณจะต้องใช้อนุกรมวิธาน เว้นแต่คุณต้องการสร้างโมดูลของคุณเองเพื่อจัดการแผนผังประเภทเนื้อหาดังกล่าว
Jaypan avatar
de flag
คุณสามารถสร้างการอ้างอิงเอนทิตีเพื่อสร้างลำดับชั้น แต่ก็ไม่ชัดเจนว่าคุณหมายถึงอะไรโดย "รับรู้" ยังไม่ชัดเจนว่าเป้าหมายสุดท้ายของคุณคืออะไร
in flag
ขอบคุณทุกคนสำหรับความช่วยเหลือของคุณ สามารถใช้ Taxonomies การอ้างอิงเอนทิตีและแม้แต่การเพิ่มฟิลด์ได้ ฉันทดสอบบางอย่าง เพื่อนร่วมงานของฉันชี้แจงและร้องขอโซลูชันการประมวลผลล่วงหน้า ดังนั้นฉันจะเจาะลึกลงไปใน PHP ขั้นสูงอีกเล็กน้อย
Score:0
ธง in

ฉันมาถึงวิธีแก้ปัญหาโดยใช้ฟังก์ชันพรีโพรเซส คู่คีย์/ค่าถูกเพิ่มไปยังโหนดพาเรนต์ ตั้งชื่อว่า "headline_level" ซึ่งต่อมาจะอ้างอิงโดยเด็กและเพิ่ม +1 หมายเลขนั้นกำหนดให้กับตัวแปร twig เป็นหมายเลขของบรรทัดแรก "headline_level" จะเพิ่มขึ้น 1 สำหรับเด็กหากตัวมันเองมีลูก

ในภาพนี้เราเห็นผู้ปกครอง "สำนักงาน" ดึงโหนดย่อยเป็นเขตข้อมูล ป้อนคำอธิบายรูปภาพที่นี่

แผนภาพระดับ

ผู้ปกครอง (h1)
|_ เด็ก (h2) (ดูภาพ)
   |_ หลาน (h3)
      |_ หลานผู้ยิ่งใหญ่ (h4)

ฟังก์ชันประมวลผลล่วงหน้าสำหรับธีม

ฟังก์ชัน THEME_preprocess_HOOK(&$ตัวแปร) {
  $node = $variables['โหนด'];

    /**
     * ระดับพาดหัวผู้ปกครอง 
     * แสดงโครงสร้างบรรทัดแรกแบบลอจิคัล
     * ใช้ค่าที่สูงกว่ากับ 'headline_level' สำหรับประเภทเนื้อหาย่อย ใช้ใน '/ templates/node--HOOK.html.twig'
     */
    ถ้า ($node->_referringItem) {
      // ตัวแปร
      $เคาน์เตอร์ = 1; // เริ่มต้นระดับที่ 1
      
      // ต่อท้าย 'headline_level' กับโหนด HOOK
      $node->headline_level = $เคาน์เตอร์;
      $parentHeadline = $node->_referringItem->getEntity()->headline_level;
      
      // ตรวจสอบโหนดสำหรับ $parentHeadline อื่น ๆ $counter ตั้งค่าตัวแปรทวิก
      ถ้า (isset($parentHeadline)) {
        // เพิ่ม 'headline_level' ขึ้น 1
        ++$parentHeadline; // เพิ่ม 1
        $node->headline_level = $parentHeadline;
        $variables['office_headline_level'] = $parentHeadline; 
      } อื่น {
        $variables['headline_level'] = $ตัวนับ;
      }
    }

เทมเพลต Twig สำหรับประเภทเนื้อหา

  <div>
    <h{{ headline_level ?: 2 }}>{{ label }}</h{{ headline_level ?: 2 }}>
    {{ content.field_people }}
  </div>

ตามที่กล่าวไว้ในความคิดเห็น สำนักงานเหล่านี้ควรได้รับการอนุกรมวิธาน อย่างไรก็ตาม พวกมันถูกสร้างขึ้นเป็นประเภทเนื้อหาและอ้างอิงตามฟิลด์

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา