상위 피드 (가져 오기) 노드가 게시 취소 된 경우 가져 오기 일정에 포함하지 않으려면 어떻게합니까?


11

상위 피드가 게시되지 않은 노드 (피드 가져 오기자가 아닌 피드 URL을 입력하기위한 양식 / 노드)를 가져 오는 경우 업데이트 / 가져 오기 위해 cron 스케줄에 포함시키지 않으려 고합니다 (피드 URL). 피드 아이템. 이것은 어떻게 이루어 집니까? 예를 들어, 사용자가 피드를 제출하지만 관리자는 피드를 게시하고 가져 오기 전에 확인해야합니다.

상위 피드가 게시되지 않은 경우 항목 가져 오기 안 함을 참조하십시오 .


이것을 알아 낸 행운이 있었습니까? 기본 (RSS) 피드 가져 오기로 시도했지만 피드 노드가 게시 취소되었을 때 가져 오지 않았습니다.
Jan Tomka

흠, 이상하다. 피드 가져 오기 중 하나가 Common Syndicate Parser를 사용하도록 구성되었고 다른 하나는 QueryPath Parser를 사용합니다. 피드 노드 (부모)가 게시 취소되었음을 확인했습니다. 캐시 플러시에서 피드를 가져 오는 중이라는 사실을 알고 계십니까? 이상하거나 정상입니까? 지위에 관계없이 그렇게해서는 안됩니다. 나는 현지에있어서 cron이 아직 설정되지 않았습니다.
hellomobe

1
링크 된 기사에는 훨씬 더 나은 정보가 있으며 샘플 코드도 있습니다. 여기에 질문에 추가하십시오.
berkes September

답변:


1

노드가 저장되면 피드 모듈이 해당 노드에서 피드 가져 오기를 시작하는 것처럼 보입니다.

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

가져 오기 설정 페이지 에서 제출시 가져 오기 옵션이 있습니다 . 이 체크 박스를 선택 해제하면 피드를 가져 오지 않기를 바랍니다. 피드 관리자는 여전히 게시되지 않은 노드를 가져 오지 않도록 feed_cron ()을 변경해야합니다.

모듈 관리자로부터 더 나은 수정을 기다리는 동안 첫 번째 if 문을 다음과 같이 $ node-> status == 1 조건 을 추가하도록 변경하여이 코드를 빠르게 수정할 수 있습니다 .

if ($node->status==1 && isset($node->feeds) && $importer_id = feeds_get_importer_id($node->type))
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.