Score:0

การพึ่งพาธีมที่กำหนดเอง

ธง my

ฉันมีปัญหากับธีมแบบกำหนดเองที่ฉันสร้างขึ้นบนไซต์ทดสอบ Drupal 9

  • รุ่น Drupal: 9.3.13
  • เว็บเซิร์ฟเวอร์ Apache 2.4.41 (XAMP win64)
  • PHP เวอร์ชัน 8.0.11
  • ฐานข้อมูลเวอร์ชัน 10.4.8-MariaDB

ธีมที่กำหนดเอง professional.info.yml:

ชื่อ: มืออาชีพ
ประเภท: ธีม
คำอธิบาย: ธีมระดับมืออาชีพเวอร์ชัน Drupal 9
core_version_requirement: ^8 || ^9
ธีมพื้นฐาน: เท็จ
รุ่น: 1.0.0
ห้องสมุด:
  - มืออาชีพ / สไตล์ระดับโลก
  - สคริปต์ระดับมืออาชีพ / ระดับโลก
ภูมิภาค:
  sidebar_first: 'แถบด้านข้างแรก'
  sidebar_second: 'แถบด้านข้างที่สอง'
  ส่วนหัว: 'ส่วนหัว'
  front_welcome: 'ยินดีต้อนรับ'
  เนื้อหา: 'เนื้อหา'
  content_top: 'เนื้อหายอดนิยม'
  ช่วยด้วยช่วยด้วย'
  ส่วนท้าย: 'ส่วนท้าย'
  footer_first: 'ด้านล่างสุด'
  footer_second: 'จุดต่ำสุดที่สอง'
  footer_third: 'อันดับสาม'
คุณสมบัติ:
  โลโก้:จริง
  site_name: จริง
  site_slogan: จริง
  node_user_picture: จริง
  comment_user_picture: จริง
  comment_user_verification: จริง
  favicon: จริง
  main_menu: จริง
  เมนูรอง: เท็จ

ธีมที่กำหนดเอง professional.libraries.yml:

สไตล์สากล:
  เวอร์ชัน: เวอร์ชัน
  css:
    ธีม:
      css/style.css: {}  
สคริปต์ทั่วโลก:
  เวอร์ชัน: เวอร์ชัน
  จส:
    js/custom.js: {}
    js/jquery.flexslider-min.js: {}
    js/slide.js: {}
  การพึ่งพา:
    - แกน / jquery
    - หลัก / drupal
    - การตั้งค่าหลัก / drupal
    - core/drupal.dialog.ajax

ฉันบันทึกไฟล์ทั้งหมดของธีมใหม่ตามข้อตกลง:

/site-root
 - ธีม
   - มืออาชีพ
     - css
     - จส
     - แม่แบบ
       - ระบบ

ปัญหาคือการอ้างอิง รวมถึง core/drupal ไม่ถูกนำไปใช้เลย และไฟล์ JavaScript สามไฟล์ใน สคริปต์ส่วนกลาง คำสั่งไม่รวมอยู่ในหน้าเว็บไซต์ แม้ว่าทั้งไฟล์ CSS หลักของ Drupal และ style.css จาก มืออาชีพ: สไตล์ระดับโลก ได้รับการรวม

ฉันเห็นสิ่งนั้นบนคอนโซลเครื่องมือพัฒนาเบราว์เซอร์ Chrome เมื่อฉันพยายามยกตัวอย่างเพื่อแสดงหน้าพื้นฐาน โหนดในป๊อปอัปโมดอลโดยใช้ตัวอย่าง Drupal.org:

<ol>
    <li><a class="use-ajax" data-dialog-options="{&quot;width&quot;:400}" data-dialog-type="modal" href="/xampp/drupal9test/node/9">Basic page displayed in modal dialog. </a></li>
    <li><a class="use-ajax" data-dialog-options="{&quot;width&quot;:400}" data-dialog-type="dialog" href="/xampp/drupal9test/node/9">Basic page displayed in non modal dialog. </a></li>
    <li><a class="edit-button use-ajax" data-dialog-options="{&quot;width&quot;:400}" data-dialog-renderer="off_canvas" data-dialog-type="dialog" href="/xampp/drupal9test/node/9">Basic page displayed in a nice off canvas dialog. </a></li>
</ol>

โหนดแสดงเป็นหน้าทั่วไป ไม่มีป๊อปอัปโมดอลเปิดอยู่ ดังนั้นจึงไม่มีการใช้ JavaScript หลักหรือ AJAX หากฉันใช้ธีมที่กำหนดเอง เมื่อฉันเปลี่ยนไปใช้ธีม Bartik ทุกอย่างก็ใช้งานได้ โมดอลก็เช่นกัน ฉันพยายามเพิ่ม Drupal core และ AJAX libraries โดยตรง professional_preprocess_page(&$ตัวแปร) ในไฟล์ professional.theme ด้วยบรรทัด:

$variables['#attached']['library'][] = 'core/drupal';
$variables['#attached']['library'][] = 'professional/global-scripts';

ฉันพยายามเพิ่มไลบรารีด้วย Twig โดยตรงในเทมเพลต html.html.twig ด้วย {{แนบ_library('หลัก/drupal') }}แต่การเปลี่ยนแปลงเหล่านี้ไม่มีผลใดๆ

แน่นอน ทุกครั้งที่ฉันเปลี่ยนการตั้งค่าบางอย่าง ฉันจะล้างแคชของไซต์ด้วย

ผมทำอะไรผิดหรือเปล่า? ใครช่วยแก้ปัญหาให้ฉันได้บ้าง

Jaypan avatar
de flag
ฉันไม่สามารถบอกคุณได้ว่าคุณกำลังทำอะไรผิด แต่ฉันพนันได้เลยว่านี่เป็นปัญหาของเทมเพลต และคุณขาดบางอย่างที่จำเป็น คุณติดตั้ง `html.html.twig` แล้วหรือยัง บางทีคุณอาจจะมีอะไรแปลกๆ
ru flag
ธีมของคุณเขียนทับเทมเพลต `html.html.twig` หรือไม่ คุณ *ต้องมี* ทั้งสาม `` และ `อยู่ในนั้น ดู https://github.com/drupal/drupal/blob/9.5.x/core/themes/stable9/templates/layout/html.html.twig#L31
Kevin avatar
in flag
ใช่ เนื่องจาก Bartik ทำงานและของคุณไม่ทำงาน คุณจึงขาดบางสิ่งพื้นฐานไป คุณไม่ได้ตั้งค่าธีมหลักไว้ ดังนั้นจึงมีบางอย่างขาดหายไปตามที่ผู้แสดงความคิดเห็นคนอื่นๆ ระบุไว้
my flag
ขอบคุณสำหรับคำตอบของคุณ ฉันสามารถแก้ปัญหาได้แล้ว แต่ฉันต้องเพิ่มไฟล์ js ที่กำหนดเองในไฟล์ ก่อนแท็ก แต่บรรทัด ในส่วนนี้มีอยู่แล้ว และมันก็ไร้ประโยชน์... ฉันคิดว่าการระบุไลบรารีที่กำหนดเองและการขึ้นต่อกันในไฟล์ libraries.yml ก็เพียงพอแล้วที่จะทำให้มันใช้งานได้
mradcliffe avatar
cn flag
มันควรจะทำงาน ย้ำว่าต้องมีอะไรผิดพลาดอีกแน่ๆ คุณกำลังติดตามพฤติกรรมใหม่ของ Drupal JavaScript API และการฉีดการอ้างอิงด้วยนิพจน์ฟังก์ชันที่เรียกใช้ทันที (IIFE) หรือไม่ การให้จาวาสคริปต์สามารถช่วยได้
my flag
@mradcliffe: ฉันไม่รู้คำตอบสำหรับคำถามของคุณ แต่ถ้าคุณชอบ ฉันจะทำให้ทุกคนสามารถใช้ธีมที่กำหนดเองทั้งหมดได้ (โดยที่คุณอธิบายว่าฉันสามารถอัปโหลดได้ที่ไหนและอย่างไร) ดังนั้นหากมีคนรู้สึกว่าต้องการดีบั๊กและ การปรับปรุงมันอาจเป็นทางเลือกใหม่สำหรับผู้ใช้ทุกคนทั่วโลก เพราะฉันเพิ่งแก้ไขธีมของคนอื่นสำหรับ Drupal 7

โพสต์คำตอบ

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