Drupal

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

1
db_insert ปลอดภัยหรือไม่?
ฉันใช้วิธี Drupal 7 db_insertเพื่อแทรกข้อมูลลงในตารางที่กำหนดเองในฐานข้อมูล Drupal ฉันได้อ่านว่านี่เป็นวิธีที่ต้องการ แต่ฉันได้อ่านรหัสและ doco แล้วและฉันไม่สามารถเห็นได้ว่ามีการแยกวิเคราะห์ค่าใดหรือบอกฉันว่าค่าเหล่านี้ปลอดภัย ค่าบางอย่างมาจากผู้ใช้ดังนั้นฉันต้องตรวจสอบการโจมตี SQL Injection นี่คือตัวอย่างที่ฉันกำลังอ่านซึ่ง Drupal 6 วิเคราะห์ค่าและรุ่น drupal 7 ไม่ได้ <?php // Drupal 6 version db_query('INSERT INTO {vchess_games} (gid, timestamps, white, black, state, board_white, board_black) ' . "VALUES ('%s', '%s', '%s', '%s', '%s', '%s', '%s')", $gid, $timestamps, $game['white'], $game['black'], $state, $board_white, …

5
นำเข้าไฟล์ po โดยใช้ Drush
ฉันมีเว็บไซต์ประมาณ 20 แห่งที่มีคำแปลทั่วไป ฉันไม่ต้องการเข้าไปเป็นผู้ดูแลของแต่ละไซต์ทุกครั้งที่มีการอัพเดทไฟล์ po เป็นไปได้หรือไม่ที่จะนำเข้าไฟล์ po โดยใช้ Drush
15 drush  i18n-l10n 

1
เมื่อใช้ฟีเจอร์เพื่อจัดการการปรับใช้ฉันควรแบ่งฟังก์ชั่นของฉันออกเป็นฟีเจอร์เล็ก ๆ น้อย ๆ หรือฟีเจอร์ใหญ่หนึ่งอัน?
ฉันค่อนข้างใหม่ที่จะมีโมดูลและฉันได้อ่านคำแนะนำเกี่ยวกับการขัดแย้งออนไลน์ไม่ว่าจะเป็นวิธีที่ง่ายที่สุดในการรักษา A) หนึ่งคุณลักษณะใหญ่หรือ B) ขนาดเล็กหลายคุณสมบัติแล้ว " คุณลักษณะที่ควบคุม " โมดูลประเภทที่แสดงรายการคุณสมบัติทั้งหมดที่มีขนาดเล็ก เป็นการพึ่งพา เล็กน้อยเกี่ยวกับสถานการณ์เฉพาะของฉัน: ฉันกำลังใช้local development -> dev server -> staging server -> live serverเวิร์กโฟลว์ ไซต์นี้โดยเฉพาะจะเป็นเว็บไซต์ประเภทเดียวที่ฉันเคยพัฒนา ฉันไม่ได้ตั้งใจจะใช้featuresฉันสร้างสำหรับเว็บไซต์นี้ในเว็บไซต์อื่น ๆ สิ่งนี้ทำให้ฉันโน้มตัวไปสู่การทำทุกอย่างในฟีเจอร์ที่ยิ่งใหญ่เพราะฉันเคยมีปัญหาในอดีตที่ฉันตั้งใจกำหนดกฎเดียวกันในหลาย ๆ ฟีเจอร์และตกอยู่ในปัญหา อย่างไรก็ตามในแง่ของโครงสร้างสิ่งนี้ดูเหมือนผิดสำหรับฉัน - มีคุณสมบัติ / ฟังก์ชั่นที่แตกต่างกันดังนั้นพวกเขาควรจะแบ่งออกเป็นคุณสมบัติแยกต่างหาก ในทางกลับกันฉันรู้สึกอยากทำสิ่งนี้ฉันอาจแค่สร้างงานเพิ่มเติมและค่าใช้จ่ายสำหรับตัวเองที่จะไม่เกิดประโยชน์กับใครเลย วิธีการใดที่รักษาได้ง่ายกว่าในทางปฏิบัติ - หนึ่งในคุณสมบัติที่ยิ่งใหญ่หรือที่เล็กกว่านั้น?
15 7  features 

2
ฉันจะใช้ไฟล์แก้ไขได้อย่างไร [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัพเดทคำถามดังนั้นจึงเป็นเรื่องในหัวข้อคำตอบ Drupal ปิดให้บริการใน5 ปีที่ผ่านมา ฉันดาวน์โหลดไฟล์แพตช์จากโมดูลตัวส่งเมลและต้องใช้การเปลี่ยนแปลงเพื่อแก้ไขปัญหาของบัญชี pop3 ที่ไม่ได้ลบอีเมลหลังจากดาวน์โหลด (นำเข้า) ฉันจะติดตั้งได้อย่างไร

4
ชุดเมนูขั้นสูงใน Drupal 7
ฉันได้ทำการท่องเว็บแล้วและมันก็ไม่ชัดเจนว่าจะสร้างธีมเมนูที่กำหนดเองได้อย่างไร ฉันค้นหาเป็นเวลาหลายชั่วโมงและไม่พบโพสต์เดียวที่แสดงกระบวนการตั้งแต่ต้นจนจบการสร้างเมนูและปรับแต่งผลลัพธ์ของมัน ดูเหมือนว่านี่เป็นกระบวนการหลายขั้นตอน: สร้างเมนูผ่านอินเทอร์เฟซ Drupal สร้างฟังก์ชั่นชุดรูปแบบในtemplate.phpไฟล์ของคุณเพื่อจัดรูปแบบผลลัพธ์ แสดงเมนูนี้เป็นไฟล์เทมเพลต (อย่างใด) โดยเพิ่มเป็นตัวแปร เรียกใช้themeฟังก์ชันบนเมนูในไฟล์เทมเพลต 1 ก็พอง่ายที่จะทำปัญหาที่ผมวิ่งเข้ามาอยู่กับ 2, 3, และ 4 $main_menuมองไปที่แม่แบบหน้าเริ่มต้นผมเห็นว่ามันเสี่ยงเมนูหลักในตัวแปร หลังจากนั้นหน้าคุณสามารถเห็นฟังก์ชั่นtheme('links__system_main_menu', array('links' => $main_menu...ซึ่งหมายความว่ามันกำลังมองหาฟังก์ชั่นชุดรูปแบบที่มีชื่ออย่างเหมาะสมบางแห่งและใช้มันเพื่อสร้างผลลัพธ์ ฉันรู้ว่าถ้าผมวางfunction theme_links__system_main_menu(&$variables) {...}ในแฟ้มของฉัน template.php Drupal function theme_menu_links(&$variables) {...}จะใช้ฟังก์ชั่นที่ตรงข้ามกับ สิ่งที่ฉันไม่รู้คือวิธีที่ Drupal เชื่อมโยงเมนูที่กำหนดเองที่ฉันสร้างขึ้นด้วยฟังก์ชันนั้น พูด Let 's My Menuเช่นที่ฉันสร้างเมนูที่เรียกว่า ฉันสามารถสร้างฟังก์ชั่นต่อไปนี้ในtemplate.phpไฟล์ของฉันและจัดรูปแบบผลลัพธ์ของเมนูนั้นได้หรือไม่?function theme_links__system_my_menu(&$variables) {...} นอกจากนี้วิธีที่ทำให้เมนูกำหนดเองนั้นพร้อมใช้งานสำหรับไฟล์เทมเพลต Drupal เปิดเผย$main_menuตัวแปรให้กับ page.tpl.php อย่างไร ฉันคิดว่ากุญแจที่ฉันหายไปที่นี่คือวิธีฝังตัวแปรที่แสดงเมนูที่กำหนดเองลงในหน้าเทมเพลต ส่วนใหญ่แม้ว่าฉันจะสูญเสียอย่างสมบูรณ์กับสิ่งที่ต้องทำหลังจากสร้างเมนู ขอบคุณสำหรับความช่วยเหลือ แก้ไข:อาจจะโพสต์สิ่งที่ฉันทำ ตามความคิดเห็นของฉันไปยัง …
15 7  routes  theming 

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

5
การเปลี่ยน URL ของตัวกรองที่เปิดเผย
เมื่อฉันใช้ตัวกรองแบบเปิดเผยตัวเลือกตัวกรองจะถูกส่งผ่านเป็นคู่ชื่อ / ค่าใน URL ตัวอย่างเช่น: members?field_a=valuea&field_b=valueb ฉันจะตั้งค่าให้ใช้ URL สไตล์ "pathauto" ได้มากขึ้น: members/valuea/valueb
15 7  views 

3
วิธีเพิ่ม 'ยินดีต้อนรับ {ชื่อผู้ใช้}' ในบล็อกด้วย Drupal 7
ฉันกำลังแทนที่เว็บไซต์ drupal 6 โดย drupal 7 หนึ่งด้วยเนื้อหาเดียวกัน บนเว็บไซต์ Drupal 6 มีบล็อกที่ปรากฏขึ้นเมื่อคุณเข้าสู่ระบบส่วนหัวจะแสดงข้อความ 'ยินดีต้อนรับ {ชื่อผู้ใช้}' ในบล็อกนั้น ฉันกำลังมองหาวิธีที่จะทำเช่นนั้นใน Drupal 7 ฉันพยายามทำสิ่งนี้กับโมดูล 'Token' แต่ฉันไม่ทำงาน วิธีที่ดีที่สุดในการทำเช่นนี้คืออะไร?
15 blocks 

7
โมดูลจดหมายข่าวฉบับใดที่จะตรงกับความต้องการของฉัน
ฉันพยายามใช้จดหมายข่าวเพื่อให้ผู้ใช้ของฉันสมัครและฉันสังเกตเห็นว่ามีโมดูลจดหมายข่าวที่แตกต่างกันมากมาย ฉันกำลังมองหาสิ่งที่จะทำให้ฉัน: ส่งจดหมายข่าวรายสัปดาห์พร้อมสรุปยอดโพสต์ 5-10 อันดับแรกจากสัปดาห์นั้น อนุญาตให้ฉันมีจดหมายข่าวหลายฉบับสำหรับเนื้อหา "หมวดหมู่" ที่แตกต่างกันในเว็บไซต์ของฉัน (ฉันมีหมวดหมู่ "หมวดหมู่คำศัพท์" ซึ่งฉันต้องการให้ผู้ใช้สามารถเลือก "หมวดหมู่" ที่พวกเขาต้องการสมัครรับข้อมูล) ให้ฉันปรับแต่งรูปลักษณ์ของจดหมายข่าว ฉันลองเรียบง่ายแล้ว แต่ดูเหมือนไม่สามารถทำสิ่งที่ฉันต้องการได้ ฉันรู้สึกว่านี่อาจจะเกินกว่าที่มันจะทำได้
15 7  emails 

2
ต้องการโซลูชัน Google แผนที่ที่เรียบง่าย หายไปในเขาวงกตของโมดูล
ก่อนอื่นให้ฉันแค่บอกว่าฉันไม่สนใจ Drupal รุ่นไหนที่ฉันต้องใช้ (6 หรือ 7) ฉันมีประสบการณ์กับทั้งสองเวอร์ชันฉันไม่จำเป็นต้องทำงานกับ Google Maps จนถึงตอนนี้ ความต้องการพื้นฐานค่อนข้างง่าย (จากสิ่งที่ฉันเข้าใจ): 1) มีโหนดสำหรับทุก บริษัท ที่ฉันต้องการเพิ่มในแผนที่ 2) ในรูปแบบการแก้ไขโหนดฉันต้องการเพิ่มที่อยู่และเพิ่มมันลงใน google แผนที่ที่กำหนดเอง (หรืออาจจะคัดลอกวางลิงค์ของที่ตั้งของแผนที่ google) 3) มีฟังก์ชั่นการค้นหาเพื่อค้นหา บริษัท ที่ใกล้ที่สุดสำหรับสถานที่ที่กำหนด มีโมดูลที่แตกต่างกันออกไปมากมายและฉันอยากจะชี้ไปยังทิศทางที่ถูกต้องแทนที่จะมองผ่าน15 โมดูลที่แตกต่างกันเพื่อที่จะตระหนักว่าในที่สุดฉันก็ต้องเขียนโมดูลที่กำหนดเองสำหรับตัวเอง ขอบคุณล่วงหน้า.
15 7  google-maps 

4
ฉันจะกรองเฉพาะคำรูตในคำศัพท์ในมุมมองได้อย่างไร
ฉันมีคำศัพท์ที่มีโครงสร้างดังนี้: รูตอัลฟ่า ภาคเรียนที่ 1 ภาคเรียนที่ 2 Subterm Alpha 1 Root Beta Root Gamma เทอมแกมม่า 1 ภาคเรียนแกมม่า 2 ฉันจะกรองมุมมองเพื่อแสดงเฉพาะคำศัพท์ของคำศัพท์ได้อย่างไร ขณะนี้มุมมองของฉันกำลังแสดงคำศัพท์รูทเช่นเดียวกับลูก ๆ (คำว่า * *) ไปข้างหน้าจากที่ฉันต้องการผ่านการโต้แย้ง 'รูตอัลฟ่า' (หรือ tid ของมันหรืออะไรก็ตามจากบริบท) และจากนั้นให้มันกรองไปที่เด็ก ๆ โดยตรงของรูตอัลฟ่า (คำศัพท์อัลฟ่า *) กรองความลึกใด ๆ เพิ่มเติมที่จะเป็นโบนัส ฉันสามารถทำให้มันทำงานได้ถ้าฉันใส่เงื่อนไขทั้งหมดของฉันไว้ในเทอมเดียวเพื่อให้คำศัพท์กลาย True Root รูตอัลฟ่า ภาคเรียนที่ 1 ภาคเรียนที่ 2 Subterm Alpha 1 Root Beta Root …

5
วิธีการแสดงความคิดเห็นโหนดใน node.tpl?
ฉันมีความคิดที่สดใสในการเปลี่ยนแปลงการอนุญาตของผู้ใช้ดังนั้นแขกจึงไม่สามารถเห็นความคิดเห็นบนโหนด ฉันไม่มีปัญหากับการดูเว็บไซต์ของฉันเนื่องจากพวกเขาสามารถเห็นได้อย่างชัดเจนว่ามีความคิดเห็นเกี่ยวกับโหนดและพวกเขาจะมีแนวโน้มที่จะลงทะเบียนมากขึ้น ปัญหาดูเหมือนว่าจะเกิดขึ้นเมื่อพวกเขามาถึงเว็บไซต์ของฉันโดยตรงไปยังโหนดพวกเขาไม่เห็นความคิดเห็นใด ๆ และคิดว่า "นั่นเป็นเรื่องที่น่ายินดีมาก มีวิธีที่ฉันสามารถแสดงจำนวนความคิดเห็นด้านล่างโหนดหรือไม่
15 theming  comments 

3
Drupal 7 แท็กยอดนิยมในรายการบล็อก: อย่างไร?
ฉันพบว่า Tagadelic ใช้งานได้ดีมากนอกกรอบและสำหรับชั่วโมงการวิจัยและความรู้ของฉันคุณลักษณะของ plug & play เพียงหนึ่งเดียวสำหรับ tag cloud ที่ใช้ได้กับ Drupal 7 นี่เป็นปัญหาเดียวที่ฉันพบ - ฉันต้องการฟังก์ชั่นของ Tagadelic แต่ไม่ต้องการในรูปแบบ "คลาวด์" ฉันต้องการแท็กคลาวด์ของฉันจะอยู่ในรายการจากที่นิยมมากที่สุดไปเป็นที่นิยมน้อยที่สุดและไม่มีการเปลี่ยนแปลงขนาด ตัวอย่างเช่น: รายการ x รายการ h รายการ j รายการ o รายการ 4 เห็นได้ชัดว่าไอเท็มที่ได้รับความนิยมมากที่สุดคือ 'ไอเท็ม x' และไอเท็มที่ได้รับความนิยมน้อยที่สุดคือ 'ไอเท็ม 4' ฉันสามารถแก้ไข Tagadelic ให้กับสิ่งนี้ได้เพราะฉันรู้ว่ามันต้องใช้ CSS มากกว่า หรือมีตัวเลือกที่ดีกว่า Tagadelic
15 7 

2
เลือกเขตข้อมูลจากสองตารางโดยใช้ db_select ()
ฉันกำลังใช้db_select()และฉันไม่เข้าใจไวยากรณ์ของfields()วิธีการ ฉันกำลังใช้join()เพื่อเข้าร่วมตารางอื่น ดังนั้นสำหรับตารางtและnฉันต้องการทำอะไรเช่น SELECT t.tid, t.field1, t.field2, n.title, n.author FROM table t INNER JOIN node n ON t.nid = n.nid; ฉันมี $results = db_select('table', 't') ->fields( ... ) ->join('node', 'n', 'n.nid = t.nid') ->execute(); แต่อย่างที่คุณเห็นฉันหลงfields()ทาง ตัวอย่างที่ฉันเห็นเฉพาะระบุเขตข้อมูลสำหรับหนึ่งตาราง: ->fields('t', array('tid', 'field1', 'field2')) ไวยากรณ์ที่ฉันต้องการใช้คืออะไร
15 database 

6
อัพเดตโหนดทั้งหมดด้วยฟิลด์ดีฟอลต์หลังจากเพิ่มฟิลด์ใหม่ให้กับชนิดเนื้อหา
ฉันมีชนิดเนื้อหาที่มีอยู่แล้วและมีจำนวนโหนด ฉันเพิ่งเพิ่มฟิลด์บูลีนใหม่ที่มีค่าเริ่มต้นเป็น "ปิด" อย่างไรก็ตามจนกว่าฉันจะบันทึกแต่ละโหนดอีกครั้งค่าเริ่มต้นจะไม่ถูกตั้งค่าดังนั้นมุมมองที่ควรแสดงเฉพาะโหนดเหล่านั้นที่เขตข้อมูลใหม่ใช้ค่าเริ่มต้นว่างเปล่าในขณะนี้ ฉันจะอัพเดตโหนดที่มีอยู่ซึ่งสร้างขึ้นก่อนที่จะเพิ่มฟิลด์เพื่อตั้งค่าฟิลด์นั้นเป็นค่าเริ่มต้นได้อย่างไร
15 7  entities 

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