Üst beslemeler (içe aktarma) düğümü yayınlanmamışsa, alma zamanlamasına nasıl dahil etmem?


11

Üst feed yayınlanmamış bir düğümü (yayın URL'sini girmek için form / düğüm) içe aktarıyorsa, güncelleme / içe aktarma için cron programına dahil edilmemesini istiyorum (yayın URL'si) feed öğeleri. Bu nasıl yapılır? Örneğin, bir kullanıcı bir feed gönderir, ancak yöneticinin yayınlamadan ve içe aktarmadan önce onu doğrulaması gerekir.

Ayrıca , üst feed yayınlanmamışsa öğeleri içe aktarma konusuna bakın .


Bunu bulmakta hiç şansın oldu mu? Bunu varsayılan (RSS) Feed Importer ile denedim ve beklendiği gibi çalışıyor gibi görünüyordu - feed düğümü yayınlanmadığında içe aktarılmadı.
Jan Tomka

Hmm, bu çok garip. Feed içe aktarım aracımdan biri Ortak Syndicate Ayrıştırıcısını, diğeri QueryPath Ayrıştırıcısını kullanacak şekilde yapılandırıldı. Besleme düğümünün (üst öğe) yayınlanmamış olduğunu onayladım. Önbellek sifonunda yayın içe aktardığını not ettiniz mi - bu tek mi yoksa normal mi? Durum ne olursa olsun bunu yapmamalı, değil mi? Yerel bir yerdeyim, bu yüzden cron henüz kurulmadı.
hellomobe

1
Bağlantılı makalede çok daha iyi bilgiler, hatta örnek kod var. Lütfen bunu soruya eklemeyi düşünün.
berkes

Yanıtlar:


1

Bir düğüm kaydedildiğinde, Feeds modülü feed'i o düğümden içe aktarmaya başlar.

function feeds_node_insert($node) {
  // Source attached to node.
  feeds_node_update($node);
  if (isset($node->feeds) && $importer_id = feeds_get_importer_id($node->type)) {
    $source = feeds_source($importer_id, $node->nid);
    // Start import if requested.
    if (feeds_importer($importer_id)->config['import_on_create'] && !isset($node->feeds['suppress_import'])) {
      $source->startImport();
    }
    // Schedule source and importer.
    $source->schedule();
    feeds_importer($importer_id)->schedule();
  }
}

İthalatçının ayar sayfasında Göndermede içe aktar adlı bir seçenek vardır . Bu kutunun işaretini kaldırırsanız, umarım feed'iniz içe aktarılmaz. Özet akışları sürdürücüsünün, henüz yayınlanmamış düğümleri getirmemesi için feed_cron () öğesinde değişiklik yapması gerekir.

Modül koruyucularından daha iyi bir düzeltme beklerken, $ node-> status == 1 koşulunu aşağıdaki gibi eklemek için ilk if deyimini değiştirerek bu kodu hızla düzeltebilirsiniz :

if ($node->status==1 && isset($node->feeds) && $importer_id = feeds_get_importer_id($node->type))
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.