المحتوى عن 'notifications'.



مزيد من الخيارات

  • ابحث بالكلمات المفتاحية

    أضف وسومًا وافصل بينها بفواصل ","
  • ابحث باسم الكاتب

نوع المُحتوى


التصنيفات

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

التصنيفات

  • PHP
    • Laravel
    • ووردبريس
  • جافاسكريبت
    • Node.js
    • jQuery
    • AngularJS
    • Cordova
    • React
  • HTML
    • HTML5
  • CSS
  • SQL
  • لغة C#‎
  • لغة C++‎
  • بايثون
    • Flask
    • Django
  • لغة روبي
    • Sass
    • إطار عمل Bootstrap
    • إطار العمل Ruby on Rails
  • لغة Go
  • لغة جافا
  • لغة Kotlin
  • برمجة أندرويد
  • لغة Swift
  • لغة R
  • لغة TypeScript
  • ‎.NET
    • ASP.NET
  • سير العمل
    • Git
  • صناعة الألعاب
    • Unity3D
    • منصة Xamarin
  • سهولة الوصول
  • مقالات برمجة عامة

التصنيفات

  • تجربة المستخدم
  • الرسوميات
    • إنكسكيب
    • أدوبي إليستريتور
    • كوريل درو
  • التصميم الجرافيكي
    • أدوبي فوتوشوب
    • أدوبي إن ديزاين
    • جيمب
  • التصميم ثلاثي الأبعاد
    • 3Ds Max
    • Blender
  • نصائح وإرشادات
  • مقالات تصميم عامة

التصنيفات

  • خواديم
    • الويب HTTP
    • قواعد البيانات
    • البريد الإلكتروني
    • DNS
    • Samba
  • الحوسبة السّحابية
    • Docker
  • إدارة الإعدادات والنّشر
    • Chef
    • Puppet
    • Ansible
  • لينكس
  • FreeBSD
  • حماية
    • الجدران النارية
    • VPN
    • SSH
  • مقالات DevOps عامة

التصنيفات

  • التسويق بالأداء
    • أدوات تحليل الزوار
  • تهيئة محركات البحث SEO
  • الشبكات الاجتماعية
  • التسويق بالبريد الالكتروني
  • التسويق الضمني
  • التسويق بالرسائل النصية القصيرة
  • استسراع النمو
  • المبيعات
  • تجارب ونصائح
  • مبادئ علم التسويق

التصنيفات

  • إدارة مالية
  • الإنتاجية
  • تجارب
  • مشاريع جانبية
  • التعامل مع العملاء
  • الحفاظ على الصحة
  • التسويق الذاتي
  • مقالات عمل حر عامة

التصنيفات

  • الإنتاجية وسير العمل
    • مايكروسوفت أوفيس
    • ليبر أوفيس
    • جوجل درايف
    • شيربوينت
    • Evernote
    • Trello
  • تطبيقات الويب
    • ووردبريس
    • ماجنتو
  • أندرويد
  • iOS
  • macOS
  • ويندوز

التصنيفات

  • شهادات سيسكو
    • CCNA
  • شهادات مايكروسوفت
  • شهادات Amazon Web Services
  • شهادات ريدهات
    • RHCSA
  • شهادات CompTIA
  • مقالات عامة

أسئلة وأجوبة

  • الأقسام
    • أسئلة ريادة الأعمال
    • أسئلة العمل الحر
    • أسئلة التسويق والمبيعات
    • أسئلة البرمجة
    • أسئلة التصميم
    • أسئلة DevOps
    • أسئلة البرامج والتطبيقات
    • أسئلة الشهادات المتخصصة

التصنيفات

  • ريادة الأعمال
  • العمل الحر
  • التسويق والمبيعات
  • البرمجة
  • التصميم
  • DevOps

تمّ العثور على 2 نتائج

  1. يضيف الإصدار 5.3 من Laravel نظاما للإشعارات Notifications يمكن من خلاله إخطار المستخدم بحدوث شيء ما. تُستخدَم الإشعارات، التي تكون عادة على هيئة بلاغات قصيرة، لإعلام مستخدم التطبيق بوقوع أمر ما؛ على سبيل المثال “صدور فاتورة”، “تسجيل مستخدم”، “إعادة تعيين كلمة السّر” أو “نشر درس”؛ حسب طبيعة التطبيق الذي تعمل عليه. يتيح نظام الإشعارات في Laravel 5.3 وسائط عدّة (تُسمّى قنوات Channels) لتوصيل الإشعار: البريد الإلكتروني، الرسائل النصية القصيرة SMS (بالاعتماد على خدمة Nexmo) وخدمة Slack. يمكن أيضا تخزين الإشعارات في قاعدة البيانات من أجل عرضها في واجهة الوِب. سنرى في هذا الدرس كيفية عمل الإشعارات، بأخذ مثال لإشعار يُرسَل إلى بريد المستخدم عند إضافة منشور جديد. تهيئة المشروع نبدأ أولا بتهيئة المشروع الذي سنعمل عليه. أنشئ مشروع Laravel 5.3 جديدا، إن لم يكن لديك واحد جاهز واضبط إعدادات قاعدة البيانات. نستخدم نفس الإعدادات المذكورة في فقرة تهيئة بيئة التطوير من درس أساسيات التخبئة في Laravel؛ مع التعديل عليها قليلا. سنضيف صنفا لبذر المستخدمين: php artisan make:seeder UsersTableSeeder ونعدّل صنف البذر على النحو التالي لإضافة مستخدمَيْن إلى قاعدة البيانات: public function run() { $user1 = [ 'name' => 'Med Ahmed Eyil', 'email' => 'medeyil@laravel.com', 'password' => Hash::make('1234'), ]; $user2 = [ 'name' => 'Fatima Benziane', 'email' => 'fbenziane@laravel.com', 'password' => Hash::make('4567'), ]; User::create($user1); User::create($user2); } ثم ننفّذ البذر: php artisan db:seed يصبح لدينا الآن نموذجان، واحد للمستخدمين وآخر للمنشورات. ننتقل إلى ملف المسارات routes/web.php ونضيف المسار التالي: Route::get('/notify/{user_id}/{post_id}', 'PostsController@notify'); يعني هذا أنه عند زيارة الرابط notify/user_id/post_id/ (حيث user_id وpost_id معرّفا المستخدم والمنشور على التوالي) سيطلُب Laravel تنفيذ الدالة notify في المتحكم PostsController. نعدّل المتحكّم PostsController لإضافة هذه الدالة: public function notify($user_id,$post_id) { $user = User::find($user_id); $post = Post::find($post_id); // todo } سنعود لاحقا لإكمال الدالة notify التي تكتفي لحد الساعة بالعثور على المستخدم والمنشور الممررَيْن إليها في المعطيات. الإشعارات هدفنا هو التالي: يطلُب المتصفح الرابط notify/1/2/ (مثلا) فيُرسَل إشعار عبر البريد إلى المستخدم ذي المعرف 1 يخبره أن المنشور ذا المعرف 2 قد أُضيف إلى الموقع. سنحتاج لبلوغ هذا الهدف لإشعار “إضافة منشور”. ننفذ الأمر التالي لإنشاء هذا الإشعار: php artisan make:notification NewPost ستلاحظ بعد تنفيذ الأمر أعلاه ظهور مجلد جديد باسم Notifications (إن لم يكن موجودا سلفا) متفرع عن المجلد app وبداخله صنف باسم NewPost.php (نزعنا التعليقات للاختصار): <?php namespace App\Notifications; use Illuminate\Bus\Queueable; use Illuminate\Notifications\Notification; use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Notifications\Messages\MailMessage; class NewPost extends Notification { use Queueable; public function __construct() { } public function via($notifiable) { return ['mail']; } public function toMail($notifiable) { return (new MailMessage) ->line('The introduction to the notification.') ->action('Notification Action', 'https://laravel.com') ->line('Thank you for using our application!'); } public function toArray($notifiable) { return [ ]; } } يمدّد الصنف NewPost الصنفَ Notification الذي يحوي التعليمات الضرورية للتعامل مع الإشعارات. تظهر الدالة المشيّدة Constructor وثلاث دوال أخرى: via: تعرّف القنوات التي نريد إرسال الإشعارات عبرها. توجد قناة البريد mail مبدئيا. تمكن إضافة قناة أخرى من تلك المتوفرة. يستخدم Laravel جميع القنوات المذكورة في المصفوفة المرجَعة، بمعنى؛ إن حددت مثلا القناتين mail وdatabase في المصفوفة فإن الإشعار سيُرسَل عبر البريد ويُخزَّن أيضا في قاعدة البيانات. toMail: هذه الدالة خاصّة بالتعامل مع قناة البريد الإلكتروني. تنشئ الدالة toMail كائنا من صنف MailMessage لتخصيص بريد إلكتروني. سنعود لهذا الصنف بعد قليل. toArray: إن حدّدت قناة للإشعارات في الدالة via دون أن تنشئ دالة خاصّة للتعامل معها فسيستدعي Laravel الدالة toArray. تجدر الإشارة إلى أن الدوال المخصّصة للتعامل مع قنوات الإشعارات تبدأ بـto متبوعة باسم القناة. مثلا toMail للبريد الإلكتروني (تأتي مبدئيا) وtoDatabase لتخصيص الإشعار عبر قناة قاعدة البيانات. نعدّل الصنف NewPost قليلا بحيث نمرّر للمشيّد معطى من نوع Post (نزعنا أجزاء الصنف التي لم يطرأ عليها تعديل): <?php // استدعاء الأصناف، أضفنا إليه الصنف Post use App\Post; class NewPost extends Notification { // أضفنا خاصيّة post إلى الصنف protected $post; public function __construct(Post $post) { $this->post = $post; } // بقية شفرة الصّنف } نعود إلى الدالة notify في المتحكم ونعدّلها لتصبح على النحو التالي: public function notify($user_id,$post_id) { $user = User::find($user_id); $post = Post::find($post_id); $user->notify(new NewPost($post)); } لا تنس استدعاء الصنف NewPost في المتحكم: use App\Notifications\NewPost; استدعينا الدالة notify من الكائن user$ ومررنا إليها صنفا جديدا من الإشعار NewPost. سنحتاج قبل تجربة إرسال الإشعار إلى ضبط البريد الإلكتروني في ملف النظام env.. ستجد في الملف عند فتحه الإعدادات التالية: MAIL_DRIVER=smtp MAIL_HOST=mailtrap.io MAIL_PORT=2525 MAIL_USERNAME=null MAIL_PASSWORD=null MAIL_ENCRYPTION=null يقترح Laravel مبدئيا موقع https://mailtrap.io الذي يوفر خدمة لمحاكاة إرسال بريد إلكتروني وعرضه. نحصُل بالتسجيل في الموقع على صندوق بريد للاختبار. ندخل إلى صندوق البريد (Demo inbox). ننسخ قيم Username وPassword ونضيفها إلى الإعدادات في ملف env. على النحو التالي: MAIL_DRIVER=smtp MAIL_HOST=mailtrap.io MAIL_PORT=2525 MAIL_USERNAME="be7c7d3972da27" MAIL_PASSWORD="5f445b7bdca027" MAIL_ENCRYPTION=null يمكننا الآن اختبار الإشعار بتشغيل خادوم التطبيق والذهاب إلى المسار http://localhost:8000/notify/1/2. إن نظرت في صندوق البريد على موقع mailtrap فستجد رسالة جديدة: لاحظ العنوان البريدي الذي يُوجّه إليه الإشعار medeyil@laravel.com. إن عدلت المسار الذي تطلُبه إلى التالي http://localhost:8000/notify/2/2 ونظرت في الإشعار الذي يصل إلى البريد فستجد أن المرسَل إليه To تبدّل إلى fbenziane@laravel.com الذي هو بريد المستخدم ذي المعرف 2. هل تساءلت كيف يعرف نظام الإشعارات البريد الإلكتروني الذي يجب إرسال الإشعار إليه، أي البريد الإلكتروني الخاصّ بالمستخدِم؟ تخصيص الإشعار عبر البريد الإلكتروني يمكن تطبيق الإشعارات على أي نموذج Eloquent في النظام، بشرط أن يستخدم النموذجُ السّمةَ Trait المسمّاة Notifiable. إن نظرنا إلى النموذج User الذي يأتي مبدئيا مع المشروع فسنلاحظ التالي: use Illuminate\Notifications\Notifiable; و use Notifiable; يتيح استخدام هذه السمة في النموذج إمكانية استدعاء الدالة notify: $user->notify(new NewPost($post)); التي تأخذ معطى عبارة عن كائن من صنف Notification. بالنسبة لكيفية معرفة نظام الإشعارات ببريد المستخدم فالإجابة هي أن كل قناة إشعار تتطلّب وجود خاصيّات Properties معيّنة في النموذج الذي يستدعي الدالة notify. في حالة قناة البريد الإلكتروني فإن الخاصيّة المنتظرة هي - منطقيا - عنوان البريد email. بالعودة إلى الصنف NewPost لاحظ دالة التعامل مع البريد الإلكتروني: public function toMail($notifiable) { return (new MailMessage) ->line('The introduction to the notification.') ->action('Notification Action', 'https://laravel.com') ->line('Thank you for using our application!'); } ترجع هذه الدالة كائنا من صنف MailMessage. إن تنبهت جيدا فستدرك أن العبارات الواردة في الشفرة أعلاه هي نفسها الموجودة في البريد المرسَل إلى المستخدم: الدالة line تدرج فقرة في بريد الإشعار. الدالة action تدرج زرًّا وتحدّد النص الذي يظهر على الزرّ ورابط الصفحة التي تزورها عند النقر على هذا الزرّ. توجد دوال أخرى لتخصيص الإشعار أكثر: subject لتخصيص موضوع البريد الإلكتروني. from لتحديد بريد المرسِل. attach لإضافة ملف مرفَق. priority لتحديد الأولوية (1 تعني أولوية قصوى). نخصّص في ما يلي البريد السّابق: public function toMail($notifiable) { return (new MailMessage) ->subject('New post: '. $this->post->title) ->line('Don\'t miss our new post ' .$this->post->title) ->action('View the post', 'https://laravel.com') ->line('Thank you for your visit!') ->from('hsoub@academy.com'); } نحصل بزيارة الرابط http://localhost:8000/notify/1/2 على النتيجة أدناه. بالنسبة لاسم التطبيق الذي يظهر في الإشعار فيمكن تعديله عن طريق التعليمة name في ملف الإعداد config/app.php. تأخذ التعليمة مبدئيا القيمة Laravel. إن أردت تخصيصا أكبر للبريد ومظهره فيمكنك ذلك بنشر قالب Blade الخاص بالبريد الإلكتروني للإشعار ومن ثم تخصيصه. نفذ الأمر التالي لنشر القالب: php artisan vendor:publish --tag=laravel-notifications ستجد القالب على المسار resources/views/vendor/notifications/email.blade.php؛ حيث يمكنك التعديل عليه بما تراه مناسبا.
  2. يُوفّر تطبيق إدارة المشاريع Trello إمكانيات تخصيص واستخدام مُتقدّمة، تُضفي على التعامل مع البرنامج المزيد من السلاسة في متابعة سير العمل أو حتى مجرّد إعطاء طابع شخصي، نتطرّق في مقالنا هنا إلى بعض هذه التلميحات. اختصارات لوحة المفاتيح تمنحك اختصارات لوحة المفاتيح أسلوبًا مميزًا لاختصار تنفيذ الأوامر والعمليات على البطاقات والقوائم في Trello؛ نعرض فيما يلي أشهر هذه الاختصارات: يُظهر الضغط على الحرف "b" من لوحة المفاتيح قائمة الألواح الجانبية مع مربع بحث. اضغط على "b" ثم اكتب الأحرف الأولى من اسم اللوح الذي تريد الانتقال إليه، وأخيرًا اضغط على Enter للدخول. هذه أسرع طريقة ممكنة لتجد طريقك في Trello. عندما تُصبح داخل اللوح المطلوب اضغط على "f" لإظهار مُرشّح/فلتر البطاقات. اكتب كلمة ما وستختفي على الفور جميع البطاقات عدا تلك التي تتضمن هذه الكلمة. تتضمن نتائج التصفية أسماء الأعضاء المشتركين مع هذا اللوح، وكذلك أسماء اللصاقات Labels الموجودة داخله. ضع مؤشّر الفأرة فوق إحدى البطاقات واضغط على الاختصار "t" لتعديل عنوانها. يفيدك الاختصار "e" في حالتين: إن كنت قد فتحت البطاقة فإن ضغط "e" سيظهر صندوق الوصف لتعديله. أما إن وضعت مؤشر الفأرة على البطاقة وضغطت "e" فستفتح لك نافذة مختصرة تمكنك من تعديل عنوانها والقيام بعدة خطوات كالأرشفة والنسخ والنقل. تُستخدم أسهم الحركة في لوحة المفاتيح للانتقال بين البطاقات ابتداء من البطاقة الفعّالة. اضغط "n" للبدء بإنشاء بطاقة جديدة أسفل البطاقة الفعّالة. يمكنك في أي وقت الضغط على "escape" لإغلاق أي حقل نصي أو قائمة منبثقة أو مربع حوار ضمن تريللو. اضغط على "?" لاستكشاف المزيد من الاختصارات المُتاحة. في البداية قد تشعر بأن أسلوب استخدام الفأرة للوصول إلى هذه المهام أكثر "طبيعية" وأقرب لما اعتدته سابقًا، لكن ما إن تتمرّن على هذه الاختصارات حتى تشعر بجدواها وأثرها على سلاسة التعامل مع البرنامج. تلميحات السحب والإفلات يتمتع Trello بإمكانيات مريحة في السحب والإفلات تتجاوز نقل البطاقات بين القوائم المختلفة، وإليك بعض هذه التلميحات: من متصفح الملفات لديك يمكن سحب أي نوع من الملفات وإلقائه على بطاقة ما، لرفعه وإرفاقه ضمنها. من متصفح الإنترنت يمكن سحب أي صورة ثم الانتقال بها (مع الضغط على زر الفأرة الأيسر) إلى علامة التبويب الخاصة بـ Trello وإفلاتها على أية بطاقة، ليتم رفعها مباشرةً إلى تلك البطاقة. يمكن كذلك النقر على أي صورة بزر الفأرة الأيمن ثم نسخها إلى الذاكرة من خلال أمر "Copy Image" وبعد ذلك تحديد أي بطاقة في Trello والضغط في لوحة المفاتيح على Ctrl+V ليتم رفع الصورة وإرفاقها إلى البطاقة. (تعمل هذه الميزة على متصفح Chrome فقط). إذا كنتَ تتعامل مع لوح يتضمن الكثير من القوائم وتجد أن التنقّل أفقيًا (إلى اليمين واليسار) عبر شريط تمرير المتصفح أمر مزعج؛ يمكنك تجريب هذه التلميحة. في أي مكان فارغ ضمن اللوح اضغط بزر الفأرة الأيسر ومع الاستمرار بالضغط حرّك الفأرة إلى اليمين أو اليسار للتنقّل أفقيًا ضمن اللوح. هذا أسهل بكثير أليس كذلك؟ إشعارات سطح المكتب تظهر الإشعارات في تريللو عند الضغط على أيقونة الجرس في الشريط العلوي ضمن الموقع والتي تتحول من اللون الأزرق إلى الأحمر حال وصول إشعار جديد. كما يُفترض تلقيك رسائل بريدية بذلك تبعًا للإعدادات الافتراضية. إذا كنت تستخدم إصدارًا حديثًا من متصفح الإنترنت الخاص بك (باستثناء Internet Explorer وَ Edge) يمكنك تلقيّ الإشعارات على سطح المكتب لضمان تنبّهك في الوقت الحقيقي لوصول الإشعار. اضغط على اسمك في الشريط العلوي ضمن تريللو واختر Settings، مرّر عجلة الفأرة إلى الأسفل قليلًا حتى قسم Notifications ومن هناك اضغط على Enable Desktop Notifications، سيعرض لك المتصفح رسالة تسألك فيما إذا كنتَ راغبًا بتلقي إشعارات الموقع إلى سطح المكتب؛ أجب بنعم، وهكذا ستظهر لك نافذة منبثقة صغيرة في زاوية سطح المكتب حالما تصلك إشعارات جديدة. النقر المزدوج لإضافة قائمة يمكنك النقرّ مرتين باستخدام زر الفأرة الأيمن في أي مكان ضمن اللوح لإنشاء قائمة جديدة على الفور، تُفيدك هذه الطريقة عندما ترغب بإنشاء قائمة بين قائمتين موجودتين مسبقًا، ضع مؤشر الفأرة على المساحة الفارغة بينهما وانقر بشكل مزدوج لتظهر القائمة الجديدة، اختر لها اسمًا ثم اضغط على Add، كما يمكنك تغيير ترتيب القائمة بين القوائم من خلال خيار position عند إنشائها. إنشاء البطاقات بريديا من الممكن استخدام البريد الإلكتروني لتسهيل إنشاء البطاقات، حيث تكتب رسالة وتضمنها بالصور والمرفقات التي ترغب بها عبر بريدك الإلكتروني، وترسلها لقائمة محددة في حسابك بتريللو فتجدها ظهرت كبطاقة جديدة فيها. للقيام بذلك افتح أحد الألواح ثم اضغط على: Show Menu > More > Email to board Settings انسخ عنوان البريد الإلكتروني الذي يظهر تحت خانة Your email address for this board واحفظه ضمن قوائم الأسماء لديك في برنامج البريد الإلكتروني. في الأسفل وتحت خانة Your emailed cards appear in يمكنك اختيار القائمة التي ستصل إليها رسائل البريد الإلكتروني كبطاقات جديدة وموضعها. عند إنشاء رسالة جديدة وإرسالها إلى العنوان السابق سيستخدم عنوان الرسالة كعنوان للبطاقة، بينما يوضع جسم الرسالة ضمن وصف البطاقة، وذلك في أسفل القائمة الأولى تبعًا للإعدادات الافتراضية. يمكنك إرسال المرفقات مع الرسالة ليتم إضافتها إلى البطاقة أيضًا. إضفاء طابع شخصي يُتيح تريللو إمكانية تغيير لون الخلفية الافتراضية وانتقاء واحدًا من تسعة ألوان متاحة للاشتراك المجاني، أو عدد غير محدد من الألوان والتصاميم والصور لاشتراك الخطّة المدفوعة. لتغيير لون الخلفية اضغط على Show Menu في أقصى اليمين ثم Change Background. من هنا يمكن الضغط على أيٍّ من مربعات الألوان المتاحة ليتم تغيير اللون الافتراضي في الحال. تلميحات ونصائح أخرى إذا كان لديك عمود في ورقة spreadsheet وترغب باستيراده إلى تريللو ، قم بتحديده أولًا ثم نسخه إلى الحافظة Ctrl+C وتحرير إحدى البطاقات في تريللو وتنفيذ أمر اللصق فيها Ctrl+V، سيسألك تريللو عن رغبتك في لصق كل سطر كبطاقة منفصلة أو لصق جميع الأسطر إلى بطاقة واحدة. اختر ما يناسبك. إذا أنشأت بطاقة في إحدى القوائم ثم انتبهت إلى أنك لم تختر القائمة الصحيحة؛ يمكنك فورًا الضغط على بطاقة جديدة في القائمة المطلوبة لنقل كامل النص الذي كتبته بالفعل إلى هناك ومتابعة عملك. عند العمل مع فريق من الأفضل الاشتراك بالقوائم التي يهمك متابعتها لتلقي الإشعارات عن التغييرات التي تجري فيها. يتم الاشتراك عبر النقر على النقاط الثلاثة المتجاورة ضمن ترويسة كل قائمة ثم الضغط على زر subscribe.