Unlimited WordPress themes, graphics, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Yii
Code

بناء بدء التشغيل الخاص بك: تقديم دعوة الاجتماع

by
Difficulty:IntermediateLength:LongLanguages:
This post is part of a series called Building Your Startup With PHP.
Using the Mailgun Store(): A Temporary Mailbox for Your App's Incoming Email
Building Your Startup With PHP: Email Commands

Arabic (العربية/عربي) translation by Basrah (you can also view the original English article)

Final product image
What You'll Be Creating

مقدمة

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

ما تغطية هذه الحلقة؟

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

كافة التعليمات البرمجية "مخطط الاجتماع" مكتوبة في إطار Yii2 بي. إذا كنت ترغب في معرفة المزيد عن Yii2، تحقق من بلدي سلسلة موازية البرمجة مع Yii2 في Envato Tuts +.

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

متطلبات لتسليم دعوات

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

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

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

تحذير موجزاً حول تجربة المستخدم

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

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

وفيما يلي بعض التحديات التي نشأت مع أعمال هذه الحلقة:

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

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

دعوة تصميم ومحتويات

في البداية، كان لي أن اسأل، ما ينبغي إدراجه في رسالة البريد الإلكتروني؟ ومن الواضح أنه ستكون هناك الحقول القياسية:

  • إلى
  • من
  • هذا الموضوع (أنت مدعو إلى اجتماع!)
  • نص الرسالة
  • تذييل الصفحة

سوف تحتاج إلى محتويات الجسم تشمل:

  • تفاصيل الاجتماع
  • الأماكن المقترحة
  • تواريخ وأوقات

واعتماداً على إعدادات للمنظم، الذي يربط الأمر ينبغي تقديمها؟ فيما يلي بعض الأسئلة التي طرحت. وينبغي أن نسمح للمستلمين إلى:

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

وأخيراً، سوف تحتاج تذييل الصفحة لدعم:

  • إشعار ألفا طلبا للتغذية المرتدة
  • الخيار لحظر المرسل
  • خيار إلغاء الاشتراك من المستقبل "مخطط الاجتماع" دعوات
  • تفاصيل الشركة ومعلومات الاتصال

وأنا أعلم أنه يمكن أن يكون من الصعب على تصور كل هذا – وهذا لم يكن حلقة سهلة لبناء. هنا هو مثال على الدعوة التي بنيت في نهاية المطاف:

Meeting Planner Invitation Example

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

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

Meeting Planner Invitation - View of Places and Times

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

Meeting Planner Invitation - Updating Your Meeting Settings

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

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

الآن، دعونا استعراض كيفية تسليم الدعوة المذكورة أعلاه كما.

تسليم دعوة

Meeting Planner Invitation - The Command Bar with Send

ماذا يحدث عند النقر فوق المنظم إرسال؟ في البداية، كنت أتوقع أن لدى الكتابة مباشرة إلى API مايلجون، ولقد بحثت في وقت سابق Envato Tuts + دروس. ومع ذلك، دعم ل Yii2 البريد الإلكتروني غنية جداً، وكنت قادراً على الاستفادة من دعمها العرض الأصلي لتخطيطات البريد الإلكتروني (HTML والنص على حد سواء) وتسليمها ببساطة استخدام مصادقة الحساب SMTP مايلجون بي. وهذا يدعم حتى إرفاق ملفات الأحداث المستقبلية (.ics) لاستيراد الاجتماعات في التقويمات.

ملاحظة: أنا معجب كبير من مايلجون، ولكن أيضا لقد فعلت التنمية لهم كمستشار وكتب على المدونة و Envato Tuts +.

قبل المتابعة، أهيب بكم أن نلقي نظرة سريعة على الوثائق البريدية في Yii2. ويقدم لمحة عامة ممتازة.

أولاً، أضفت أكثر تفصيلاً بإعدادات التكوين سويفتميلير إلى/common/config/main-local.php:

ومكن هذا المكون سويفتميلير في يي لتسليم رسائل البريد الإلكتروني عبر خدمة SMTP الأساسية في مايلجون.

سوف تحتاج إلى الحصول على إعدادات SMTP مايلجون من على لوحة التحكم للمجال الخاص بك:

Meeting Planner Invitation - Mailgun SMTP Settings

وبطبيعة الحال، لديك أيضا للتأكد من سويفتميلير جزء من تكوين ملف composer.json الخاص بك قبل تشغيل موسيقا التحديث:

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

Meeting Planner Invitation - The Folder and Files in Mail Layouts

ليس كل هذا هو توثيقاً كاملا يي، لذا نأمل أن هذا المثال سوف نقدم بعض التوجيهات. لاحظ أن وضع الصيغة النهائية--إتش تي أم ال--والنص بعرض ملفات أضيفت لاحقاً لحلقة مستقبلا.

بشكل عام، ملف layouts/html.php بسيط للغاية:

ومع ذلك، أضفت الكثير لبدء عرضت العمل مع التصميم وتنسيق رسائل البريد الإلكتروني HTML للمجتمع المصدر المفتوح من Mailchimp.

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

في نموذج Meeting.php، قمت بكتابة دالة إرسال يقوم بجمع جميع البيانات اللازمة لبناء نظري دعوة الموضح أعلاه. الآن، وأنا تاركة الأجزاء المتصلة بالحلقة القادمة لبناء روابط الأمر. أساسا، استعمل يي:: $app-> compose() الإرسال وإرسال ():

إنشاء رسالة باستخدام لدينا تخطيط HTML وعرض تلك الوظائف وثم تمرير الرسائل الناتجة مع بيانات شخصية لخدمة SMTP في مايلجون. نحن قادرون على استخدام التنفيذ يي في نموذجها MVC لتسليم البريد الإلكتروني.

مشاكل مع الملحن

كما كنت تستخدم الملحن مع يي، لقد كنت تشغيل غالباً إلى الكثير من المشاكل التي يمكن أن يكون من الصعب تعقب معها. آخر بشكل منتظم، أنها تتصل "يييسوفت/yii2-مؤلف" خطأ الملحن-المساعد-api 1.0.0 ويتطلب البرنامج المساعد، ولكن هذه المرة، أنا واجهت مشكلة في تحديث مايلجون. تتطلب الإصدارات الأخيرة من API مايلجون التحديثات الحالية اكرع. المطلوب البرنامج المساعد يي سابقة المستخدمة في ميتينجبلانير نسخة ثابتة من التاريخ من غزل. وهكذا، اضطررت إلى تكوين الملحن استخدام اسم مستعار.

أساسا، أوعزت إلى الملحن لمزامنة أحدث إصدار من اكرع ولكن أقول التطبيق فإنه تم استخدام إصدار قديم. في composer.json، اسم مستعار يبدو مثل هذا:

وأنا يطلب من ذلك لتثبيت "guzzlehttp/guzzle":"6.2.0 ك 4.2.3"، والذي يجعل كل شيء يعمل جيدا، على الأقل في هذه الحالة. في بعض الأحيان تتطلب مطوري الإضافات إصدارات معينة من المكتبات تعمل بشكل صحيح. الملحن معظمها مفيد، ولكن في بعض الأحيان أنها بالتأكيد متعة.

استكمال إنشاء اجتماع

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

Meeting Planner Invitation - Create a Meeting

وهذا يوفر سطر الموضوع المثالي في البريد الإلكتروني لدعوة الاجتماع. وبطبيعة الحال، لتوفير هذا، اضطررت إلى توسيع نموذج الاجتماع.

أنا خلقت ترحيل جديد يسمى extend_meeting_table_add_subject الذي يضيف حقل الموضوع:

وكان لإضافة دعم للحقل الجديد إلى الاجتماع ملف _form.php والنموذج.

في ما يلي مقتطفات من ما يتم إضافتها إلى نموذج Meeting.php:

An Updated Map Page for Places

في البداية ، انتقلت روابط خريطة الدعوة مباشرة إلى خرائط Google ، ولكنني أدركت أنه من الأفضل ربطها مع عرض الخريطة المضمّن في مخطط الاجتماعات الذي كان جزءًا من دعوة الاجتماع. في حالتي ، قمت بإنشاء عرض للخريطة مع زر الرجوع إلى الاجتماع:

Meeting Planner Invitation - Viewing a Place within a Meeting Invitation

لهذا ، قمت بإنشاء عرض جديد مبني على /views/place/view.php. هنا /views/meeting/viewplace.php:

ماذا بعد؟

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

  • وصلات القيادة المصادقه. عندما ينقر أحد المشاركين على رابط الأوامر داخل البريد الإلكتروني ، كيف سنقوم بمصادقتهم ، خاصة إذا لم يسجلوا في تطبيقنا؟
  • الانتهاء من الاجتماع بناء على الردود. بينما يقوم المشاركون باختيارات ويكون المنظم جاهزًا لوضع اللمسات الأخيرة على الاجتماع ، ما هي التغييرات والتحديثات اللازمة لدعم ذلك؟
  • مراقبة عملية التغييرات التي أجراها المشاركون على الدعوة. كيف سنراقب التغييرات التي تطرأ على تفاصيل الاجتماع وتختار وقت إخطار المنظمين والمشاركين؟
  • إخطار المنظم والمشارك بالتغييرات. ماذا يجب أن نخبرهم وما هي الخيارات التي يجب تقديمها عندما نبلغهم بذلك؟
  • بناء ملفات التقويم (.ics) للاستيراد إلى تقويم Google، Outlook والتقويم أبل مع تفاصيل الدعوة. وبمجرد الانتهاء من الاجتماع، يمكننا إرسال ملف.ics القابلة لتحميل.
  • بناء نظرة على اجتماع تم الانتهاء منه بشكل كامل. ما الذي يجب أن تبدو عليه تفاصيل الاجتماع عندما لا يعود بحاجة إلى تقديم أوامر لاختيار الأماكن والأوقات؟ ولكن ، أيضًا ، ما هي الأوامر اللازمة لإعادة الجدولة ، أو تغيير الوقت ، أو الإلغاء ، أو تغيير الموقع أو التاريخ والوقت ، وما إلى ذلك؟

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

لقد بدأت أيضًا في تجربة WeFunder استنادًا إلى تنفيذ قواعد التمويل الجماعي الجديدة في SEC. يرجى النظر في متابعة ملفنا الشخصي. قد أكتب عن هذا أكثر كجزء من هذه السلسلة.

شاهد البرامج التعليمية القادمة في سلسلتي 'ابدء بدء التشغيل مع PHP - آمل أن توافق على أن هذا الأمر مثير للغاية!

لا تتردد في إضافة أسئلتك وتعليقاتك أدناه ؛ أشارك بشكل عام في المناقشات. يمكنك أيضًا الاتصال بي على Twitter @reifman.

روابط ذات علاقة

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.