Jika simpul umpan induk (impor) tidak dipublikasikan, bagaimana saya tidak memasukkannya dalam jadwal impor?

11

Jika feed induk mengimpor node (bentuk / node untuk memasukkan URL feed, bukan importir feed) yang tidak dipublikasikan, saya ingin memilikinya (URL feed) tidak dimasukkan dalam jadwal cron untuk memperbarui / mengimpor item umpan. Bagaimana ini dilakukan? Misalnya, pengguna mengirimkan umpan, tetapi administrator perlu memverifikasi sebelum menerbitkan, dan mengimpornya.

Lihat juga Jangan mengimpor item jika umpan induk tidak dipublikasikan .

hellomobe
sumber
Apakah Anda beruntung menemukan yang ini? Saya mencoba ini dengan Pengimpor Umpan default (RSS) dan tampaknya berfungsi seperti yang diharapkan - tidak mengimpor ketika simpul umpan tidak dipublikasikan.
Jan Tomka
Hmm, itu aneh. Salah satu importir feed saya dikonfigurasikan untuk menggunakan Common Syndicate Parser dan yang lainnya menggunakan QueryPath Parser. Saya mengonfirmasi bahwa simpul umpan (induk) tidak diterbitkan. Apakah Anda melihat catatan bahwa itu mengimpor feed pada cache flush - apakah itu aneh atau normal? Seharusnya tidak melakukan itu terlepas dari statusnya, kan? Saya menggunakan local jadi cron belum diatur.
hellomobe
1
Artikel yang ditautkan memiliki informasi yang jauh lebih baik, bahkan kode sampel. Silakan pertimbangkan untuk menambahkan itu ke pertanyaan di sini.
Berkel

Jawaban:

1

Sepertinya, ketika sebuah node disimpan, modul Feeds mulai mengimpor feed dari node itu.

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();
  }
}

Ada opsi di halaman pengaturan importir yang disebut Import on submission . Jika Anda menghapus centang pada kotak ini, semoga umpan Anda tidak akan diimpor. Pemelihara feed masih perlu membuat perubahan pada feed_cron () sehingga tidak akan mengambil node yang tidak dipublikasikan.

Sementara Anda menunggu perbaikan yang lebih baik dari pengelola modul, Anda dapat dengan cepat memperbaiki kode ini dengan mengubah pernyataan if pertama untuk menambahkan kondisi $ node-> status == 1 sebagai berikut:

if ($node->status==1 && isset($node->feeds) && $importer_id = feeds_get_importer_id($node->type))
Ajinkya Kulkarni
sumber