Unlimited WordPress themes, graphics, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Computer Skills
  2. App Training

سير العمل ألفريد للمستخدمين المتقدمين

by
Read Time:19 minsLanguages:

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

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

مرشحات النص البرمجي 

يعتبر Script Filter هو آخر قالب للفحص.  مثل "تصفية الملفات" ،يعطي " عامل تصفية البرنامج النصي " المستخدم قائمة خيارات من حدد.  والفرق هو ، يتيح " عامل تصفية البرنامج النصي " للمبرمج إنشاء قائمة الخيارات باستخدام برنامج نصي. 

 سيُظهر اختيار اختيار بسيط لإنشاء مشروع في مجلد المشروع استخدام "عامل تصفية البرامج النصية" .  أولاً ، أضف " Script Filter" إلى Project Manager Workflow من البرنامج التعليمي المتوسط. 

Script Filters Configuration ScreenScript Filters Configuration ScreenScript Filters Configuration Screen
مرشحات النص: شاشة التكوين 

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

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

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

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

 تشبه منطقة مربع البرنامج النصي تمامًا كتلة تشغيل Script .   يمكنك تحديد لغة البرمجة التي تريدها ، وما هي خيارات الهروب التي تحتاج إليها ، والبرنامج النصي نفسه.  اضبطه على / usr / bin / php ، وكل ذلك خارج الهروب ، والبرنامج النصي التالي: 

هذا النص البرمجي لـ PHP ببساطة يعيد صياغة XML لنتائج البرنامج النصي.  A تصفية سيناريو تتوقع النصي لإخراج بيان XML صالحة تحتوي على مجموعة من العناصر: واحد لكل الخيارات المتاحة للمستخدم. 

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

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

Script Filters DisplayingScript Filters DisplayingScript Filters Displaying
مرشحات البرنامج النصي: عرض 

الآن ، عند تنشيط " Script Filter" ، تظهر الصور أعلاه النتائج.    فإنه لا يزال لن يؤدي أي شيء ما عدا إرسال التحديد إلى ألفريد.

Script Filters Adding a Run Script BlockScript Filters Adding a Run Script BlockScript Filters Adding a Run Script Block
مرشحات البرنامج النصي: إضافة كتلة تشغيل Script 

من أجل القيام بشيء ما بناءً على التحديد ، ستحتاج إلى إضافة كتلة تشغيل Script التالية وتعبئتها على هيئة برنامج نصي bash دون الهروب.    يمكن ملء منطقة البرنامج النصي بالبرنامج النصي التالي:

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

سينتقل باقي النص البرمجي إلى دليل المشروع وتعبئته وفقًا لنوع المشروع المحدد.   سيعمل مشروع HTML أساسي على تنزيل نموذج Boilerplate HTML5 وتثبيته في دليل المشروع.   سيعمل مشروع العمود الفقري على تثبيت HTML5 نموذج Boilerplate Template و Backbone.js جافا سكريبت.  يمكن بسهولة تحسين ذلك باستخدام Yeoman لتثبيت مكونات المشروع ، ولكن ذلك قد يتجاوز نطاق هذا البرنامج التعليمي. 

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

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

مكتبات وظائف المساعد 

واحدة من بركات نظام ألفريد الإيكولوجي هي أن العديد من الناس يقومون بتصميم المكتبات لغتهم النصية المفضلة لجعل برمجة ألفريد أسهل.  يمكن العثور على القائمة الكاملة لمكتبات ألفريد في منتدى ألفريد .  توجد مكتبات لـ Bash / Zsh (التي استخدمتها في هذه النصوص) ، و Python ، و PHP ، و Ruby ، ​​و AppleScript ، و go (وهي مدرجة كمكتبة AppleScript ، ولكنها لغة برمجة go go ). 

للاستفادة من المكتبة الخاصة بـ PHP ، ستحتاج إلى تنزيل ملف workflows.php من هذا الموقع بواسطة David Ferguson .   ضع هذا في مجلد سير العمل.  الآن ، يجب تحميل هذا البرنامج النصي إلى شفرة PHP لـ Script Filter .    تغيير هذا الرمز إلى:

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

يتم الآن تحميل هذا البرنامج النصي في المكتبة وتهيئة متغير فئة ، $ wf ، للفئةWorkflow () من المكتبة.  و نتيجة () يستخدم الدالة العضو لإنشاء رمز XML مع الخيارات.   الخيارات حسب الترتيب هي: count و arg و title و sub-title و icon و valid.  و toxml () الدالة العضو ببساطة ترجع رمز XML النهائي الذي ردد بها. 

الآن ، لجعل تصفية Script تبدو أفضل.   خذ ملفي الصور في ملف التنزيل لهذا البرنامج التعليمي وأضفه إلى دليل سير عملك.  ثم ، قم بتغيير المقطع Set the options في Script Filter Script إلى: 

يمثل الرمز المستخدم لكل خيار الآن الخيار.   واجهة مستخدم أفضل بكثير.   يمكن لـ Alfred أخذ ملفات jpeg أو png للرموز.   كما يعيد رسومات الرموز حسب الحاجة.   وتظهر النتائج أدناه:

Create Project with IconsCreate Project with IconsCreate Project with Icons
خلق مشروع مع الرموز 

كما يتبين ، يتم عرض الخيار الثاني أولاً.   هذا لأنني استخدمته أكثر أثناء الاختبار.   يتذكّر ألفريد الاختيار الأكثر استخدامًا ويحاول ترتيب القائمة وفقًا لذلك.   هذا مفيد للأوامر التي يتم استخدامها بشكل متكرر أكثر. 

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

و buildResult () الدالة تأخذ كل شيء أن نتيجة () وظيفة لم، ولكن لديها أيضا معلمتين جديدة: سير العمل () متغير الكائن والنص لمطابقة للأمر. 

الآن ، أضف تعريف الدالة الجديدة بعد أن تتضمن المكتبة: 

تستفيد هذه الوظيفة من وظيفة PHP preg_match () لإجراء مطابقة تعبير عادية للسلسلة إلى بطاقة wild مضافة إلى سلسلة الإدخال.   إذا لم تتطابق أنواع المستخدمين ، فلن يؤدي ذلك إلى إضافة هذه النتيجة.   إذا تمت إضافة نتيجة ، فسوف تُرجع واحدة.   وإلا ، فسوف تعرض 0. 

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

Project Type not Found ErrorProject Type not Found ErrorProject Type not Found Error
نوع المشروع لم يتم العثور على خطأ 

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

برمجة متكررة في الفريد 

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

سير عمل الآلة الحكومية 

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

Recursion List Projects Script FilterRecursion List Projects Script FilterRecursion List Projects Script Filter
Recursion: قائمة المشاريع Script Filter 

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

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

. مباشرة بعد تنظيف المدخلات من ألفريد ، يتم تقسيم المدخلات وفقا ل charater وعدد الأجزاء برزت.  .  هذه المعلومات تعطي الدولة لجهاز الدولة.  . .

. . . .

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

Recursion List Projects in ActionRecursion List Projects in ActionRecursion List Projects in Action
 التكرار: قائمة المشاريع في العمل

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

Recursion List Projects Adding a new ProjectRecursion List Projects Adding a new ProjectRecursion List Projects Adding a new Project
التكرار: قائمة المشاريع: إضافة مشروع جديد

 توضح هذه الصورة المشروع الجديد الذي يعطي اسمًا جديدًا.

Recursion List Projects Actions for ProjectsRecursion List Projects Actions for ProjectsRecursion List Projects Actions for Projects
التكرار: قائمة المشاريع: إجراءات للمشاريع 

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

سير العمل التي تجعل من استخدام مهام سير العمل الأخرى 

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

Recursion Actioning the ProjectRecursion Actioning the ProjectRecursion Actioning the Project
التكرار: إجراء المشروع 

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

بعد تحميل مكتبة Alfred PHP Workflow ، يوجد تعريف للوظيفةgetProjDirectory () .  تأخذ هذه الدالة اسم المشروع وتقوم بإرجاع الدليل الخاص بهذا المشروع كما هو مخزن في ملف projects.txt في دليل بيانات مهام سير العمل.   ونظرًا لاستخدام هذه الشفرة كثيرًا ، فيجب وضعها في وظيفة. 

بقية التعليمات البرمجية يتبع بالضبط " Script Filter" ، فيما عدا محتويات العبارةswitch.case .   لا يزال هذا نوعًا واحدًا من أجهزة الحالة ، حيث يمنح خط الإدخال الحالة للمعالجة.   هنا ، الدول المختلفة هي: الجديدة ، والأسرى ، والإزالة ، والخدمة ، والفريد ، والحالية.  تتطابق كل حالة مع إجراء يتم اتخاذه في مشروع كما هو موضح في " Script Filter" . 

دولة جديدة 

و الدولة الجديدة هي لخلق مشاريع جديدة في قائمة المشاريع.  لا يقوم بإنشاء أي شيء سوى وضع ارتباط في ملف projects.txt في دليل البيانات.  يتم ذلك عن طريق حفظ اسم المشروع في ملف projectName.txt في دليل البيانات واستدعاء pm: setprojectdirectory في Alfred للبحث عن الدليل لربط اسم المشروع.   هذا نوع من ملاحظات الحالة في أن البرنامج النصي يستدعي بشكل متكرر Alfred في حالة جديدة (يبحث في رمز مميز جديد). 

 لاحظ كيف يتم استدعاء Alfred: رمز PHP يستدعي برنامج osascript لإخبارAlfred 2.app للبحث عن pm: setprojectdirectory .   هذه التقنية هي أسهل طريقة لطلب شيء من ألفريد ويمكن تنفيذه بأي لغة برمجة. 

يجب تغيير نهاية النص البرمجي في Run Script for the pm: setprojectdirectory Block Script block إلى: 

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

دولة الأسرى 

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

إزالة الدولة 

 على الدولة إزالة يأخذ اسم المشروع وإزالة اسمها من قائمة المشاريع.   الأمر متروك للمستخدم لإزالة الدليل. 

خدمة الدولة 

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

دولة الفريد 

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

الوضع الحالي 

على الدولة الحالية يجعل دليل المشروع المشروع الحالي لوظيفة الملفات الخطوة التي تم إنشاؤها في البرنامج التعليمي المتوسط . 

مع تحديد كل الحالات بهذه الطريقة ، من السهل إضافة إجراءات جديدة لتوسيع وظيفة سير العمل هذا.  ما عليك سوى إضافة الحالة إلى Script Filter والإجراء الخاص بالحالة في كتلةScript Run . 

استنتاج 

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

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.