Si le nœud des flux parent (importation) n'est pas publié, comment ne pas l'inclure dans la planification d'importation?

11

Si le flux parent importe un nœud (le formulaire / nœud pour saisir l'URL du flux, pas l'importateur de flux) qui n'est pas publié, j'aimerais qu'il (l'URL du flux) ne soit pas inclus dans la planification cron pour la mise à jour / l'importation les éléments de flux. Comment cela se fait-il? Par exemple, un utilisateur soumet un flux, mais l'administrateur doit le vérifier avant de le publier et de l'importer.

Voir aussi Ne pas importer d'éléments si le flux parent n'est pas publié .

hellomobe
la source
Avez-vous eu de la chance de trouver celui-ci? J'ai essayé cela avec l'importateur de flux (RSS) par défaut et cela semblait fonctionner comme prévu - il n'a pas été importé lorsque le nœud de flux a été non publié.
Jan Tomka
Hmm, c'est bizarre. L'un de mes importateurs de flux est configuré pour utiliser Common Syndicate Parser et l'autre utilise QueryPath Parser. J'ai confirmé que le nœud de flux (parent) n'est pas publié. Avez-vous vu la note indiquant qu'il importe des flux sur un vidage de cache - est-ce étrange ou normal? Il ne devrait pas faire cela indépendamment du statut, non? Je suis sur un local donc cron n'est pas encore configuré.
hellomobe
1
L'article lié contient de bien meilleures informations, même un exemple de code. Veuillez envisager d'ajouter cela à la question ici.
berkes

Réponses:

1

Il semble que lorsqu'un module est enregistré, le module Flux commence à importer le flux à partir de ce nœud.

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

Il existe une option dans la page de configuration de l'importateur appelée Importer lors de la soumission . Si vous décochez cette case, nous espérons que votre flux ne sera pas importé. Le responsable du flux doit toujours apporter des modifications dans feed_cron () afin qu'il ne récupère pas les nœuds non publiés.

Pendant que vous attendez un meilleur correctif de la part des responsables du module, vous pouvez rapidement corriger ce code en modifiant la première instruction if pour ajouter la condition $ node-> status == 1 comme suit:

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