Drupal

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

4
ควรล้างตารางใดเมื่อล้างแคชที่จัดเก็บฐานข้อมูลด้วยตนเอง
ก่อนที่จะไปยังแคช D8 cache_ชัดเจนด้วยตนเองใครสามารถตัดทอนตารางทั้งหมดเริ่มต้นด้วย ใน Drupal 8 ยังมีตารางที่เริ่มต้นด้วยcache_แต่ก็มีcachetagsตารางด้วย คำแนะนำใน D8 ยังคงถูกตัดทอนcache_*ถ้าคุณต้องการล้างแคชด้วยตนเองหรือไม่? ปลอดภัย / จำเป็น / แนะนำให้ตัดทอนcachetagsตารางพร้อมกับcache_*ตารางหรือไม่? ฉันรู้ว่าอาจมีโมดูล contrib ทำสิ่งที่แตกต่างกันฉันส่วนใหญ่สนใจในสิ่งที่แกนทำและสิ่งที่ถือว่า "ปฏิบัติที่ดีที่สุด" สำหรับ Drupal 8 โดยทั่วไป
13 8  caching 

3
รับวัตถุโหนดใน hook_form_FORM_ID_alter
ติดตามคำถามนี้ แต่ฉันไม่มีชื่อเสียงพอที่จะขอคำชี้แจงในความคิดเห็น ฉันกำลังย้ายโมดูลที่สนับสนุนไปยัง Drupal 8 รหัสที่ถูก sugested ใน CR ที่กล่าวถึงข้างต้นและโพสต์ไม่ทำงาน: $node = $form_state->getFormObject()->getEntity(); ไม่มีการโหลดอะไรลงในตัวแปร $ node PHPStorm IDE ของฉันให้คำเตือนสำหรับ getEntity (): วิธีการ 'getEntity' ไม่พบในคลาส Drupal \ Core \ Form \ FormInterface น้อยลง ... ไม่พบวิธีการอ้างอิงในคลาสหัวเรื่อง นอกจากนี้ยังไม่ได้นำเสนอวิธีนี้สำหรับการทำให้โค้ดสมบูรณ์ ในการใช้งานทำให้ฉันอ้างอิง: use Drupal\Core\Entity; use Drupal\Core\Entity\EntityInterface; use Drupal\node\Entity\Node; use Drupal\Core\Render\Element;
13 8  forms 

6
วิธีการเปลี่ยนเส้นทางผู้ใช้ที่ไม่ระบุชื่อไปยังแบบฟอร์มการเข้าสู่ระบบหลังจากข้อผิดพลาด 403?
ฉันต้องการเปลี่ยนเส้นทางผู้ใช้ที่ไม่ระบุชื่อไปยังแบบฟอร์มการเข้าสู่ระบบหากผู้ใช้ดังกล่าวพบข้อผิดพลาด 403 ฉันได้สร้างผู้สมัครสมาชิกของเหตุการณ์และนี่คือรหัสของฉัน แต่ฉันจบลงด้วยการวนซ้ำในหน้าปัจจุบัน /** * Redirect anonymous user to login page if he encounters 404 or 403 * response. * * @param \Symfony\Component\HttpKernel\Event\GetResponseEvent $response * The created response object that will be returned. * @param string $event * The string representation of the event. * @param \Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher $event_dispatcher * …
13 8  routes  redirection 

1
ประเภทฟิลด์: ข้อความกับข้อความยาว
อะไรคือความแตกต่างระหว่าง 'ข้อความ' และ 'ข้อความยาว' ใน Drupal 7 ถ้าเป็นเพียงความยาวฐานข้อมูลอักขระจะดีกว่าถ้าใช้ความระมัดระวังและเป็นค่าเริ่มต้นในการใช้ข้อความแบบยาวในสถานการณ์ที่โดเมนที่มีค่าที่เป็นไปได้นั้นไม่เป็นที่ทราบแน่ชัด?
13 7  entities 

2
hook_preprocess_page และ hook_preprocess_html แตกต่างกันอย่างไร
ฉันเห็นว่าทั้งสองhook_preprocess_page()และhook_preprocess_html()มีการใช้งานhook_preprocess_HOOK()แต่ฉันไม่เข้าใจว่าจะใช้เมื่อใด hook_preprocess_page ถูกเรียกมาก่อน แต่นั่นไม่ได้ช่วยให้ฉันเข้าใจว่าใครกำลังโทรมา ดูที่debug_print_backtrace()ผลลัพธ์มันถูกเรียกโดยtheme()แต่นั่นไม่ได้ทำให้ฉันได้รับคำตอบจริงๆ มันเป็นเพียงการกำหนดโดยอาร์เรย์ที่ส่งผ่านเข้าไปในdrupal_render()?
13 7  theming 

4
การอัพเดตฟิลด์โดยทางโปรแกรม hook_node_update
ขณะนี้พยายามอัปเดตฟิลด์ทุกครั้งที่มีการสร้างหรืออัปเดตโหนด อย่างไรก็ตามค่าไม่ได้ถูกบรรจุภายในโหนดฉันจะสามารถเข้าถึงวัตถุโหนดด้วยเบ็ดนี้โดยเฉพาะหรือไม่? ฉันจะพลาดอะไรได้บ้าง function vbtoken_node_update($node) { entity_get_controller('node')->resetCache(array($node->nid)); $types = node_type_get_types(); //What are the current Node Content Types? $yes = ($types['volunteer_project']->type); if($node->type === $yes){ $hash = md5($node->title . $node->nid . $node->nid); $hashed = substr($hash, 0, 6); $node = node_load($node->nid); $node->tcode[$node->language][0]['value'] = $hashed; node_save($node); watchdog('vbtoken', 'Added a new Token code to %nid', …
13 7  entities 


7
การเพิ่มผู้ใช้ใหม่โดยตรงในฐานข้อมูล
ฉันได้รับไฟล์ไปยังเว็บไซต์ Drupal เพื่อให้ฉันสามารถสร้างชุดรูปแบบใหม่ อย่างไรก็ตามฉันยังไม่ได้รับวันผู้ใช้ / รหัสผ่านของ Drupal ดังนั้นฉันจึงไม่สามารถลงชื่อเข้าใช้ในพื้นที่ผู้ดูแลระบบได้ มีวิธีที่ฉันสามารถสร้างผู้ใช้ใหม่โดยตรงในฐานข้อมูลหรือวิธีอื่นหรือไม่?
13 6  users  database 

2
ฉันจะรับรายการเงื่อนไขอนุกรมวิธานทั้งหมดที่กำหนดให้กับโหนดได้อย่างไร
ฉันมีโหนดและต้องการรับเงื่อนไขอนุกรมวิธานทั้งหมดที่กำหนดให้กับโหนด ใน drupal 6 ฉันสามารถใช้$node->taxonomyและtaxonomy_*ฟังก์ชั่นได้ แต่สิ่งเหล่านี้ไม่มีอยู่ใน drupal 7

6
drush up ทำสำรองฐานข้อมูล / ดัมพ์หรือไม่?
ไม่ทำงานdrush upทำงานสำรองฐานข้อมูลหรือไม่ จากการทดสอบดูเหมือนว่าจะไม่เป็นเช่นนั้น ฉันควรสำรองข้อมูลฐานข้อมูลแยกจากกันก่อนที่ฉันจะรันdrush upเพื่ออัปเดตหรือไม่
13 database  drush 

3
จะปิดการใช้งานการรวมจาก drush หรือ PHPmyadmin ได้อย่างไร?
ฉันค้นหาสิ่งนี้แล้วและทั้งหมดที่ฉันพบข้อตกลงกับ Drupal 7 คำสั่ง drush เก่าdrush vset preprocess_js 0ไม่สามารถใช้กับ Drupal 8 และตาราง "ตัวแปร" ใน DB ไม่มีอยู่ใน 8 ... แต่ฉันไม่สามารถปิดการรวมในเว็บไซต์ D8 ของฉันด้วยเหตุผลบางอย่างและต้องการปิดการใช้งานจาก drush หรือ DB คุณรู้วิธีหรือไม่?

2
ฉันจะสร้างตารางในโมดูลที่กำหนดเองได้อย่างไร
ใน Drupal 7 เราเคยใช้hook_schema()ในไฟล์. install เพื่อสร้างตาราง ฉันเชื่อว่าใน Drupal 8 คุณสามารถทำได้เช่นกัน แต่ฉันรู้สึกว่าคุณควรสร้างไฟล์. syml ด้วยสคีมาของคุณ วิธีสร้างตารางใน Drupal 8 คืออะไร
13 8  database 


4
วิธีที่ถูกต้องในการตั้งค่าบริบทแคชบนบล็อกที่กำหนดเองคืออะไร?
ฉันพบปัญหาที่บล็อกที่ไม่ซ้ำใครต่อหน้าไม่ใช่สำหรับผู้ใช้ที่ออกจากระบบ ปัญหาคือปลั๊กอินบล็อกที่กำหนดเองที่ฉันมีในหน้าค้นหามุมมองที่มีตัวกรองแบบกำหนดเอง (เรียงลำดับเหมือนการแทนที่แบบกำหนดเองสำหรับตัวกรองแบบเปิดเผยบล็อกที่วางผ่าน / admin / โครงสร้าง / บล็อก) จากสิ่งที่ฉันได้เรียนรู้เกี่ยวกับ Drupal 8 ฉันได้เพิ่มบริบทแคชไปยังอาร์เรย์บิลด์ของฉัน: public function build() { $search_form = \Drupal::formBuilder()->getForm('Drupal\mymodule\Form\SearchForm'); return [ 'search_form' => $search_form, '#cache' => ['contexts' => ['url.path', 'url.query_args']] ]; } แต่ดูเหมือนว่าสิ่งนี้จะต้องไม่ถูกต้องเพราะเมื่อออกจากระบบบล็อกจะถูกแคชในมุมมองแรกและเมื่อ URL เปลี่ยนไปมันจะไม่แสดงบล็อกเวอร์ชันใหม่ ฉันคิดว่าอาจเป็นหน้าการดูที่ทำให้เกิดปัญหา แต่แม้ว่าฉันจะปิดการแคชในหน้าการดูปัญหายังคงอยู่ ฉันสามารถแก้ไขปัญหาได้หลายวิธีตัวอย่างเช่นโดยใช้ตะขอ preprocess_block: function mymodule_preprocess_block__mycustomsearchblock(&$variables) { $variables['#cache']['contexts'][] = 'url.path'; $variables['#cache']['contexts'][] = 'url.query_args'; } …
13 8  blocks  caching 

2
KernelEvents :: REQUEST ไม่ทำงานในหน้าแคช
ฉันพยายามที่จะใช้สมาชิก KernelEvents :: REQUEST เพื่อดำเนินการบางอย่างกับการโหลดหน้า ฉันต้องการให้กิจกรรมนี้เริ่มทำงานโดยไม่คำนึงว่าหน้าเว็บที่ร้องขอนั้นมีอยู่ในแคช Drupal หรือไม่ดูเหมือนว่า KernelEvents :: REQUEST จะไม่ทำงานเมื่อ Drupal ให้บริการบางอย่างจากแคช มีเหตุการณ์ที่ฉันสามารถใช้เพื่อให้บรรลุสิ่งนี้หรือฉันต้องปฏิบัติตามข้อกำหนดของฉันในฐานะมิดเดิลแวร์บางรูปแบบหรือไม่?

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