سؤال

أنا أعمل مع دروبال 6.× نظام لإنشاء العملية / التدريب الشخصي وبرامج أنا باستخدام CCK مع أنواع المحتوى من ممارسة البرنامج ، حيث البرنامج يحتوي على عدة حقول رأس قائمة عقدة إشارات إلى التدريبات وتتكون من.هذا يعمل كبيرة و لا يمكن إنشاء يدويا البرامج التي تعمل بشكل جيد.أود الآن أن إنشاء وحدة نمطية التي يمكن أن تولد هذه البرامج تلقائيا استنادا إلى عدد من خوارزميات لقد وضعت العملية سوف تبدو مثل:

  1. تحميل جميع التمارين في مجموعة
  2. تحميل المستخدمين المعلومات الشخصية (دخلت سابقا)
  3. إنشاء الأنسب تمارين
  4. إنشاء برنامج جديد نوع المحتوى
  5. حفظ البرنامج

تمرين عدد من سمات ذات الصلة وعلى الرغم من أنني يمكن أن تفعل كل ما سبق باستخدام SQL مباشرة في الجداول ستكون معقدة جدا و لا يشعر الحق.أود في الخطوة 1 لتحميل تمارين مجموعة من التمارين الكائنات (node_load?), ومن ثم إنشاء برنامج وجوه وحفظها.هذا OO نوع نهج ممكن أو لا تضطر إلى اللجوء إلى التلاعب في البيانات مباشرة ؟

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

المحلول

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

الخطوة 1 يمكنك أن تفعل node_load($nid) على كل excercies الخطوة 2 يمكنك استخدام user_load($uid) الخطوة 3 سوف تحتاج إلى تكرار خلال كائن المستخدم ومتابعة المباراة المناسبة excercies.الخطوة 4/5 كنت خلق جديد $عقدة = stdClass();موضوع ملء مع سمات البيانات الصحيحة ثم أنه node_save($عقدة) ؛ هذا وسوف تخصص $عقدة->id الخ.

أنا متأكد على ما الصفات في برنامج التدريب الخاص بك عقدة ثم القيام print_r($عقدة) ؛ على واحدة كنت قد أنشأت بالفعل.

فيل

نصائح أخرى

لا توفر Drupal أي آلية "متتالية" لإنقاذ التسلسل الهرمي من العقد في ضربة واحدة. ستحتاج إلى إنشاء كل عقدة في التعليمات البرمجية واستدعاء node_save () عليها بشكل صريح كما هو موضح من قبل فيل كارتر.

ال تصدير العقدة الوحدة النمطية يمكن أن تولد نموذج التعليمات البرمجية لإنشاء عقدة (كاملة مع حقول CCK) برمجيا.

هناك طن من الوحدات التي تحاول القيام بأي شيء الاستيراد. ألق نظرة على مقارنة بينهم http://groups.drupal.org/node/21338.

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

لا أعتقد أن "إنشاء" هذه البرامج ضرورية.

لماذا لا تعرض مجرد قائمة من التدريبات التي تتطابق مع متطلباتك ومشاركة "خصائص" المستخدم.

كنت أنجز هذا من خلال جعل "الخصائص" التصنيفية. ثم تعلق للمستخدمين إما مع ملف تعريف، أو علم التصنيف. ثم عرض قائمة (ربما حتى عرض في البداية) وأولئك الذين لديهم نفس العلامات المميزة داخل التمارين.

سيكون هذا ديناميكيا وخاصة المستخدمين ويحتاج الملاحظة إلى تحميل ما قبل تحميل مجموعة من البرامج.

فكرة.

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