Drupal

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


2
การใช้ Search API แบบเป็นทางการ
ปัญหา: จำเป็นต้องเรียกใช้การค้นหาของฉันเองโดยทางโปรแกรมด้วย Search API ผลการค้นหา google ทุกอันนั้นมุ่งเน้นไปที่การสอนผู้ที่ไม่ใช่นักพัฒนาวิธีการใช้โมดูลด้วย Views โดยไม่มีผลลัพธ์ในการทำอย่างที่ฉันต้องการ ข้อมูล: การใช้บริการฐานข้อมูลท้องถิ่นแทน Solr หรืออื่น ๆ มีข้อมูลที่ไม่ได้เก็บไว้ในฐานข้อมูลที่จะปรากฏพร้อมกับผลลัพธ์อื่น ๆ เนื้อหาจะถูกจัดกลุ่มในแท็บ "ประเภท" ไม่ได้ใช้ Views ด้วยเหตุผลต่างๆ เปิดใช้งาน Facets API แล้ว แต่ไม่มีเงื่อนงำว่าจะใช้งานอย่างไร ทำไม: เพราะฉันต้องการให้หน้าการค้นหาอยู่ที่ / site-search และไม่มี / node / keyword หลังจากอาร์กิวเมนต์ของหน้า จะถูกขอให้ปรับแต่งสิ่งนี้นอกเหนือจากขอบเขตของโมดูลอื่นที่อาจมีฟังก์ชั่นประเภทเดียวกัน และฉันต้องการเรียนรู้วิธีการทำเช่นนี้ แต่ไม่พบบทเรียนหรือความเข้าใจอื่น ๆ เกี่ยวกับวิธีการทำให้สำเร็จ ส่วนที่เหลือ: ฉันได้สร้างหน้าการค้นหาของฉันและฉันกำลังดำเนินการค้นหาด้วย: $term = $_SESSION['my-search']['term']; $server = search_api_server_load('database'); $index …
30 7  search 

2
drush และ jenkins ใช้ร่วมกันอย่างไรเพื่อบูรณาการอย่างต่อเนื่อง
ฉันได้ยินคำพูดฉวัดเฉวียน "บูรณาการอย่างต่อเนื่อง" "ดื่ม" และ "เจนกินส์" บ่อยครั้ง ดังนั้นจุดประกายความสนใจของฉัน drush และ jenkins ใช้ร่วมกันอย่างไรเพื่อบูรณาการอย่างต่อเนื่อง นอกจากนี้ทำไมคุณต้องการใช้ drush และ jenkins ด้วยกัน
30 drush  jenkins 

5
วิธีปฏิบัติที่ดีที่สุดสำหรับคีย์ภาษาสำหรับ“ und” ใน hook_form_alter
ฉันกำลังแก้ไขในฟอร์มในโมดูลที่กำหนดเองของฉัน รหัสดูเหมือนว่า: function my_module_form_alter(&$form, &$form_state, $form_id) { if ($form_id == "someID") { $form['field_charity_author']['und'][0]['value']['#value'] = arg(3); //$form['field_charity_author']['#type'] = 'hidden'; } } อย่างไรก็ตามฉันคิดว่าการเข้ารหัสยากundนั้นไม่ดี สิ่งที่ควรเป็นวิธีที่เหมาะสมในการปรับเปลี่ยนเขตข้อมูลฟอร์มอย่างถูกต้องในกรณีนี้
30 7  entities  hooks  i18n-l10n 


4
กลยุทธ์การล้างแคชหน่วยความจำสำหรับไซต์ขนาดใหญ่?
หนึ่งในเว็บไซต์ Drupal 7 ของฉันมีฟิลด์เป็นพันประเภทเนื้อหาหลากหลายมีการดูมากกว่า 25 ครั้งและประเภทโปรไฟล์นับร้อย (ในไม่ช้าจะนับเป็นพัน) ด้วยเหตุนี้ฉันใช้ core patch ที่ดีกว่าแคชข้อมูลฟิลด์เอนทิตี (http://drupal.org/node/1040790) และ -dev เวอร์ชันของ Views ที่ดีกว่าแคชวิวโดยแสดง (แทนที่จะมีขนาดใหญ่หนึ่งอัน ดูแถวแคชด้วยข้อมูลมุมมองทั้งหมดในนั้น) สิ่งนี้ช่วยให้หน้าเว็บส่วนใหญ่ในไซต์โหลดด้วย RAM ขนาด 20-30MB มากกว่า 160MB + (แทนที่จะดึง cache_ * แถวของตารางสำหรับเขตข้อมูลและมุมมองที่มีขนาด 10MB + โปรแกรมปรับปรุงช่วยรักษาข้อมูลแคช _ * ให้มีประสิทธิภาพมากขึ้น) สิ่งนี้นำเสนอปัญหาอย่างไรก็ตามการสร้างแคชใหม่นั้นใช้เวลานานมาก มักจะมากกว่าหนึ่งหรือสองนาที และในช่วงเวลานี้ Drupal จะไม่โหลดหน้าใด ๆ (เนื่องจากแคชที่พยายามอ่านไม่ได้สร้างขึ้นคำขออื่น ๆ จึงต้องรอ) ในระหว่างรอบการจราจรต่ำนี่ไม่ใช่เรื่องใหญ่ ผู้ใช้หนึ่งร้อยหรือมากกว่านั้นจะต้องรอหนึ่งนาทีก่อนที่จะโหลดหน้าเว็บ แต่ในระหว่างรอบการรับส่งข้อมูลสูงเซิร์ฟเวอร์ Apache เริ่มคลั่งไคล้โหลดซีพียู …
30 7  drush  caching  performance 

3
ทดสอบการพัฒนาขับเคลื่อน (TDD) ใน Drupal ได้อย่างไร
เครื่องมือใดที่ใช้ TDD ใน Drupal (โมดูล PHP, โมดูล Drupal และอื่น ๆ )? เวิร์กโฟลว์การมอบหมาย / ทดสอบ / ปรับใช้ของคุณมีลักษณะอย่างไร คุณใช้ Phing, PHPUnderControl, Hudson เพื่อจัดการเวิร์กโฟลว์นี้หรือไม่? การทดสอบหน่วยในทางใดทำให้รหัสของคุณน่าเชื่อถือมากขึ้น? คุณต้องการเซิร์ฟเวอร์ทดสอบยูนิตแยกต่างหากราคาแพงแบบสแตนด์อะโลนหรือคุณสามารถทำได้จากแล็ปท็อปหรือไม่? ฉันรู้ว่า Robert เขียนบทความทางเทคนิคที่ยอดเยี่ยมที่นี่เกี่ยวกับการทดสอบหน่วยใน Drupal ด้วย SimpleTest ฉันสนใจที่จะครอบคลุมส่วนงานและการกำหนดค่ามากขึ้น ขณะนี้ฉันมีเครื่องพัฒนาเซิร์ฟเวอร์และเซิร์ฟเวอร์ที่ใช้งานจริง ทั้งไซต์การผลิตและขั้นตอนทำงานบน 300MB RAM / 300MHz CPU Dreamhost VPS
30 testing 

2
กำจัดการปิดกั้นการแสดงผล JavaScript และ CSS ในเนื้อหาครึ่งหน้าบน
ฉันกำลังสร้างเว็บไซต์ Drupal 7 นี่คือบางส่วนของโมดูลที่ฉันใช้: Adaptivetheme (ธีม), มุมมองและบานหน้าต่างเนื้อหา, พาเนล, แผงเล็ก ๆ , แผงทุกที่, ตัวจัดการหน้า, Superfish สำหรับเมนู, เพิ่ม, เลือก (เลื่อนลง) สำหรับการปรับปรุงประสิทธิภาพเว็บไซต์ของฉันและการจัดการที่มี CSS และไฟล์ JS ฉันใช้โมดูล Advagg เมื่อเรียกใช้การทดสอบ Pagespeed ของ Googleฉันได้รับข้อผิดพลาดต่อไปนี้เป็น "ควรแก้ไข": กำจัด JavaScript และ CSS ที่ปิดกั้นการเรนเดอร์ใน เนื้อหาครึ่งหน้าบนหน้าเว็บของคุณมี 6 สคริปต์การบล็อกทรัพยากรและ 8 การบล็อคทรัพยากร CSS สิ่งนี้ทำให้เกิดความล่าช้าในการแสดงผลหน้าเว็บของคุณ ไม่สามารถแสดงเนื้อหาข้างต้นในหน้าของคุณได้โดยไม่ต้องรอให้ทรัพยากรต่อไปนี้โหลด พยายามเลื่อนหรือโหลดทรัพยากรการบล็อกแบบอะซิงโครนัสหรืออินไลน์ส่วนที่สำคัญของทรัพยากรเหล่านั้นโดยตรงใน HTML นี่คือข้อมูลที่ Google ใช้: ลบ JavaScript บล็อกการแสดงผล …

7
ฉันจะให้ผู้ใช้ยกเลิกการเผยแพร่และเผยแพร่เนื้อหาของตนเองได้อย่างไร
ฉันต้องการให้ผู้ใช้ยกเลิกการเผยแพร่และเผยแพร่เนื้อหาของตนเอง โดยค่าเริ่มต้นคุณต้องให้สิทธิ์ "การจัดการโหนด" เพื่อให้ผู้ใช้สามารถยกเลิกการเผยแพร่หรือเผยแพร่เนื้อหา นั่นคือวิธีการที่กว้างแม้ว่า ฉันต้องการให้ผู้ใช้ยกเลิกการเผยแพร่หรือเผยแพร่โหนดถ้าหากพวกเขาสร้างมันขึ้นมา นี่หมายความว่าพวกเขาควรจะสามารถดูโหนดที่ไม่ถูกเผยแพร่ได้หากพวกเขาสร้างมันขึ้นมา
30 users  nodes 

6
วิธีรับ URL ที่ถูกต้องของฟิลด์ลิงค์จากภายในเทมเพลตทวิก
ฉันมีฟิลด์ลิงค์ชื่อfield_my_link(ชื่อเครื่อง) ภายในเทมเพลต Twig ฉันจะได้รับค่า URL ของลิงค์ด้วย: {{ node.field_my_link.uri }} หากภายใน URL ของลิงก์มีURL ภายนอกเช่นhttp://example.comทำงานได้ดี แต่หากภายใน URL ของลิงก์มีการจัดเก็บURL ภายในเช่น"/node/11"ฉันได้รับค่าเช่นนี้: "internal:/node/11" ด้วยinternal:คำนำหน้า "" ฉันจะรับURL ที่ถูกต้องได้อย่างไร ตัวอย่างเช่นหาก URL ของลิงก์คือ " http://example.com" ฉันต้องการ " http://example.com" (ใช้งานได้แล้ว) หาก URL ของลิงก์คือ " /node/11" ฉันต้องการ URL สัมพัทธ์ " /node/11" หาก URL ของลิงก์คือ " <front>" ฉันต้องการ URL " /" …
30 theming  8  uri  navigation 

2
การตรวจสอบที่กำหนดเองสำหรับแบบฟอร์ม?
ฉันต้องการเพิ่มการตรวจสอบความถูกต้องที่กำหนดเองให้กับฟอร์มช่วยบอกว่าเพิ่มแบบฟอร์มบทความ ฉันคาดหวังว่าhook_FORM_ID_validate()จะจัดการกับสิ่งนี้ แต่ไม่พบสิ่งใดที่เกี่ยวข้องในเอกสาร API วิธีเพิ่มการตรวจสอบความถูกต้องที่กำหนดเองในแบบฟอร์มคืออะไร
30 7  forms 

3
มีฟังก์ชั่นเพื่อรับวัตถุผู้ใช้ปัจจุบันที่หลีกเลี่ยงการเข้าถึงตัวแปรทั่วโลกหรือไม่?
ฉันเคยไปกับสิ่งนี้มาglobal $user;ตลอด $userแต่ฉันดูเหมือนจะจำได้ว่าเห็นบางสิ่งบางอย่างในโมดูลที่มีส่วนที่ส่งคืนวัตถุผู้ใช้ในปัจจุบันโดยไม่ต้องใช้ทั่วโลก ฟังก์ชั่นดังกล่าวมีอยู่ในแกนกลาง Drupal 7 หรือใช้ตัวแปรทั่วโลกซึ่งเป็นวิธีที่แนะนำโดยไม่ได้ตั้งใจเพื่อรับวัตถุผู้ใช้ปัจจุบันหรือไม่?
29 users 

2
วิธีสร้าง test_endpoint
ฉันใหม่สำหรับ drupal และฉันใช้โมดูลบริการสำหรับการใช้โมดูล REST และ RESTWS ฉันใช้ RESTWS และสามารถรับเนื้อหาของโหนดได้โดย http: //base_url/node/1.xmlและตอนนี้ฉันต้องเพิ่มโหนดและผู้ใช้จากแอปพลิเคชัน PHP ภายนอกของฉันไปยัง drupal ฉัน googled และฉันพบได้ที่นี่ที่เราจำเป็นต้องใช้http: // base_drupal_url / drupal7 / test_endpoint / ผู้ใช้ ฉันพยายามสร้างบริการจาก Drupal 7 แต่ฉันไม่รู้ว่าฉันควรให้อะไรกับชื่อจุดปลายชื่อและจุดปลายเส้นทางและฉันคิดว่าฉันต้องให้เส้นทางจุดปลายเดียวกันใน curl ความช่วยเหลือใด ๆ เกี่ยวกับวิธีการตรวจสอบว่าเซิร์ฟเวอร์ส่วนที่เหลือได้รับการติดตั้งและวิธีการสร้างเส้นทางจุดสิ้นสุดจะเป็นประโยชน์อย่างมากหรือไม่ ฉันใช้ Drupal 7 กับ services services services-7.x-3.0-rc3
29 7  services 

11
ฉันจะตั้งชื่อหน้าได้อย่างไร
ฉันรู้ว่าฉันสามารถเปลี่ยนชื่อหน้าด้วยdrupal_set_title(t('Amy page title'))แต่เมื่อฉันลองใน Drupal 8 ฉันได้รับไม่มีข้อผิดพลาดของฟังก์ชั่นดังกล่าว ฉันจะเปลี่ยนชื่อหน้าใน Drupal 8 ได้อย่างไร
29 8 

1
จะตรวจสอบว่ามีฟิลด์ใดอยู่ในเอนทิตีได้อย่างไร
ในโหนดเอนทิตีฉันต้องการตรวจสอบว่าabcมีฟิลด์ '' อยู่หรือไม่ หากมีอยู่ฉันจะได้รับค่าด้วย$value->get('abc'). แต่ประเภทเนื้อหาที่ไม่มีฟิลด์นี้ให้ข้อผิดพลาด: เว็บไซต์พบข้อผิดพลาดที่ไม่คาดคิด โปรดลองอีกครั้งในภายหลัง. จะตรวจสอบว่ามีฟิลด์ใดอยู่ในเอนทิตีได้อย่างไร
28 8  entities 

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