Drupal GUI üzerinden
Bu yöntem, programlı olarak bir blok oluşturmaktan oldukça basit ve kolaydır. Ancak, programlı olarak bir blok oluşturmaya göre daha az esnek ve özelleştirilebilirdir./p>
- Gidin admin -> structure -> block layout -> custom block library. .
- ' Blok türleri ' sekmesini tıklayın. Burada bir kez, ' Özel blok tipi ekle ' düğmesine tıklayın.
- Blok etiketi ve açıklamasını girin.
- Artık, özel bloğunuz için alanlar ekleyebilir, ekran türünü yönetebilir, ekranı yönetebilirsiniz. Bloğu beğeninize göre özelleştirin ve kaydet seçeneğine tıklayın.
- Şimdi, özel blok kütüphanesine geri dönün ve bloğu kütüphanenize eklemek için mavi ' Özel blok ekle ' düğmesini tıklayın.
- Bir sonraki adım admin blok düzenine giderek bloğu istediğiniz bölgeye yerleştirmektir
Modül oluştur
Drupal 8'de, oluşturduğunuz her özel modül, tema veya eklenti için meta verileri içeren bir info.yml dosyası oluşturmak gerekir. Benzer şekilde, özel bloğumuz için, 'module / custom' dizininde bir info.yml dosyası oluşturmamız gerekecek. Özel klasör daha önce oluşturulmadıysa, onu oluşturmanız gerekeceğini unutmayın. Özel bir blok oluşturmak için, özel bir modül yapmamız gerekecek.
Şimdi 'custom_block_example.info.yml' gibi bir 'info.yml' dosyası oluşturun. Bu dosyanın içine aşağıdakini girin:
name: özel blok modulü
type: module
description: Açıklamanızı yazın.
core: 8.x
package: Custom
dependencies:
- block
Artık Drupal panonuza gidebilir ve az önce oluşturduğumuz özel modülü etkinleştirebilirsiniz.
Sınıf Oluştur
Şimdi, bloğun mantığını tanımlamak için, modules/custom/custom_block_example/src/Plugin/Block dizini altına yerleştirilecek bir sınıf oluşturmamız gerekiyor .
Sınıf dosyası da ek açıklama içermelidir. Ek açıklama bloğu tanımlamamızı sağlar. Ek açıklama dışında, bu sınıf 4 yöntem içerir:
- build () - Yenilebilir bir dizi oluşturarak temel bir işaretleme döndürür.
- blockAccess () - Özel bir kullanıcı erişim mantığı tanımlar.
- blockForm () - Form API'sini kullanarak özel bir blok yapılandırma formu tanımlar.
- blockSubmit () - blockForm () yönteminde tanımlanan bir yapılandırmayı kaydetmek için kullanılır.
<?php namespace Drupal\my_block_example\Plugin\Block; use Drupal\Core\Access\AccessResult; use Drupal\Core\Block\BlockBase; use Drupal\Core\Form\FormStateInterface; use Drupal\Core\Session\AccountInterface; /** * Provides a block with a simple text. * * @Block( * id = "my_block_example_block", * admin_label = @Translation("My block"), * ) */ class MyBlock extends BlockBase { /** * {@inheritdoc} */ public function build() { return [ '#markup' => $this->t('This is a simple block!'), ]; } /** * {@inheritdoc} */ protected function blockAccess(AccountInterface $account) { return AccessResult::allowedIfHasPermission($account, 'access content'); } /** * {@inheritdoc} */ public function blockForm($form, FormStateInterface $form_state) { $config = $this->getConfiguration(); return $form; } /** * {@inheritdoc} */ public function blockSubmit($form, FormStateInterface $form_state) { $this->configuration['my_block_settings'] = $form_state->getValue('my_block_settings'); } }
Şimdi sitenize geri dönün ve yeni oluşturduğunuz bloğu görebilmeniz gerekir. Basitçe bloğu seçtiğiniz bir bölgeye atayın ve görünür olması gerekir.
Sonuç
Daha önce de belirtildiği gibi, bloklar bir Drupal sitesinin ayrılmaz bir parçasıdır. Blokları kendi tarzınıza göre kişiselleştirmeyi ve oynamayı öğrenmek çok yararlı bir beceri olabilir.
Drupal sitenizi özelleştirmekle ilgili sorun mu yaşıyorsunuz? Magnec'te bizimle iletişime geçin ve Drupal sitenize bir daha asla takılıp kalmayla ilgili endişelenmeyi unutun.