Drupal ile veri girişi için komut mümkün mü?

5 Cevap php

Ben bir Drupal sitede bir mağazanın envanter koyarak ve bir komut dosyası oluşturmak mümkün olup olmadığını merak ediyorum planlıyorum (belki python / php?) CCK ile Drupal için otomatik veri girmek için? Şimdiden teşekkürler!

5 Cevap

this overview bir seçenekleri / karşılaştırmalar için onay - Harici (kütle) ithalatın farklı senaryolar adanmış Drupal modülleri bir çift vardır.

Eğer çok özel ihtiyaçları varsa, genelleme görmezden gerçek ekleme yapmak konusunda rehberlik için, mevcut olanları kullanarak, kendi modülü yazabilirsiniz ve links/hints provided by googletorps (+1).

Hızlı ve en kolay şey yerine sunucu mesajların çok göndermek ve düğüm yükleri kaynaklarını harcamak ve ne değildir kalmadan, durum için yapmak biraz Drupal modülü şeyler yapmak olacaktır.

Her neyse, ne bunun için gerekenleri mac cevaplar oldukça benzer here:

Bu durumda tüm özel file_field şeyler gerekmez, ama yine de olabilir, farklı CCK alanları ve düğüm gövde ve başlık için değerler eklemek gerekir. Eğer veritabanı doğrudan alabilir değerini ayarladıktan sonra, sizin düğümü kaydedebilirsiniz.

Doğrudan db bağlarsanız, size drupal için kullanmak olarak aynı tip olması gerekir, ya da Drupal API dışında bunu. Bunun için drupal API kullanın yaparsanız, db_set_active() bir göz atın

Iyi öneriler sürü zaten Henrik ve Googletorp tarafından yapılmıştır.

Strateji tasarım dikkate birkaç ek unsurları:

  1. Eğer (muhtemelen ubercart ile gerçekleşen) bir tam teşekküllü e-mağaza yapacaksın veya sadece sadece site ziyaretçilerine envanter sunmak, düğümleri bir görünüm kuruyorsanız?
  2. Kaç ürünler ithal olacak?
  3. Ne kadar sıklıkla onları reimport gidiyorsun?

Solutions that I would feel to exclude for sure:

  • Googletorp tarafından yorumladı POST:, bu aşırı karmaşık olurdu.
  • (Eğer tehlikeli yaşayan ve / veya atık için zamanımız var gibi sürece) External script: gerçekten onlar çekirdek olanlar veya Ubercart olanlar olup olmadığını, drupal API kullanarak kaçınamaz. Veri çeşitli tablolar dağılmış ve bir düğüm takıldığında tetiklenen kanca bol vardır edilir. Eğer (index.php veya xmlrpc.php nasıl çalıştığını görmek için yapısını görmek) ilk ön yükleme gerçekleştirmek bir PHP komut dosyası yapmak olsaydı tek istisna, ama bu durumda ben yeğlerdi çok daha zarif, taşınabilir ve sürdürülebilir: tamamen bir modül için gidin.

Solutions that I would support:

  • Do your own module! googletorp işaret ettiği gibi, ben this answer olarak CCK alanları eklemek için bazı örnek kod verdi.
  • Evet, bu ... Ben inanıyorum sadece biridir! ;)

Ancak ne ben öğrendim eşit derecede önemli olduğunu, pick a suitable source of data for the import etmektir. İşte benim görüşüm:

  • Eğer ihracat uygulamanın DB şema mantıklı sorguları oluşturmak için yeteri kadar basit olmadığını bir kez ve tüm and için malzeme ithal etmek zorunda sadece Read directly from DB: iyi. Yazılım değişiklikleri ve geliştikçe, ve DB şemalar izleyin. Eğer yeniden ithal iki ay zaman ve diğer uygulama şeması değişti ihtiyacı kendinizi bulursanız, vb kodunuzu, değişim testleri, vb değiştirmek zorunda kalacak ..
  • Özgün uygulama gerçekten verileri almak için bir esinti typecasting PHP 'SimpleXML ve Xpath + PHP ile, bu formatta verebilirsiniz Eğer Use XML files: Eğer istediğiniz Eğer birkaç dakika içinde istediğiniz biçimi. Bu yöntemin tek dezavantajı bu konuda ... dosyaları dayanır olduğunu. Periyodik insansız ve otomatik ithalat olması gerekir eğer öyleyse, bu (dosyasistemlerinden yanlış izinleri, bozuk dosyalar, yanlış kodlama ...) başına gelebilecek tüm sorunları öngörmek ve yerine karşı önlemler koymak için bir ağrı biraz . Tam tersi, ben birileri ithalat işlemini her zaman denetliyor olacak biliyorum ve sıkıntılar durumunda müdahale zaman için bu yöntemi çok seviyorum.
  • Webservice: Ben bir otomatik ve periyodik bir şekilde almak varsa ben en çok sevdiğim biridir. En büyük avantajı, birbirlerine bu iki uygulama "konuşma" olduğunu, ve aslında gibi görünen bir oturumu var, böylece kendi iş mantığı bazı açığa: hey, ben geçen haftadan bu yana fiyatlar değişti tüm ürünleri gerekir " "-" Burada siz, onlar bunu duyuyor musun, üç kategoride, 127 olmalı? " - "Ah evet ... yüksek sesle ve net hepsi var: 127 ürün ve 3 kategorileri!". Bu basitleştirmek a lot yakalama hataları ve istisnalar. Drupal Webcoder tüketici ve sağlayıcı olarak kutusunu çalışır yaparken, diğer uygulamaya da webservice uygulamak zorunda ve bu kudreti ya da zor olmayabilir olacaktır: Tamamen ihracat uygulamadan bağlıdır.

HTH!

Aksi CCK ya, sadece bir Wellformed POST sorgu (muhtemelen), bu yüzden emin bunun için gidin.

Kaynak veri MySQL ise I (http://drupal.org/project/migrate) içerik oluşturmak için migrate modülünde bakıyor olurdu.