Drupal'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 [
'magnec_custom_block' => [
'variables' => ['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; MagnecCustom.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'i genişletin. build() işlevini kullanın ve bir dizi değişken döndürün.
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() {
return [
'#theme' => 'magnec_custom_block',
'#title' => 'Drupal Webtasarım',
'#link' => 'http://magnec.com/',
];
}
}
Şimdi önbelleği temizleyin ve Yapı -> Blok yerleşimi seçin. Blokunuzu 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 block--magnec-custom.html.twig dosyasını oluşturun (ilk örnekteki 'template' dizideki ad alanını tanımlamıştık).
Değişkenleri Twig HTML'ye dönüştürün:
{#
/**
* @file
* Profile magnec custom block.
*/
#}
{{ title }}
Hepsi bu kadardı.
Mutlu kodlamalar!