Bir Özellikte blok ayarlarını dışa aktarma (Drupal 7)


13

Bir geliştirme sitesi ile bir üretim sitesi arasında makul bir iş akışı oluşturmayı öğrenmeye çalışıyorum ve bu görevi yerine getirmek için Özellikler modülünü kullanmaya karar verdim.

Ön sayfamda yeni eklenen ve en çok puan alan içeriği gösteren birkaç blok var. Bu görünümleri dışa aktarmak için özellikleri kullandım, ancak yine de blok ayarlarımı dışa aktarmak için Özellikler modülünün içinde görmüyorum. Yeni projeleri ve en yüksek puan alan blokları sayfanın içerik bölümünde gösterilecek şekilde ayarladım. Yalnızca görünümün ön sayfasında görünmesi için filtreliyorum.

Bu blok ayarlarını özelliğimin içine nasıl aktarabilirim, böylece bunları her sitede yeniden yapılandırmam gerekmez mi?

Yanıtlar:


13

Feature'ı Strongarm ve Features extra ile birlikte kullanarak çok daha fazlasını dışa aktarabilirsiniz .

Strongarm , site üreticilerine Drupal çekirdeği ve katkıda bulunan modüllerin birlikte gönderdiği varsayılan değişken değerlerini geçersiz kılma yolu sunar. Son kullanıcı aracı değil, API ve sınırlı kullanıcı arayüzü sağlayan bir geliştirici ve site oluşturucu aracıdır.

Ekstra destek özellikleri: kelimeler; düğümler (tanımlar); blok ayarları; özel bloklar (kutular).

Ayrıca UUID Unsur Entegrasyonu , içeriğin (düğümler, sınıflandırma, alanlar) unsur modülüne aktarılması için bir mekanizma sağlar.


1
Ayrıca iş akışını işlemek için drush ve git kullanmanızı tavsiye ederim.
Refineo

1
Müthiş tam da ihtiyacım olan şeydi. Ben özellikleri biraz daha iyi nasıl kullanılacağını anladım git git gidiş planlıyordu.
Mike2012

Fantastik ! Mike olarak, bu inanılmaz!
Jean-Rémy Revy

4

Özellikler için blokları Dışa Aktarma'ya göre Boxes modülünü kullanabilirsiniz .

Ek modüller yüklemek istemiyorsanız ve bir Görünümler bloğu ile uğraşıyorsanız (yalnızca blok yapılandırma ayarlarına ihtiyacınız vardır), başka bir seçenek bunu kod düzeyinde özel bir modüldeki hook_update_N () uygulamasıyla yapmaktır. yükleme dosyası. Örnek için aşağıya bakın.

/**
 * Configure block settings.
 */
function my_module_update_7101() {

  // Enable blocks
  db_update('block')
    ->fields(array(
      'status'     => 1,
      'region'     => 'content',
      'visibility' => 1,
      'pages'      => 'node/999',
      'title'      => 'My Block Title',
      'css'        => '',
      'js'         => '',
    ))
    ->condition('delta', 'BLOCK_ID')
    ->execute();
}

0

Bir alternatif, burada önerildiği gibi özel bloklar yerine mini paneller kullanmaktır . Aynı şekilde çalışıyorlar ve paneller özellikler tarafından daha iyi destekleniyor gibi görünüyor. Panelleri zaten kullanmayı planlıyorsanız, bu da birkaç ekstra modül tasarrufu sağlar.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.