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

ใน Drupal การรวบรวมเนื้อหาและฟังก์ชันที่มีอยู่ในตัวเองที่ปรากฏในขอบเขตของธีมเรียกว่า block

2
แบบฟอร์มภายในบล็อก
ฉันใช้drupal_get_form('event_signup_form')เพื่อฝังฟอร์มที่กำหนดเองของฉันไว้ในบล็อก ฟอร์มกำลังถูกเรนเดอร์ตามที่ตั้งใจ แต่การส่งแบบฟอร์มไม่ได้ก่อให้เกิดอะไร ฟังก์ชั่นรูปแบบของตัวเองเรียกว่าevent_signup_form($form, &$form_state)และฟังก์ชั่นส่งเรียกว่าevent_signup_form_submit($form, &$form_state)แต่มันไม่ได้ถูกเรียก ฉันใช้hook_block_viewเพื่อแสดงแบบฟอร์ม: function event_block_view($delta = '') { $blocks = array(); if ($delta ...) { $blocks['content'] = drupal_render(drupal_get_form('event_signup_form')); } } ฉันจัดการเพื่อให้การทำงาน - นี่คือวิธี (ต้นขั้ว): function hook_block_view($delta = '') { $blocks['content'] = drupal_render(drupal_get_form('event_signup_form')); } function event_signup_form() { // Register form submit handler, same goes for validation handler …
14 7  blocks  forms 

1
จะสร้างคำแนะนำเบ็ดธีมสำหรับบล็อกตามภูมิภาคได้อย่างไร
ตั้งแต่ Drupal 8 มันเป็นไปไม่ได้กับการประชุมแม่แบบการตั้งชื่อในการโหลดที่เฉพาะเจาะจงแม่แบบบล็อกตามภูมิภาคมันถูกวางไว้ใน ( "ต่อภูมิภาคบล็อกมาร์กอัปและต่อภูมิภาคคุณลักษณะบล็อก templating ลบออก" ) แต่ฉันต้องมี html ที่แตกต่างกันสำหรับบล็อกถ้าวางไว้ในบางภูมิภาค ฉันจะทำสิ่งนี้ได้อย่างไร ฉันคิดเกี่ยวกับการใช้MYMODULE_theme_suggestions_block_alterแต่ฉันไม่ทราบวิธีการรับภูมิภาคปัจจุบัน
14 blocks  8  regions  theming 

7
วางบล็อกโดยทางโปรแกรมหรือไม่
ฉันกำลังใช้ Drupal 7. ตอนนี้ฉันมีการนำทางเมนูหลักและตัวสลับภาษาที่มีอยู่ในส่วนหัวของเว็บไซต์ของฉัน ฉันวางมันไว้ที่นั่นโดยไปที่ CMS> โครงสร้าง> บล็อกแล้วลากบล็อกไปยังพื้นที่ส่วนหัว ฉันจะตั้งบล็อกเหล่านี้โดยทางโปรแกรมในส่วนหัวได้อย่างไร
14 7  blocks 

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

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 

1
Drupal 7 block.tpl.php ที่กำหนดเองสำหรับภูมิภาคเฉพาะ
ฉันใหม่สำหรับ drupal 7 และต้องดิ้นรนกับอันนี้: http://drupal.org/node/104319 ฉันมีภูมิภาคที่เรียกว่าการนำทาง ใน. info ของฉัน regions[navigation] = Navigation bar สำหรับภูมิภาคนี้ฉันต้องการใช้ไฟล์ tpl.php ที่กำหนดเอง ฉันเหนื่อย block-navigation.tpl.php เหมือนในตัวอย่างและวางไว้ที่รูทธีมและในโฟลเดอร์แม่แบบโดยไม่มีโชค ฉันได้ล้างแคชและประกันว่ามีการทำงานมาตรฐาน block.tpl.php ไม่มีประโยชน์ ตอบ: ฉันต้องการทั้งภูมิภาค - navigation.tpl.php และบล็อก - navigation.tpl.php ด้วยสองเท่า--ทั้งสองครั้ง การดู 1,000 ครั้งสำหรับคำถามนี้ทำให้ฉันได้รับตราคำถามยอดนิยม แต่พวกคุณไม่สามารถค้นพบมันในใจของคุณที่จะเอาชนะมันได้มากกว่า1ครั้ง Laaaammmmmeeee ....
12 7  blocks  theming 

6
วางบล็อกในหลายภูมิภาค
มีโมดูลที่อนุญาตให้ผู้ใช้วางบล็อกเดียวกันในหลายภูมิภาคหรือไม่? ด้วยวิธีนี้ฉันไม่ต้องทำบล็อกมุมมองเดิมสองครั้ง
12 blocks 

2
มีวิธีการตั้งค่าการบล็อกการแสดงผลโดยทางโปรแกรมโดยไม่ใช้โมดูลตัวกรอง PHP หรือไม่?
ด้วยการเปิดใช้งานโมดูลตัวกรอง PHP หลักฉันสามารถใช้โค้ด PHP เพื่อตั้งค่าการเปิดเผยของบล็อกในหน้ากำหนดค่าบล็อก แต่ฉันไม่ต้องการเปิดใช้งานโมดูลตัวกรอง PHP สำหรับมาตรการรักษาความปลอดภัย ดังนั้นมีวิธีทำในโมดูลที่กำหนดเองหรือไม่ ฉันหาเบ็ดทำไม่ได้ และตะขอแบบปิดhook_block_view_alterสามารถเปลี่ยนเนื้อหาบล็อกได้เท่านั้น
11 7  blocks 

3
ส่งไฟล์เทมเพลตตัวแปรเป็นบล็อกแบบกำหนดเอง
ฉันต้องการสร้างบล็อกที่กำหนดเองของฉันด้วยเนื้อหาที่กำหนดเองใน Drupal 8 ในตอนแรกฉันสร้างบล็อกด้วยข้อความง่ายๆและทำงานอย่างถูกต้องปัญหาของฉันคือฉันจะส่งตัวแปรที่กำหนดเองไปได้อย่างไร ฉันเห็นการสอนเกี่ยวกับเรื่องนี้ชื่อโมดูลของฉันคือtcdevและนี่คือเนื้อหาของ.moduleไฟล์ function tcdev_theme($existing, $type, $theme, $path) { return array('tcdev' => array( 'variables' => array( 'title' => 'Default title', 'description' => null ), 'template' => 'block--sliderblock' ) ); } และของฉัน SliderBlock.php namespace Drupal\tcdev\Plugin\Block; use Drupal\Core\block\BlockBase; /** * Provides a 'SliderBlock' block. * * @Block( * id = …
11 theming  8  blocks 

3
ฉันจะแสดงลิงค์บริบทสำหรับบล็อกที่ฉันแสดงในรหัสของฉันได้อย่างไร
ฉันโหลดหัวเรื่องบล็อกและเนื้อหาด้วยmodule_invoke()และใช้render()สำหรับการแสดงผล ฉันต้องการใช้ลิงก์เชิงบริบทสำหรับบล็อกนี้ ฉันจะแสดงมันได้อย่างไร นี่คือรหัสที่ฉันใช้ insde หน้า - front.tpl.php แม่แบบ $block = module_invoke('block', 'block_view', '4); print render($block); ฉันควรใช้รหัสใดแทน
11 7  blocks 

5
ฉันจะควบคุมการเปิดเผยบล็อกด้วยรหัสได้อย่างไร
ใน Drupal 6 ฉันสามารถควบคุมการมองเห็นบล็อกโดยใช้โค้ด PHP ในการกำหนดค่าบล็อก UI เช่น: <?php return MYMODULE_abc() || MYMODULE_def() ; ?> ฟังก์ชั่นเหล่านี้ค้นหาโหนดปัจจุบันอนุกรมวิธาน ฯลฯ เพื่อตัดสินใจว่าจะแสดงบล็อคหรือไม่ ตัวเลือก PHP นี้หายไปใน Drupal 8 แต่มี$visibilityช่องBlockBaseว่าง ฉันสามารถใช้สิ่งนี้เพื่อตั้งค่าการมองเห็นขณะรันไทม์โดยทางโปรแกรมหรือไม่
11 8  blocks 

6
ฉันจะวางบล็อกโดยทางโปรแกรมได้อย่างไร
จาก UI คุณสามารถเพิ่มบล็อกในภูมิภาคด้วยวิธีดังกล่าว: ไปที่ผู้ดูแลระบบ -> โครงสร้าง -> เค้าโครงเลย์เอาต์ (/ admin / โครงสร้าง / บล็อก) คลิกที่ปุ่ม "บล็อกสถานที่" นอกเหนือจากชื่อภูมิภาค ฉันต้องการทำสิ่งเดียวกัน แต่โดยทางโปรแกรม ฉันจะเพิ่มบล็อกที่มีอยู่ในพื้นที่และบันทึกได้อย่างไร บล็อกนี้ควรจะแสดงในพื้นที่นั้นและพร้อมใช้งานในหน้าเค้าโครงเลย์เอาต์
10 8  blocks 

3
จะแสดงบล็อคที่จะแสดงในบางหน้าใน Drupal ได้อย่างไร?
พิจารณาของหวาน: หน้า 1: - deserts/* page2: - deserts/*/* Page3: - deserts/*/*/* เนื้อหาแบบไดนามิก ... ฉันมีสามช่วงตึกคือ a, b และ c: บล็อก aควรแสดงเฉพาะในหน้า 1 บล็อก bควรแสดงเฉพาะในหน้า 2 บล็อก aควรแสดงเฉพาะในหน้า 3 ข้อ จำกัด นั้นควรทำอย่างไร?
10 blocks  7 

5
ฉันจะกำหนดการเข้าถึงบล็อกโดยทางโปรแกรมอย่างไร
ฉันสร้างบล็อกโดยทางโปรแกรม แต่ไม่รู้ว่าฉันจะกำหนดสิทธิ์การเข้าถึงให้กับโปรแกรมได้อย่างไร ฉันจะทำให้สำเร็จได้อย่างไร
10 7  blocks  users 

1
แสดงบล็อคบน / หน้าโปรไฟล์ผู้ใช้เท่านั้น
ฉันต้องการแสดงบล็อกเมื่อผู้ใช้เยี่ยมชม / หน้าโปรไฟล์ของตนเองที่ / ผู้ใช้ โปรไฟล์ผู้ใช้สาธารณะมีเส้นทางของ "/ member / [ชื่อผู้ใช้]" เมื่อฉัน จำกัด การบล็อกไว้ที่ "ผู้ใช้" มันจะไม่ปรากฏขึ้น เมื่อฉัน จำกัด ให้ "สมาชิก / *" มันจะแสดงทั้งในโปรไฟล์ของตัวเองและในโปรไฟล์สาธารณะ URL "ผู้ใช้" เป็นอะไรที่พิเศษหรือไม่
10 7  users  blocks 

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