هل من الممكن أن سيناريو إدخال البيانات مع دروبال?

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

  •  05-07-2019
  •  | 
  •  

سؤال

أنا والتخطيط على وضع وجرد المخزن على موقع دروبال و أنا أتساءل إذا كان من الممكن إنشاء برنامج نصي (ربما في بيثون/php?) لإدخال البيانات تلقائيا إلى دروبال مع CCK ؟ شكرا مقدما!

هل كانت مفيدة؟

المحلول

وهناك زوجين من وحدات دروبال مخصصة لسيناريوهات مختلفة من (الكتلة) الواردات الخارجية - تحقق هذا العرض للحصول على خيارات / المقارنات.

إذا كان لديك احتياجات محددة للغاية، يمكن أن تكتب وحدة خاصة بك، وذلك باستخدام تلك القائمة وفي الروابط / تلميحات التي تقدمها googletorps (+1) لتوجيهات بشأن كيفية القيام الإدراج الفعلي بينما يتجاهل التعميمات.

نصائح أخرى

والشيء أسرع وأسهل وسيكون للقيام بهذه الاشياء مع وحدة دروبال الصغيرة التي تجعل لهذه القضية، بدلا من الاضطرار إلى إرسال الكثير من المشاركات على الخادم وإنفاق الموارد على الأحمال عقدة وليس ما.

وعلى أي حال، ما عليك لأن هذا يشبه إلى حد كبير ما إجابات <أ href = لجنة الهدنة العسكرية "https://stackoverflow.com/questions/1796948/how-can-i-associate-many-existing-files-with- دروبال-filefield # 1797254 "> هنا :

في هذه الحالة لا تحتاج كل الاشياء file_field خاص، ولكن ما زالت هناك حاجة لادخال القيم للحقول CCK مختلفة قد تكون لديكم والجسم عقدة والعنوان. بعد تحديد القيمة التي يمكن أن تحصل مباشرة من قاعدة البيانات الخاصة بك، يمكنك حفظ عقدة الخاص بك.

إذا كنت تتصل ديسيبل مباشرة، تحتاج إلى أن يكون من نفس نوع واحد تستخدمه لدروبال، أو يفعل ذلك خارج المعهد دروبال. إذا كنت لا تستخدم API دروبال لذلك، نلقي نظرة على db_set_active ()

الكثير من الاقتراحات الجيدة قد تم القيام به من قبل هنريك و Googletorp بالفعل.

بعض العناصر الإضافية النظر إلى تصميم استراتيجية الخاص بك:

  1. أنت ذاهب إلى القيام به كامل المتجر الإلكتروني (ويفترض أدركت مع ubercart) أو يمكنك ببساطة إنشاء عرض من العقد فقط إلى تقديم جرد الموقع الزوار ؟
  2. كيف العديد من المنتجات أنت ذاهب إلى الاستيراد ؟
  3. كيف وغالبا ما كنت تنوي إعادة استيراد لهم ؟

الحلول التي أشعر استبعاد بالتأكيد:

  • وظيفة: كما علق googletorp سيكون معقد أكثر من اللازم.
  • الخارجية النصي: لا يمكنك تجنب (إلا إذا كنت تريد أن تعيش بشكل خطير و/أو لتضييع الوقت) باستخدام دروبال API ، سواء الأساسية منها أو تلك من ubercart.البيانات المنتشرة في أنحاء عدة جداول ، وهناك الكثير من السنانير التي يتم تشغيلها عند عقدة يتم إدراجها.والاستثناء الوحيد هو إذا كنت تفعل السيناريو PHP التي تؤدي التمهيد الأول (انظر هيكل index.php أو xmlrpc.php لنرى كيف يعمل) ولكن في هذه الحالة سوف تذهب بدلا عن الوحدة تماما:أكثر من ذلك بكثير أنيقة المحمولة ، للصيانة.

الحلول التي من شأنها دعم:

  • لا وحدة! كما أشار googletorp, أعطى بعض التعليمات البرمجية على كيفية إضافة الحقول في CCK هذا الجواب.
  • نعم هذا هو...هو الوحيد الذي أؤمن!;)

ومع ذلك ما تعلمته هو نفس القدر من الأهمية ، اختيار مناسب مصدر البيانات لاستيراد.هنا رأيي:

  • قراءة مباشرة من DB: جيد فقط إذا كان لديك لاستيراد الاشياء مرة واحدة وإلى الأبد و إذا DB schema المصدرة التطبيق هو بسيط بما فيه الكفاية لبناء معقولة الاستعلامات.البرنامج يتغير ويتطور ، DB مخططات متابعة.إذا كنت تجد نفسك في حاجة إلى إعادة استيراد في غضون شهرين و المخطط من التطبيقات الأخرى قد تغيرت ، سوف تضطر إلى تغيير التعليمات البرمجية الخاصة بك, تغيير الاختبارات ، الخ ، الخ...
  • استخدام ملفات XML: إذا كان الطلب الأصلي يمكن تصدير في هذا الشكل ، مع PHP' SimpleXML و Xpath + PHP بتلبيس هو حقا نسيم للحصول على البيانات التي تريدها في شكل تريده في دقائق معدودة.الجانب السلبي الوحيد من هذه الطريقة التي تعتمد على...ملفات.حتى, إذا كنت بحاجة إلى الدوري بدون طيار و الاستيراد التلقائي, انها قليلا من الألم توقع جميع المشاكل التي يمكن أن تحدث (خطأ الأذونات على الملفات ملفات تالفة ترميز خاطئ...) ووضع تدابير مضادة.العكس بالعكس, أنا أحب هذا الأسلوب كثيرا عندما كنت تعرف شخص ما سوف يكون الإشراف على عملية الاستيراد في كل وقت يمكن أن تتدخل في حالة حدوث مشاكل.
  • خدمة ويب: هذا هو واحد كنت مثل معظم إذا كنت مضطرا إلى استيراد تلقائي و دوري الموضة.أكبر ميزة هي أن اثنين من تطبيقات "تتحدث" مع بعضها البعض ، وفضح بعض من أعمالهم المنطق ، بحيث يمكن أن يكون في الواقع الجلسة التي تبدو مثل:"أنا في حاجة إلى كل المنتجات التي تغيرت الأسعار منذ الأسبوع الماضي" - "أنت هنا ، ينبغي أن تكون 127 في ثلاث فئات ، هل تسمعني؟" - "نعم...حصلت كل منهم بصوت عال وواضح:127 البنود 3 فئات!".هذا تبسيط الكثير محاصرة الأخطاء والاستثناءات.في حين دروبال يعمل بها الصندوق مثل خدمة ويب المستهلك ومقدم, سيكون لديك لتنفيذ خدمة ويب أيضا في تطبيق آخر ، وهذا قد أو قد لا يكون من الصعب:ذلك يعتمد كليا من تصدير التطبيق.

HTH!

وCCK أو غير ذلك، انها مجرد استعلام وظيفة wellformed (المفترض)، على يقين من ذلك، لأنها تذهب.

إذا البيانات المصدر في الخلية وأرجو أن تبحث في ترحيل حدة لخلق يحتوي. هنا مقتطف من صفحة مشروعها:

<اقتباس فقرة>   

... يوفر إطارا مرنا للترحيل المحتوى في دروبال من مصادر أخرى (على سبيل المثال، عند تحويل موقع على شبكة الإنترنت من CMS أخرى لدروبال). خارج المربع، ويتم تضمين الدعم لإنشاء الأساسية الأجسام دروبال مثل العقد، والمستخدمين، وملفات، والمصطلحات، وتعليق - يمكن بسهولة أن يتم تمديدها لهجرة أنواع أخرى من المحتوى. يتم استيراد المحتوى والتراجع باستخدام واجهة ويب واحدة (وحدة ترحيل UI) أو تضمينها Drush أوامر (موصى به بشدة).

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top