Drupal

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

4
วิธีรับอินสแตนซ์ของเอนทิตีอ้างอิง
field_imageฉันมีวัตถุโหนดกับข้อมูลภาพชื่อ เมื่อฉันทำ $node ->get('field_image') ->first() ->getValue() ฉันได้รับอาร์เรย์ที่มีคุณสมบัติบางอย่างแทนเอนทิตีวัตถุ อาร์เรย์มีลักษณะดังนี้: 'target_id' => string '8' (length=1) 'alt' => string '' (length=0) 'title' => string '' (length=0) 'width' => string '587' (length=3) 'height' => string '458' (length=3) '_loaded' => boolean true '_accessCacheability' => object(Drupal\Core\Cache\CacheableMetadata)[1092] protected 'cacheContexts' => array (size=0) ... protected 'cacheTags' => array …
35 8  entities 

2
ความแตกต่างระหว่างอายุการใช้งานแคชขั้นต่ำและการหมดอายุของหน้าแคช
บนหน้าประสิทธิภาพ Drupal ภายใต้แคช fieldset คุณมีสองตัวเลือก หนึ่งคืออายุการใช้งานแคชขั้นต่ำและอีกอันคือหน้าแคชที่หมดอายุ ความแตกต่างระหว่างสองสิ่งนี้คืออะไร
35 7  caching 

6
ฉันจะหลีกเลี่ยงการตรวจสอบการอัปเดตสำหรับโมดูลเฉพาะได้อย่างไร
ในโครงการปัจจุบันฉันต้องแก้ไขชีวิตจากโมดูลไม่กี่ (ลำดับชั้นโหนด, การเข้าถึง workbench และอีกไม่กี่) ตอนนี้โมดูลเหล่านี้สมบูรณ์แบบอย่างยิ่งสำหรับความต้องการของโครงการและไม่น่าเป็นไปได้ที่จะทำลายการอัปเดตหลักในอนาคต ที่ถูกกล่าวว่าเมื่อแอปมอบให้กับลูกค้าจะสามารถเข้าถึง (ผู้ใช้ 1) เต็มระบบและดังนั้นจึงจะได้รับการเตือนเมื่อโมดูลเหล่านี้มีการปรับปรุงพร้อมใช้งาน และพวกเขาจะอัปเดตพวกเขาไม่ว่าฉันจะขอร้องพวกเขาไม่กี่ครั้งก็ตาม (โอ้ชีวิตง่ายแค่ไหนที่ปราศจากลูกค้า!) มีวิธี (อาจใน.infoไฟล์โมดูล) เพื่อโน้มน้าวให้ผู้จัดการการปรับปรุงไม่ตรวจสอบการปรับปรุงสำหรับโมดูลเหล่านี้หรือไม่ แก้ไข ฉันทราบถึงproject status urlกุญแจที่ใช้ได้สำหรับ.infoไฟล์ดังนั้นฉันเดาว่าฉันสามารถตั้งค่าให้เป็น URL ที่ไม่มีอยู่จริง แต่ฉันควรทำอย่างนี้ค่อนข้างสะอาดถ้าเป็นไปได้
35 7  updating 

5
มีฟังก์ชั่น Drupal API เพื่อรับรายการโหนดตามประเภทหรือไม่?
มีฟังก์ชั่น Drupal API เช่นnode_load()นั้นจะส่งกลับรายการของโหนดตามประเภทที่กำหนดหรือไม่? ฉันพยายาม$nodes = node_load(array("type" => 'student_vote'))แล้ว แต่จะคืนค่าเพียงหนึ่งโหนดเท่านั้น ฉันรู้ว่าฉันสามารถเขียนโค้ดบางอย่างเช่นnode_load()แต่ฉันต้องการที่จะดูว่าอาจมีอะไรแบบนั้นออกมาแล้ว
35 nodes 

5
การใช้ IN clause ใน db_query
ฉันไม่สามารถหาวิธีเพิ่มส่วนคำสั่ง IN ในข้อความค้นหาของฉันได้โดยใช้ตัวยึด ฉันต้องการให้มันเป็นเช่น: $nids = array(1, 2, 3); $result = db_query('SELECT * FROM {node} WHERE nid IN :nids', array(':nids' => $nids)); ไม่พบเอกสารใด ๆ ในภารกิจง่าย ๆ นี้ วิธีที่เหมาะสมในการบรรลุสิ่งนี้คืออะไร?
35 7  database 

5
อัปเดตฟิลด์เป็นกลุ่มหรือไม่
ฉันได้เพิ่มฟิลด์ (ข้อความ) ใหม่ลงในประเภทเนื้อหา Drupal 7 ที่มีหลายโหนดอยู่แล้ว ฉันจะกรอกข้อมูลฟิลด์ด้วยค่าเริ่มต้นสำหรับโหนดเหล่านี้ทั้งหมดได้อย่างไร
35 7  entities 

11
รับผู้ใช้ทั้งหมดที่มีบทบาทเฉพาะโดยใช้ EntityFieldQuery
ฉันคิดว่านี่เป็นงานง่าย แต่ดูเหมือนจะไม่มีวิธี Drupal สำหรับสิ่งนี้ ฉันมาถึงเท่าที่รู้ว่าฉันต้องใช้EntityFieldQueryสิ่งนี้เพราะ API บอกว่าเงื่อนไขสำหรับuser_load_multiple()เลิกใช้แล้ว ดังนั้นฉันจึงลองทำสิ่งนี้: $query = new EntityFieldQuery; $query ->entityCondition('entity_type', 'user') ->propertyCondition('rid',array(1,2,3); $result = $query->execute(); แต่ฉันได้รับสิ่งนี้: PDOException: SQLSTATE [42S22]: ไม่พบคอลัมน์: 1054 คอลัมน์ที่ไม่รู้จัก 'users.rid' ใน 'where clause': SELECT users.uid AS entity_id,: entity_type AS เอนทิตีตี้, NULL AS revision_id,: บันเดิล AS บันเดิลจากผู้ใช้ {ผู้ใช้} WHERE (users.rid =: db_condition_placeholder_0); Array ([: …
35 7  entities 

9
ฉันจะเปิดใช้งานโหมดผู้พัฒนา / ดีบักได้อย่างไร
การติดตั้ง drupal 8 คอร์ (ใช้โพรไฟล์มาตรฐาน) เมื่อใดก็ตามที่ฉันได้รับข้อยกเว้น / ข้อผิดพลาดฉันได้รับหน้าว่างด้วย "เว็บไซต์พบข้อผิดพลาดโปรดลองอีกครั้งในภายหลัง" ข้อความ (ตามภาพด้านล่าง) และไม่มีรายละเอียด / ติดตามเกี่ยวกับข้อผิดพลาด
35 8  debugging 

7
สร้างโหนดโดยทางโปรแกรม
ฉันจะสร้างโหนดด้วยโปรแกรมโดยใช้ฟิลด์วันที่และรูปภาพได้อย่างไร ฉันรู้ว่าฉันสามารถทำได้ใน Drupal 7 ด้วยรหัสต่อไปนี้ global $user; $node = new stdClass(); $node->title = "YOUR TITLE"; $node->type = "YOUR_NODE_TYPE"; node_object_prepare($node); // Sets some defaults. Invokes hook_prepare() and hook_node_prepare(). $node->language = LANGUAGE_NONE; // Or e.g. 'en' if locale is enabled $node->uid = $user->uid; $node->status = 1; //(1 or 0): published or not …
34 8  nodes 


2
วิธีการเปลี่ยนจากการเปิดตัวโมดูลที่แนะนำไปเป็นรุ่น dev?
ตัวอย่างเช่นปัจจุบันฉันใช้โมดูลGeofield ฉันใช้เวอร์ชั่น: 7.x-1.0-beta2 (2011-Nov-17) ตอนนี้ฉันเห็นเวอร์ชันการพัฒนามีฟังก์ชั่นบางอย่างที่ฉันต้องการ ฉันจะ "อัพเกรด" อย่างถูกต้องและปลอดภัยเป็นเวอร์ชันการพัฒนาของโมดูลได้อย่างไร 7.x-1.x-dev (2012-Jan-10) สิ่งที่ฉันทำอยู่ในปัจจุบันคือลบ geofield ออกจากเนื้อหาทุกประเภทปิดการใช้งานโมดูล geofield ถอนการติดตั้งโมดูล geofield ลบโมดูล geofield ทางกายภาพออกจากเซิร์ฟเวอร์ของฉันจากนั้นดาวน์โหลดและติดตั้งเวอร์ชัน dev ดูเหมือนว่าจะใช้งานได้ แต่ฉันสงสัยว่ามีเวิร์กโฟลว์ที่มีประสิทธิภาพมากกว่านี้หรือไม่ (ฉันติดตั้ง drush แล้วดังนั้นฉันจึงเปิดรับวิธีแก้ปัญหาที่เกี่ยวข้องกับ drush)
34 7  drush  updating 

4
ฉันจะเปลี่ยนพฤติกรรมการโหลด ajax ใน Views ได้อย่างไร
ฉันมีมุมมองที่มีตัวกรองที่เปิดเผยบางส่วนในบล็อก มันใช้ AJAX และคุณสมบัติส่งอัตโนมัติเพื่อให้มีการโหลดมุมมองใหม่ทันทีที่มีการเปลี่ยนตัวเลือกตัวกรอง ในช่วงเวลาสั้น ๆ ระหว่างการเลือกตัวเลือกและมุมมองที่ถูกโหลดใหม่เครื่องสั่น AJAX สีน้ำเงินที่คุ้นเคยจะปรากฏขึ้นที่ด้านล่างของแบบฟอร์ม (ฉันคิดว่าที่ปุ่มส่งซ่อนอยู่ในขณะนี้) ฉันรู้ว่าฉันสามารถปรับแต่งภาพนี้ได้โดยการแทนที่ CSS สำหรับองค์ประกอบการสั่น แต่ฉันไม่ต้องการใช้เลย สิ่งที่ฉันทำค่อนข้างดีคือจางหายไปในแบบฟอร์มตัวกรองที่เปิดเผยชั่วคราว (และมุมมองหลักเช่นกัน) โดยใช้ภาพเคลื่อนไหว jQuery จากนั้นพวกเขาจะจางหายไปเมื่อการโทร AJAX เสร็จสมบูรณ์ หากไม่เป็นเช่นนั้นฉันต้องการใช้วิธีการเดียวกับที่โมดูลวิว UI ใช้เมื่ออัปเดตนั่นคือการวางไอคอนนี้ไว้ที่กลางหน้า: เนื่องจากว่ามีอยู่แล้วภายในฉันจึงสันนิษฐานว่าจะมีการตั้งค่าบางแห่งเพื่อเปลี่ยนสไตล์ / ตำแหน่งของพฤติกรรมการโหลดนี้ ไม่มีโชคเช่นนั้น ฉันจะใช้วิธีเหล่านี้ได้อย่างไร ฉันใช้ Drupal 7 กับ Views 7.x-3.3
34 7  views  ajax  javascript 


9
อะไรคือความสมดุลที่ดีระหว่างการใช้ฟิลด์ซ้ำกับการสร้างฟิลด์ใหม่ในบริบทของการปรับขนาดฟิลด์
ฉันอ่านวลีต่อไปนี้บนเว็บไซต์: แทนที่จะเพิ่มเขตข้อมูลใหม่ลงในประเภทเนื้อหาการเพิ่มเขตข้อมูลที่มีอยู่เป็นตัวเลือกที่ดีกว่าเพื่อลดความซับซ้อนของระบบและปรับปรุงความสามารถในการปรับขยาย และมีข้อสงสัยเกิดขึ้น ในระบบที่เรากำลังพัฒนาเรามีความเป็นไปได้ที่จะนำเขตข้อมูลมาใช้ซ้ำในประเภทเนื้อหา 3 หรือ 4 ประเภท แต่แทนที่จะปรับปรุงความสามารถในการปรับขนาดตามคำพูดที่บอกว่าฉันกลัวว่ามันจะลดลงเพราะตารางของเขตข้อมูลจะกลายเป็นคอขวดเร็วขึ้น (อย่างน้อยนั่นคือเหตุผลของฉันในกรณีนี้เนื่องจากค่าทั้งหมดของฟิลด์นั้นเข้าด้วยกันจะเป็นสองสามล้านต่อปีและนั่นจะทำให้ตารางใหญ่เกินไป) คุณเห็นด้วยไหม? จะมีจำนวนแถวเท่าไรที่เหมาะสมที่สุดสำหรับการออกแบบเมื่อมีเป้าหมาย? ด้วยวิธีนี้เราสามารถตัดสินใจได้ว่าจะใช้ฟิลด์ใหม่เมื่อใดและจะสร้างใหม่เมื่อใด (แม้ว่าจะมีโอกาสนำมาใช้ซ้ำ)

3
ค้นหา API กับ Apache Solr Search
ฉันใช้โมดูลApache Solr Searchใน Drupal 6 และกำลังค้นหา Search APIสำหรับการติดตั้ง Drupal 7 ฉันได้เห็นการสนทนาที่นี่แต่ฉันกำลังมองหาเหตุผลใด ๆ สำหรับการเลือกอย่างใดอย่างหนึ่ง มีเหตุผลที่จะเลือกอย่างใดอย่างหนึ่งมากกว่าที่อื่น ๆ ? ถ้าเป็นเช่นนั้นทำไมหรือเพราะเหตุใด ฉันได้ยินมาว่าอาจมีปัญหาความซับซ้อนและ / หรือปัญหาด้านประสิทธิภาพการทำงานกับ Search API มันเป็นเรื่องจริงเหรอ?
34 search 

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