Drupal 8 de, özel bir modül geliştirirken PHP içinde doğrudan HTML yazmaktan kaçınılmalıdır. Bu örnekte size programlı olarak özel bir blok oluşturmayı, özel bir Twig dosyası oluşturmayı ve istenen değişkenleri bir şablona göstermeyi deneyimleyeceğiz.
Adımları takip edin.
/** * Implements hook_theme(). */ function magnec_custom_theme() { return array( 'magnec_custom_block' => array( 'variables' => array('title' => NULL, 'link' => NULL), 'template' => 'block--magnec-custom', ), ); }
Adım bir blok dosyası oluşturmak ve kodu yerleştirmek. Özel modül klasörüne gidin, /src/Plugin/Block dosyasını açın ve örneğin; Magnec-Custom.php. dosyası oluşturun
Blok ve yönetici etiketiniz için kimliği tanımlayın; böylece Yapı -> Blok yerleşimi bakarak blok alanını kolayca bulabilirsiniz.
Bir sınıf oluşturun ve BlockBase'u genişletin. Build () işlevi kullanın ve bir dizi değişken döndürür.
namespace Drupal\magnec_custom\Plugin\Block; use Drupal\Core\Block\BlockBase; /** * Provides a 'magnec custom' block. * * @Block( * id = "magnec_custom_block", * admin_label = @Translation("Magnec Custom Block"), * * ) */ class MagnecCustom extends BlockBase { /** * {@inheritdoc} */ public function build() { // do something return array( '#title' => 'Drupal Webtasarım', '#link' => 'http://magnec.com/' ); } }
Şimdi önbelleği temizleyin ve Yapı -> Blok yerleşimi seçin. Blogunuzu bulun ve istediğiniz bölüme yerleştirin.
Bir sonraki adım, Twig dosyası oluşturmak ve değişkenleri oluşturmaktır. Temalar klasörünüzde, örneğin kullandığınız temayı açın. templates/block dosyasına gidin ve magnec-custom.html.twig dosyasu oluşturun (ilk örnekteki 'şablon' dizideki ad alanını tanımlamıştık).
Değişkenleri Twig HTML'ye dönüştürün:
{#
/**
* @file
* Profile magnec custom block.
*/
#}
Hepsi bu kadardı
Mutlu kodlamalar