Drupal

คำถาม & คำตอบสำหรับนักพัฒนาและผู้ดูแลระบบ Drupal

6
วิธีเปลี่ยนเส้นทางไปยังหน้าหลังจากส่งแบบฟอร์ม
ฉันมีโมดูลที่กำหนดเองที่แสดงแบบฟอร์ม เมื่อส่งแบบฟอร์มฉันต้องการเปลี่ยนเส้นทางผู้ใช้ไปยังหน้าอื่น ฉันจะทำสิ่งนั้นได้อย่างไร
24 forms 

4
ส่ง HTML ดิบไปที่ #markup
ฉันมีเนื้อหา HTML บางส่วนมันมาจากห้องสมุดภายนอกดังนั้นฉันจึงไม่สามารถเปลี่ยนแปลงได้มันมีแท็ก<span>และ<div>คุณลักษณะมากมายเช่น: <span style="color: #0000ff;">แต่เมื่อฉันใช้: $render = array( '#markup' => $myhtmlcontent, ); ในอาเรย์การเรนเดอร์ Drupal จะดึงคุณลักษณะและมันคง<span>ไม่มีสไตล์ ดังนั้นฉันจะหลีกเลี่ยง Drupal เปลี่ยนแปลงสิ่งที่ฉันส่งเป็นมาร์กอัปได้ซึ่งไม่ต้องการตัวกรองใด ๆ เพราะไลบรารี่ทำให้ปลอดภัยหรือในที่สุดก็ทำให้มีสไตล์
24 theming  8 


4
Drupal 6 จุดสิ้นสุดของชีวิต
มีวันที่จัดทำเป็นเอกสารหรือวันที่เชื่อสำหรับการสิ้นสุดชีวิตของ Drupal 6 หรือไม่? อีกนัยหนึ่งการพัฒนาอย่างเป็นทางการจะหยุดใน Drupal 6 เมื่อใด
23 6 

5
ทำซ้ำผ่านฟิลด์เนื้อหาค่าหลายค่าในเทมเพลต Twig
ฉันต้องควบคุมการแสดงผลของfield_admin_tagsฟิลด์ในnode.html.twigเทมเพลต งานนี้: {{ content.field_admin_tags }} - แสดงผลทุกอย่าง (ป้ายกำกับ + ค่าฟิลด์ทั้งหมด) {{ content.field_admin_tags.0 }} - แสดงเฉพาะค่าแรกในฟิลด์และไม่มีเลเบล ปัญหา: <ul><li>...</li></ul>ฉันมีการควบคุมมากกว่ามาร์กอัปรอบแท็กเช่นไม่มี ดังนั้นความคิดของฉันคือย้ำไปที่อาร์เรย์เรนเดอร์ แต่นั่นไม่ได้ผล: {% for tag in content.field_admin_tags %} {{ tag }} {% endfor %} ฉันได้รับ: Exception: Object of type Drupal\node\Entity\Node cannot be printed. ฉันคิดว่าฉันวนซ้ำคีย์ / ค่าของเรนเดอร์เรนเดอร์ vs รายการที่อยู่ในสนาม (ถ้าฉันพิมพ์ "X" ในแต่ละลูปฉันจะได้ 20 X …
23 theming  8 

1
จุดประสงค์ของฟังก์ชั่น entity_metadata_wrapper () คืออะไรและเหตุใดฉันจึงควรใช้
ฉันดูเหมือนจะพัฒนาโปรแกรมเสริมไปยังโมดูลจำนวนมากที่ใช้Entity APIในขณะนี้และentity_metadata_wrapper()ฟังก์ชั่นยังคงปรากฏขึ้นเรื่อย ๆ หน้าเอกสารบอกว่านี่เกี่ยวกับมัน ส่งคืน wrapper คุณสมบัติสำหรับข้อมูลที่กำหนด หากเอนทิตีถูกห่อคุณสามารถใช้ wrapper เพื่อดึง wrapper เพิ่มเติมสำหรับคุณสมบัติการให้สิทธิ์ การเพิกเฉยต่อการสะกดคำของ Freudian อย่างน่าพิศวงของคำว่า 'เอนทิตี' ในนั้นฉันไม่เข้าใจจริงๆว่าจุดประสงค์ของสิ่งห่อหุ้มเหล่านี้คืออะไร ฉันเข้าใจว่าฟังก์ชันนั้นคืนค่าEntityDrupalWrapperคลาสเป็นหลัก: wrapper ลดการใช้การเรียก getter และ setter ของคุณสมบัติเอนทิตี แต่สิ่งที่ฉันไม่เข้าใจคือวิธีที่ทำให้สิ่งต่าง ๆ ง่ายขึ้น ตัวอย่างเช่นเพื่ออัปเดตคุณสมบัติสถานะของโหนดฉันสามารถใช้รหัสนี้: $node = node_load($nid); $node->status = 1; node_save($node); มันค่อนข้างสะอาด ตามที่ฉันเข้าใจ (แต่อาจจะผิด) การใช้โค้ดที่เทียบเท่าentity_metadata_wrapper()จะมีความละเอียดมากกว่านั้น ฉันไม่แน่ใจว่าเป็นเพียงแค่การใช้คำว่า 'wrapper' ที่ทำให้ฉันสะดุดที่นี่ แต่ฉันได้ดูรหัสในโมดูล Entity ด้วยและฉันก็ไม่ได้เข้าใจอะไรมากขึ้น ใครบ้างสามารถอธิบายว่าประโยชน์ของการใช้ฟังก์ชั่นนี้คืออะไรและอาจให้ตัวอย่างรหัสง่ายๆสำหรับกรณีใช้งานทั่วไป
23 entities 

4
วิธีที่สะอาดในการสร้างเบราว์เซอร์ taxonomy แบบง่ายที่มีความลึกไม่ จำกัด
ฉันใช้เวลาหลายวันพยายามหาวิธีที่สะอาดในการทำสิ่งต่อไปนี้: แสดงรายการคำศัพท์ระดับสูงทั้งหมดในคำศัพท์พร้อมลิงก์ไปยังคำศัพท์สำหรับเด็ก เมื่อคลิกลิงก์จะถูกนำไปยังรายการลูกของคำเหล่านั้น โฆษณาไม่มีกำหนดจนกว่าจะถึงคำที่อยู่ในระดับต่ำสุดซึ่งรายการโหนดที่ติดแท็กด้วยคำนั้นจะปรากฏขึ้น ดูเหมือนว่ามันจะเป็นฟังก์ชั่นที่ใช้กันทั่วไป แต่ฉันไม่สามารถหาวิธีแก้ปัญหาใด ๆ ที่สามารถจัดการกับความลึกตามอำเภอใจได้ โซลูชันที่เหมาะสมที่สุดคือโซลูชันที่ใช้ Views 3, Contexts, EntityFieldQueries หรือสิ่งอื่น ๆ ที่ได้รับการสนับสนุนเป็นอย่างดีใน Drupal 7 ฉันสามารถทำสิ่งที่ฉันต้องการได้เกือบทั้งหมดด้วยการสร้างมุมมองแบบง่าย ๆ กับสามโหนด: ความสัมพันธ์ของคำศัพท์ (คำศัพท์, ผู้ปกครองของคำ, และผู้ปกครองของผู้ปกครองของคำ) และผู้ใช้เหล่านั้นสำหรับตัวกรองบริบทตามลำดับ ปัญหาเดียวของเรื่องนี้คือถ้ามีโหนดที่มี termpath ที่มีความลึกน้อยเกินไปมันจะถูกระบุว่าเป็น "uncategorized" และสร้างลิงค์ตาย แทนที่จะทำอย่างนั้นฉันต้องการให้ลิงก์ไปยังคำศัพท์ย่อยถัดไปที่มีอยู่

2
พิมพ์ $ Messages ในไฟล์ node.tpl.php
ใน Drupal 7 โดยค่าเริ่มต้น$messagesตัวแปรจะถูกพิมพ์ใน page.tpl.php มีวิธีพิมพ์$messagesในไฟล์ node.tpl.php หรือไม่ (เช่น $ node-mycontenttype.tpl.php) เพียงแค่วาง<?php print $messages; ?>หรือ <?php print render($page['messages']); ?>ไม่ทำงาน มีบทช่วยสอนที่นี่สำหรับการพิมพ์ข้อความ $ ในบล็อก แต่ฉันอยากจะใส่ไว้ในไฟล์ node.tpl.php ของฉัน
23 theming 

5
ค้นหาเฉพาะภาษาที่ใช้งานในปัจจุบัน
ฉันจะ จำกัด ผลลัพธ์จากการค้นหาเริ่มต้นใน Drupal 7 เพื่อนำเฉพาะโหนดที่อยู่ในภาษาปัจจุบันได้อย่างไร เว็บไซต์ของฉันมีตัวสลับภาษาสามภาษา ผู้ใช้เลือกภาษาที่ต้องการใช้เมื่อดูเว็บไซต์ หากเขาค้นหาบางอย่างหน้าผลลัพธ์จะนำผลลัพธ์มาจากภาษาอื่น วันนี้ฉันมีภาษาที่เปิดใช้งานเพียง 3 ภาษา แต่เราวางแผนที่จะขยายเป็น 6 หรือมากกว่า
23 7  search  i18n-l10n 

3
มันซ้ำซ้อนหรือไม่ที่จะใช้โมดูล“ เพิ่ม” หากใช้สารเคลือบเงา?
เราเรียกใช้อินสแตนซ์ Drupal ของเราหลังเซิร์ฟเวอร์ Varnish แต่เรากำลังมองหาวิธีอื่น ๆ / เพิ่มเติมเพื่อเร่งความเร็วเว็บไซต์ Boostเป็นโมดูลที่ตั้งชื่อบ่อยครั้งเพื่อจุดประสงค์นี้ ดูเหมือนว่าจะสร้างหน้าแบบคงที่และให้บริการเพื่อหลีกเลี่ยงเวลาการสร้างใหม่ แต่ - หากเราแคชด้วยสารเคลือบเงาอยู่แล้ว - สิ่งนี้จะให้ประโยชน์แก่เราหรือไม่?

3
ฉันจะเขียนการทดสอบอัตโนมัติได้อย่างไร
ฉันเห็นว่า Drupal 7 รวมถึงกรอบการทดสอบบางอย่าง (ฉันยังไม่ได้ลองเลยเนื่องจากเว็บไซต์ที่มีอยู่ของฉันยังอยู่ใน Drupal 6 และมีแนวโน้มว่าจะไม่ย้ายเมื่อใดก็ได้ในเร็ว ๆ นี้) คุณจะเขียนการทดสอบอัตโนมัติสำหรับไซต์ Drupal 6 มีโมดูลสำหรับสิ่งนี้ได้อย่างไร สามารถทดสอบได้จริงโดยอัตโนมัติแทนที่จะต้องทำการทดสอบด้วยตนเอง
23 testing 

5
รับแบบสอบถามจริงที่ดำเนินการโดยมุมมอง
ฉันต้องการค้นหาแบบสอบถาม SQL ที่ดำเนินการโดยแบบสอบถามบางอย่าง โมดูลชมสามารถแสดง SQL เมื่อกำหนดค่ามุมมอง แต่เห็นได้ชัดแบบสอบถามไม่แบบสอบถามที่เกิดขึ้นจริงที่ได้รับการเรียกใช้ในทุกกรณี ฉันทราบว่าโมดูล Devel สามารถแสดงคิวรีฐานข้อมูล แต่ไม่มีวิธีใดที่ Devel จะแสดงคิวรีที่แท้จริงยกเว้นการคลิกลิงก์ 'A' ที่เชื่อมโยงกับทุกแบบสอบถามและมีหลายร้อยรายการ ฉันจะค้นหาคำค้นหาจริงที่มุมมองดำเนินการได้อย่างไร มุมมองจะแสดงเป็นบล็อก
23 7  views  database 

1
เรียกใช้ชุดการกระทำโดยทางโปรแกรม (โมดูลกฎ)
ฉันต้องการใช้กฎ UI เพื่อกำหนดชุดการกระทำบางอย่าง แต่ต้องการดำเนินการกระทำเหล่านั้นโดยทางโปรแกรมจากโมดูลที่กำหนดเอง ฉันจะรันการกระทำด้วยรหัสและส่งผ่านอาร์กิวเมนต์ที่จำเป็น (แค่โหนดในกรณีนี้) ขอบคุณ!
23 rules 

4
มุมมองถูกแคชผ่านกลไกการแคชหลักหรือฉันควรตั้งค่าการแคชโดยตรงในแต่ละมุมมองหรือไม่?
ฉันเห็นว่ามีการตั้งค่าแคชในแต่ละมุมมองของฉัน ฉันต้องตั้งค่าเหล่านี้หรือไม่หรือกลไกการแคชหลักใน / admin / config / development / performance ทำสิ่งนี้โดยอัตโนมัติและ "การตั้งค่าพิเศษ" เหล่านี้ในมุมมองคือถ้าฉันต้องการแทนที่พฤติกรรมแคชเริ่มต้นของแกน drupal?
23 7  views  blocks  caching 

9
dpm () ไม่แสดงผลลัพธ์ใด ๆ บนหน้าจอ
ฉันมีปัญหาเช่นเดียวกับfile_scan_directory () ใช้เวลาประมาณ 10 วินาทีในการดำเนินการ ฉันลองทำตามdpm(func_get_args())คำแนะนำ แต่น่าเสียดายที่มันไม่ได้แสดงอะไรให้ฉันเลย ฉันล้างแคชทั้งหมดแล้วและทำงาน cron ฉันพลาดอะไรไป
23 7  debugging 

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.