Taşıma modülü ile oluşturulan düğümler için pathauto'yu devre dışı bırak


14

Bir grup düğümü içe aktarmak için migrate kullanıyorum ve taşıma sırasında yol diğer adını ayarlamak istiyorum. Ben yol takma şekilde gayet iyi almak mümkün:

$this->addFieldMapping('path', 'url_alias');

İçe aktarılan düğümlere baktığımda pathalanda doğru yolu görüyorum , ancak Generate automatic URL aliasonay kutusu hala işaretli, bu da ayarın yok sayıldığı anlamına geliyor.

Geçiş sırasında düğümdeki bu ayarı nasıl devre dışı bırakabilirim?

Yanıtlar:


10

Temel olarak, $nodenesnenin pathautokaydedildiğinde false olarak ayarlanmış olarak iletildiğinden emin olmanız gerekir .

Taşıma sınıfınızda:

function prepare(&$row) {
  $row->path['pathauto'] = 0;
}

Bunu denedim, ama Generate automatic URL aliashala kontrol ediliyor .
Kenny Wyland

Ancak önerinizi, preparRow () yerine prepar () yönteminde denedim ve çalıştı! Gönderinizi düzenlerseniz, cevap olarak kabul edeceğim. Teşekkürler!
Kenny Wyland

Düzenlendi - ilk seferinde yanlış yöntemi aldım :)
jhedstrom

8
$this->addFieldMapping('pathauto')->defaultValue(0);

Benim için çalışıyor. Pathauto: Takma ad oluşturma (geçiş sırasında takma ad oluşturulmasını önlemek için 0 olarak ayarlanmış) Tam açıklama için 'drush ma' + sınıfınızın adına bakın


0

Bazen ancak her zaman gelen bir yol takma adına sahip olacaksanız, pathauto'yu yalnızca bir takma ad ayarlamadığınızda nasıl tetikleyebileceğiniz aşağıda açıklanmıştır.

İlk olarak, yapıcı içinde, hem harita pathve pathauto:

$this->addFieldMapping('path', 'path');
$this->addFieldMapping('pathauto', 'pathauto');

Ardından, gelen bir değer olup olmadığına bağlı olarak özelliği ::prepareRow()ayarlayın :pathautopath

public function prepareRow($row) {
  parent::prepareRow($row);

  if (!empty($row->path)) {
    $row->pathauto = 0;
  }
  else {
    $row->pathauto = 1;
  }

}

Sonuç olarak, takma ad için kullanılacak bir yoldan açıkça geçtiyseniz, Pathauto girmediyseniz.

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.