Drupal

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


5
วิธีการ จำกัด การเข้าถึงเว็บไซต์ในระหว่างการพัฒนา?
ฉันกำลังสร้างเว็บไซต์ใหม่ที่ใช้ Drupal 7 การพัฒนาจะอยู่บนเซิร์ฟเวอร์ที่สาธารณชนสามารถเข้าถึงได้ ฉันทำงานในสภาพแวดล้อมที่มีหลายไซต์ ฉันต้องการปิดกั้นการเข้าถึงเว็บไซต์ให้กับทุกคน & ทุกสิ่งยกเว้นผู้ใช้ที่ได้รับอนุญาต รวมถึงการเข้าถึงชื่อเว็บไซต์ธีม ฯลฯ ... ฉันใช้Secure Siteสำหรับงานที่คล้ายกันมาก่อน มันทำการตรวจสอบความถูกต้องระดับ http และส่งคืน 403 เมื่อการตรวจสอบล้มเหลว ไม่มีรุ่น D7 อะไรจะเป็นวิธีที่ง่ายที่สุดในการทำเช่นนี้?
17 7  users 

1
ฉันจะแทนที่ page.tpl.php เริ่มต้นได้อย่างไร
ฉันมีหนึ่งหน้าในD7เว็บไซต์ของฉันซึ่งมีความเบี่ยงเบนอย่างมีนัยสำคัญจากหน้าอื่น ๆ ของฉัน ในหน้านี้ฉันจะแสดงเฉพาะภูมิภาคจำนวน จำกัด และในเลย์เอาต์ที่แตกต่างกัน วิธีที่ดีที่สุดในการแทนที่ค่าเริ่มต้นpage.tpl.phpคืออะไร ฉันสามารถสร้างบางอย่างเช่น " mycustom-page.tpl.php" ที่ได้รับการเรียกเท่านั้นใน URL เฉพาะภายในเว็บไซต์ของฉันได้หรือไม่?
17 7  theming 

2
ฉันจะตรวจพบได้เมื่อมีการเปลี่ยนโหนดจาก 'เผยแพร่' เป็น 'ไม่เผยแพร่'
ในhook_node_update ()ฉันสามารถบอก 'สถานะ' ของโหนดได้อย่างง่ายดาย (ไม่ว่าจะเผยแพร่หรือไม่ก็ตาม) หลังจากอัปเดตแล้ว อย่างไรก็ตามมีวิธีที่ง่ายในการตรวจสอบเพื่อดูว่าโหนดที่อัพเดตถูกเผยแพร่ แต่ตอนนี้ไม่ใช่หรือไม่? (หรือในทางกลับกัน)? ฉันคิดว่ากฎอาจมีเงื่อนไขบางอย่างสำหรับ 'ค่าโหนดเปลี่ยนไป' หรือบางอย่างตามบรรทัดเหล่านั้น แต่ฉันต้องการทำสิ่งนี้โดยทางโปรแกรม ฉันพบปัญหานี้โดย fago (ผู้พัฒนากฎ) บน drupal.org ที่ดูเหมือนจะจัดการกับสิ่งนี้ใน Drupal 7 แต่คำอธิบายที่ดีจะได้รับการชื่นชม
17 7  nodes  entities  hooks 

3
การลบบล็อกเนื้อหาหลักในหน้าแรก
ฉันใหม่สำหรับ Drupal 7 และฉันต้องการแทนที่ค่าเริ่มต้นของ frontpage main content blockด้วยบล็อกที่เทียบเท่าที่สร้างจาก Views (เพิ่มการควบคุมบล็อกให้มากขึ้น) ฉันได้สร้างบล็อกหน้าแรกใหม่ใน Views แล้วเพิ่มลงในส่วนเนื้อหาอย่างไรก็ตามตอนนี้โฮมเพจจะแสดงทั้งบล็อกเดิมและบล็อกมุมมองใหม่ ความพยายามที่จะลบmain content blockโดยการกำหนดค่าให้ไม่แสดงบน<front>ไม่ทำงานและในตอนนี้วิธีแก้ปัญหาเดียวที่ฉันพบคือ CSS ต่อไปนี้: .front #block-system-main { display:none; } ฉันชอบโซลูชันแฮ็คที่น้อยกว่า มีใครแนะนำบ้างไหม
17 7  views  blocks 

4
ฉันจะเลือกโมดูลที่จะใช้เมื่อมีหลายตัวเลือกสำหรับฟังก์ชันการทำงานเดียวกันได้อย่างไร
ไม่ใช่เรื่องแปลกที่จะหาโมดูลหลาย ๆ ตัวที่มีฟังก์ชั่นการใช้งานเหมือนกัน ตัวอย่างเช่นมีโมดูลควบคุม SPAM จำนวนมากที่นำเสนอฟังก์ชันการทำงานที่คล้ายกันมาก (เช่นSpamicideและHidden CAPTCHA ) และมีโมดูลอนุกรมวิธานจำนวนมากที่ทำสิ่งเดียวกัน ดังนั้นเมื่อมีหลายโมดูลที่ตรงตามความต้องการของฉันฉันจะเลือกโมดูลที่จะใช้อย่างไร?
17 7 

5
หลังจากลบโหนดทั้งหมดฉันจะรีเซ็ต ID โหนดให้เริ่มต้นจาก 1 อีกครั้งได้อย่างไร
ฉันสร้างเนื้อหาจำลองเพื่อการทดสอบแล้วลบออกทั้งหมด เนื่องจาก nid เป็นการเพิ่มอัตโนมัติโหนดที่สร้างขึ้นใหม่จะมีหมายเลขของ nid ที่สร้างขึ้นล่าสุด +1 ฉันจะทำให้ nid เริ่มต้นจาก 1 อีกครั้งได้อย่างไร
17 7 

2
สิ่งที่ทุกคนมีส่วนร่วมในเวลาดำเนินการหน้า drupal?
ฉันมีเว็บไซต์ที่ฉันกำลังตรวจสอบว่ามีปัญหาด้านประสิทธิภาพการทำงานที่สำคัญโดยใช้ memcache ฉันสามารถนำจำนวนการสืบค้นลงทั้งในจำนวนและเวลาการยกเว้นทั้งหมด (จาก 3 วินาทีถึง 230 มิลลิวินาที) แต่เวลาในการดำเนินการหน้าจะทำให้ฉันหมดไป ดูค่าที่ outputted โดย devel) ความเข้าใจของฉันคือเวลาในการประมวลผลหน้า = เวลาที่ใช้ในการรัน php ดังนั้นฉันจึงติดตั้ง APC และฉันสามารถเห็น php opcode แคชและสถิติแสดงการเข้าชมในแผงควบคุม APC (apc.php จัดส่งด้วย APC) เวลาในการเรียกใช้หน้าเว็บของฉันไม่ลดลง ดังนั้นฉันคิดว่าคำถามของฉันเป็นสองเท่า: สิ่งที่ทุกคนมีส่วนร่วมในเวลาดำเนินการหน้า มันใช้เวลาในการรัน php หรือยัง? ฉันควรใช้วิธีการใดเพื่อลดเวลาในการเรียกใช้เพจ ฉันลองใช้ APC แต่ไม่ได้ช่วยอะไรมาก จำนวน PS ของโมดูลที่ใช้ในไซต์นี้มีขนาดใหญ่มาก (168) แต่ตอนนี้ฉันไม่ได้อยู่ในตำแหน่งที่จะให้คำแนะนำได้มันเหมือนไฟในสถานการณ์หลุม แก้ไข:ผลลัพธ์ของการรัน xhprof ในอินสแตนซ์ในท้องถิ่น (แนะนำโดย mikeytown) ดูเหมือนว่าจะบ้าฉันคิดว่าผลลัพธ์ในภายหลังนั้นเกิดจากการฟาดฟัน? diff รันสำหรับ …

9
ฉันจะสร้างมุมมองของชายด์โหนดตามความสัมพันธ์เมนูได้อย่างไร?
สมมติว่าคุณมีหน้าต่อไปนี้ในแผนผังเมนู: โครงการ โครงการหนึ่ง โครงการสอง โครงการที่สาม ฉันกำลังมองหาวิธีสร้างมุมมองที่จะฝังอยู่ในหน้าโครงการ (หลัก) ที่จะแสดงรูปภาพชื่อและข้อความ (สรุป) จากหน้าย่อย ความสัมพันธ์ระหว่างพาเรนต์และลูกถูกกำหนดในแผนผังเมนู ฉันรู้ว่าฉันสามารถใช้การอ้างอิงโหนด แต่นั่นหมายความว่าทุกครั้งที่มีคนสร้างเพจพวกเขาจะต้องกำหนดความสัมพันธ์ของเมนูและจากนั้นความสัมพันธ์การอ้างอิงโหนด นอกจากนี้ฉันรู้ว่าฉันสามารถสร้างประเภทเนื้อหาอื่นได้ แต่ฉันคิดว่ามันเกินความจริงเนื่องจากหน้าเนื้อหาทั้งหมดมีลักษณะเหมือนกัน
17 7  routes  views  nodes 

5
ฉันจะเพิ่มเงื่อนไขการเข้าถึงรายการเมนูได้อย่างไร
ฉันจะเพิ่มเงื่อนไขใหม่ที่ด้านบนของเงื่อนไขที่มีอยู่ที่กำหนดว่ารายการเมนูสามารถมองเห็นได้อย่างไร เงื่อนไขเหล่านี้ไม่ควร จำกัด เฉพาะการตั้งค่าการอนุญาต ตัวอย่างกรณีการใช้งาน (ไม่จำเป็นต้องเป็นเหตุผลสำหรับคำถามนี้): สมมติว่าฉันมีประเภทเนื้อหาที่ผู้ใช้จะได้รับอนุญาตให้สร้างเพียงหนึ่งโหนดเท่านั้น ฉันมีรายการเมนูสำหรับเพิ่มเนื้อหาประเภทนั้น แต่ถ้าผู้ใช้สร้างโหนดประเภทเนื้อหานั้นแล้วฉันต้องการซ่อนรายการเมนู ความคิดแรกของฉันคือการเรียกใช้แบบสอบถามเพื่อตรวจสอบการมีอยู่ของโหนดที่สร้างขึ้นโดยผู้ใช้ปัจจุบันที่เป็นประเภทเนื้อหาเฉพาะ หากมีอยู่ให้ซ่อนรายการเมนู ฉันคิดว่าการใช้งานประเภทนี้ควรเข้ามาhook_menu_alter()และเพิ่มตรรกะที่ต้องการที่นั่น แต่ฉันไม่แน่ใจว่าจะทำอย่างไรโดยไม่ข้ามการตรวจสอบที่มีอยู่เช่นตรวจสอบว่าผู้ใช้มีสิทธิ์ในการสร้างเนื้อหาประเภทนั้นหรือไม่ ฉันจะต้องรวมตรรกะนั้นภายในเงื่อนไขของฉันเองหรือไม่? หรือฉันสามารถเพิ่มตรรกะการเข้าถึงที่มีอยู่โดยไม่เขียนทับมันได้หรือไม่ แก้ไข: บางคนดูเหมือนจะเน้นที่การตอบ "ฉันจะ จำกัด ผู้ใช้ในการสร้างหนึ่งโหนดของประเภทเนื้อหา" ได้อย่างไร นั่นไม่ใช่คำถามที่นี่ คำถามคือฉันจะเพิ่มเงื่อนไขการเข้าถึงแบบกำหนดเองให้กับรายการเมนูได้อย่างไร
17 routes 


3
“ ควรหลีกเลี่ยงการโทร Drupal ในชั้นเรียน, ใช้การฉีดพึ่งพา”
ในโมดูลของฉันใช้โค้ดด้านล่างเพื่อรับชื่อแทน url ของ url ที่กำหนด: $alias = \Drupal::service('path.alias_manager')->getPathByAlias($_POST['url']); แต่ฉันใช้งาน Automated Review ( http://pareview.sh/ ) ในโมดูลของฉันฉันได้รับคำเตือนด้านล่าง: 16 | คำเตือน | ควรหลีกเลี่ยงการโทร Drupal ในชั้นเรียนใช้การฉีดพึ่งพา ฉันจะอัปเดตโค้ดด้านบนโดยใช้การฉีดพึ่งพาได้อย่างไร รหัสคลาสทั้งหมดของฉันได้รับด้านล่าง <?php namespace Drupal\my_module\Controller; use Drupal\Core\Controller\ControllerBase; /** * MyModule Class defines ajax callback function. */ class MyModule extends ControllerBase { /** * Callback function for ajax request. …

1
อะไรคือความแตกต่างระหว่าง“ ภาษา: ไม่ได้ระบุ” และ“ ภาษา: ไม่สามารถใช้งานได้”?
อะไรคือความแตกต่างระหว่างLanguage: Not specifiedและLanguage: Not applicableใน Drupal 8 ในบริบทของการพูดได้หลายภาษา? ไม่มีความแตกต่างดังกล่าวใน Drupal 7 (และ 6 IIRC) เป็นและมันดูเหมือนว่าฉันซ้ำซ้อนบิตในการเปรียบเทียบกับ Drupal 7 วิธีการเทียบLanguage: Natural Language: nameฉันยังไม่พบเอกสารใด ๆ เกี่ยวกับเรื่องนี้ในการค้นหาโดย Google เกี่ยวกับความแตกต่างและคิดว่ามันจะดีถ้าเราจะมีคำอธิบายที่นี่
17 8  i18n-l10n 

4
ฉันจะติดตั้งและเปิดใช้งานโมดูลโดยทางโปรแกรมได้อย่างไร
มีทรัพยากรมากมายสำหรับการทำใน Drupal 6 แต่ฉันไม่พบวิธีแก้ปัญหาสำหรับ Drupal 7 ฉันจะติดตั้งและเปิดใช้งานโมดูลที่เลือกได้อย่างไร
17 7  installing 

3
ฉันจะค้นหา ID บทบาทจากชื่อบทบาทได้อย่างไร
เมื่อเข้าสู่ระบบฉันต้องการตรวจสอบแหล่งข้อมูลบุคคลที่สาม (ตารางในฐานข้อมูล) สำหรับผู้ใช้และหากพบว่าฉันต้องการเพิ่มบทบาทให้กับผู้ใช้นั้น ฉันไม่ต้องการที่จะคาดเดาการกำจัดของบทบาทฉันต้องการที่จะได้รับจากชื่อบทบาท
17 7  users 

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