Score:2

เพิ่มตัวแปรที่กำหนดเองให้กับบล็อกที่มีอยู่

ธง mx
JFK

มีวิธีแก้ไขการเรนเดอร์อาร์เรย์ของบล็อกที่มีอยู่หรือไม่? ฉันต้องการทำเพื่อบล็อกการค้า (บล็อกรถเข็น) แต่คำถามยังคงอยู่สำหรับบล็อกโมดูลหลักหรือส่วนร่วม

เมื่อบล็อกใช้ #theme ที่กำหนดเองสำหรับบล็อกนั้น มีวิธีแก้ไขคำจำกัดความหรือไม่

สมมติว่าโมดูลกำหนดธีมต่อไปนี้:

/**
 * ใช้ hook_theme()
 */
ฟังก์ชัน commerce_cart_theme($existing, $type, $theme, $path) {
  กลับ [
    'commerce_cart_block' => [
      'ตัวแปร' => [
        'icon' => โมฆะ
        'นับ' => โมฆะ,
        'count_text' => '',
        'เนื้อหา' => โมฆะ
        'url' => โมฆะ,
        'ลิงค์' => [],
      ]
    ]
  ];
}

และบล็อกใช้ '#theme' => 'commerce_cart_block' เนื่องจากเป็นการสร้างอาร์เรย์การเรนเดอร์

ฉันต้องการทราบว่ามีวิธีเพิ่มตัวแปรที่กำหนดเองใหม่ให้กับ commerce_cart_block ในเบ็ดหรือไม่

ฉันพยายามเขียน commerce-cart-block.html.twig ในธีมของฉันใหม่ และเพิ่มตัวแปรใหม่เข้าไป และฉันจะตั้งค่าตัวแปรใน THEME_preprocess_block__commerce_cart() แต่มันไม่ทำงาน

ฉันยังพยายามที่จะ แก้ไขเนื้อหาของบล็อกด้วย HOOK_block_view_alter ในโมดูลแต่ก็ไม่ได้ผลเช่นกัน

Score:2
ธง ua

คุณสามารถทำได้ด้วย hook_preprocess_HOOK และตัวพิมพ์ใหญ่ทั้งหมด ตะขอ ส่วนหมายถึงคีย์อาร์เรย์ใน hook_theme().

/**
 * ใช้ hook_preprocess_HOOK()
 */
ฟังก์ชัน mytheme_preprocess_commerce_cart_block(&$ตัวแปร) {
  // เพิ่มตัวแปรที่กำหนดเอง
  $variables['hello_world'] = 'สวัสดีชาวโลก';
}

BTW hook นี้สามารถใช้ได้ทั้งในธีมแบบกำหนดเองหรือโมดูลแบบกำหนดเอง

และใน commerce-cart-block.html.twig

{{ สวัสดีชาวโลก }}

ควรพิมพ์คำว่า "Hello World"

mx flag
JFK
ทำงานได้อย่างสมบูรณ์แบบ! ขอบคุณ

โพสต์คำตอบ

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