Drupal

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

4
วิธีบำรุงรักษาโครงการ Drupal บน GitHub
ฉันบำรุงรักษาโมดูลต่าง ๆ บน drupal.org ต้องใช้เวลาหลายปีในการทำสิ่งต่าง ๆ "วิธี drupal" (จดจำ CVS?) ฉันต้องการทำให้ชีวิตของฉันง่ายขึ้นเล็กน้อยและใช้ GitHub ในขณะที่อาจมีเหตุผลทางการเมืองสิ่งนี้อาจไม่เป็นที่พึงปรารถนา แต่มีเหตุผลทางเทคนิคหรือไม่? ฉันคิดว่าการซิงค์แบบทางเดียวอาจเป็นเรื่องง่ายเหมือนงาน cron ที่ผลักดันอย่างรวดเร็วไปข้างหน้าจาก repo Github ไปยัง repo drupal.org ที่เกี่ยวข้อง นั่นคือทั้งหมดที่มีไปหรือไม่ มีเครื่องมือที่มีอยู่เพื่ออำนวยความสะดวกหรือไม่

2
ธีมแบบฟอร์มการติดต่อ
ฉันต้องการธีมของแบบฟอร์มการติดต่อใน Drupal 8 ฉันต้องการใส่ div รอบองค์ประกอบของแบบฟอร์ม (โดยใช้ bootstrap) ฉันต้องการใส่บางคลาสในองค์ประกอบบางอย่าง (ปุ่มส่ง, ฟอร์มเอง)
11 theming  8  emails 

4
มีการเปรียบเทียบประสิทธิภาพหรือไม่
โพสต์นี้เกี่ยวข้องกับเหตุการณ์ที่เปลี่ยนแปลงอย่างรวดเร็ว มีการเปรียบเทียบประสิทธิภาพที่น่าเชื่อถือระหว่างวานิลลา Drupal 8 กับ Drupal 7 หรือไม่? ฉันค้นหาเว็บ แต่พบเฉพาะโพสต์ " การเปรียบเทียบประสิทธิภาพ Drupal 7 กับ Drupal 8 " ซึ่งห่างไกลจากการให้กำลังใจ
11 8  performance 

1
กู้คืนเขตข้อมูลที่ถูกลบ
ฉันมีประเภทเนื้อหาที่มี 4 ฟิลด์ซึ่งแต่ละรายการเป็นการอ้างอิงคำศัพท์ มี 100 โหนดแต่ละการอ้างอิง 4 คำที่กำหนด ฉันลบหนึ่งในฟิลด์เหล่านี้โดยไม่ตั้งใจออกจากผู้ดูแลระบบ> โครงสร้าง> เนื้อหาประเภท> ประเภทเนื้อหา ... ทำให้มีโหนดทั้งหมด 100 โหนดที่สูญเสียคำอ้างอิงฟิลด์ที่สูญหายนี้ที่มีอยู่ หลังจากติดตั้งโมดูลผู้ดูแลระบบฐานข้อมูลฉันเห็นว่าฐานข้อมูลสำหรับเขตข้อมูลที่ถูกลบของฉันยังคงปรากฏอยู่มันถูกเปลี่ยนชื่อเป็น "field_deleted_field_74" ใช้ mysql ฉันสามารถเปลี่ยนชื่อฐานข้อมูลนี้กลับไปเป็น "field_data_field_originalname" - เช่นการใช้ชื่อเครื่องเดิมสำหรับฟิลด์ที่ถูกลบ นอกจากนี้ฉันยังสามารถเปลี่ยนค่าของคอลัมน์ที่ถูกลบภายในฐานข้อมูลนี้จาก '1' เป็น '0' ฉันได้ทำข้างต้นด้วยฐานข้อมูล 'ผี' อื่น ๆ ที่ฉันพบว่าถูกเรียกว่า "field_revision_field_74" ... ปัญหาของฉันตอนนี้คือฟิลด์ที่ถูกเปลี่ยนชื่อของฉันไม่ปรากฏเป็นฟิลด์ที่มีอยู่แล้วในฟิลด์จัดการประเภทเนื้อหาของฉันแสดงหรือที่ผู้ดูแลระบบ> รายงาน> รายการเขตข้อมูล เมื่อฉันเรียกใช้ 'เขตข้อมูลเขตข้อมูล Drush' จะหายไปเช่นกัน ฉันจะนำมันกลับมาได้อย่างไร ฉันสมมติว่ามีฐานข้อมูลอื่นที่อ้างอิงถึงที่ฉันต้องการแก้ไข ขอบคุณ!

5
ฉันควรใช้ t () ในคำอธิบายของ hook_menu หรือไม่
ฉันมักจะใช้t ()สำหรับชื่อ hook_menus และคำอธิบายเช่นนี้: $items['some-path'] = array( 'title' => t('My Page Title'), 'description' => t('This is a description about what my page is for'), 'page callback' => 'profile_user_page', ); สำหรับฉันแล้วผู้ใช้สามารถแปลชื่อและคำอธิบายเป็นภาษาต่างๆได้หากต้องการ อย่างไรก็ตามความคิดเห็นนี้ในการตรวจสอบโมดูลใน DO พูดว่า: ไม่ถูกต้องอย่าทำอย่างนั้น - คำอธิบายใน hook_menu () ไม่ควรใช้ t () อะไรคือเหตุผลสำหรับสิ่งนี้และนี่เป็นแนวทางปฏิบัติที่ดีที่สุดจริงหรือ นอกจากนี้หากเป็นจริงแล้วเราไม่ควรใช้ t () สำหรับชื่อเช่นกัน?
11 7  i18n-l10n  routes 

3
ฉันจะรับไฟล์ URI จากวัตถุ EntityMetadataWrapper ได้อย่างไร
การเก็บอ็อบเจ็กต์ไฟล์ที่เกี่ยวข้องกับโหนดผ่านฟิลด์เป็นเรื่องง่ายโดยใช้EntityMetadataWrapper: $wrapper = entity_metadata_wrapper('node', $node); $images = $wrapper->field_images; นั่นเยี่ยมมาก อย่างไรก็ตามฉันต้องการใช้คุณสมบัติบางอย่างของวัตถุไฟล์มาตรฐานและไม่สามารถใช้งานได้ เมื่อฉันดูคุณสมบัติที่มีอยู่ในการ$images[0]->fileใช้รหัสข้างต้นฉันเห็นเหล่านี้: fid ชื่อ ละครใบ้ ขนาด URL การประทับเวลา เจ้าของ ที่สะดุดตาที่สุดuriหายไปและในสถานที่มีurlคุณสมบัติซึ่งเป็น URL ภายนอกแบบเต็มไปยังไฟล์ภาพ ฉันต้องการจัดการภาพเหล่านี้ผ่านทาง URI ของพวกเขา (สร้างนิ้วโป้ง ฯลฯ ) ดังนั้นฉันจึงไม่ทำเช่นนี้ $fid = $images[0]->file->fid->value(); $uri = file_load($fid)->uri; ซึ่งดูเหมือนจะลบล้างจุดทั้งหมดของการใช้EntityMetadataWrapperในสถานที่แรก ฉันกำลังคิดถึงอะไร URI อยู่ที่ไหนในวัตถุไฟล์ที่ถูกหุ้มไว้? หากยังไม่พร้อมสำหรับความรักของทุกสิ่งที่ดีและบริสุทธิ์ทำไมไม่! ฉันรู้ว่าฉันสามารถแยกแยะ URL กลับเป็น URI ได้ แต่นั่นก็ไม่จำเป็นเช่นกัน
11 7  entities 

2
วิธีการเปลี่ยนค่าฟิลด์ที่กำหนดเองเดียวในมุมมอง?
ฉันมีมุมมองกับฟิลด์ทั่วโลก: ข้อความที่กำหนดเองซึ่งได้รับการแก้ไขเป็นลิงก์ ฉันต้องการเปลี่ยนโทเค็นการแทนที่เพื่อสร้างลิงก์นี้ขึ้นอยู่กับค่าของฟิลด์อื่น พยายามแก้ไขสิ่งนี้ใน hook_views_pre_render แต่ฉันไม่สามารถหาวิธีการได้ ใน hook_views_post_render มีสองอาร์เรย์: $view->style_plugin->render_tokens $view->style_plugin->row_tokens ซึ่งมีลิงก์ที่สร้างขึ้นสำหรับทุกแถว แต่ไม่มีอยู่ใน pre_render และการเปลี่ยนใน post_render ไม่ทำงาน ฉันได้ลองทำเช่นนั้นใน template_preprocess_views_view_fields แต่สำหรับมุมมองนั้นฟังก์ชั่นนี้จะไม่ทำการยิง (สำหรับมุมมองอื่น ๆ ที่ทำได้) และฉันไม่รู้ว่าทำไม
11 7  views 


2
Webform - ส่งค่าจาก Drupal 7 จากไปยัง URL ภายนอก
ฉันเป็นมือใหม่ที่ประกาศตัวเองถึงการสร้างแบบฟอร์มใน Drupal ฉันมีแบบฟอร์มที่โฮสต์บนเว็บไซต์ Drupal 7 (ใช้โมดูล webform) และจำเป็นต้องส่งค่าฟอร์มไปยัง URL ภายนอก ฉันได้ทำการค้นคว้ามาระยะหนึ่งแล้วและเขียนโมดูลที่กำหนดเองที่ใช้โมดูลเว็บฟอร์มเพื่อส่งภายนอกโดยใช้ hook_form_alter และส่งตัวจัดการ / ฟังก์ชั่นที่กำหนดเอง (รหัสวางด้านล่าง) ฉันใช้หน้าต่อไปนี้เป็นแนวทาง แต่ฉันไม่สามารถรับแบบฟอร์มการทำงาน: https://drupal.org/node/1357136 การใช้ drupal_http_post () เพื่อส่งไปยังไซต์ภายนอก: ฉันกำลังทำอะไร ไม่ถูกต้อง? ใครช่วยบอกให้ฉันรู้ถ้าฉันถูกทาง? คำแนะนำใด ๆ จะเป็นประโยชน์! <?php function webform_extra_form_alter(&$form, &$form_state, $form_id) { //only want form with nid 1171 to submit externally //Note that "webform_client_form_1171" means modify the …
11 7  hooks  webforms  forms 

3
วิธีตั้งค่าความยาวสูงสุดสำหรับฟิลด์ textarea ในแบบฟอร์มการติดต่อ
ฉันต้องการ จำกัด ข้อความ textarea ของแบบฟอร์มการติดต่อหลักของโมดูลให้มีจำนวนอักขระที่แน่นอน นี่คือข้อเท็จจริง API แบบฟอร์มไม่อนุญาตให้หนึ่งตั้งค่าความยาวสูงสุดในประเภทฟิลด์ textarea [ในขณะที่ HTML ธรรมดา] MAXLENGTHโมดูลไม่ได้ช่วยให้คุณสามารถตั้งค่าจริงความยาวสูงสุด ได้รับความยาวสูงสุดจากความยาวสูงสุดของฟิลด์ที่กำหนดไว้ในส่วนจัดการประเภทเนื้อหาแต่ละประเภท การสร้างประเภทองค์ประกอบรูปแบบใหม่โดยใช้ hook_element_info ยังไม่รับประกันฉันสามารถเพิ่มลง#maxlengthใน textarea นอกจากนี้หากฉันประสบความสำเร็จฉันต้องเปลี่ยนโมดูลรูปแบบการติดต่ออีกครั้งเพื่อแทนที่ฟิลด์ข้อความ textarea จริงด้วยเหมือง ดังนั้นฉันสามารถแก้ไขได้อย่างง่ายดายและตรงไปตรงมา? เป็นความคิดที่ดีที่สุดในการเปลี่ยนแปลงฟิลด์ textarea ทั้งหมดในเว็บไซต์คืออะไร?
11 forms  emails 

2
ฉันจะตั้งค่าการชำระเงินแบบไม่ระบุชื่อโดยที่ผู้ใช้กดหน้าเข้าสู่ระบบไม่ได้
หลังจากเพิ่มรายการลงในรถเข็น Drupal Commerce ฉันไปที่หน้าตรวจสอบรถเข็น จากนั้นฉันคลิกที่การชำระเงินและฉันได้รับผลกระทบกับหน้าการเข้าสู่ระบบมีการตั้งค่าที่ผู้ใช้ไม่จำเป็นต้องเข้าสู่ระบบหรือเพียงแค่ชำระเงินโดยไม่ระบุชื่อ และหากพวกเขามีบัญชีในเว็บไซต์แล้วคำสั่งของพวกเขาจะถูกเพิ่มลงในบัญชีของพวกเขาโดยอ้างอิงกับอีเมลของพวกเขา
11 7  commerce  users 

3
กำหนดค่าหน้าปฏิเสธการเข้าถึง
ฉันมีหน้าพื้นฐานมากมายที่ฉันต้องการให้ผู้ใช้ลงชื่อเข้าใช้เพื่อดูพวกเขา ฉันจะกำหนดหน้าปฏิเสธการเข้าถึงเว็บไซต์เองได้อย่างไร
11 7 

1
EntityFieldQuery นี้ไม่มีประสิทธิภาพจริงๆหรือ
ฉันเป็นมือใหม่ที่ยอมรับกับ Entity API แต่ฉันพยายามที่จะแก้ไข ฉันกำลังทำงานในไซต์ที่ใช้ประเภทเนื้อหาจำนวนมากที่มีฟิลด์ต่าง ๆ แนบมาด้วย ไม่มีอะไรแฟนซี ดังนั้นเมื่อฉันต้องการดึงชุดของรายการฉันได้รับในความไม่รู้ของฉันเรียกโดยตรงลงในฐานข้อมูลและทำสิ่งนี้ $query = db_select('node', 'n')->extend('PagerDefault'); $query->fields('n', array('nid')); $query->condition('n.type', 'my_content_type'); $query->leftJoin('field_data_field_user_role', 'role', 'n.nid = role.entity_id'); $query->condition('role.field_user_role_value', $some_value); $query->leftJoin('field_data_field_withdrawn_time', 'wt', 'n.nid = wt.entity_id'); $query->condition('wt.field_withdrawn_time_value', 0); $query->orderBy('n.created', 'desc'); $query->limit(10); $result = $the_questions->execute()->fetchCol(); (ใช่ฉันอาจจะยุบเส้นเหล่านี้เป็น$the_questions->ประโยคเดียวได้โปรดเพิกเฉยต่อเรื่องนั้นตอนนี้) พยายามเขียนสิ่งนี้ด้วย EntityFieldQuery ฉันคิดว่า: $query = new EntityFieldQuery(); $query ->entityCondition('entity_type', 'node') ->entityCondition('bundle', 'my_content_type') …
11 7  database  entities 

8
ตอนนี้ Git เป็นวิธีเดียวในการติดตั้ง Drush หรือไม่?
ไปในแวดวงพยายามคิดวิธีที่ถูกต้องในการติดตั้ง Drush บนระบบ Linux CentOS ฉันได้ตั้งค่า Git แล้ว แต่เนื่องจากฉันไม่ได้วางแผนที่จะมีส่วนร่วมกับโค้ด Drush ในตอนนี้มันไม่ชัดเจนอย่างชัดเจนว่าฉันควรใช้ Git บางทิศทางบอกว่าจะใช้ลูกแพร์ แต่เมื่อฉันไปที่หน้าโครงการ Drush ทิศทางบอกว่าจะรับ Drush 6 จาก Git บทเรียนที่ฉันพบสาธิต wget และลูกแพร์ไม่ใช่ Git และหน้าโครงการ Git View กล่าวว่า "ใช้โครงการ Github ของเราเพื่อสนับสนุนโค้ดหรือรายงานข้อบกพร่องหรือขอคุณสมบัติ" ไม่มีสิ่งใดที่ใช้ Drupalista ที่มีประสบการณ์ช่วยตอบคำถามต่อไปนี้ได้ไหม? ตอนนี้ Git เป็นวิธีเดียวที่จะได้รับ Drush หรือไม่? มีคนถามคำถามที่คล้ายกันมากกว่าปีที่แล้วเมื่อยังคงแนะนำ PEAR อยู่ หาก Git เป็นวิธีที่จะไปฉันได้อ่าน drush ที่ไม่ควรติดตั้งในไดเรกทอรีของเว็บไซต์ดังนั้นไดเรกทอรีใดที่แนะนำให้เข้าใช้เมื่อฉันเรียกใช้สิ่งต่อไปนี้ git clone --branch …
11 drush 


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