Drupal

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

3
field_get_items เวอร์ชั่น“ set”?
หนึ่งสามารถดึงรายการฟิลด์จากเอนทิตีด้วย // Find all terms on $node in field 'field_tags'. $terms = field_get_items('node', $node, 'field_tags'); แต่มีวิธีที่สะดวกในการทำตรงกันข้ามแกนหรืออื่น ๆ ? // Attach new term $term to $node in field 'field_tags'. $term = taxonomy_term_load($tid); $node = field_set_items('node', $node, 'field_tags', 'taxonomy_term', $term); node_save($node); ฉันต้องการหลีกเลี่ยงความยุ่งยากในการกำหนด $ term ด้วยตนเองดูใน devel ว่าโครงสร้างอาร์เรย์มีลักษณะอย่างไรแล้วสร้างอาร์เรย์ด้วยมือเพราะบางครั้งมันก็ไม่สำคัญ ปัญหาเดียวในแกนคิวฉันสามารถหาที่ดูคล้ายรางเป็นเกี่ยวกับAPI DX
9 entities 

1
ไฟล์ที่มีการจัดการจะถูกลบหรือไม่หากไม่มีรายการที่เกี่ยวข้องใน file_usage
ฉันใช้โมดูลบริการเพื่อใช้งาน REST API ทรัพยากรหนึ่งรายการอนุญาตให้โพสต์พร้อมไฟล์ที่อัปโหลด ในระหว่างการบริการฟังก์ชั่น pre-process ฉันบันทึกไฟล์ไปยังไดเรกทอรีชั่วคราว ระหว่างฟังก์ชั่นบริการหลังการทำงานฉันย้ายไฟล์ไปยังไดเรกทอรีส่วนตัวโทร file_usage_add และบันทึกเอนทิตีโฮสต์ เมื่อเกิดข้อผิดพลาดในการตรวจสอบความถูกต้องระหว่างการบันทึกไฟล์ชั่วคราวและย้ายไฟล์ชั่วคราวไปยังตำแหน่งถาวรฉันไม่ได้ลบไฟล์ชั่วคราวอย่างชัดเจน ฉันคิดว่า drupal cron จะดูแลสิ่งนี้ให้ฉันเนื่องจากไม่มีรายการสำหรับไฟล์นี้อยู่ใน file_usage อย่างไรก็ตามมันไม่ปรากฏว่า cron กำลังดูแลเรื่องนี้ให้ฉัน ความคิดใด ๆ ว่าทำไมถึงเป็นเช่นนี้? เมื่อตรวจสอบ file_managed ฉันเห็นไฟล์ชั่วคราวที่ฉันต้องการลบ เมื่อตรวจสอบ file_usage ฉันไม่เห็นระเบียนที่เกี่ยวข้อง อัปเดต - ข้อมูลเพิ่มเติมหนึ่งส่วน: โดยส่วนใหญ่แล้วไฟล์จะหายไป ฉันเชื่อว่านี่เป็นเพราะ OS รีบูตการล้างไดเรกทอรี / tmp ไม่ว่า system_cron จะยังคงลบรายการ file_managed สำหรับไฟล์หรือไม่หากไม่พบไฟล์จริงอีกต่อไป ปัญหานี้เกิดขึ้นตั้งแต่ฉันเริ่มอัพโหลดไฟล์จากแอพมือถือทั่วไป ชื่อไฟล์จะเหมือนกันทุกครั้งที่อัพโหลด มีบางกรณีที่ชื่อไฟล์ temp ไม่มีอยู่ในไดเรกทอรี / tmp แต่มีการบันทึกใน …
9 7  files 

1
ส่วนหัว“ แตกต่างกัน: คุกกี้” ทำอะไรให้จริงสำหรับการแสดงหน้าจากวานิช
ตามเอกสารใน default.settings.php และฉันได้เห็นคำอธิบายที่คล้ายกันที่อื่น "Without "Vary:Cookie", authenticated users would also be served the anonymous page from the cache." อย่างไรก็ตาม$conf['omit_vary_cookie'] = TRUE;แนะนำให้ใช้กับ Varnish ใน Drupal 7 และดูเหมือนจะไม่ทำให้ผู้ใช้ไม่สามารถเปลี่ยนจากอานนท์เป็นเซสชันที่มีการรับรองความถูกต้องได้ นี่คือส่วนหัวที่วานิชไม่สนใจจริง ๆ หรือ?
9 7  proxies 

3
ปัญหา IIS กับ Drupal - ตัวจัดการอัปเดต: การอัปเดตล้มเหลว! ไดเรกทอรีถูกล็อคโดย php-cgi.exe
ฉันมีปัญหาบางอย่างเมื่อใช้ "Update manager" บน GUI บางไดเรกทอรีถูกล็อคphp-cgi.exeและทำให้การแทนที่ไดเรกทอรีเดิมด้วยไดเรกทอรีที่ดาวน์โหลดใหม่ (ซึ่งใหม่กว่า) ไม่สำเร็จ แต่ฉันต้องพูดถึงว่ามันไม่ได้เป็นปัญหาสิทธิ์เนื่องจากโมดูลสามารถติดตั้งผ่าน"ติดตั้งจาก URL"บน/admin/modules/installและทำงานได้โดยไม่มีปัญหา ลองมาตัวอย่าง: หน้าอัปเดตที่พร้อมใช้งาน ( /admin/reports/updates/update): ตอนนี้ฉันตรวจสอบโมดูลSelect (หรืออื่น ๆ )ที่จะอัปเดต ( ไม่สำคัญว่าจะเลือกโมดูลใดผลลัพธ์เหมือนกัน !! ดังนั้นจึงเป็นเพียงตัวอย่าง) ผมตี"ดาวน์โหลดโปรแกรมปรับปรุงเหล่านี้"ปุ่ม ตกลงอินสแตนซ์ที่อัปเดตของโมดูลจะถูกดาวน์โหลดโดยไม่มีปัญหา: " อัปเดตที่ดาวน์โหลดสำเร็จ ": ตอนนี้ฉันคลิกที่ดำเนินการต่อ ข้อผิดพลาดที่นี่มา ผลลัพธ์: "การอัปเดตล้มเหลว!ดูบันทึกด้านล่างสำหรับข้อมูลเพิ่มเติม select_or_other เกิดข้อผิดพลาดในการติดตั้ง / อัพเดท การถ่ายโอนไฟล์ล้มเหลวเหตุผล: ไม่สามารถคัดลอกไปD:/Projects/web/drupal-7/tmp/update-extraction-6d8993ac/select_or_other/LICENSE.txt /Projects/web/drupal-7/htdocs/sites/all/modules/select_or_other/LICENSE.txt" ตกลงฉันเริ่มพยายามตรวจสอบสาเหตุที่เป็นไปได้ นี่คือสิ่งที่โครงสร้างไดเรกทอรี Drupal ของฉันดูเหมือนว่า: ผมตั้ง../tmpให้เป็นไดเรกทอรีชั่วคราว (ใน/admin/config/media/file-system), ไฟล์ Drupal htdocsอยู่ใน นี่ถูกต้องเพราะฉันสามารถติดตั้งโมดูลผ่าน GUI ดังที่ฉันได้กล่าวไว้ข้างต้น …
9 7  iis  updating 

2
ส่งคืน total_rows ของมุมมองใน Drupal 7 ที่ไม่มีตัวกรอง php หรือไม่
เป็นไปได้หรือไม่ที่จะแสดงจำนวนแถวทั้งหมดในมุมมองลงในส่วนหัวของมุมมองโดยไม่เปิดใช้งานตัวกรอง PHP ฉันรู้ว่าฉันสามารถเปิดใช้งานตัวกรอง PHP และแสดงผล $ view-> total_rows ในส่วนหัวแต่ฉันต้องการหลีกเลี่ยงการเปิดใช้งานตัวกรอง PHP ฉันสามารถใช้ผลลัพธ์ $ view-> total_rows ในไฟล์เทมเพลตแต่มีตัวจัดการหรือเคล็ดลับอื่น ๆ
9 7  views 

4
(dis) ข้อดีของ staging dev-> การผลิตโดยใช้ 'drush rsync' vs 'git' หรือไม่
ฉันตั้งเว็บไซต์ Drupal ภายใต้การควบคุมคอมไพล์สำหรับงานพัฒนา มันมีการจดสิทธิบัตรใน master, repo GIT เปลือยและเมื่อมีการเปลี่ยนแปลงใน clit git งานโครงการต่าง ๆ ของฉันและผลักกลับไปที่ master ตะขอ post-update hook จะผลักดันการเปลี่ยนแปลงไปยังเว็บไซต์ Staging เดียวทันที (http: / /staging.loc.) ไม่มีอะไรพิเศษทำงานตามที่คาดไว้ ฉันยังใช้นามแฝงว่าเป็นเว็บไซต์ "@STAGING" ในบางครั้งฉันต้องการโปรโมตการเปลี่ยนแปลงของฉันจากไซต์ Staging ไปยังเซิร์ฟเวอร์ที่ใช้งานจริง สองวิธีที่ค่อนข้างตรงไปตรงมาอยู่ในใจ: (1) ณ จุดหนึ่งเมื่อไซต์ Staging ดูเสถียรให้สร้างไซต์การผลิตเป็นจุดชำระเงิน git จาก repo หลัก (2) ใช้drush rsync+ drush sql-syncจากไซต์การแสดงไปยังไซต์การผลิต ทั้งสามารถทำงานได้ นอกเหนือจากข้อเท็จจริงที่ว่า (2) ดูเหมือนว่า Drupal-centric / …


2
PathAuto คือโมดูลหน่วยความจำหรือไม่?
ฉันอาจจะต้องใช้โมดูลPathAutoสำหรับโครงการปัจจุบัน ในขณะที่ใช้มันในการพัฒนาในฐานะผู้ดูแลระบบการชะลอตัวของไซต์ในระหว่างการเปลี่ยนแปลงนั้นไม่ได้ผล PathAuto เป็นที่เก็บหน่วยความจำขนาดใหญ่และมีวิธีการลดขนาดนี้หรือไม่?
9 7  path-aliases 

3
ส่งอีเมล์โหนดทั้งหมด (รวมถึงเนื้อหาเทมเพลต)
ฉันสร้างไฟล์ node.tpl.php ที่กำหนดเองของฉันเอง ตอนนี้ฉันต้องการส่งอีเมลถึงโหนดทั้งหมดทุกครั้งที่ผู้ใช้สร้างโหนดใหม่ของประเภทเนื้อหานั้น (ฉันแน่ใจว่า HTML ทั้งหมดในไฟล์ node.tpl.php ของฉันนั้นเป็นมิตรกับอีเมล) ฉันจะทำสิ่งนี้ได้อย่างไร เป็นการดีที่ฉันต้องการให้อีเมลไปยังที่อยู่อีเมลที่ระบุโดยอัตโนมัติเมื่อบันทึกโหนด ฉันพบว่าการรวมกันของกฎและจดหมาย HTMLสามารถบรรลุสิ่งที่ฉันต้องการ ยกเว้น ... เมื่อสร้างกฎการดำเนินการจะไม่มีตัวเลือกในการส่งอีเมลถึงโหนดทั้งหมด (รวมถึงการกำหนดให้ node.tpl.php) กฎให้ตัวเลือกเท่านั้นในการส่งอีเมลฟิลด์ของโหนดที่ระบุ (โดยไม่ต้องใช้) ข้อเสนอแนะใด ๆ ที่จะได้รับการชื่นชมมากที่สุด!
9 rules  emails 

3
ฉันจะรับสตริงที่แปลเป็น Drupal.locale.strings ได้อย่างไร
ดังนั้นฉันจึงพยายามใช้ฟังก์ชัน Drupal.t () ในโค้ด Javascript ที่กำหนดเองของฉัน (ในธีมของฉัน) ฉันจะรับสตริงที่ฉันต้องการเติมในวัตถุ Drupal.locale.strings ได้อย่างไร ฉันเห็นสตริงในนั้น แต่แน่นอนไม่สามารถโหลดฐานข้อมูลทั้งหมดได้ วิธีเพิ่มที่ดีที่สุดคืออะไร ฉันต้องการใช้ฟังก์ชัน PHP t () เพื่อให้สามารถเพิ่มสตริงที่สามารถแก้ไขได้ในอินเทอร์เฟซการแปล
9 7  i18n-l10n 


1
การแก้จุดบกพร่อง hooks ที่ยิง
ฉันค่อนข้างใหม่ในการพัฒนาโมดูล มีวิธีการส่งออกในปัจจุบันสิ่งที่ hooks ได้รับการทำงานบนโหนดบางอย่าง? สิ่งนี้จะทำกับ xdebug หรือไม่
9 debugging 

5
ป้องกันการส่งแบบฟอร์มต่าง ๆ (ฝั่งเซิร์ฟเวอร์)
ฉันพบปัญหาที่ผู้ใช้สามารถส่งฟอร์มใด ๆ ที่สร้างขึ้นโดย Form API หลายครั้ง (การคลิกที่รวดเร็วทำให้เกิดคำขอหลายรายการ) ฉันได้ใส่โซลูชันพื้นฐานด้านไคลเอนต์ (javascript) ของการปิดใช้งานปุ่ม แต่ฉันอยากรู้ว่าวิธีที่ดีที่สุดในการป้องกันสถานการณ์นี้อยู่ที่ฝั่งเซิร์ฟเวอร์ มีวิธีแนะนำให้ใช้ระบบโทเค็นแบบฟอร์มของ Drupal เพื่อจัดการสิ่งนี้หรือไม่? โดยเฉพาะอย่างยิ่งโซลูชันแบบโกลบอล (เช่นการเพิ่มตัวตรวจสอบความถูกต้องที่กำหนดเองให้กับทุกรูปแบบโดยใช้ hook_form_alter ()) วิธีการของฉันจนเป็นเช่นนี้: function mymodule_form_alter(&$form, &$form_state, $form_id) { $form['#validate'][] = 'mymodule_form_validate'; } function mymodule_form_validate(&$form, &$form_state){ //initialize form array if (!isset($_SESSION['submitted_forms'])){ $_SESSION['submitted_forms'] = array(); } $form_token = $form_state['values']['form_token']; if ( isset($_SESSION['submitted_forms'][$form_token]) && $_SESSION['submitted_forms'][$form_token] = TRUE …
9 forms 

4
วิธีกำหนดค่า XHProf บน windows
ด้วยความช่วยเหลือของการสอนLorenzo Albertonฉันติดตั้ง XHProf สำหรับ drupal 6 บนเซิร์ฟเวอร์ linux ตอนนี้ฉันต้องติดตั้งบน windows แต่ฉันพบว่า XHProf ไม่สามารถติดตั้งบน windows ได้ นอกจากนี้ที่ drupal.org XHProfมีให้สำหรับ drupal 7 เป็นต้นไป หากใครติดตั้ง XHProf สำหรับ drupal 6 บน Windows กรุณาแชร์
9 debugging 

3
drupal 7.10: ดูโพสต์ที่มีคนดูมากที่สุด
ฉันกำลังพยายามสร้างหน้าโพสต์ที่ดูมากที่สุดโดยใช้มุมมอง ฉันรู้วิธีสร้างหน้าเว็บที่มีการโพสต์ความคิดเห็นมากที่สุด แต่ดูเหมือนจะไม่พบตัวเลือกการนับจำนวนการดู ข้อเสนอแนะใด ๆ ฉันจำเป็นต้องเพิ่มความสัมพันธ์หรือไม่?
9 7  views 

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