Drupal을 사용하여 데이터 입력을 위해 스크립트를 스크립트 할 수 있습니까?

StackOverflow https://stackoverflow.com/questions/1808721

  •  05-07-2019
  •  | 
  •  

문제

스토어의 인벤토리를 Drupal 사이트에 넣을 계획이며 CCK를 사용하여 Drupal에 데이터를 자동으로 입력하기 위해 스크립트 (Python/PHP에서)를 만들 수 있는지 궁금합니다. 미리 감사드립니다!

도움이 되었습니까?

해결책

외부 (질량) 가져 오기의 다양한 시나리오에 전용 된 몇 가지 드 루팔 모듈이 있습니다 - 확인 이 개요 옵션/비교.

매우 구체적인 요구가있는 경우 기존 모듈을 사용하여 자신의 모듈을 작성할 수 있습니다. Googletorps에서 제공 한 링크/힌트 (+1) 일반화를 무시하는 동안 실제 삽입을 수행하는 방법에 대한 지침.

다른 팁

가장 빠르고 가장 쉬운 것은 서버에 많은 게시물을 보내고 노드로드에 리소스를 소비하는 대신 케이스를 위해 만든 작은 Drupal 모듈로 작업을 수행하는 것입니다.

어쨌든, 이것에 필요한 것은 Mac이 대답하는 것과 매우 유사합니다. 여기:

이 경우 모든 특수 File_field 물건이 필요하지는 않지만 여전히 다른 CCK 필드와 노드 본문 및 제목에 대한 값을 삽입해야합니다. 데이터베이스에서 직접 얻을 수있는 값을 설정 한 후 노드를 저장할 수 있습니다.

DB에 직접 연결되면 Drupal에 사용하는 것과 동일한 유형이 있거나 Drupal API 외부에서 수행해야합니다. Drupal API를 사용하는 경우 살펴보십시오. db_set_active ()

Henrik과 Googletorp는 이미 많은 좋은 제안이 이루어졌습니다.

전략을 설계하기 위해 고려해야 할 몇 가지 추가 요소 :

  1. 본격적인 전자 매장을 할 건가요? Ubercart) 또는 사이트 방문자에게 인벤토리를 제시하기 위해 단순히 노드보기를 설정하고 있습니까?
  2. 몇 개의 제품을 수입 하시겠습니까?
  3. 얼마나 자주 그들을 상환 할 건가요?

확실히 제외 할 수있는 솔루션 :

  • 게시하다: Googletorp가 언급했듯이 지나치게 복잡 할 것입니다.
  • 외부 스크립트 : Drupal API를 사용하여 핵심이든 Ubercart의 핵심이든, 당신은 실제로 피할 수 없습니다 (위험하게 살거나 낭비 할 시간이 없다면). 데이터는 여러 테이블에 흩어져 있으며 노드를 삽입 할 때 트리거되는 후크가 많이 있습니다. 유일한 예외는 Bootstrap을 먼저 수행하는 PHP 스크립트를 수행하는 경우입니다 (구조 참조 인덱스 .php 또는 xmlrpc.php 그것이 어떻게 작동 하는지를 보려면), 그러나 그 경우에는 훨씬 더 우아하고 휴대용이며 유지 관리 가능한 모듈을 모두 사용합니다.

내가 지원할 솔루션 :

  • 자신의 모듈을하십시오! Googletorp가 지적했듯이 CCK 필드를 추가하는 방법에 대한 샘플 코드를 제공했습니다. 이 답변.
  • 예, 그게 ... 내가 믿는 유일한 사람입니다! ;)

그러나 내가 배운 것은 똑같이 중요합니다. 가져 오기에 적합한 데이터 소스를 선택하십시오. 내 의견은 다음과 같습니다.

  • DB에서 직접 읽으십시오. 한 번에 물건을 가져와야하는 경우에만 좋습니다. 그리고 내보내기 응용 프로그램의 DB 스키마가 현명한 쿼리를 구축 할 수있을 정도로 간단한 경우. 소프트웨어 변경 및 진화 및 DB 스키마가 이어집니다. 2 개월 안에 재도원이 필요하다고 생각하고 다른 응용 프로그램의 스키마가 변경되면 코드를 변경하고 테스트를 변경하는 등을 변경해야합니다 ...
  • XML 파일 사용 : 원래 응용 프로그램 이이 형식으로 내보낼 수있는 경우 PHP ' 단순 렉스 그리고 xpath + PHP 타입 캐스팅은 원하는 데이터를 몇 분 안에 원하는 형식으로 얻는 것이 매우 산들 바람입니다. 이 방법의 유일한 단점은 ... 파일에 의존한다는 것입니다. 따라서 주기적으로 무인 및 자동 수입이 필요하다면, 발생할 수있는 모든 문제 (파일 시스템, 손상된 파일, 잘못된 인코딩에 대한 잘못된 권한, 잘못된 인코딩 ...)를 예측하는 것은 약간의 고통입니다. . 그 반대로, 나는 누군가가 누군가가 항상 수입 프로세스를 감독하고 문제가 발생할 경우 개입 할 수 있다는 것을 알고있을 때이 방법을 많이 좋아합니다.
  • 웹 서비스: 그것이 자동적이고 정기적 인 방식으로 가져와야한다면 내가 가장 좋아하는 것입니다. 가장 큰 장점은 두 응용 프로그램이 서로 "대화"하고 비즈니스 논리를 노출시켜 실제로 다음과 같은 것처럼 보이는 세션을 가질 수 있다는 것입니다. "지난 주 이후 가격이 변경된 모든 제품이 필요합니다. " -"여기에 있습니다. 그들은 127 명, 세 가지 범주로 127 명이어야합니다. 복사합니까? " - "오 예 ... 그들 모두를 크고 명확하게 만들었습니다 : 127 개의 항목과 3 가지 카테고리!" 이것은 단순화합니다 많이 트래핑 오류 및 예외. Drupal은 상자를 웹 서비스 소비자 및 공급자로서 작동하지만 다른 응용 프로그램에서도 웹 서비스를 구현해야하며 어려울 수도 있습니다. 이는 전적으로 내보내기 응용 프로그램에 달려 있습니다.

HTH!

CCK 또는 그렇지 않으면, 그것은 단지 잘 알려진 포스트 쿼리 일뿐입니다 (아마도).

소스 데이터가 MySQL에 있으면 마이그레이션 콘텐츠를 만들기위한 모듈. 다음은 프로젝트 페이지에서 발췌 한 내용입니다.

... 다른 소스 (예 : 웹 사이트를 다른 CMS에서 Drupal로 변환 할 때)에서 콘텐츠를 Drupal로 마이그레이션하기위한 유연한 프레임 워크를 제공합니다. 박스 외부에서는 노드, 사용자, 파일, 이용물 및 댓글과 같은 코어 드 루팔 객체 생성에 대한 지원이 포함되어 있습니다. 다른 종류의 컨텐츠를 마이그레이션하기 위해 쉽게 확장 할 수 있습니다. 묶음 웹 인터페이스 (UI 모듈 마이그레이션)를 사용하여 컨텐츠가 가져 오거나 롤백되거나 포함 된 drush 명령 (강력하게 권장).

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top