Score:0

views_embed_view() ละเว้นไฟล์เทมเพลตโดยใช้ Ajax

ธง jp

ฉันมีมุมมองที่แสดงเป็นสองทาง เมื่อฉันแสดงเป็นบล็อกปกติและใช้งานครั้งเดียว views_embed_view() ร่วมกับอาแจ็กซ์

สำหรับบล็อกปกติฉันสร้างไฟล์ views-view-list.html.twig เทมเพลตในธีมของฉันเพิ่ม แผนก กระดาษห่อ สไตล์ของฉันขึ้นอยู่กับ div ที่เพิ่มเข้ามานี้

สำหรับบล็อคฝังนี้ views-view-list.html.twig บล็อกจะถูกเพิกเฉย ดังนั้นสไตล์จึงถูกปิด

โดยใช้ views_embed_view() ภายใน พรีโพรเซส ทำงานตามที่คุณคาดหวัง แต่การใช้กับ Ajax จะละเว้นเทมเพลต

ฉันจะแน่ใจได้อย่างไรว่าเทมเพลตไม่ถูกละเว้น หรือมีวิธีเพิ่มเทมเพลตอื่นที่เห็นเมื่อฝังมุมมองหรือไม่

ฉันมีโมดูลที่กำหนดเอง my_view_ajax

ฉันแนบไฟล์ js ในไฟล์ .โมดูล ไฟล์:

ฟังก์ชัน my_view_ajax_preprocess_node(&$variables) {
  $node = $variables['โหนด'];
  // ตรวจสอบประเภทเนื้อหา
  ถ้า ($node->getType() == 'บทความ' || $node->getType() == 'ปัญหา' ) {
    $variables['#attached']['library'][] = 'my_view_ajax/my_view_ajax__js';
  }
}

ในของฉัน .js ฉันใช้ Ajax เพื่อบล็อกการดูของฉัน

const routing_url = '/custom/ajax/articles';
$.ajax({
  ประเภท: 'รับ',
  url: routing_url,
  ข้อมูล: 'nid='+nid,
  ประเภทข้อมูล: 'html',
  async: จริง,
  สมบูรณ์: ฟังก์ชัน (ข้อมูล) {
    $containerContent.empty().html(data.responseText);

    $containerContent.fadeIn();
    $ajaxLoader.fadeOut();
  }
});

ในของฉัน routing.yml ฉันสร้างเส้นทาง Ajax

my_view_ajax.articles:
  เส้นทาง: '/custom/ajax/articles'
  ค่าเริ่มต้น:
    _title: 'บทความ'
    _controller: '\Drupal\my_view_ajax\Controller\viewsajaxController::issueArticles'
  ความต้องการ:
    _permission: 'เข้าถึงเนื้อหา'

และในที่สุดของฉัน viewsajaxController.php

เนมสเปซ Drupal\my_view_ajax\Controller;

ใช้ Drupal\Core\Controller\ControllerBase;
ใช้ Drupal\node\Entity\Node;
ใช้ \Symfony\Component\HttpFoundation\Response;

คลาส viewsajaxController ขยาย ControllerBase {
  ปัญหาฟังก์ชั่นสาธารณะบทความ () {
    $nid = 11;

    $markup = \Drupal::service('renderer')->render(views_embed_view('ccr_overview', 'block_articles_view', $nid));
    ส่งคืนการตอบกลับใหม่ ($ มาร์กอัป);
  }
}
Score:0
ธง pw

ฉันได้พยายามจำลองกรณีดังต่อไปนี้

1. เพิ่มโครงสร้างต่อไปนี้ใน view-view-table--articles.html.twig

<div class="example- template">
{% สำหรับแถวต่อแถว %}
  {% ตั้ง titletxt = '' %}
  {% set viewnod = '' %}
  {% set แก้ไขโหนด = '' %}
    {% สำหรับคีย์ คอลัมน์ในแถว คอลัมน์ %}
      {% สำหรับฟิลด์ใน column.fields %}                                    
        {% สำหรับเนื้อหาใน column.content %}
          {% ถ้าฟิลด์ == 'ชื่อเรื่อง' %}
             {% ตั้ง titletxt = content.field_output %}
          {% เอนดิฟ %}
          {% ถ้าฟิลด์ == 'ดูโหนด' %}
             {% set viewnod = content.field_output %}
          {% เอนดิฟ %}              
          {% ถ้าฟิลด์ == 'แก้ไขโหนด' %}
             {% set editnode = content.field_output %}
          {% เอนดิฟ %}
        {% สิ้นสุดสำหรับ %}
      {% สิ้นสุดสำหรับ %}
    {% สิ้นสุดสำหรับ %}
    <div>
      <h3>
        {{titletxt}}
      </h3>
      <div>
        {{วิวนอด}}
      </div>
      <div>
        {{แก้ไขโหนด}}
      </div>
    </div>
{% สิ้นสุดสำหรับ %}
  1. ใน node--article.html.twig ฝังมุมมองต่อไปนี้

     <div class="relatedarticles">
       <h2>Articles From Block View</h2>
       {% if articles %}
         {{ articles }}
       {% endif %}
     </div>
    
  2. ใน fluffiness.theme เพิ่มดังนี้

    ฟังก์ชัน fluffiness_preprocess_node(&$ตัวแปร) { $relatedArticles = views_embed_view('บทความ', 'block_1'); $variables['articles'] = \Drupal::service('renderer')->render($relatedArticles);
    }

จากนั้นฉันสังเกตเห็นว่าในโหมดมุมมองโหนด โครงสร้างที่มีเทมเพลตของมุมมองจะแสดงผลดังนี้

ป้อนคำอธิบายรูปภาพที่นี่

Joost avatar
jp flag
ขอบคุณที่ตอบกลับ ฉันรู้แล้วเนื่องจากการทดสอบของคุณพบว่าปัญหาอยู่ที่การใช้มุมมองแบบฝังร่วมกับ Ajax ฉันอัปเดตคำถามด้วยข้อมูลเพิ่มเติม

โพสต์คำตอบ

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