Drupal

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

1
ติดตั้งและกำหนดค่า XHProf (Ubuntu)
ปัญหา ฉันพยายามใช้ XHProf แต่ฉันได้รับข้อผิดพลาด php ที่น่ากลัวทุกครั้งที่มันทำงาน Warning: Invalid argument supplied for foreach() in xhprof_compute_inclusive_times() (line 1670 of /var/www/drupal/sites/all/modules/XHProf/xhprof.inc). Warning: Invalid argument supplied for foreach() in xhprof_compute_flat_info() (line 1644 of /var/www/drupal/sites/all/modules/XHProf/xhprof.inc). Warning: Invalid argument supplied for foreach() in theme_xhprof_overall_summary() (line 367 of /var/www/drupal/sites/all/modules/XHProf/xhprof.module). แก้ไขปัญหาได้แล้วที่นี่เพราะไม่มีโฟลเดอร์ชั่วคราว ตั้งค่าฝั่งเซิร์ฟเวอร์ ฉันใช้เซิร์ฟเวอร์ Ubuntu สด 13.04 กับ Drupal …
19 7  debugging 

2
ใช้ LIKE ใน db_query ใน D7
ฉันมีแบบสอบถามเช่นนี้ใน Drupal 6: $sql = 'SELECT sid, score FROM search_index WHERE word LIKE "%%%s%%"'; $result = db_query($sql,$search_term); มันใช้งานได้ดี แต่ตอนนี้ฉันกำลังอัพเกรดเป็น Drupal 7 ฉันอ่านและนี่ควรจะใช้ได้ แต่ไม่ใช่: $sql = 'SELECT sid, score FROM search_index WHERE word LIKE "%:term"'; $result = db_query($sql,array(':term'=>$search_term)); ไม่มีใครรู้ว่าฉันทำอะไรผิดหรือเปล่า?
19 7  database 

2
ประโยชน์ของการติดตั้งสำหรับ themer คืออะไร?
ฉันไม่เคยคิดถึง Panels มากนักเนื่องจากฉันรู้สึกสะดวกสบายกับการเขียนธีมของตัวเอง แต่ผมได้เห็นมากของบทความเกื้อหนุนคุณธรรมของแผง (จากที่Lullabotและใช้งานหลอดไฟ ) ดังนั้นฉันคิดว่ามันจะเป็นเวลาที่จะทบทวนมันโดยเฉพาะอย่างยิ่งการติดตั้งเป็นไปได้ในDrupal 8 ผมเคยเล่นรอบกับมันอย่างกว้างขวางและผมเคยดูแม้กระทั่งนี้หล่อชุดหน้าจอที่เป็นประโยชน์ แต่ฉันไม่สามารถเห็นสิ่งที่เป็นประโยชน์ ฉันมักจะสร้างเว็บไซต์ที่คนที่ไม่ใช่ด้านเทคนิคสามารถแก้ไขโหนด โดยปกติแต่ละรูปแบบโหนดจะมีหลายฟิลด์ที่ผู้ใช้สามารถเพิ่มเนื้อหาทั้งหมดสำหรับหน้านั้น เพื่อให้ได้ประโยชน์สูงสุดจากพาเนลดูเหมือนว่าคุณจะต้องแบ่งหน้าของคุณออกเป็นโหนดแยกต่างหากที่มีเนื้อหา 1 ส่วนจากนั้นใช้พาเนลเพื่อรวมโหนดต่างๆเข้าด้วยกัน สิ่งนี้อาจใช้ได้ถ้าคุณกำลังสร้างเว็บไซต์ที่จะต้องได้รับการแก้ไขโดยนักออกแบบเว็บไซต์เท่านั้น อย่างไรก็ตามมันสร้างปัญหาเมื่อคุณมอบเว็บไซต์ให้กับบุคคลที่ไม่ใช่ด้านเทคนิคเพื่อเพิ่มเนื้อหา คนที่ไม่ใช่ด้านเทคนิคส่วนใหญ่ต้องการสร้างหน้าทั้งหมดในหน้าจอเดียว หากพวกเขาต้องสร้างโหนดที่แตกต่างกันจำนวนมากจากนั้นให้พาเนลมารวมกันดูเหมือนจะทำให้พวกเขาสับสน ฉันรู้ว่าพาเนลมีประสิทธิภาพที่ดีขึ้นและรองรับบริบทได้ดีกว่าบล็อก อย่างไรก็ตามดูเหมือนว่าจะเพิ่มความซับซ้อนและความเป็นนามธรรมมากมาย ฉันสามารถดูว่ามันจะมีประโยชน์อย่างไม่น่าเชื่อสำหรับผู้ที่ไม่ใช่ themer แต่ฉันไม่สามารถเห็นสิ่งที่เป็นประโยชน์สำหรับคนที่สามารถชุดรูปแบบ ใครบางคนสามารถสอนฉัน ขอบคุณ!
19 theming  panels 

2
การใช้มุมมองด้วยตาราง / สคีมาที่กำหนดเอง
ฉันต้องตั้งค่ามุมมองที่จะดึงข้อมูลบางอย่างจากตารางที่กำหนดเองที่ฉันสร้างขึ้น มุมมองบางอย่างจะต้องดึงเนื้อหาด้วยวิธีปกติและจากตารางที่กำหนดเองของฉัน (ที่ฉันอาจสอบถามnidเฉพาะฯลฯ ) ฉันจะทำสิ่งนี้หรือที่ที่ดีในการวิจัย?
19 7  views 

4
การสร้างคำสั่งซื้อใน Drupal Commerce โดยทางโปรแกรมสำหรับผู้ใช้ที่ไม่ระบุชื่อซึ่งเปลี่ยนเส้นทางไปยังหน้าการชำระเงิน
Ryan มีรหัสที่ยอดเยี่ยมที่คุณสามารถสร้างคำสั่งซื้อโดยทางโปรแกรม <?php global $user; $product_id = 1; // Create the new order in checkout; you might also check first to // see if your user already has an order to use instead of a new one. $order = commerce_order_new($user->uid, 'checkout_checkout'); // Save the order to get its ID. commerce_order_save($order); …
19 7  commerce 

7
ประหยัดค่าฟิลด์เดียวอย่างรวดเร็ว
ฉันมีโหนดประเภทที่ระบุในไซต์ของฉันประมาณ 70,000 โหนด ฉันต้องการเรียกใช้การอัปเดต การดำเนินการบางอย่างและการตั้งค่าหนึ่งฟิลด์เป็นค่าที่ต้องการnode_saveช้ามากและทำให้เกิดปัญหา (callstack ยาวเกินไปอาจนานเกินไป) มีวิธีที่เร็วกว่าในการเขียนข้อมูลในฟิลด์นี้โดยเฉพาะหรือไม่? มีการfield_attach_updateพูดถึงในโพสต์เดียว แต่มันก็ไม่เร็วนัก แก้ไข: มีมุมมองค่อนข้างซับซ้อนที่สร้างขึ้นบนโหนดชนิดนี้ แต่ไม่ทำงานในฟิลด์นี้ซึ่งฉันต้องการอัปเดต
19 7  entities  nodes 

1
บันทึกฟิลด์ประเภท 'text_format' เป็นตัวแปรการตั้งค่าระบบ
ฉันพยายามให้ความสามารถในการแก้ไขตัวแปรสำหรับโมดูลที่กำหนดเอง ตัวแปรนี้สามารถมี html ฉันไม่ต้องการให้พวกเขามีความรู้เกี่ยวกับ HTML ดังนั้นฉันจึงต้องการให้พวกเขามีความสามารถในการมี wysiwyg ของเรา (CKEditor ที่จัดทำโดยโมดูล CKEditor) ในการกำจัดของพวกเขา อย่างไรก็ตาม ณ ตอนนี้ข้อมูลไม่ได้ถูกบันทึกเป็นตัวแปร ฉันได้อ่านไม่กี่ที่ (ทำ, stackexchange) ที่ฉันต้องการทำสิ่งนี้: $form['foo']['bar'] = array( '#type' => 'text_format', '#title' => 'Bar', '#definition' => 'Foo Bar', '#default_value' => variable_get('bar', ''), '#weight' => 1, '#format' => 'filtered_html', '#required' => FALSE, ); สิ่งนี้ไม่ได้ผลนอกกรอบด้วย system_settings_form ($ form) …
19 7  forms  wysiwyg 

1
เข้าร่วมและมองหาค่า NULL
ฉันใช้โมดูลการตั้งค่าสถานะเพื่อให้ผู้ใช้ทำเครื่องหมายคำถามของพวกเขาว่าถูกแก้ไขคล้ายกับการทำงานในไซต์นี้ ฉันจึงต้องการให้ผู้ใช้กรองโพสต์เพื่อแสดงเฉพาะคำถามที่ยังไม่ได้ตอบ นอกจากนี้บางโพสต์อาจไม่ใช่คำถามเลย ดังนั้นพวกเขาไม่สามารถตั้งค่าสถานะ "แก้ไข" แต่พวกเขาไม่ควรปรากฏในผลลัพธ์เมื่อกรองโดยคำถามที่ไม่ได้แก้ไขเท่านั้น ดังนั้นฉันต้องเข้าร่วมตารางโหนดกับอีกสองคน: flag_contentและfield_data_field_question(ตารางหลังนี้เป็นสิ่งที่บอกว่าโพสต์เป็นคำถามหรือไม่) นี่คือรหัสปัจจุบันที่ฉันพยายาม: $query->join('flag_content', 'f', 'f.content_id = n.nid AND f.content_type = "node" AND f.fid = 5'); $query->join('field_data_field_question', 'q', 'q.entity_id = n.nid AND q.field_question_value = 1'); $query->condition('f.fid', 'NULL', 'IS'); $query->condition('q.field_question_value', 'NULL', 'IS NOT'); อย่างไรก็ตามผลลัพธ์นี้มีข้อผิดพลาดต่อไปนี้: PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an …
19 7  database 

4
ฉันจะเพิ่มโหมดมุมมองเพิ่มเติมสำหรับโหนดได้อย่างไร
ฉันกำลังสร้างประเภทเนื้อหาที่กำหนดเอง โดยค่าเริ่มต้นโหนดสนับสนุนโหมดการดูสองโหมดเท่านั้น ( fullและteaser): function mymodule_view($node, $view_mode) { if ($view_mode == 'full') { $node->content['#theme']= 'my_full_node_view_theme'; } if ($view_mode == 'teaser') { $node->content['#theme']= 'my_teaser_node_view_theme'; } return $node; } ฉันต้องการเพิ่มโหมดมุมมองอื่น ๆ สำหรับประเภทโหนดนี้เช่น: small_box small_box_with_user_pic big_box และต้องการแสดงผลโหนดด้วยรหัสดังนี้: $node = node_load($my_nid); $output = drupal_render(node_view($node, 'big_box')); ข้อเสนอแนะใด ๆ
19 7  nodes 

3
ฉันจะขอรับรหัสคำศัพท์เฉพาะทางภาษีจากชื่อได้อย่างไร
ฟังก์ชันเฉพาะในรายการของฟังก์ชัน taxonomy.moduleที่ดูเหมือนว่ามันทำในสิ่งที่ฉันต้องการดูเหมือนจะเป็นฟังก์ชันส่วนตัว ( _taxonomy_get_tid_from_term ) ฉันควรใช้ฟังก์ชันใดถ้าทั้งหมดที่ฉันรู้คือชื่อเทอมอนุกรมวิธานและฉันต้องค้นหา ID ของมัน

5
จัดการโมดูลที่กำหนดเองในการติดตั้งหลาย ๆ
เรามีโมดูลที่กำหนดเองซึ่งใช้สำหรับเว็บไซต์หลายแห่ง โมดูลเหล่านั้นไม่สามารถเผยแพร่เป็นโมดูลที่สนับสนุนได้เช่นเนื่องจากเป็นไคลเอนต์เฉพาะทำให้สมมติฐานที่ใช้ไม่ได้กับโมดูลที่สนับสนุนและอื่น ๆ ฉันรู้เกี่ยวกับความเป็นไปได้ที่จะจัดการกับสิ่งนี้: คัดลอกและวางไว้รอบ ๆ ทำให้เป็นการยากที่จะทำให้โมดูลทันสมัยในการติดตั้งทั้งหมด มีการติดตั้งแบบหลายไซต์ครั้งเดียว แต่ไม่สามารถทำได้ ใช้ submodules git แต่พวกเขาก็น่ารังเกียจมันง่ายที่จะลืมพวกเขาและไม่สนับสนุนเสมอ (เช่น Pantheon) Drush สร้างสคริปต์เพื่อตรวจสอบจากที่เก็บคอมไพล์ทั่วไป สำหรับสิ่งนี้คุณ AFAIK จำเป็นต้องใช้ drush make สำหรับทั้งไซต์และเราไม่ได้ใช้งานเลย http://drupal.org/project/fserver ฉันยังไม่ได้ลองมันเลยมีใครรู้บ้างไหมว่ามันเสถียรเพียงพอหรือไม่ คำอธิบายโครงการไม่ได้มีแนวโน้มมากและไม่มีรุ่นที่ 7.x มีอะไรอีกหรือดีกว่า คุณชอบอะไรและทำไม

1
ตัวกรองบริบทพร้อมมุมมองบล็อก
ฉันมีการดูหน้าเว็บ ("/ ข่าว") พร้อมตัวกรองเชิงบริบทสำหรับหัวข้อ ("ข่าว / การออกแบบ", "ข่าว / การเข้ารหัส" ... ) ซึ่งเป็นคำศัพท์ทางอนุกรมวิธานและสิ่งนี้ใช้ได้ผล เนื่องจากมีการเปลี่ยนแปลงบางอย่างสำหรับชุดอุปกรณ์พกพาฉันต้องใช้มุมมองบล็อกแทนการดูหน้าเว็บ แต่ฉันไม่สามารถใช้งานตัวกรองได้ ด้วยการตั้งค่าตัวกรองแบบเก่าฉันได้รับบทความทั้งหมดของฉันใน "/ news" แต่ตัวกรองที่ฉันใช้เปลี่ยนค่าเริ่มต้นจากตัวกรองเป็น "รหัสคำศัพท์ taxonomy จาก url"; ตอนนี้ฉันเห็นหน้าว่างสำหรับ "/ news" (ตอนนี้เป็นหน้าธรรมดาที่มีมุมมองบล็อกรวมอยู่ด้วย) และ "ไม่พบไซต์" สำหรับ "/ news / design" ฯลฯ ในตัวอย่างของมุมมองทุกอย่างทำงานได้ดี . นี่คือการตั้งค่าสำหรับมุมมอง
19 blocks  views 

4
เหตุใดฉันจึงไม่สามารถลบเนื้อหาบางประเภทได้
ฉันมีเว็บไซต์ Drupal 7 และใต้เมนูประเภทเนื้อหามีเพียงบางประเภทเท่านั้นที่มีลิงก์ 'ลบ' ใต้คอลัมน์ 'การดำเนินงาน' ประเภทเนื้อหาทั้งหมดมีลิงก์สำหรับ 'แก้ไข', 'จัดการฟิลด์' และ 'จัดการจอแสดงผล' แต่มีเพียงบางส่วนเท่านั้นที่มี 'ลบ' ในขณะที่คนอื่นไม่มี ฉันตรวจสอบสิทธิ์ของฉันสำหรับผู้ใช้ของฉันและมีAdminister content types- แต่ดูเหมือนจะเป็นสิทธิ์ระดับโลกหนึ่งรายการสำหรับเนื้อหาทุกประเภทดังนั้นฉันยังไม่เข้าใจว่าทำไมบางคนถึงลบได้ในขณะที่คนอื่นไม่ได้ เหตุใดเนื้อหาบางประเภทเท่านั้นที่มีการลบ
19 7  nodes 

3
เพิ่มคลาสเพื่อสร้างรายการตัวเลือกที่เลือก
ฉันจะเพิ่มคลาสให้กับแท็กตัวเลือกฟอร์มโดยไม่มี JS ได้อย่างไร ในขณะนี้ใน Form API ฉันสามารถผ่านอาเรย์แบบคีย์ได้เช่นนี้ array( '0' => 'option 0', '1' => 'option 1', ) และฉันจะได้รับ html เช่นนี้ <option value="0">option 0</option> <option value="1">option 1</option> มีวิธีการทำอะไรเช่นนี้หรือไม่: array( array( 'value' => 0, 'text' => 'option 0', 'class' => 'bob 0', ), array( 'value' => 1, 'text' => 'option 1', 'class' …
19 theming  forms 

4
รับเฉพาะบางฟิลด์ด้วย EntityFieldQuery หรือไม่
Drupal 7 มีระบบการสืบค้น ORM ที่คล้ายกับ ORM ที่มีแนวโน้มมาก ขณะนี้ฉันเข้าใจวิธีการเลือกโหนด แต่ผลลัพธ์ไม่ได้มีข้อมูลเฉพาะเช่น fileds ฉันกำลังมองหา $query = new EntityFieldQuery(); $entities = $query->entityCondition('entity_type', 'node') ->entityCondition('bundle', 'event') ->propertyCondition('status', 1) ->fieldCondition('field_date', 'value', array('2011-03-01', '2011-03-31'), 'BETWEEN') ->fieldOrderBy('field_date', 'value', 'ASC') ->execute(); ดังนั้นเราจำเป็นต้องโหลดข้อมูลทั้งหมดของโหนดถ้าเราต้องการรับค่าของฟิลด์เดียวเช่น 'field_date' ในตัวอย่างปัจจุบัน $nodes = entity_load('node', array_keys($entities['node'])); หากมีวิธีการรับค่าของเขตข้อมูลแทนการโหลดข้อมูลทั้งหมดของโหนดทั้งหมดเนื่องจากจะกระตุ้นหน่วยความจำเกินพิกัดบางส่วน $nodesFieldDates = ???
19 7  entities 

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