Sitenin dilinin id'si ve ismi

Aşağıdaki kod ile sitenin seçilmiş olan diliniz getirir.

<?php
// Get language manager service.
$languageManager = \Drupal::service('language_manager');
//Get the current lanuage code.
$langcode = $languageManager->getCurrentLanguage()->getId();
//Gett the current language name.
$langname = $languageManager->getCurrentLanguage()->getName();

Programatik olarak Node oluşturma

// Node deposu getir.
$nodeStorage = \Drupal::service('entity.manager')->getStorage('node');
// Set node content.
$content = [
    'type' => 'article',
    'title' => 'title',
    'body' => [
        'value' => 'Lorem ipsum dolor sit amet...',
        'format' => 'basic_html'
    ],
    'uid' => $uid
];
// Node oluşturma.
$node = $nodeStorage->create($content);
// Node-u kayıt et.
$node->save();

Check if Entity has a field

// Get entity storage.
$entityName = 'node';
$entityStorage = \Drupal::service('entity.manager')->getStorage($entityName);
// Load the entity by $eid - entity id.
$eid = 1;
$entity = $entityStorage->load($eid);
// Load field type by field name.
$fieldName = 'field_custom';
// Check if the entity has this $fieldName.
if ($entity->hasField($fieldName)) {
    // Do something...
}

Programatik olarak modülün durumunu sorgulama

Aşağıdaki kod ile modülün aktif veya aktif olmadığını test edebilirsiniz.

// Modülün makine ismi.
$moduleName = 'admin_toolbar';
//  $moduleName durumunu test ed'n'z.
$moduleHandler = \Drupal::service('module_handler');
if ($moduleHandler->moduleExists($moduleName)) {
    // aktif ise
}

Programatik olarak kullanıcıyı kullanıcı adı ve şifre ile doğrulama

$uid = \Drupal::service('user.auth')-&gt;authenticate($username, $password);

if ($uid) {
   // Başarıyla doğrulandığı takdirde ...
}

Drupal 8 Sayfa Yönlendirme, drupal_goto

Drupal 8'de drupal_goto fonksiyonu kaldırıldı, onun yerine RedirectResponse sınıfı kullanılmaya başlandı. Aşağıdaki örnekte mevcut sayfanın URL'si alınarak tekrar kendi içinde yönlendirme yapılmaktadır.

$current_path = \Drupal::service('path.current')->getPath();
$response = new RedirectResponse('/beyin-bilimi');
$response->send();
return;

ldap_user modülünü kaldırmak

Drupal 8'de ldap_user modülünü kaldırmak istediğinizde problem yaşayabiliyorsunuz.  Aşağıdaki gibi bir bağımlılıktan dolayı modül kaldırılamıyor.

There is data for the field ldap_user_ldap_exclude on entity type User

Bu durumu düzeltmek ve modülü kaldırabilmek için aşağıdaki sql'i kullanabilirsiniz.

Drupal 7 - Drupal 8 database 'e özel variable (değişken) tanımlama

Bu işlem genelde veriyi cachelemek( önbelleğe almak ) için kullanılır . Örneklemek gerekirse şöyle açıklayabiliriz , belli bir adresten bir json verisi çektiğini varsayalım her işlem sırasında adrese gidip aynı veriyi çekmesi gerekecektir , bu da sistemde uzun süreli bir yavaşlamaya dönüşecektir.

Burada yapmamız gereken işlem ilk çektiğimizde onu sistemimizde cahceleyip ardından cachelediğimiz veriyi kullanmak olacaktır.

Drupal 8 Debug Kapatma

Drupal 8 ile oluşturduğunuz web sitenize sağ tıklayıp kaynağı görüntüle dediğiniz takdirde sitenizde  html comment görebilirsiniz.


ÖRNEK
<!-- THEME DEBUG -->
<!-- THEME HOOK: 'html' -->
<!-- FILE NAME SUGGESTIONS:
* html--front.html.twig
* html--node.html.twig
html.html.twig
-->
<!-- BEGIN OUTPUT from 'themes/mysites/templates/layout/html.html.twig' -->

Drupal 8 İçerik Türünde Paragraftan Seçilen Veriye Göre Class Ekleme

Drupal 8 de oluşturduğumuz içerik türünde uç kullanıcının class eklemesi bir hayli zor olmakla beraber , göstereceğim yöntem ile basit bir şekilde kullanıcılarınıza class tanımlaması yaptırtabilirsiniz.