Drupal

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

1
การใช้ Webform เป็นแอปพลิเคชันสำหรับบทบาทการเป็นสมาชิก / ผู้ใช้
ฉันต้องการใช้สิ่งต่อไปนี้ในเว็บไซต์ Drupal: ผู้เยี่ยมชมไซต์แบบไม่ระบุชื่อ (Joe) ส่งแอปพลิเคชันสมาชิกด้วยฟิลด์ที่กำหนดเองต่างๆ ผู้ดูแลระบบ (Jane) ตรวจสอบใบสมัครสมาชิก Jane อนุมัติใบสมัครของ Joe และสร้างบัญชีผู้ใช้ใหม่ Joe ได้รับแจ้งการอนุมัติและข้อมูลการเข้าสู่ระบบ การแก้ปัญหาที่เป็นไปได้: เว็บฟอร์ม ( แต่วิธีการที่สามารถข้อมูลจากเว็บฟอร์มที่สามารถถ่ายโอนได้อย่างง่ายดายในบัญชีผู้ใช้?) Profile2 ที่มีการอนุมัติผู้ดูแลระบบจำเป็น (ปัญหาของปัญหานี้คือเราไม่ต้องการให้ผู้ใช้รู้สึกเหมือนพวกเขากำลังสร้างบัญชีบนเว็บไซต์ แต่สมัครเป็นสมาชิก) สร้างประเภทเนื้อหาสมาชิกที่ผู้ใช้นิรนามสามารถกรอก (?) ฉันรู้สึกว่าฉันมองเห็นบางสิ่งที่ชัดเจน ฉันไม่สามารถใช้การลงทะเบียนผู้ใช้หลักกับฟิลด์เพิ่มเติมเนื่องจากมีสมาชิก 3 ประเภท และผู้ใช้ควรสามารถเปลี่ยนจากการเป็นสมาชิก 1 ไปเป็นอีกคนหนึ่ง (เมื่อได้รับอนุมัติ)
12 webforms  users 


5
ประเภทฟิลด์ตัวเลขใน Form API
ฉันกำลังพยายามเพิ่มประเภทฟิลด์ "หมายเลข" ลงในแบบฟอร์มโดยใช้ FAPI: $form['phone_number']['areacode'] = array( '#type' => 'textfield', '#title' => '---', '#width' => '30%', '#align' => 'center', '#required' => true, '#maxlength' => 3 ); ฉันเปลี่ยน TYPE เป็น "number" และฟิลด์ไม่ได้ถูกสร้างเลย โมดูลตัวเลขถูกเปิดใช้งาน ฉันใช้ฟังก์ชั่นชุดรูปแบบต่อไปนี้: MYTHEME_form_element MYTHEME_textfield MYTHEME_container สิ่งใดที่อยู่เบื้องหลังฟิลด์นี้ไม่ปรากฏขึ้นเมื่อฉันใช้#type = numberหรือ#type = number_integerฯลฯ สิ่งนี้อาจเกี่ยวข้องกับมัน: การสร้างเขตข้อมูล Number (จำนวนเต็มและทศนิยม) ด้วยตนเองในรหัสสำหรับฟอร์มที่กำหนดเอง อย่างไรก็ตามฉันต้องการให้แสดงเป็น "number" ใน HTML …
12 forms 

7
Drush ไม่ยอมรับการอัพเดท core ใหม่
ฉันกำลังพยายามอัปเดต drupal 7.31 คอร์เป็น 7.32 ผ่าน Drush ฉันรันคำสั่งต่อไปนี้ $ drush pm-release Project Release Date Status drupal 7.x-dev 2014-Oct-15 Development drupal 7.32 2014-Oct-15 Supported, Recommended, Security drupal 7.31 2014-Aug-06 Security หลังจากคำสั่งข้างต้นฉันวิ่งต่อไปนี้: $ drush pm-update drupal Update information last refreshed: Thu, 10/16/2014 - 07:33 Name Installed Version Proposed version Message Drupal 7.31 …
12 drush  updating 

3
การโยกย้ายเนื้อหาจะเป็นไปได้หรือไม่
ฉันมีเว็บไซต์ Drupal 7 ที่มีเนื้อหา 40 ประเภท เมื่อ Drupal 8 จะเปิดตัวมากกว่าที่ฉันต้องการย้ายเนื้อหาประเภทเหล่านี้ สิ่งนี้จะเป็นไปได้หรือฉันจะต้องสร้างเนื้อหาประเภทนี้ตั้งแต่ต้น?
12 8  migration  upgrading 

3
จะทำการทดสอบ PHPUnit ได้อย่างไร?
Drupal 8 กำลังเสริมกรอบการทดสอบตามSimpletestด้วยPHPUnitและ Simpletest สามารถลบออกได้ใน Drupal 9 ฉันยังไม่อัปเกรดเป็น Drupal 8 แต่ฉันสงสัยว่าฉันจะเขียนการทดสอบที่มีอยู่ใน PHPUnit (เพื่อติดตามแนวโน้ม) สำหรับ Drupal 7 ได้อย่างไรแทนที่จะเป็น Simpletest? มีวิธีการหรือโมดูลสำหรับการรวม PHPUnit กับ Drupal 7 หรือไม่? มีไม่กี่phpunitหรือdrunitแต่พวกมันไม่ใช่ Drupal 7
12 7  testing 

6
คำสั่ง 'drush cc all` ใช้เวลานานเกินไปฉันต้องทำอย่างไร
บนเว็บไซต์ของฉันdrush cc allใช้เวลามากกว่า 4 นาทีในการทำงาน db ไซต์เป็นกี่ GB อย่างไรก็ตามฉันไม่เห็นเหตุผลที่ชัดเจนว่าทำไมใช้เวลานานเกินไป ฉันจะทำอย่างไรเพื่อค้นหาคอขวด
12 7  drush  caching 

4
ทำไมฉันไม่สามารถเพิ่มนามสกุลไฟล์อื่นที่อนุญาตลงในฟิลด์รูปภาพ Drupal 7 ได้
ฉันได้เพิ่มนามสกุลไฟล์ SVG สำหรับการอัปโหลดภาพผ่านadmin/structure/types/manage/image/fields/gallery_imageตามที่คุณเห็นด้านล่าง: แต่เมื่อฉันไปอัปโหลดภาพฉันยังคงไม่ได้รับอนุญาตให้อัปโหลด SVG ฉันกด "บันทึก" ในหน้าผู้ดูแลระบบและฉันล้างแคชและฉันเห็นการตั้งค่าตามที่ฉันต้องการในฐานข้อมูลเมื่อฉันตรวจสอบfield_config_instanceตาราง ต้องมีตารางหรือแคชอื่นที่ไม่ได้อัปเดต ความคิดใด ๆ

2
วิธีการสนับสนุนโมดูลที่แปลงแล้ว?
ฉันเพิ่งแปลงโมดูลที่สนับสนุนของ Drupal 6 เป็น Drupal 7 สำหรับโครงการลูกค้าของฉัน ฉันต้องการมีส่วนร่วมโมดูลนี้แปลงให้กับชุมชน จะอัพโหลดสิ่งนี้ในหน้าโครงการที่มีอยู่ได้อย่างไร ฉันต้องสร้างแพตช์หรือมันจะเป็นโครงการ sandbox หรือไม่?

1
การใช้ MongoDB สำหรับฟังก์ชัน จำกัด พื้นที่เก็บข้อมูลหรือไม่
ฉันกำลังพิจารณาที่จะใช้MongoDBบนเว็บไซต์สำหรับการจัดเก็บข้อมูลไม่ใช่แค่ย้ายแคชเซสชันจำนวนมาก ฯลฯ ออกจากฐานข้อมูล SQL ของฉัน การจัดเก็บข้อมูลภาคสนาม APIควรทำอย่างราบรื่นนี้สมมติว่าผมใช้ API Drupal สำหรับการเข้าถึงข้อมูล แต่นี่เป็นการ จำกัด เว็บไซต์ของฉันไม่ว่าในทางใด โดยเฉพาะอย่างยิ่งฉันสงสัยว่าViewsจะได้รับผลกระทบอย่างไร
12 views  database 

3
การกรองมุมมองโดยช่องทำเครื่องหมาย
เว็บไซต์ของฉันมีประเภทโหนดที่เรียกว่า "ทรัพยากร" โหนดชนิดนี้มีฟิลด์ชื่อ "สอบทานแล้ว"; ช่องนี้เป็นช่องทำเครื่องหมายเปิดปิดเดียว: ฉันสร้างมุมมองที่แสดงรายการโหนดทั้งหมดของ "ทรัพยากร" ของโหนด ฉันต้องการกรองมุมมองนั้นจึงจะแสดงเฉพาะโหนดที่มีการทำเครื่องหมายในช่อง "ตรวจสอบแล้ว" อย่างไรก็ตามเมื่อฉันพยายามเพิ่มเขตข้อมูลนั้นลงในมุมมองของฉันฉันจะแสดงสิ่งต่อไปนี้: ฉันคาดว่ากล่องตัวเลือก "ตัวเลือก" จะเป็นช่องทำเครื่องหมายที่ฉันสามารถทำเครื่องหมายหรือปล่อยว่างไว้ได้ ฉันได้รับกล่องที่มี "เลือกทั้งหมด" แทน ไม่ว่าฉันจะเลือกสิ่งนี้หรือไม่ฉันจะแสดงข้อความแจ้งข้อผิดพลาดว่ามี "ไม่พบค่าที่ถูกต้องในตัวกรอง: เนื้อหา: ตรวจสอบแล้ว": ฉันได้ลอง "เปิดเผยเคล็ดลับการแสดงผลหลัก" ที่http://technology.blue-bag.com/top-tip-drupal-views-no-valid-values-found-filterแต่ไม่ได้ผล: ไม่มีตัวกรอง "ไม่ทราบ" ในจอแสดงผลหลักดังนั้นจึงไม่มีสิ่งใดที่จะแก้ไขได้ มีความคิดเกี่ยวกับวิธีที่ฉันสามารถบรรลุผลที่ฉันกำลังมองหา? และจัดการกับ UI แปลก ๆ กับกล่องเลือกมากกว่าช่องทำอะไร คงจะดีถ้ารู้ว่ามีเหตุผลบางอย่างอยู่ ถ้าไม่ฉันจะโพสต์ปัญหาไปยังคิวปัญหา drupal.org ที่เหมาะสม
12 7  views 

5
ฉันจะแทรกเมนู taxonomy เป็นเมนูย่อยของรายการเมนูมาตรฐานได้อย่างไร
ฉันมีเมนูหลักที่มีโครงสร้างระดับบนสุดคล้ายกับต่อไปนี้: Home - Categories - Something Else - ... - Contact ลิงก์ระดับบนสุดแต่ละลิงค์นั้นไปยังหน้าโหนดที่เหมาะสม ฉันมีคำศัพท์สำหรับหมวดหมู่ (หลายระดับ) และฉันต้องการคำศัพท์อนุกรมวิธานเหล่านั้นในเมนูย่อยภายใต้รายการ "หมวดหมู่" ฉันต้องการหลีกเลี่ยงการเข้ารหัสรายการลงในเมนูหลักเนื่องจากเมนูย่อยควรเติบโต / ย่อขนาดตามคำศัพท์ ในอดีตที่ผ่านมาฉันได้เขียนโค้ดที่ซับซ้อนเกินความจำเป็นเพื่อให้บรรลุสิ่งนี้ซึ่งเชื่อมโยงกับการดำเนินงานด้านอนุกรมวิธานและจัดการรายการย่อยของเมนูเฉพาะตามนั้น (คล้ายกับสิ่งที่Taxonomyทำ แต่ไม่มีเมนูที่แตกต่างกัน คำศัพท์). ในขณะที่วิธีการนี้ใช้งานได้มันไม่เหมาะและแน่นอนว่าไม่ใช่เรื่องทั่วไป ฉันไม่สามารถยกโค้ดนั้นจากโปรเจ็กต์เก่าไปยังโค้ดใหม่ได้มันต้องมีการปรับแต่งตามความเหมาะสม ฉันไม่สามารถรู้สึกได้ว่าจะต้องมี 'มาตรฐาน' โซลูชันที่ใช้โมดูลนี้ ฉันเคยเห็นคำแนะนำบางอย่างจากที่นั่นเพื่อใช้โมดูลที่แตกต่างกันรวมกัน ฉันเปิดให้ข้อเสนอแนะใด ๆ แต่ถ้ามันเกี่ยวข้องกับการติดตั้งมากกว่า 1 หรือ 2 โมดูลและโหลดของการกำหนดค่าฮาร์ดโค้ดกำหนดบริบทเฉพาะก็อาจจะไม่ช่วยมากเกินไปในกรณีนี้

2
ฉันจะสร้างธีมเว็บได้อย่างไร [ปิด]
เป็นการยากที่จะบอกสิ่งที่ถูกถามที่นี่ คำถามนี้คลุมเครือคลุมเครือไม่สมบูรณ์กว้างเกินไปหรือโวหารและไม่สามารถตอบได้อย่างสมเหตุสมผลในรูปแบบปัจจุบัน สำหรับความช่วยเหลือในการทำความเข้าใจคำถามนี้เพื่อที่จะสามารถเปิด, ไปที่ศูนย์ช่วยเหลือ ปิดให้บริการใน6 ปีที่ผ่านมา ฉันต้องการธีมเว็บฟอร์มใน D7 ฉันจะทำสิ่งนั้นได้อย่างไร ในการค้นหาฉันรู้ว่าโดยใช้ web-form-nid.tpl.php เราสามารถสร้างธีมของแต่ละ drupal ได้ คนใดคนหนึ่งสามารถแนะนำฉันในกรณีนี้เพื่อกำหนดรูปแบบเว็บ
12 7  webforms  theming 

7
การตรวจจับฟิลด์ที่ถูกเปลี่ยนแปลงโดยทั่วไปในรูปแบบที่กำหนดเองก่อนที่จะบันทึกโหนด
ฉันเพิ่มเขตข้อมูลบางอย่างจากประเภทเนื้อหาลงในแบบฟอร์มที่กำหนดเองโดยใช้ field_attach_form () เมื่อส่งแบบฟอร์มฉันกำลังประมวลผลฟิลด์เหล่านั้นโดยการเรียก field_attach_form_validate () และ field_attach_submit () จาก #validate และ #submit callbacks ณ จุดนั้นฉันต้องการเปรียบเทียบออบเจกต์ post-submit ที่เตรียมไว้กับโหนดเดิมและรำคาญกับ node_save () ถ้ามีฟิลด์ใดฟิลด์หนึ่งเปลี่ยนไป entity_load_unchanged()ดังนั้นผมจึงเริ่มต้นด้วยการโหลดโหนดเดิมใช้ น่าเสียดายที่อาร์เรย์ฟิลด์ในวัตถุโหนดดั้งเดิมไม่ตรงกับอาร์เรย์ฟิลด์ในวัตถุโหนดที่เตรียมไว้ซึ่งกำลังรอการบันทึกแม้ว่าจะไม่มีการเปลี่ยนแปลงใด ๆ ในฟิลด์ดังนั้น "$ old_field == $ new_field ที่เรียบง่าย "การเปรียบเทียบเป็นไปไม่ได้ ตัวอย่างเช่นฟิลด์ข้อความธรรมดาจะปรากฏเช่นนี้ในต้นฉบับ: $old_node->field_text['und'][0] = array( 'value' => 'Test', 'format' => NULL, 'safe_value' => 'Test', ); ในขณะที่โหนดที่จัดเตรียมปรากฏเป็นเช่นนี้ $node->field_text['und'][0] = array( …
12 7  entities 

3
การเข้าถึงค่าประเภทเขตข้อมูลที่ไม่รู้จักเมื่อใช้ entity_metadata_wrapper
ฉันได้มองหาการใช้คลาสเอนทิตี้เมตาดาต้าแรปเปอร์ (กำหนดโดยโมดูลเอนทิตีใน Drupal 7) เพื่อเข้าถึงค่าของฟิลด์เนื่องจากนี่เป็นวิธีที่สะอาดในการทำเช่นนั้น มีสองสิ่งที่ทำให้เรื่องนี้ค่อนข้างน่าอึดอัดใจ สมมติว่าฉันมี wrapper สำหรับประเภทเนื้อหาที่กำหนดฟิลด์ชื่อfield_somethingเช่น: $wrapper = entity_metadata_wrapper('node', node_load($nid)); $value = $wrapper->field_something->value(); ปัญหาแรกที่ฉันมีคือฉันไม่มีทางรู้ล่วงหน้าว่าสิ่งที่ฉันได้รับคือค่าจริง (สตริง, เอนทิตี้, ฯลฯ ), ตัวห่อโครงสร้างของเมทาดาทาอื่น (เมื่อเขตข้อมูลมีหลายค่า) หรืออาร์เรย์ (เมื่อ เขตข้อมูลมีคุณสมบัติหลายอย่าง) ฉันพบวิธีที่จะตอบคำถามเหล่านั้นโดยใช้info()วิธีการ: $info = $wrapper->field_something->info(); $is_multi_value = (strpos($info['type'], 'list<') === 0); $has_multiple_properties = isset($info['property info']]); อย่างไรก็ตามมันก็ใช้งานได้จริง เมื่อใดก็ตามที่ฉันต้องการใช้เขตข้อมูลโดยไม่ทราบว่ามันเป็นคำนิยามก่อนมือฉันต้องคำนึงถึงหลายกรณี ทำให้รหัสของฉันค่อนข้างหนัก เพื่อจัดการกับเรื่องนี้ฉันได้เขียนโค้ดบางอย่างที่: มั่นใจได้ว่าเราจะได้รับอาร์เรย์คืนเสมอแม้ว่าจะเป็นเขตข้อมูลค่าเดียว เมื่อมีคุณสมบัติหลายอย่างให้ส่งคืนค่าของคอลัมน์แรก จุดที่ 1 ที่นี่จะใช้งานได้เสมอเว้นแต่ผู้โทรต้องการทราบว่านี่เป็นเขตข้อมูลค่าเดียวหรือไม่ จุดที่ …
12 entities 

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