Bilal Ünal

Drupal 8 Modülü Geliştirmek

Drupal Nedir?

Drupal, 2000lerin başında Belçikalı öğrenciler tarafından geliştirilmeye başlanmış ve PHP ile yazılmış açık kaynak kodlu bir içerik yönetim sistemidir. Şu anda bir çok tanınmış web sayfasının temelini oluşturmaktadır. Kullanıldığı popüler web sayfalarını incelemek için tıklayınız. Drupal içerisinde tıpkı diğer içerik yönetim sistemlerinde olduğu gibi bir modül, eklenti yönetim sistemi bulunuyor. Yüklediğiniz modüller ile web sayfanıza ekstra özellikler kazandırabiliyorsunuz.

Modül Geliştirme

Drupal 8 modülleri ana dizindeki “modules” dizininde bulunur. Core dosyasının altında da built-in gelen modülleri görebilirsiniz. Biz modülümüzü ana dizindeki modules dosyasının altında oluşturacağız. modules dizinini incelerseniz yüklediğiniz her modülün ayrı bir dizin altında olduğunu görebilirsiniz. Bu dizinin altına oluşturmak istediğimiz modülün makine ismiyle yeni bir dizin oluşturuyoruz.

mkdir /var/www/drupalsite.com/modules/custom_module

Klasörü oluşturduktan sonra Drupale bu klasörde bir modül bulunduğunu söyleyip modül ile ilgili bilgiler vermeliyiz. Aksi taktirde admin/modules sayfasında modülümüzü görüntüleyemeyiz. Modülümüzün ana dizinine girip yeni bir dosya oluşturuyoruz. (Modülün ana dizini az önce /modules/ klasörü altında oluşturduğumuz “custom_module” dizinidir.)

custom_module.info.yml isimli bir YAML dosyası oluşturuyoruz. İçerisine modülümüz ile ilgili bilgileri yazıyoruz. En basit haliyle aşağıdaki gibi bir dosya oluşturalım.

name: Custom Module
type: module
package: Custom
description: 'Modülümüz ile ilgili açıklama.'
core: 8.x

Yalnızca bununla sınırlı kalmayabilirsiniz. Info dosyası içerisinde modülünüzün hangi modüllere ihtiyaç duyduğunu, hangi Drupal sürümleri ile çalışabildiğini, modülün versiyonunu(boş bırakırsanız 1.0 olarak atanacaktır), Gerektirdiği PHP sürümünü yazabilirsiniz. Bu konu ile ilgili detaylı bilgi için tıklayınız.

Info dosyamızı oluşturup Drupale modülümüz hakkında bilgi verdikten sonra /admin/modules sayfası altındaki listede modülümüzü görebilmemiz gerek. Listeden modülümüzü seçtikten sonra “Install” butonuna basarak modülümüzü aktif hale getirebiliriz. Drupal hooklarını kullanabileceğimiz module dosyamızı modülümüzün ana dizininde oluşturalım.

custom_module.module

Bu dosya içerinde drupal hooklarını pata küte kullanarak basit bir modül yazabilirsiniz. Hookları kullanmadan önce hook kavramının ne olduğunu öğrenmek gerek. Hooklar, yazdığımız modülün Drupal ile etkileşime geçmesini sağlar. Örneğin sitedeki tüm formlarda yeni bir alan göstermek istersek hook_form_alter hookunu kullanabiliriz. Bu linkteki sayfadan Drupalde kullanabileceğiniz tüm hookları inceleyip açıklamalarına ulaşabilirsiniz. Örnek için biz hook_help hookunu kullanacağız.

custom_module.module dosyası içerisine aşağıdaki satırları ekleyip kaydedelim;

<?php

use Drupal\Core\Routing\RouteMatchInterface;

/**
* Implements hook_help().
*/
function custom_module_help($route_name, RouteMatchInterface $route_match) {
    switch ($route_name) {
        case 'help.page.custom_module':
        return t('
            <h2>Custom Module Yardım Sayfası</h2>
            <p>Lorem ipsum dolor sit amet...</p>
        ');
    }
}

Drupalin sağlamış olduğu bu hook yardımıyla modülümüz için bir yardım sayfası oluşturuyoruz.

/admin/help/custom_module sayfasından hook yardımı ile oluşturduğumuz sayfayı inceleyebilirsiniz. Yazdığınız modüllerde yardım sayfası oluşturarak bu modülü kullanacak kişilere bilgiler verebilirsiniz.

Şimdilik bu iki dosya ile basit bir modül oluşturmuş olduk. Yazıyı burada tamamlıyorum. Diğer yazılarda Routing ve Form yapısından bahsedeceğim.