คำถามติดแท็ก 7

แท็กเวอร์ชันควรใช้สำหรับคำถามที่ใช้กับเวอร์ชันเท่านั้นไม่ใช่เพื่อบอกว่ามีการใช้เว็บไซต์รุ่นใด

2
วิธีการเผยแพร่โหนดที่ไม่ได้เผยแพร่โดยทางโปรแกรม
ฉันมีโหนดที่ไม่เผยแพร่ซึ่งฉันมีโหนด ID ของพวกเขา ฉันจะเผยแพร่ทางโปรแกรมได้อย่างไร ถูกต้องหรือไม่เพื่อให้บรรลุในโมดูลที่กำหนดเองโดยใช้แบบสอบถามดังต่อไปนี้ db_query("UPDATE {node} SET status = 1 WHERE nid = %d", $nid)
16 7  database 

2
ทำความเข้าใจเกี่ยวกับการจัดการเซสชันของ Drupal และการตรวจสอบผู้ใช้
ฉันมีข้อกำหนดที่ฉันต้องแทนที่การตรวจสอบผู้ใช้เริ่มต้นด้วยการตรวจสอบของเซิร์ฟเวอร์กลางเช่นเซิร์ฟเวอร์ SSO ด้วยการแก้ไขข้อบกพร่อง Drupal ฉันรู้ว่าการจัดการเซสชันทั้งหมดเกิดขึ้นในincludes/session.incไฟล์ ฉันต้องการตรวจสอบสิทธิ์ตามที่แสดงในภาพ: สถานการณ์: เข้าสู่ระบบ รายละเอียดของขั้นตอนจะเป็น: แทนที่ฟอร์มล็อกอินเพื่อส่งชื่อผู้ใช้และรหัสผ่านไปยังเซิร์ฟเวอร์ SSO ( ไม่ใช่บน Drupalแต่เป็นบน. NET) ตรวจสอบผู้ใช้บนเซิร์ฟเวอร์ SSO โดยใช้ฐานข้อมูลของไซต์นั้น และส่งคำตอบกลับไปยังหน้า PHP ที่กำหนดเองของเว็บไซต์ของฉัน (หรือแบบฟอร์มโดยโมดูล?) ใช้การตอบกลับระบุผู้ใช้ในตารางผู้ใช้และสร้างเซสชันสำหรับผู้ใช้นั้นโดยไม่ตรวจสอบรหัสผ่าน (เพราะจะหมายถึงการพิสูจน์ตัวตนสองครั้ง) โดยค่าเริ่มต้น Drupal ชุดคุกกี้ที่มีชื่อของตัวแปรและมีความคุ้มค่า$insecure_session_name $sidฉันต้องการ Drupal ไม่ให้ตั้งค่าคุกกี้ที่นี่แทนส่งค่าของตัวแปรไปยังเซิร์ฟเวอร์ SSO เซิร์ฟเวอร์ SSO จะรับค่าสร้างคุกกี้และวางในโดเมนหลักdomain.com(เพื่อเตือนให้ทั้งคู่my websiteและsso serverอยู่ในโดเมนย่อยของโดเมนหลักซึ่งไม่ได้อยู่ใน Drupal ด้วย) จากนั้นเว็บไซต์ drupal สามารถเข้าสู่ระบบโดยใช้คุกกี้นั้น ฉันรู้ว่ามันเป็นคำถามที่ยากมากฉันแค่มองหาพอยน์เตอร์ว่าจะเริ่มอย่างไรดี? ตามที่พวกเขาพูดว่า "คุณไม่ควรแฮ็คหลัก" ดังนั้นคำถามของฉันคือ: ฉันควรค้นหาเพื่อทำความเข้าใจว่า Drupal authentication และการจัดการเซสชันทำงานในเชิงลึกได้อย่างไร มีวิธีที่ฉันสามารถเรียกใช้ฟังก์ชั่นในการincludes/session.incใช้ …

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

1
จะเปิดเผยตารางที่ไม่ใช่ Drupal ใน Views ได้อย่างไร
ฉันสงสัยว่าวิธีที่ดีที่สุดในการอนุญาตให้โมดูลViewsเข้าถึงตารางภายนอกไม่ใช่ใน Drupal คืออะไร ฉันลองโมดูลข้อมูลแต่ไม่อนุญาตให้ใช้ประเภทข้อมูลวันที่และเวลา
16 7  views  database 

2
วิธีการใช้ตัวจัดรูปแบบฟิลด์สำหรับคุณสมบัติเอนทิตี
ฉันสร้างที่กำหนดเองนิติบุคคลใช้Entity APIที่มีคุณสมบัติบางอย่างที่กำหนดไว้ในhook_schema()และประกาศในentityPropertyInfo(), EntityDefaultMetadataControllerการขยายชั้นเรียน จนถึงตอนนี้ดีมาก ตอนนี้ผมต้องการให้ผู้ใช้สามารถปรับแต่งถ้าและวิธีการคุณสมบัติเหล่านี้ได้แสดงเมื่อดูหน่วยงานดังนั้นผมจึงดำเนินการhook_field_extra_fields ()และประกาศให้พวกเขา จากนั้นในการควบคุมของฉันซึ่งทอดตัวEntityAPIControllerฉันเพิ่มคุณสมบัติไปยังอาร์เรย์ $ เนื้อหาในbuildContent()ขณะที่ระบุไว้ที่นี่ มันใช้งานได้ค่อนข้างดีและมีการแสดงคุณสมบัติและเคารพการสั่งซื้อและการมองเห็นใน "จัดการจอแสดงผล" อย่างไรก็ตามฉันไม่สามารถหาวิธีเพิ่มการตั้งค่าใน Manage Display เพื่อปรับแต่งการวางตำแหน่งฉลาก ( inline/above/hidden) และที่สำคัญกว่านั้นคือวิธีระบุ formatters แบบกำหนดเองสำหรับคุณสมบัติเหล่านี้ เบาะแสใด ๆ
16 7  entities 

4
bootstrap drupal ถูกต้องสำหรับไฟล์ PHP แบบสแตนด์อโลนหรือไม่
นี่คือสิ่งที่ฉันมีตอนนี้: <?php define('DRUPAL_ROOT', '/var/www/clients/client1/web15/web'); include_once(DRUPAL_ROOT . '/includes/bootstrap.inc'); drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL); // drupal_flush_all_caches(); $users = views_get_view_result('userlist', 'uid_list'); $i = 0; foreach ($users as $user) { $filename = 'sites/default/files/generated_pdfs/individual_pdf_report_' . $user->uid . '.pdf'; generate_employee_pdf($user->uid, $filename); error_log('Generated ' . $filepath); $i++; } // create object $zip = new ZipArchive(); // open archive if ($zip->open("sites/default/files/generated_zips/individual-reports.zip", ZIPARCHIVE::CREATE) …
16 7  bootstrapping 

2
ฉันจะเปลี่ยนเครื่องมือจัดการการส่งฟอร์มได้อย่างไร
ด้วยเหตุผลบางอย่างฉันต้องแทนที่อักขระบางตัว (ถ้ามี) ในทุก ๆ textfields ในรูปแบบใด ๆ ก่อนที่พวกเขาจะถูกเก็บไว้ในฐานข้อมูล กล่าวอีกนัยหนึ่งฉันต้องการตะขอที่ฉันสามารถรับข้อมูลที่ส่งมาทั้งหมดและแทนที่ตัวละครของพวกเขา ฉันพบวิธีแก้ปัญหานี้: function hook_form_alter($form, $form_state, $form_id) { $form['#submit'] = 'my_custom_submission_function'; } แต่นี่ไม่ใช่ความคิดที่ดีเพราะฉันต้องดูแลความคืบหน้าของการส่งที่เหลือด้วย ฉันต้องการแทนที่ตัวละครบางตัว มีเบ็ดทำเช่นนี้? การแก้ปัญหาคืออะไร?
16 7  hooks  forms 

3
ได้รับ ID ไฟล์ (fid) ฉันจะรับ HTML ที่แสดงถึง fid นั้นได้อย่างไร
ฉันกำลังมองหาที่จะทำอะไรเช่นนี้ $fid = 15; $file = (array)file_load($fid); $content = drupal_render($file); echo $content; file_load () drupal_render () และโดยเฉพาะ FID นี้มาจากรุ่น 7.x-2.x ของโมดูลสื่อ
16 7  files  theming 

7
ชุดรูปแบบหน้าเช็คเอาต์ใน Drupal Commerce
ฉันจะจัดหน้ารถเข็นและชำระเงินใน Drupal commerce ได้อย่างไร ฉันได้ตั้งค่าเนื้อหาบัญชีการเรียกเก็บเงินและการชำระเงิน มีไฟล์ -. tpl.php ที่จะสร้างหรือไม่?
16 7  theming  commerce 

2
เปลี่ยน $ form_state ในการโทรกลับ AJAX
ฉันกำลังสร้างแบบฟอร์มที่ใช้'#ajax'แอตทริบิวต์API แบบฟอร์มและฉันต้องทำการเปลี่ยนแปลง$form_stateเมื่อกดปุ่มเปิดใช้งาน AJAX นี่คือสิ่งที่ฉันได้รับ: ภายในฟังก์ชันตัวสร้างแบบฟอร์มของฉัน: ... $form['some_fieldset']['add_more'] = array( '#type' => 'button', '#value' => t('Add more rows'), '#ajax' => array( 'wrapper' => 'some-fieldset', 'callback' => 'my_module_settings_ajax', 'method' => 'replace', 'effect' => 'fade', ), ); ... และนี่คือฟังก์ชันการเรียกกลับ: function my_module_settings_ajax($form, $form_state) { // Make a change to $form_state if ($form_state['some_fieldset']['add_more']) { $form_state['values']['some_fieldset']['table'][] …
16 7  forms  ajax 

3
การตั้งค่า APC ที่ดีที่สุดเพื่อลดเวลาในการเรียกใช้เพจ
ฉันมี Drupal 7, apc พร้อม php-fpm และ apache ที่อยู่ด้านหลังวานิชและ RAM 512 เมกะไบต์ ฉันวัดเวลาดำเนินการเพจด้วยโมดูล devel เวลาแบบสอบถามฐานข้อมูลต่ำ (62ms) เมื่อเทียบกับเวลาดำเนินการหน้าซึ่งเป็น 854 ms นั่นหมายความว่ามีปัญหากับการตั้งค่า PHP และ APC การตั้งค่าปัจจุบันของฉันเป็นเพียง apc.shm_size = 64 apc.stat=1 ฉันจะปรับปรุงได้อย่างไร การตั้งค่าที่ดีที่สุดสำหรับ Drupal คืออะไรจากการกำหนดค่าข้างต้น ขอบคุณ
16 7  performance  caching 

7
โมดูลจะตรวจพบได้อย่างไรเมื่อหน้า“ ปฏิเสธการเข้าถึง” ถูกส่งออก?
เป็นไปได้อย่างไรที่โมดูลจะตรวจพบเมื่อ Drupal แสดงผลหน้า "การเข้าถึงถูกปฏิเสธ" ฉันรู้วิธีที่จะทำกับ Drupal 6; ฉันจำเป็นต้องรู้วิธีการใช้ Drupal 7
16 7 

9
มีวิธีการขอล้างแคชหรือไม่
สำหรับเว็บไซต์ของสถาบันขนาดใหญ่ที่มีแคชจำนวนมากฉันต้องการสร้างแคชโดยเร็วที่สุดเพื่อไม่ให้ผู้ใช้มาถึงรุ่นแคช ... ฉันมีชุด cron ทุกนาทีที่ทำได้โดยการใช้งานฟังก์ชั่นบางอย่างและขอหน้าสำคัญ แต่สิ่งที่ฉันกำลังมองหาคือวิธีที่จะรู้ว่าเมื่อแคชเพิ่งจะถูกล้างโดยเฉพาะอย่างยิ่งตะขอดังนั้นฉันสามารถเปิดสิ่งนี้ สร้างฟังก์ชั่น ความคิดใด ๆ
16 7  hooks  caching 

3
ฉันสามารถใช้เบ็ดอะไรสำหรับการกระทำหลังบันทึก
ฉันพบหลายบทความพร้อมคำถามเดียวกันนี้ แต่คำตอบมักจะแตกต่างจากหัวข้ออื่น ๆ ไม่เช่นนั้นจะไม่ได้ผลสำหรับความต้องการของฉัน หลังจากบันทึกโหนดฉันต้องการให้โมดูลที่กำหนดเองของฉันแทรกแถวลงในหนึ่งในตารางที่กำหนดเองซึ่งมี nid ของโหนดใหม่ เมื่อhook_node_submitมีการเรียก nid ยังไม่มีอยู่ hook_node_insertมี nid แต่ถูกเรียกเพียงครั้งแรกที่โหนดถูกบันทึก แต่ฉันอาจต้องดำเนินการทุกครั้งที่มีการบันทึกโหนด แผนของฉันคือการแยกการทำงานของฉันออกเป็นวิธีการของตัวเองและใช้ทั้งสอง hooks แต่ฉันพยายามเรียนรู้ที่จะทำสิ่งต่าง ๆ กับ Drupal อย่างเหมาะสมดังนั้นฉันจึงสงสัยว่ามีตะขอที่ตรงกับความต้องการของฉันหรือไม่ มีตะขอซึ่งเรียกว่าทุกครั้งที่มีการบันทึกโหนดและเรียกว่าหลังจากการบันทึกเสร็จสมบูรณ์หรือไม่
16 7  hooks  nodes 

3
วิธีลบโปรแกรมออกจากโหนดโดยทางโปรแกรมหรือไม่
หนึ่งจะลบฟิลด์จากโหนดโดยทางโปรแกรมอย่างไร ฉันมีการย้ายhook_update_Nที่ย้ายเนื้อหาจากเขตข้อมูล aa ไปยังตารางที่กำหนดเอง หลังจากการโยกย้ายนั้นฉันต้องการลบเขตข้อมูลในฟังก์ชันเดียวกันนั้น มี API ฟิลด์ใดที่รองรับการลบฟิลด์หรือไม่ แก้ไข, แก้ไข : เนื่องจากคำตอบไม่มีรหัสจริงนี่คือสิ่งที่ฉันได้ย้ายเขตข้อมูลจากผู้ใช้ $ ไปยังบันทึกของตัวเองและจากนั้นลบเขตข้อมูลจากฐานข้อมูล; function my_module_update_7005(&$sandbox) { $slice = 100; //Fetch users from database; if (!isset($sandbox['progress'])) { $sandbox['progress'] = 0; $sandbox['current_uid'] = 0; // We'll -1 to disregard the uid 0... $sandbox['max'] = db_query('SELECT COUNT(DISTINCT uid) FROM {users}')->fetchField() - 1; …
16 7  entities  updating 

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