Ana içeriğe atla

Drupal 8 İçerik Türü Paragraf Verisine Class Ekleme

8 dakika okuma süresi

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.

Yapmamız gereken işlem bir paragraf type oluşturuyoruz ve bu paragraf type kısmında kullanıcılarımızın girebilecekleri class verilerini tanımlıyoruz.

Örnek olarak kullanıcımıza girdiği içerik için renk seçtirme opsiyonu yapacağız. 

prg_standart adında bir paragraf oluşturuyoruz. Bu paragrafa body ( Text (formatted, long) )  alanı ekleyelim. Ek olarak bir de kullanıcıların renk seçimi yapabilmesi için field_prg_standart_color( List (text) adında bir alan ekleyelim.

Eklediğimiz field_prg_standart_color alanının field settings kısmına aşağıdaki renkleri ekliyorum.

yellow|yellow
green|green
orange|orange
black|black
blue|blue
red|red
grey|grey

Sol taraf sistemde görünecek isim, sağ taraf ekranda görünecek isim şeklinde ekleme işlemini tamaladıktan sonra ;

Sitemin dosyalarının içerisinde bulunan mysite.theme dosyasını açıyorum ver alttaki kodlamayı sisteme ekliyorum. Burada yapıaln işlem sistemde içerik oluşturulurken paragraf eklendiyse ve bu paragraf bizim renk seçimi için oluşturduğumu paragraf ise tetiklenecektir.
Paragrafta seçilen veriler alınır , alınan verilerde renk için açtığımız paragraf field ında seçim yapılışsa o seçim yapılan veriyi (örneğin yellow seçildi , class a eklenecek değer yellow) classımıza ekler. 
 
function mysite_preprocess_paragraph__prg_standart(&$variables) {
  $paragraph = $variables['paragraph'];
  if (!$paragraph->field_prg_standart_color->isEmpty()) {
    $class = $paragraph->field_prg_standart_color->getValue()[0]['value'];
    $variables['attributes']['class'][] = $class;
  }
}

Sonrasında yapmamız gereken işlem css dosyamıza girip yellow classına css yazmak olacaktır.
.yellow { color :yellow ; background-color : #ffa500; padding :5px; }

Ofislerimiz

Drupart Locations

Ofislerimiz

Drupart AR-GE

GOSB Teknopark Hi-Tech Bina 3.Kat B3 Gebze - KOCAELİ

+90 262 678 8872

+90 216 706 12 58 

[email protected]

Londra

151 West Green Road, London, England

+44 203 815 6478

[email protected]

Newark

112 Capitol Trail Suite, A437 Newark DE, 19711

+1 (740) 666 6255

[email protected]

Wiesbaden

Hinterbergstraße 27
65207 Wiesbaden
Deutschland

+49 (0) 6151 – 492 70 23

[email protected]