it-swarm.asia

مساعدة في إنشاء عرض الشرائح نوع مخصص مع صناديق التعريف المخصصة؟

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

  • العنوان (حقل النص)
  • صورة (إما حقل نص لعنوان URL img أو بشكل مثالي قائمة منسدلة تعرض صورًا مصغرة للصور المرفقة بالنشر)
  • كود التضمين (مساحة النص)
  • الوصف (wysiwyg)
  • إخفاء الشريحة (خانة اختيار لاستخدامها لإخفاء شريحة مؤقتًا دون حذفها)
  • حذف الشريحة (الزر الذي يحذف محتويات حقول منشورات النشر التي تم ملؤها بواسطة هذه الشريحة)

أرغب أيضًا في زر يتيح لك "إضافة شريحة" في مكان ما ، لذلك عند النقر عليه ، فإنه يضيف "Slide" Custom Meta Box آخر مكرر من الأول ولكنه يضيف رقمًا إضافيًا إلى كل حقل من ميادين النشر المخصص. لدي حاليًا 15 ملف تعريف فقط ، ويتم إعداد قالب "الشرائح" بطريقة أنه إذا تم ملء 5 فقط من وحدات التعريف ، فيتم عرض 5 شرائح فقط.

أخيرًا ، أود أن أكون قادرًا على إعادة ترتيب الشرائح ، سواء بواسطة "السحب والإفلات" أو عن طريق حقل نص آخر يمكنني كتابة رقم الطلب فيه.

لقد حصلت عليه تقريبًا حيث أحتاجه مع "مزيد من الحقول" المساعد وبعض التعليمات البرمجية من Rarst. باستخدام المكوّن الإضافي "المزيد من الحقول" ، لدي الحقول التالية في كل وحدة استقلاب:

  • العنوان (حقل النص)
  • صورة (قائمة منسدلة من الصور المرفقة بالنشر)
  • كود التضمين (مساحة النص)
  • الوصف (wysiwyg)
  • إخفاء الشريحة (خانة اختيار لاستخدامها لإخفاء شريحة مؤقتًا دون حذفها)

إليك لقطة شاشة عن كيفية إعدادها من خلال المكون الإضافي "مزيد من الحقول":

alt text

المشكلة في ذلك هي أنه لا توجد طريقة لحذف شريحة بمجرد إنشائها لأن "المزيد من الحقول" لا تستخدم <?php delete_post_meta($post_id, $key, $value); ?> في أي مكان. المشكلة الأخرى في البرنامج المساعد هي أنه غير موثوق به للغاية ويتوقف باستمرار مع التحديثات.

لقد تمكنت من تنفيذ حل مشابه باستخدام عمليات التمثيل الغذائي المخصصة الخاصة بي والتي تشمل:

  • العنوان (حقل النص)
  • صورة (حقل نص لعنوان img)
  • كود التضمين (مساحة النص)
  • الوصف (مساحة النص)
  • إخفاء الشريحة (خانة اختيار لاستخدامها لإخفاء شريحة مؤقتًا دون حذفها)

مع هذا التطبيق ، لا يبدو أنني أحصل على حقول TinyMCE المتعددة للعمل أو مربع القائمة المنسدلة للصور. يبدو أن رمز TinyMCE يعمل إلى أن أضيف الرمز الذي ينشئ نسخًا تزايديًا من أول metabox في هذه المرحلة ، أتلقى هذا الخطأ أعلى الحقل مباشرةً حيث يجب أن تكون أزرار TinyMCE: Warning: array_Push() [function.array-Push]: First argument should be an array....

وفي الوقت الحالي ، أعتمد على كتبي لمعرفة وضع أي صورة أو صورة لكل شريحة على ما يرام ، لكن قد يكون من الأفضل أن يكون لديك زر راديو يتيح لهم اختيار الشريحة التي ربما تكون (الشريحة الافتراضية هي الصورة) المرتبطة ببيان عرض مشروط في قالب عرض الشرائح.

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

في النهاية ، أبحث عن عرض شرائح مشابه لهذا: http://www.nytimes.com/slideshow/2010/08/10/science/20100810angier-1.html . أريد أن يكون لي أيضًا مقطع فيديو كمحتوى في الشريحة بدلاً من صورة. أحتاج إلى لوحة Admin بديهية وسهلة الاستخدام لكتابي (فهم ليسوا أذكياء للغاية ولا يمكن الاعتماد عليهم باستخدام html و/أو الرموز المختصرة). فقط في حالة عدم وضوح هذا المثال ، يجب أن تنشئ كل شريحة صفحة جديدة.

إعادة ترتيب Drag'n'Drop ليست أولوية عالية ولكنها ستكون رائعة. لقد وجدت مكونًا إضافيًا يعالج هذا الأمر جيدًا: SlideDeck . لسوء الحظ ، لا يتناسب المكون الإضافي مع احتياجاتي ، لكن الطريقة التي يتعاملون بها مع ترتيب الشرائح هي بقعة جميلة. إنه استقلاب منفصل في الشريط الجانبي يتيح لك سحب الشرائح في المكان الذي تريده. هذه هي أيضًا الطريقة التي تضيف بها شرائح ، وذلك بالنقر فوق الزر "إضافة شريحة" الذي يضيف Slide Metabox آخر إلى لوحة الكتابة. هنا هي لقطة الشاشة:

alt text

يمكنك أيضًا رؤية المزيد من لقطات الشاشة قيد التنفيذ في مستودع Wordpress .

هنا هو كل رمز بلدي:

الوظائف التي تقوم بإعداد نوع منشور عرض الشرائح و ترقيم الصفحات: http://loak.Pastebin.com/g63Gf186

الكود الأصلي من DeluxeBloggingTips.com (DBT) الذي استندت إليه Metaboxes الخاصة بي خارج: http://loak.Pastebin.com/u9YTQrxf

إصدار رمز DBT الذي قمت بتعديله لإعطائي إصدارات تدريجية من نفس قاعدة التعريف: http://loak.Pastebin.com/WtxGdPrN

نسخة معدلة من كود DBT الذي أنشأه Chris Burbridge للسماح بمثيلات متعددة من TinyMCE: http://loak.Pastebin.com/Mqb3pKhx _ ​​مع هذا الرمز ، تعمل TinyMCEs.

تعديلي لرمز بيربريدج الذي يحاول دمج زيادة بلدي وحقل يتيح لك اختيار الصورة من قائمة منسدلة لجميع الصور المرفقة بالنشر: http://loak.Pastebin.com/xSuenJTK _ ​​في هذه المحاولة ، تم كسر TinyMCE ولا يعمل القائمة المنسدلة.

قد لا يكون هذا الأمر مهمًا ولكن في حالة ما إذا كنت تتساءل ، إليك الرمز الذي أستخدمه لسحب الكود المضمّن من الفوقية المنشورة المخصصة ، وتغيير حجمها ، وإدراجها في المنشور: http: //loak.Pastebin .com/n7pAzEAw

هذه نسخة معدلة من السؤال الأصلي لتعكس الحالة الحالية للمشروع والإجابة على الأسئلة المنشورة في التعليقات. بفضل Chris_O لوضعه مكافأة على هذا. أيضًا ، بفضل Rarst و Justin لمساعدتي كثيرًا في هذا في منتدى ThemeHybrid.com . لقد أمضيت ساعات وساعات في هذا الأمر وأنا عالق (قضيت بضع ساعات وحدي في هذا السؤال). أي مساعدة سيكون موضع تقدير كبير.

15
matt

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

حقول متعددة

اقتراحي هو إلقاء نظرة على { WordPress Widget class واستخدامه كنموذج لمصنع الحقل الخاص بك - في الأساس ، استعارة القدرة على إنشاء مثيلات متعددة لحقل ما إذا كان لديك إطار عمل مصمم له.

هذا هو جوهر كيفية عمل تطبيقات مصغّرة متعددة في الشريط الجانبي:

  • يمكنك تحديد رمز كل عنصر واجهة مستخدم مرة واحدة عن طريق توسيع فئة WP_Widget.
  • بعد ذلك ، يمكنك إنشاء العديد من نسخ التطبيق المصغّر كما تريد
    • يتم تخزين تفاصيل كل عنصر واجهة مستخدم كبيانات مسلسلة في جدول الخيارات
  • يمكنك تخصيص كل عنصر واجهة مستخدم ، وإزالتها بأمر delete بسيط ، وتعيين موضعها بشكل صريح من خلال واجهة السحب والإفلات Appearance

Drag-and-drop

مرة أخرى ، أقترح البحث عن نظام أداة WordPress للحصول على الإلهام. لدينا بالفعل واجهة سحب وإفلات بديهية إلى حد ما تم إعدادها هناك ، لذلك سيكون من السهل إلى حد ما إعادة صياغة الكثير من نفس الرمز في مكان آخر. أو ، إذا كنت ترغب في أن تكون خياليًا بالفعل ، يمكنك تطبيق نظام السحب والإفلات الخاص بك داخل حقل تعريف مخصص منفصل.

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

تحتوي واجهة jQuery UI على واجهة " draggable " رائعة يمكنك معالجتها بسهولة لأغراضك في صندوق التعريف المخصص هذا. الجزء الصعب لا يقوم ببناء الواجهة ، إنه يصبح ثابتًا ، دقيق التواصل بين مربع meta ومجموعة من مربعات meta slide في مكان آخر على الصفحة.

باختصار

ما جمعته من مشاركتك هو أن لديك حلًا عمليًا إلى حد ما:

  • لقد أضفت 15 حقلاً مخصصًا إلى نوع المنشور المخصص الخاص بك من خلال عنصر واجهة مستخدم "المزيد من الحقول" ولكنك تريد ديناميكيًا إضافة/إزالة الحقول بدلاً من العمل برقم محدد
  • تريد طريقة لضبط ترتيب هذه الحقول المخصصة بحيث يتم تحميل الشرائح بالترتيب

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

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

بين SlideDeck ، و More Fields ، والرمز المخصص الذي قمت بتجميعه حتى الآن ، لديك بالفعل معظم حلولك في متناول اليد ... تحتاج فقط إلى جعلها تعمل معًا في نفس الوقت. أود التركيز على خفض تنفيذ الجذر أولاً قبل إضافة زخرفة جافا سكريبت - إنشاء الشرائح وتعديلها وحفظها وحذفها أهم من محرر نص منسق ، IMO. الحصول على هذا تصدع أولا. ثم الحصول على نظام الطلب إلى أسفل. ثم يمكنك التركيز على الحصول على مثيلات متعددة من TinyMCE تعمل على الصفحة.

6
EAMann

لقد وجدت هذا ، وهو بالضبط ما تبحث عنه (أنا) -> http://pippinsplugins.com/drag-and-drop-order-for-plugin-options/

0
Ben Racicot