المحتوى عن 'بحث'.



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

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

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

نوع المُحتوى


التصنيفات

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

التصنيفات

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

التصنيفات

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

التصنيفات

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

التصنيفات

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

التصنيفات

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

التصنيفات

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

التصنيفات

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

أسئلة وأجوبة

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

التصنيفات

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

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

  1. ينطوي جزء كبير من عملنا على جداول البيانات على عمليات مختلفة لتحرير البيانات وتعديلها، بما في ذلك النسخ/القص واللصق، الحذف والاستبدال، أو حتى تغيير جزء من البيانات. لذا خصصنا هذا الدرس لشرح كيفية تحرير جداول بيانات كالك بعد أن غطينا كيفية إدخال البيانات عليها في الدرس السابق. نسخ/قص ولصق البيانات لا تختلف طريقة تطبيق أوامر النسخ/القص واللصق في كالك عنها في البرامج الأخرى، فهي تتم إمّا باستخدام الفأرة بالنقر بزر الفأرة الأيمن على العنصر المراد نسخه أو قصه واختيار الأمر المرغوب، أو باستخدام اختصارات لوحة المفاتيح. لكن الفرق في جدول البيانات هو أنّه بالإمكان نسخ/قص ولصق الخلية/نطاق الخلايا وما فيها من محتوى وتنسيق، أو نسخ/قص ولصق محتوى الخلية فقط. لنسخ أو قص الخلية برّمتها، انقر عليها بزر الفأرة الأيمن واختر قص Cut أو انسخ Copy (أو حددها واضغط على Ctrl + C للنسخ أو Ctrl + X للقص): بعد ذلك انقر بزر الفأرة على المكان الذي تريد لصق الخلية عليه واختر الصق Paste (Ctrl + V): بهذه الطريقة سيتم لصق الخلية بمحتوياتها من أرقام، نصوص، تنسيقات، وحتّى الصيغة. إذا رغبت في لصق محتوى معيّن، كالرقم فقط أو الصيغة فقط، مرر مؤشر الفأرة فوق الخيار الصق فقط Paste Only واختر الخيار المرغوب: أمّا إذا رغبت في نسخ ولصق جزء معين من محتوى الخلية النصي أو الرقمي، فانقر أولا على الخلية بشكل مزدوج وحدد الجزء الذي تريد نسخه أو قصّه باستخدام الفأرة ثم انسخه/قصّه وألصقه في المكان المرغوب: خاصية اللصق الخاص Paste Special بإمكانك استخدام خاصية اللصق الخاص للصق أجزاء معينة من الخلية الأصلية (كالصيغة فقط، أو الناتج فقط…إلخ) بالإضافة إلى إجراء العمليات الرياضية الأساسية بشكل مباشر أثناء اللصق (هذا الخيار يطبق على البيانات الرقمية فقط). لاستخدام هذه الخاصية، قم بنسخ الخلية أو نطاق الخلايا المرغوب، ثم انقر بزر الفأرة الأيمن على المكان الذي تريد اللصق عليه واختر لصق خاص Paste Special (أو اختصارًا Ctrl+ Shift+ V): (صورة 5) سيُفتح مربع الحوار Paste Special الذي يحتوي على مجموعة من خيارات اللصق: من مجموعة التحديد Selection قم بتأشير المحتوى الذي ترغب في لصقه. عند تأشير الخيار الصق الكل سيتم لصق كل محتوى الخلية من تعليقات، تنسيقات، صيغ، وغيرها. ومن مجموعة العمليات Operations حدد العملية الحسابية التي تريد تطبيقها عند لصق الخلية. على سبيل المثال، إذا كانت الخلية تحتوي على رقم معيّن، ونرغب في لصقها فوق خلية أخرى تحتوي أيضًا على رقم، مع ضرب الرقم الأول في الثاني وإظهار النتيجة عند اللصق، ننسخ الخلية الأولى (Ctrl +C) ثم نحدد الخلية الثانية ونضغط على Ctrl+ Shift+ V. ثم من مربع الحوار Paste Special نحدد الخيار اضرب Multiply وننقر على حسنًا OK: سيتم ضرب الرقم الأول في الثاني وإظهار نتيجة الضرب بشكل مباشر في الخلية. وينطبق الشيء نفسه على عمليات الجمع، الطرح، والقسمة. ومن مجموعة الخيارات Options، يمكنك تطبيق إجراءات معينة عند اللصق، كتجاهل الخلايا الفارغة Skip Empty Cells الذي يمنع استبدال محتوى الخلية التي نلصق فوقها بالخلية الفارغة المنسوخة، التحويل Transpose لتحويل الصف إلى عمود والعمود إلى صف عند اللصق (في حال تم نسخ نطاق خلايا)، أو الربط Link لإنشاء رابط بين الخلية المنسوخة والخلية التي نلصق فوقها بحيث أي تغيير تجريه على خلية المصدر ينعكس على الخلية المرتبطة بها. أما من مجموعة إزاحة الخلايا Shift Cells فيمكنك أن تزيح التي تلصق المحتوى فوقها إلى الأسفل Down أو اليمين Right لضمان عدم استبدال المحتوى الأصلي بالمحتوى الملصوق. تعديل البيانات لتعديل محتوى الخلية، سواء كان رقم، نص، أو صيغة، انقر على الخلية لتحديدها، ثم اضغط على مفتاح F2. سيتم وضع مؤشر الكتابة في نهاية المحتوى. استخدم الأسهم في لوحة المفاتيح لتغيير موضع المؤشر، ثم امسح واكتب المحتوى المرغوب. وإذا رغبت في استخدام الفأرة، فانقر على الخلية بشكل مزدوج لتحويلها إلى وضع التحرير، ثم انقل مؤشر الكتابة إلى الموضع المرغوب وقم بإجراء التعديلات التي تريدها. بإمكانك أيضًا تعديل محتوى الخلية بشكل أسهل من خلال سطر الإدخال في شريط الصيغة، حيث يُعرض محتوى الخلية فيه عند تحديدها: إمّا لاستبدال البيانات في الخلية كليًا وإدخال بيانات جديدة، فاكتفِ بالنقر على الخلية مرة واحدة وابدأ الإدخال. وبالرغم من أنّه سيتم حذف البيانات الأصلية واستبدالها بالجديدة، إلّا أنّه سيتم الاحتفاظ بتنسيق الخلية الأصلية دون تغيير. وبالمثل، بإمكانك استبدال البيانات باستخدام سطر الإدخال، بمجرد تحديد الخلية، ووضع مؤشر الكتابة داخل سطر الإدخال، ثم تظليل النص كلّه (Ctrl +A) وبدء إدخال البيانات الجديدة. حذف البيانات لحذف البيانات فقط من الخلية (بدون حذف التنسيق)، فانقر على الخلية لتحديدها ثم اضغط على مفتاح Delete من لوحة المفاتيح. أمّا لحذف البيانات والتنسيق من الخلية، فانقر على الخلية لتحديدها، ثم اضغط على مفتاح Back Space. سيُفتح مربع الحوار حذف المحتويات Delete Content ومنه يمكنك اختيار المحتوى الذي تريد حذفه من الخلية (النص، التعليقات، الصيغ… إلخ). بعد تأشير الخيارات التي تريد حذفها انقر على زر حسنًا البحث والاستبدال بما أن البيانات يمكن أن تخزن في آلاف الصفوف ومئات الأعمدة، سيصبح من المضيعة للوقت العثور على جزء معين منها باستخدام أشرطة التمرير، لذا تتوفر خاصية البحث التي تتيح العثور على البيانات بشكل سريع، وترافقها خاصية الاستبدال لاستبدال بيانات معينة ببيانات أخرى، كلّ على حدة، أو دفعة واحدة. للبحث عن نص أو رقم، اذهب إلى تحرير Edit> ابحث Find (أو اضغط على Ctrl+ F): سيظهر شريط البحث في المنطقة السفلية من جدول البيانات، أدخل الكلمة المفتاحية (نص أو رقم) التي تريد البحث عنها واضغط على مفتاح Enter: استمر بالضغط على مفتاح Enter لمعاينة النتائج، ففي كل مرّة تضغط فيها سيتم تحديد نتيجة البحث التالية المطابقة لكلمة المفتاحية. إذا كنت ترغب في البحث عن صيغة معينة، انقر على أيقونة العدسة المكبرة والقلم في شريط البحث لفتح مربع الحوار بحث واستبدال: من مربع الحوار هذا، انقر أيقونة (+) لإظهار خيارات البحث الأخرى: بعد ذلك حدد الصيغ من قائمة ابحث في ثم اكتب الصيغة التي تريد البحث عنها في حقل البحث وانقر على Find Next لتحديد النتيجة التالية، استمر بالنقر على Find Next إلى أن تنتهي من استعراض كافة النتائج المطابقة: يمكنك النقر على زر البحث عن الكل لعرض جميع النتائج المطابقة دفعة واحدة. ستُعرض النتائج في مربع حوار منفصل، وبإمكانك النقر على كل نتيجة لتحديد الخلية التي تحتويها: إذا كنت ترغب في البحث في جدول البيانات كلّه، وليس في الورقة الحالية فقط، قم بتحديد الخيار All Sheets قبل أن تبدأ البحث: من نفس مربع الحوار، بإمكانك استبدال بيانات معينة ببيانات أخرى. أدخل البيانات التي تريد استبدالها (نص أو رقم) في حقل ابحث (جِد) Find، والبيانات التي تريد الاستبدال بها في حقل استبدل Replace ثم انقر على استبدل Replace لاستبدال النتيجة التالية، أو استبدل الكل Replace All لاستبدال كل النتائج المطابقة: خاتمة تعلّمنا كيفية تحرير جداول بيانات كالك وتعديل محتوياتها بالإضافة إلى تطبيق أوامر مختلفة على البيانات كالنسخ/القص، اللصق، اللصق الخاص، الحذف، والبحث والاستبدال. في الدرس القادم سنتعرّف على كيفية تنسيق البيانات تنسيقًا اعتياديًا وشرطيًا. ترجمة-وبتصرّف-لدليل المستخدم الخاص بالحزمة المكتبية LibreOffice
  2. كل ما تقوم بإنشائه على Evernote قابل للبحث، من الملاحظات، إلى دفاتر الملاحظات، إلى الوسوم، وحتّى المحادثات. يتيح Evernote طرقًا متعددة للبحث، تتدرج من مستوى أساسي كالبحث باستخدام الكلمات المفتاحية، إلى مستوى متقدم كالبحث باستخدام المعاملات. وبإمكانك البحث في كافة محتويات حسابك، أو تصفية البحث حسب دفتر ملاحظات محدد. سنغطّي في هذا المقال خاصية البحث التي تساعدك في العثور على كلّ شيء تريده. وإذا كان هذا هو المقال الأول الذي تقرأه حول Evernote، راجع الدروس السابقة للتعرّف على التطبيق وكيفية استخدامه لإنشاء، حفظ وتنظيم الملاحظات. كيفية البحث عن الملاحظات، دفاتر الملاحظات، الوسوم، والمحادثات جميعنا نعرف كيفية استخدام حقول البحث، فهي تعمل بنفس طريقة محركات البحث. أي نقوم بإدخال مصطلح/عبارة البحث في الحقل لتظهر النتائج المطابقة على الفور: سيقوم البرنامج بشكل افتراضي بالبحث في دفتر الملاحظات المفتوح حاليًا، فإذا كنت تريد البحث في جميع دفاتر الملاحظات اختر All Notebooks من قائمة Viewing notes تحت حقل البحث: لديك أيضًا خيار للبحث عن الملاحظات التي تحتوي على كلمات تطابق كل مصطلحات البحث أو أيّ مصطلح منها. على سبيل المثال، عندما أبحث عن "screen send" وأحدد الخيار All من قائمة matching الموجودة تحت حقل البحث، ستُعرض الملاحظات التي تحتوي على كلمتي "screen" و"send" معًا. ولا يُشترط أن تكون الكلمات في الملاحظة بنفس ترتيب الكلمات في حقل البحث، المهم أن تحتوي الملاحظة على الكلمتين: أما عندما أبحث عن "screen send" وأحدد الخيار Any، فستُعرض الملاحظات التي تحتوي على كملة "screen" [أو] "send"، أو كلتيهما معًا. يمكنك أيضًا البحث عن دفتر ملاحظات معيّن إذا كانت لديك الكثير من دفاتر الملاحظات وتريد الوصول إليه بسرعة بدلا من البحث يدويًا في قائمة دفاتر الملاحظات. انقر على أيقونة العدسة بجانب Notebooks في الشريط الجانبي وابدأ الكتابة في حقل البحث: وبنفس الطريقة يمكنك البحث عن وسم معيّن للعثور على جميع الملاحظات الموسومة بذلك الوسم. انقر على أيقونة العدسة بجانب Tags في الشريط الجانبي وابدأ الكتابة في حقل البحث: إذا كنت ترغب في البحث عن محادثة محددة، انقر على أيقونة Work Chat ثم اكتب في حقل البحث أية كلمة مفتاحية (مثل كلمة مذكورة في المحادثة أو عنوان ملاحظة أو دفتر ملاحظات تمت مشاركتها في المحادثة) أو اسم جهة اتصال: ملاحظة: من خصائص البحث الرائعة أنّه بالإمكان البحث أيضًا عن الكلمات/العبارات داخل المرفقات، كملفات PDF، جداول البيانات، العروض التقديمية، إلخ، أو داخل الملاحظات المكتوبة بخط اليد التي تم إخالها كصورة ماسح ضوئي. لكنّ هذه الخاصية متوفّر لمشتركي الإصدار المدفوع Evernote Premium أو إصدار الشركات Evernote Business. إنشاء بحث محفوظ Saved Search إذا كنت تبحث عن كلمة أو عبارة محددة بشكل متكرر، يمكنك إنشاء البحث وحفظه للرجوع إليه عند الحاجة. ويصل عدد عمليات البحث التي تستطيع حفظها إلى 100 بحث. لحفظ بحث، اكتب الكلمة/الكلمات المفتاحية في البحث ثم اذهب إلى: File > New Saved Search قم بتسمية اسم البحث المحفوظ باسم دلالي، ثم انقر على OK. ستتم إضافة قائمة Saved Searches على الشريط الجانبي، ومن خلالها يمكنك الوصول إلى جميع عمليات البحث التي قمت بحفظها: إذا رغبت في إعادة تسمية البحث المحفوظ Rename، حذفه Delete، أو إضافته إلى شريط الاختصارات Add to Shortcuts، انقر عليه بزر الفأرة الأيمن واختر الإجراء المرغوب. تتيح خاصية إضافة البحث إلى شريط الاختصارات إمكانية الوصول السريع إلى البحث المحفوظ، استخدمها إذا كنت ترجع إلى هذا البحث بشكل منتظم. كيفية استخدام معاملات البحث المتقدم على Evernote خاصية البحث على Evernote فعّالة جدًا، ويمكنك الحصول على أقصى فائدة منها باستخدام معاملات البحث. تتيح لك هذه المعاملات إمكانية البحث عن الملاحظات حسب تاريخ إنشائها أو تحديثها، حسب موقع إنشائها، حسب نوع الوسائط التي تحتويها، إلخ. سندرج أدناه بعض المعاملات شائعة الاستخدام مع الأمثلة لتوضيحها. notebook استخدم هذا المعامل للبحث عن جميع الملاحظات المحفوظة في دفتر ملاحظات محدد. مثال: notebook:general النتيجة: عرض جميع الملاحظات المحفوظة في دفتر الملاحظات بعنوان "General". tag استخدم هذا المعامل للبحث عن جميع الملاحظات الموسومة بوسم محدد. مثال: tag:blog_post النتيجة: عرض جميع الملاحظات الموسومة بوسم "blog_post". created استخدم هذا المعامل للبحث عن الملاحظات التي تم إنشاؤها في تاريخ محدد أو بعده (كملاحظات اجتماع، حدث، أو رحلة حدثت في يوم معيّن). يجب أن تكتب التاريخ بالصيغة التالية: YearMonthDay على أن تتكون السنة من 4 أرقام، الشهر من رقمين، واليوم من رقمين. مثال: created:20160507 النتيجة: عرض جميع الملاحظات التي تم إنشاؤها في تاريخ 7 مايو 2016، أو التواريخ التي تليه. updated استخدم هذا المعامل لعرض الملاحظات التي تم تحديثها في تاريخ محدد أو بعده. إذا لم تقم بتحديث الملاحظة منذ أن قمت بإنشائها، سيتم اعتبار تاريخ الانشاء هو تاريخ التحديث. مثال: updated:20160429 النتيجة: عرض جميع الملاحظات التي تم تحديثها في تاريخ 29 أبريل 2016 أو التواريخ التي تليه. intitle استخدم هذا المعامل للبحث عن كلمة أو عبارة ضمن عنوان الملاحظة. مثال: intitle:sales النتيجة: عرض جميع الملاحظات التي يحتوي عنوانها على كلمة "sales". resource استخدم هذا المعامل للبحث عن الكلمات التي تحتوي على نوع محدد من الموارد/الوسائط (كالصور، الملفات الصوتية، ملفات PDF، إلخ). مثال: resource:application/pdf النتيجة: عرض جميع الملاحظات التي تم إرفاق ملفات pdf فيها. مثال2: resource:image/png النتيجة: عرض جميع الملاحظات التي تحتوي على صور بصيغة PNG. بإمكانك استخدام أكثر من معامل في نفس عملية البحث. على سبيل المثال عندما تكتب التركيبة التالية في حقل البحث: notebook:general resource:image/png tag:blog_post ستُعرض جميع الملاحظات المحفوظة في دفتر الملاحظات "general"، الموسومة بوسم "blog_post"، وتحتوي على صورة بصيغة PNG. وهناك المزيد من معاملات البحث، يمكنك الاطلاع على قائمة المعاملات كاملة بزيارة هذا الرابط.
  3. من أكثر التقنيات التي نحتاجها أثناء تعاملنا مع المستندات بشكلٍ يومي؛ أساليب التحديد المُختلفة للنصوص، ورغم أننا غالبًا لا نعرف سوى تحديد النص عبر النقر بالزر الأيسر للفأرة مع تحريكها إلى الأمام أو الأسفل، فإن محرر النصوص Writer يدعم تقنياتٍ أخرى سنستعرضها سريعًا هنا: بشكلٍ مبدأي لتحديد كلمة انقر عليها بشكلٍ مزدوج (بواسطة الزر الأيسر للفأرة)، ولتحديد الجملة التي تنتمي إليها انقر على الكلمة ثلاث نقرات متتالية، أمّا النقر أربع مرات متتالية على الكلمة فسيُحدّد الفقرة التي تنتمي إليها. لتحديد سطر (فأكثر) ضع مؤشّر الفأرة على الهامش اليميني (إن كنتَ تكتب نصًا عربيًا) أو اليساري (إن كان النصّ لاتينيًا)، انقر بالزر الأيسر للفأرة ومع الاستمرار حرّك المؤشّر عموديًا نحو الأسفل مقدار عدد الأسطر الذي ترغب بتحديده. لتحديد نصف سطر، ضع المؤشر في نقطة البدء واضغط على Shift + end. في العموم يُمكن ضغط زر Shift للتحديد مع واحدٍ من الأسهم الأربعة في لوحة المفاتيح بدلًا من استخدام مؤشّر الفأرة. يُمكننا أيضًا الاستفادة من زر Shift بتحديد نصّ طويل مُمتد على عدّة صفحات؛ ضع مؤشّر الفأرة مكان بدء التحديد، ثم انتقل إلى الصفحة التي ينتهي عندها النصّ، اضغط على Shift ومع الاستمرار اضغط بالزر الأيسر للفأرة عند آخر كلمة مطلوبة، سيُحدّد جميع النصّ بين الكلمتين على امتداد الصفحات. لتحديد أجزاء مُتفرقة من النصّ استخدم زر Ctrl أثناء تحديد كل جزء على حدا. اختر من القائمة: تحرير > وضع التحديد > منطقة الكتلة الآن يمكنك تحديد جزء من سطر وتحريك المؤشّر إلى الأسفل لتحديد الجزء المُقابل له فقط، تُفيد هذه التقنية في التحديد العمودي أثناء التعامل مع الجداول، اضغط Esc للعودة إلى الوضع الافتراضي. البحث والاستبدال للبحث عن كلمة (أو أكثر) في محرر النصوص Writer يُمكنك البدء بسرعة مع الضغط على زري Ctrl+F، حيث سيظهر شريط البحث أعلى شريط الحالة. اكتب عبارة البحث ضمن الصندوق المُخصص لذلك واضغط على زر الإدخال Enter. يُتيح لنا خيار بحث عن الكل إظهار جميع الكلمات المطابقة لعبارة البحث مرّةً واحدة. بالنقر على رمز المجهر والقلم ننتقل إلى نافذة البحث والاستبدال، اضغط على زر خيارات أخرى لعرض بعض التقنيات المُتقدمة: يُتيح زر تنسيق تضيق دائرة البحث بصورة أكثر دقّة، حيث نطلب من رايتر أن يبحث عن الكلمة وفق تنسيق بعينه، تشمل خيارات التنسيق نوع، حجم، ولون الخط، الإزاحة، التباعد، والمحاذاة إلخ. يُمكننا كذلك تحديد مجموعة من النصوص أو الصفحات من المُستند وفق التقنيات المذكورة سابقًا، ثم الانتقال إلى نافذة البحث والاستبدال وتفعيل خيار التحديد الحالي فقط، لحصر نتائج البحث ضمن هذه النصوص. في المقابل لدينا عدّة خيارات لتوسيع نتائج البحث مثل البحث عن كلمات متشابهة مع صندوق الضبط الخاص به، فمثلًا عند البحث عن كلمة "مرج"، ستظهر لك من بين النتائج "مركز"، "مريم"، "مرحى". إضافةً إلى خيار تجاهل الكشيدة (وهي المحرف الذي يوســـع الكلمات). تعريف لون جديد حتى وقتٍ متأخّر كانت الخيارات اللونيّة في طقم ليبر أوفيس محدودة بمئة لون فقط، يُمكنك اختيار أحدها كلون للخط، التمييز، أو الخلفيّة، كما كانت عملية إضافة لون جديد تحتاج إلى عدّة دقائق من العمل. في الإصدار الأخير تم حل المشكلة بطريقتين: الأولى؛ إتاحة تسعة أطقم لونيّة مُميزة يُمكن اختيار أحدها من قائمة مُنسدلة صغيرة ضمن نافذة اختيار اللون، تُوسّع هذه الباقات الخيارات الافتراضيّة للبرنامج. الثانية؛ إضافة زر لون مُخصص إلى نافذة اختيار اللون بدل ترك المستخدم يبحث في القوائم عن النافذة التي يُمكنه من خلالها تعريف لون جديد خاص به. التعامل مع الفقرات يملك Writer عددًا من الخصائص التي يُمكن تعديلها للحصول على نمط الفقرات الذي نرغب به، لتعديل هذه الخصائص يُمكن الوصول إلى نافذة فقرة من القائمة: تنسيق > فقرة كما يُمكن تحديد فقرة بعينها ثم الضغط بالزر الأيمن للفأر واختيار فقرة. ضمن علامة التبويب الأولى لدينا الخيارات الأربعة التالية: الإزاحة: ويُحدّد تموضع الفقرة بالنسبة إلى الجانبين الأيمن والأيسر، فبزيادة قيمة الخانة قبل النص نوسّع الهامش الأيمن، وبزيادة قيمة الخانة بعد النص نزيد الهامش الأيسر، بينما تتيح لنا خانة السطر الأول إمكانية التحكم بأطراف السطر الأوّل فقط كإزاحته قليلًا عن باقي جسم الفقرة كما في استهلال الرسائل اللاتينية. التباعد: تُحدّد هذه الخاصيّة تموضع الفقرة بالنسبة إلى ما يسبقها (من خلال خانة أعلى الفقرة) وما يليها (من خانة أسفل الفقرة). Line Spacing: يُعيّن المسافة التي تفصل بين أسطر الفقرة الواحدة، ويمكن أن تأخذ عدّة قيم، مثل مفرد، سطر ونصف، مزدوج إلخ. وأخيرًا الخيار Register-true والذي يُحدّد إزاحة تلقائية لنصّ الفقرة مُتلائمة مع باقي سماته؛ كحجم ونوع الخط المُستخدم. تُقدّم علامة التبويب الثانية خيارات الإزاحة الأربعة المتوفرة في شريط الأدوات (إلى اليمين، اليسار، توسيط، ضبط الكشيدة)، لكن مع خصيصة إضافية وهي آخر سطر، حيث يُمكن تعيين حالة السطر الأخير من الفقرة بشكل مختلف عن باقي الفقرة في حال كان الخيار ضبط هو المُفعّل. أما خيار محاذاة نص إلى نص فهي تتحكّم بالنصّ اللاتيني حينما يكون جزء من السطر أكبر حجمًا من باقي السطر، حينها يُمكن ضبط موضع الجزء الأقل حجمًا بالنسبة إلى الجزء الأكبر (نحو الأعلى، الأسفل، في المُنتصف، إلخ). في علامة التبويب الثالثة انسياب النصّ لدينا خيارات أخرى تخصّ النصوص اللاتينية (كإلزام عدد مُعيّن من الأحرف في بداية/نهاية السطر)، لكن وضمن الخانة خيارات هناك أربعة خصائص تلزمنا أحيانًا عند الكتابة: عدم تقسيم الفقرة، تنقسم بعض الفقرات تلقائيًا أثناء الكتابة بين صفحتين؛ يمنع هذا الخيار انقسام الفقرات إلى صالح الصفحة التي يُمكنها استيعاب الفقرة بالكامل. إبقاء مع الفقرة التالية، يعمل مع الخيار السابق على ربط مصير فقرتين معًا كي لا تنقسما على صفحتين متتاليتين. الخيارين الأخريين يتحكّمان بعدد الأسطر قبل/بعد فاصل الصفحة، بتفعيله يُمكننا ضبط عدد اثنان أو ثلاثة أسطر كحد أدنى لعدد الأسطر المنفردة عندما تنقسم فقرة ما على صفحتين. تُتيح لنا علامة التبويب Drop Caps تعيين حرف أو كلمة استهلاليّة للفقرة، يُمكن تفعيل الخاصيّة بالضغط على Display drop caps، كما يمكن تحديد عدد الأسطر المحجوزة من خانة الأسطر، إضافة إلى إمكانية ضبط كامل الكلمة كاستهلال للفقرة بواسطة الخيار الكلمة كاملة. تعمل علامتي التبويب الحدود و المساحة بذات الطريقة التي شرحناها في درس التعامل مع الصفحات، وذلك لضبط خلفية وحدود الفقرة بعينها دونًا عن باقي الصفحة.
  4. في كل ثانية، يتم نشر ما يقارب 6,000 تغريدة على توتير في المتوسط، أي ما يتجاوز 500 مليون تغريدة في اليوم الواحد. هل تعلم أنّه يمكنك البحث عن كل تغريدة من هذه التغريدات (بالإضافة إلى الملايين المتعددة من الحسابات المرتبطة بها)؟ يوفّر تويتر أداة رائعة، وغير معروفة نوعا ما، لإجراء بحث متقدم لمساعدتك في العثور على الشيء الذي تبحث عنه بالضبط. هل تسعى للعثور على عملائك المُحتملين؟ البحث المتقدم يمكن أن يساعدك. هل تريد قياس سعادة/رضا عملائك الحاليين؟ البحث المتقدم هو ما تحتاجه. البحث المتقدم هو بمثابة منجم الذهب للمسوّقين وأصحاب الشركات الصغيرة. وسنشاركك في هذا المقال بعض من أفضل النصائح والأفكار لمساعدة شركتك أن تستفيد من بحث تويتر المتقدم. لنبدأ! البداية:كيف تصل إلى البحث المتقدم هناك بعض الطرق المختلفة لعمل البحث على تويتر. من حقل البحث في شريط الأدوات على موقع تويتر: من الصفحة الخاصة بالبحث: من خلال تطبيق الهواتف المحمولة (على تطبيق تويتر لنظام iOS أو Android): جميع هذه الخيارات رائعة إن كنت ترغب في عمل بحث سريع حول موضوع أو وسم hashtag معيّن. أمّا إذا كنت تسعى إلى الحصول على أقصى قيمة من بحث تويتر، فالبحث المتقدم هو من المصادر المذهلة والفعّالة. تتوفّر خاصية البحث المتقدم عند استخدام تطبيق الويب من تويتر، ويمكنك الوصول إليه مباشرة من خلال زيارة هذا الرابط: twitter.com/search-advanced. وكذلك، يمكنك الوصول إليه من صفحة نتائج البحث القياسي بالنقر على قائمة More Options (المزيد من الخيارات) واختيار Advanced Search (بحث متقدم) من أسفل القائمة. وعند وصولك إلى نافذة البحث المتقدم ستجد العديد من الطرق المختلفة للبحث، التقسيم، ولتصفية بيانات تويتر الهائلة من التغريدات والحسابات. البحث عن التغريدات التي تحتوي على كل هذه الكلمات Contains all of these words البحث عن التغريدات التي تحتوي هذه العبارة بالضبط Contains this exact phrase البحث عن التغريدات التي تحتوي على أي من هذه الكلمات Contains any of these words البحث عن التغريدات التي لا تحتوي على أي من هذه الكلمات Contains none of these words البحث عن التغريدات التي تحتوي هذه الوسوم Contains these hashtags البحث عن التغريدات المكتوبة بهذه اللغة Written in this language البحث عن التغريدات المنشورة بواسطة هذه الحسابات From these accounts البحث عن التغريدات المنشورة إلى هذه الحسابات To these accounts البحث عن التغريدات التي تحتوي على إشارة mention إلى هذه الحسابات Mentioning these accounts البحث عن التغريدات المنشورة بالقرب من هذا المكان Near this place البحث عن التغريدات المنشورة في هذا التاريخ From this date البحث عن التغريدات التي تحتوي على رأي إيجابي Positive tone البحث عن التغريدات التي تحتوي على رأي سلبي Negative tone البحث عن التغريدات التي تحتوي على سؤال Question إدراج إعادة التغريد Include retweets وسنفصّل الحديث أكثر حول هذه المرشّحات في نهاية المقال. هناك بعض المصادر الأخرى، بالإضافة إلى صفحة البحث المتقدم نفسها، لمساعدتك على تحسين نتائج البحث بشكل أفضل. فعلى صفحة نتائج بحث تويتر، سيكون لديك قائمة من الخيارات لتصفية النتائج حسب نوع الوسائط، الحسابات، وغيرها الكثير. كما بإمكانك القيام بعدد من حيل البحث المتقدم من أي حقل بحث في تويتر باستخدام مجموعة من معاملات operators بحث تويتر. الآن، لنطّلع على بعض الطرق البارعة لجمع هذه المرشحات والمعاملات معا والحصول على نتائج البحث المطلوبة بالضبط. 23 طريقة رائعة وخفية لاستخدام بحث تويتر المتقدم للتسويق والمبيعات تندرج كل مجموعة من هذه الطرق تحت هذه العناوين: طرق لتحسين التسويق رصد سمعة العلامة التجارية تحليل المنافسة الحصول على نتائج بحث أكثر دقّة أفكار بسيطة جدا لتحسين المبيعات طرق ذكية تساعدك في تحسين تسويقك 1. قم بإنشاء بحث وحفظه يتيح لك تويتر حفظ ما يصل إلى 25 عملية بحث لكل حساب. ولحفظ البحث، انقر More Options (المزيد من الخيارات) في الجزء العلوي من صفحة نتائج البحث ثم اختر Save this Search (احفظ هذا البحث). يمكن أن تكون البحوث المحفوظة مفيدة في رصد الأشخاص الذين يقومون بمشاركة محتواك، الكلمات المفتاحية ذات الصلة بعلامتك التجارية، بالإضافة إلى الإشارات الخاصة بحسابك. 2. اعثر على تفاعلاتك مع حساب تويتر آخر قد يكون من الصعب تذكّر جميع تفاعلاتك مع شخص آخر على تويتر، وكطريقة لإنعاش ذاكرتك، يمكنك استخدام المرشحين From these accounts (من هذه الحسابات) و To these accounts (إلى هذه الحسابات) للعثور على التغريدات بينك وبين تلك الحسابات. هذا الرابط يعرض جميع تفاعلاتي مع حساب Buffer على تويتر: 3. اعثر على التغريدات الأكثر شعبية حول موضوع معين لم يمضِ كثيرا على اكتشافي لهذه الطريقة، ومنذ ذلك الوقت أصبحت من حيل البحث المفضّلة لدي. تتيح لك هذه الحيلة تحديد مقاييسك الخاصة التي تجعل من التغريدة شعبية، وهي بديل لأفضل التغريدات Top Tweets التي يعرضها تويتر لكل مصطلح بحث. يشرح Amit Agarwal هذه الطريقة على مدونته: اذهب إلى مربع البحث على تويتر، اكتب أي مصطلح بحث ثم ألحقه بالمعامل [رقم]min_retweets: أو [رقم]min_faves: لتصفية نتائج بحثك. على سبيل المثال، سيعرض نموذج البحث هذا فقط التغريدات التي تشير إلى نطاق labnol.org والتي تم تفضيلها أو إعادة تغريدها على الأقل خمس مرات. مثلا، للعثور على التغريدات حول Buffer والتي تم إعادة تغريدها أكثر من 30 مرة، سأدخل في مربع البحث "buffer.com min_retweets:30". 4. اعثر على تغريداتك الأكثر شعبية باستخدام نفس الأسلوب الموضح أعلاه، يمكنك أيضا أن تجد تغريداتك الأكثر شعبية من حسابك على تويتر. وللقيام بذلك، اذهب إلى صفحة تويتر الخاصة بالبحث (أو استخدم حقل البحث في شريط الأدوات) وادخل المعامل التالي في الحقل: min_retweets:30 [اسم حسابك]:from على سبيل المثال، عندما أقوم بإدخال المعامل "from:buffer min_retweets:30" ستُعرض التغريدات التي نُشرت بواسطة حساب buffer@ والتي تم إعادة تغريدها أكثر من 30 مرة. يمكنك أيضا أن ترى المنشورات الأكثر شعبية باستخدام تحليلات Buffer إذا كنت تملك حساب Buffer. 5. اعثر على أفكار لمقالات مدونتك يعتبر تويتر مصدرا كبيرا للإلهام لكتابة مقالات المدونة، وبحث تويتر المتقدم من الوسائل الرائعة لمعرفة ما يقوله الناس حول موضوع معيّن عندما ترغب في دراسة فكرتك لمقال معيّن. الصورة التالية توضح كيف استخدمت البحث المتقدم على تويتر لتقصّي هذا المقال بالذات: 6. اعثر على مقالات رائعة للمدونة إذا كنت تسعى للعثور على بعض المقالات أو المحتوى حول موضوع محدد، يمكن أن يكون بحث تويتر المتقدم دليلك للكشف عن بعض الكنوز الحقيقة. في حقول البحث، يمكنك أن تدخل الموضوع الذي اخترته في حقل All of these words (كل هذه الكلمات) ثم إدخال "http" في حقل This exact phrase (هذه العبارة بالضبط). المثال التالي يوضح البحث الذي استخدمه لتعقّب جميع مقالات المدونات حول التسويق بالمحتوى: 7. اعثر على المحتوى الذي تم نشره بواسطة حسابات محددة مثلا، إذا كنت ترغب في معرفة كيف تتفاعل الحسابات المفضلة لديك على تويتر مع بعض الأخبار، ابحث عن الكلمة المفتاحية وأسماء حساباتهم. الصورة أدناه توضّح ردّة فعل حساب TheNextWeb تجاه خاصية Twitter Moments: 8. قم بتضمين البحث في موقعك أو مقالاتك إنّ تضمين بحث ما داخل موقعك أو أحد مقالات مدونتك يمكن أن يكون من الوسائل الرائعة لإنعاش محتواك. وبإمكانك الاطلاع على المزيد من المعلومات حول تضمين المخططات الزمنية timeline لبحث تويتر هنا. 9. قم بتصفية التغريدات حسب الموقع إذا كنت ترغب في البحث عن الناس الذين يتحدثون عن علامتك التجارية في موقع معيّن، انتقل إلى قسم Places (الأماكن) في نافذة البحث المتقدم وحدد المناطق التي تريد التركيز عليها. يمكن أن تكون هذه الخاصية مفيدة جدا إذا قرنت بعض الكلمات بالبحث. على سبيل المثال: Buffer buffer.com near:"London, England" within:15mi البحث المتقدم لرصد سمعة علامتك التجارية 10. ارصد الإشارات mentions إلى شركتك يمكن أن يكون استخدام بحث تويتر المتقدم فعّالا بدرجة كبيرة في رصد علامتك التجارية .فبالإضافة إلى رصد الإشارات إلى اسم علامتك التجارية، يتيح لك البحث المتقدم مراقبة الإشارات إلى اسم حسابك على تويتر، وحتّى التغريدات التي تتضمن عنوان موقعك URL. المثال التالي يوضّح كيف نستخدم البحث المتقدم لرصد الإشارات إلى كل ما يتعلّق بـ Buffer: 11. تصفية تغريدات المنافسين إذا كنت ترغب في تصفية كل النتائج التي تشير إلى منافسيك، بإمكانك القيام بذلك بإضافة أسماء حساباتهم وعناوين مواقعهم في حقل None of these words (استثناء هذه الكلمات) في صفحة البحث المتقدم. 12. اعثر على أخبار حول شركتك بعد إجراء البحث المتقدم حسب المرشحات التي تريد استخدامها والحصول على صفحة النتائج، اختر News (أخبار) من القائمة المنسدلة لخيار More Options (المزيد من الخيارات) لعرض جميع النتائج التي تحتوي على رابط لموقع أخبار. فيما يلي بحث قمت بإجرائه لمعرفة ما يتم تداوله حول Buffer عندما قمنا بإطلاق Pablo: 13. اعثر على العملاء السعداء وغير السعداء بحث تويتر المتقدم هو من الوسائل الرائعة لمعرفة مدى رضا (أو عدم رضا) العملاء وبشكل سريع. هذه الأنواع من البحوث ستساعدك في العثور على بعض الأفكار والتغذية الراجعة الرائعة. على سبيل المثال، يمكن للتغريدة التي يعبر فيها العميل عن إحباطه أن تثير النقاش حول كيف يمكنك أن تحسن منتجك أو خدمتك. لتضمين مرشحات الآراء/المشاعر في بحثك، قم بتأشير الحقل المناسب في صفحة البحث المتقدم، أو ببساطة قم بإضافة الرمز التعبيري السعيد ":)" أو غير السعيد "):" في نهاية عبارة البحث. مثلا: " ): buffer" أو ":) buffer" البحث المتقدم لتحليل المنافسة 14. ارصد الآراء حول المنافسين بنفس الطريقة التي يمكنك فيها رصد الآراء حول علامتك التجارية، يتيح لك بحث تويتر المتقدم إمكانية مراقبة نوع الحديث الذي يتداوله عملاؤك عن منافسيك. ولكي تتمكن من التحقق مما يقوله الناس عن المنافسين، قم بإضافة اسم شركة المنافس وعنوان موقعه في حقل All of these words (كل هذه الكلمات). 15. ابحث عن تغريدات المنافسين وهذه من النصائح الرائعة التي حصلت عليها من Tim Baran، فعند استخدام البحث المتقدم، تستطيع تصفية التغريدات المنشورة بواسطة أي حساب ولكلمات مفتاحية محددة. للقيام بذلك، استخدم حقول All of these words (كل هذه الكلمات) وFrom these accounts (من هذه الحسابات). فيما يلي مثال على بحث سيعرض جميع المرات التي تم فيها ذكر كلمة "transparency" بوساطة حساب Buffer على تويتر: وكاختصار، بالإمكان إدخال العبارة التالية في حقل البحث من شريط الأدوات: "from:buffer transparency" تصفية نتائج البحث 16. شاهد النتائج من الأشخاص الذين تتابعهم فقط بما أنّ وتيرة النشر على تويتر سريعة جدا، قد يصبح في بعض الأحيان من السهل تفويت محتوى مهم من الأشخاص الذي تتابعهم. ولحسن الحظ يتيح لك بحث تويتر أن تقوم بتصفية التغريدات لعرض تغريدات الأشخاص الذين تتابعهم فقط. وهذه الوسيلة رائعة لتتأكد من عدم تفويت أي شيء تقوم الحسابات الذي تفضلها بنشره حول المواضيع التي تهتم بها. المثال التالي يوضح البحث الذي استخدمته لمعرفة الأشخاص الذي أتابعهم والذي تحدثوا حول content marketing (التسويق بالمحتوى): 17. اعثر على الفيديوهات ذات الصلة بموضوع معيّن الفيديوهات من الوسائل المذهلة لجعل المحتوى أكثر جاذبية وحيوية، وإذا كنت تبحث عن فيديو حول موضوع محدد، يوفر بحث تويتر بديلا رائعا لبحث يوتيوب. لعمل تصفية للفيديوهات يمكنك إما استخدام البحث المتقدم، أو حقل البحث في شريط الأدوات ومن ثم اختيار Videos (الفيديوهات) من مرشحات صفحة النتائج. 18. اعثر على الصور المتعلقة بموضوع معين بنفس الطريقة المذكورة أعلاه، يمكنك تصفية البحث لعرض الصور باستخدام البحث المتقدم، أو حقل البحث في شريط الأدوات، ثم اختيار Photos (الصور) من مرشحات صفحة النتائج. 19. اعرض الأسئلة فقط إذا قمت بتحديد ?Question (سؤال؟) من صفحة البحث المتقدم ستُعرض فقط التغريدات التي تحتوي على سؤال في صفحة النتائج. وهذه الفكرة ذكية جدا في حال رغبت في التركيز على دعم العملاء على تويتر. 20. اعثر على حسابات مثيرة للاهتمام لمتابعتها إذا كنت تبحث عن أشخاص جدد في مجال تخصصك للتواصل معهم، يمكنك إجراء بحث حول كلمة مفتاحية محددة أو عبارة محددة، ومن ثم تصفية الحسابات التي تطابق تلك الكلمات المفتاحية. يوضّح المثال التالي بحث قمت بإجرائه حول content marketing (التسويق بالمحتوى): 21. اعثر على حسابات بواسطة كلمة مفتاحية وموقع إنّ الجمع بين الكلمة المفتاحية والموقع عند البحث من الوسائل الفعّالة جدا إن كنت تسعى إلى تحديد حسابات أو شركات ضمن منطقة معيّنة. 22. لا تبحث عن مصطلحات، ابحث عن عبارات تظن أن الناس سيقولونها يختلف بحث تويتر قليلا عن بحث جوجل. فالتغريدات تميل لتكون ذات أسلوب تحاوري أكثر من مصطلحات بحث جوجل. لذلك فكّر في كيفية تحدّث الناس مع بعضهم عندما تفكر بالكلمات المفتاحية أو العبارات التي تريد البحث عنها. أسلوب بسيط للعثور على فرص مبيعات جديدة 23. ابحث عن إشارات الشراء يُعتبر الاستماع مهما بدرجة كبيرة في وسائل التواصل الاجتماعي، وبالحرص على رصد ما يقوله الناس، ستتمكن من العثور على بعض الفرص المثيرة. ابحث عن مصطلحات/عبارات مثل "anyone recommend" (هل من مقترح...) أو "any advice on" (أبحث عن نصيحة بخصوص...)، فهي من الوسائل المفيدة جدا لتحديد الأشخاص الذي يبحثون عن المساعدة أو المشورة حول موضوع محدد. وكذلك، كن منتبها إلى أي إشارة شراء تظهر على تويتر (مثل عدم الرضا عن منتج/خدمة المنافس، أو إظهار حاجة يمكن أن يسدها منتجك) وتفاعل لجعل دورة المبيعات فعّالة. لكن حاول ألّا تكن لحوحا في البيع، وكن أكثر ميلا للتحاور في هذه المرحلة. أو، إذا تمكنت من رصد أحدهم يسعى إلى الشراء في وقت قريب، بادر وتواصل معه إذا كانت منتجك يحقق المطلوب. التعامل مع البحث المتقدم قد تبدو صفحة البحث المتقدم للوهلة الأولى صعبة للتعامل معها، فهي تحتوي على القليل من الحقول لأخذها في الاعتبار، ومن الصعب نوعا ما أن تعرف من أين تبدأ. لذلك قمنا بإعداد دليل سريع لمساعدتك على البدء. البدء باستخدام بحث تويتر المتقدم الكلمات كل هذه الكلمات: أدخل كلمة أو أكثر في هذا الحقل وستُعرض التغريدات التي تحتوي على هذه المصطلحات (دون اتباع ترتيب محدد). كما بإمكانك البحث عن عبارة واحدة أو أكثر باستخدام علامات الاقتباس للفصل بينها. على سبيل المثال "social media" (التواصل الاجتماعي) و"social marketing" (التسويق الاجتماعي. هذه العبارة بالضبط: من الأفضل أن تبحث عن عبارة واحدة في هذا الخيار. هذا الحقل مفيد على وجه الخصوص إذا كنت تريد البحث عن أسماء أو اقتباسات. أيّ من هذه الكلمات: هذا الحقل مفيد للبحث عن كلمات متعددة. على سبيل المثال، إذا كنت أريد البحث عن كل ما يتعلّق بـ Buffer يمكنني استخدام الكلمات " Buffer"، "@Buffer" و"Buffer#". باستثناء هذه الكلمات: كل ما تقوم بإدخاله هنا سيؤدي إلى إزالة التغريدات التي تحتوي على الكلمات أو العبارات التي قمت بإدخالها في الحقل من نتائج البحث. هذه الوسوم: يساعدك هذا الخيار في التركيز على الوسوم، وأميل إلى استخدامه لمراجعة المحادثات على وسم bufferchat#. كُتبت بِـ: يتيح لك استخدام هذا الخيار العثور على التغريدات المكتوبة بأي لغة من الخمسين لغة التي يدعمها تويتر. الأشخاص من هذه الحسابات: سيعرض هذا الخيار التغريدات من الحسابات التي قمت بإدخالها في هذا الحقل فقط. لهذه الحسابات: قم بإدخال اسم المستخدم لحساب واحد أو أكثر وستكون قادرا على رؤية التغريدات التي تم إرسالها إلى تلك الحسابات. الإشارات إلى هذه الحسابات: هذا الخيار يشابه الخيارين السابقين جدا. قم بإدخال اسم حساب واحد أو أكثر في هذا الحقل وستتمكن من رؤية التغريدات التي يُشار فيها إلى تلك الحسابات. الأماكن بالقرب من هذه المكان: بإمكانك رؤية التغريدات التي تم نشرها من قبل شخص كان متواجدا في منطقة محددة. التواريخ ابتداء من هذا التاريخ...إلى: من الوسائل السهلة للغاية للبحث عن التغريدات التي نُشرت ضمن نطاق زمني محدد (بين تاريخين محددين). خاتمة كيف تستخدم بحث تويتر؟ وهل لديك أيّة نصائح وأفكار ساعدتك كثيرا في التسويق والمبيعات؟ سيسرّنا أن تشاركنا أفكارك في التعليقات. ترجمة -وبتصرّف- للمقال The Superhuman Guide to Twitter Advanced Search: 23 Hidden Ways to Use Advanced Search for Marketing and Sales لصاحبه: Ash Read.
  5. على الرغم من أنَّ الأمر يبدو كأنَّه مهمةٌ مستحيلةٌ، لكنك لن تحتاج أن يكون لديك قدراتٌ خارقةٌ لتعثر على عناوين البريد الإلكتروني للمدراء التنفيذيين (CEOs)؛ فالأمر برمّته متعلقٌ بالهدف الذي تسعى إليه وبتصميمك على الوصول إليه ومعرفتك بالأدوات المتوفِّرة لمساعدتك. سنقدَّم لك في هذا الدرس قائمةً من أفضل الأدوات والتقنيات لتستخدمها لإيجاد عنوان البريد الإلكتروني لأيّ شخصٍ كان؛ بعد ذلك عليك كتابة رسالةٍ إلكترونيةٍ يدفع أسلوبها مُستلمها إلى قراءتها. ماذا «تفعل» أو «لا تفعل» عند المراسلة بالبريد الإلكترونيقبل أن تضيع في محاولة البحث عن عناوين البريد الإلكتروني، دعنا نشرح أساسيات كتابة الرسائل الإلكترونية. إذ لا ينبغي أن تتبع الشكل نفسه في كل رسالةٍ إلكترونيةٍ، فهنالك دائمًا أمورٌ يجب أن تضمِّنها في الرسالة، وأخرى عليك تجنبها. افعل: اختصر رسالتكلا يجب أن تتجاوز رسالتك حاجز 150 كلمة، ويوصي موقع «لينكدين» (LinkedIn) أن تُبقي رسالتك أقل من 100 كلمة؛ فعلى رسالتك أن تكون مميزةً، إذ أننا نجري مسحًا سريعًا بعيوننا عندما نرى مقطعًا نصيًّا طويلًا بدلًا من قراءته كلمةً بكلمة. لا تفعل: الخوض في أدق التفاصيلوصلني كثيرٌ من الرسائل التي كانت مصدر إلهامٍ رئيسي للنصائح حول ما يجب فعله أو عدم فعله عندك كتابة الرسائل الإلكترونية؛ فغالبًا ما أرى أشخاصًا يخوضون في تفاصيل كثيرةٍ إلى درجة أن تفقد الرسالة معناها. ركِّز على هدفك، وقل ما ترد إيصاله للقارئ دون حشو، واترك التفاصيل لرسائلَ قادمةٍ. افعل: دقق الرسالة لغوياقلِّةٌ من «جرائم» الرسائل الإلكترونية أسوء من الأخطاء الإملائية، أسدِ لنفسك معروفًا واقرأ الرسالة مرةً أخرى قبل إرسالها؛ وأنصحك بالانتظار عشر دقائق قبل أن تدققها، فحاول أن تُشغِل نفسك بإجراء مهمةٍ أخرى، كي تعود إليها صافي الذهن. لا تفعل: استخدام أسماء عامةتجنب كليًّا مناداة الشخص الذي ترغب بمراسلته «بالسيد» أو «السيدة»؛ ولا توجِّه حديثك «للقسم الفلاني» ولا إلى «لمن يهم الأمر»؛ فإذا أدرت أن تكون رسالتك ذات فعاليةٍ، فأظهِر لمستلم الرسالة أنك تعرف من هو. افعل: أضف قيمة لمنتجكليست الطريقة الأمثل لجذب انتباه أحدهم أن تخبره أنَّه يستحق ذاك المنتج، أو أنَّ منتجك رائعٌ جدًا؛ وإنما إخباره كيف سيستفيد من منتجك في عمله؛ فأنت تحاول بيع المنتج، ولست تحاول عرضه فقط ثم تتوقع أن «يتكلم» المنتج عن نفسه! لا تفعل: اطلب خدمةلا تستخدم كلماتٍ مثل «لو سمحت» أو «إنه يعني لي الكثير»، فالشركة لا تُقدِّم لك خدمةً، وإنما يخطون خطوةً ذكيةً إلى الأمام إذا تعاملوا معك. تذكر أنك تضيف شيئًا ذا قيمة. نصيحة: أفضل الأوقات لإرسال الرسالةتقول دراسةٌ من موقع Mailchimp أنَّ أفضل وقتٍ لإرسال رسائل البريد الإلكتروني هو وقت الظهيرة في منتصف الأسبوع؛ أما موقع Customer.io فيخصص الوقت أكثر وينصحك أن ترسلها في مساء يوم الثلاثاء. حسب خبرتي، الأمرٌ متعلقٌ بالأشخاص الذين تتواصل معهم؛ فأنا -كرائد أعمال يعمل بدوامٍ كامل على عدِّة مشاريع- ليس عندي وقتٌ خلال اليوم لأعمل على مشاريع جانبية، وهذا يعني أيضًا أنني سأبقى أعمل لوقتٍ أكثر من الموظفين التقليديين الذي يعملون من الساعة التاسعة صباحًا حتى الخامسة مساءً؛ فهنالك احتمالٌ كبيرٌ أن أبدأ تصفحي للبريد قرابة منتصف الليل. ربما يكون ما سبق ملائمًا لحالتي؛ وقد لا ينطبق على أصحاب الأعمال، أو الصحفيين، أو الموظفين الذين لديهم أطفالٌ صغار. أدوات إيجاد عناوين البريد الإلكترونيلنأخذ فكرةً عن بعض أفضل الأدوات لتعقب عناوين البريد الإلكتروني التي تبحث عنها؛ سأذكر هنا بعض الأدوات التي وجدتها الأكثر كفاءة؛ ولما كانت أغلبية تلك الأدوات مجانيةً أو توفِّر فترةً تجريبيةً مجانية، فأنصحك أن تجربها جميعًا وتنظر أيها تلبي احتياجاتك. toofrأنا معجب كثيرًا بموقع toofr، فهو سهل الاستخدام ويمنحك إمكانية الوصول إلى كمياتٍ ضخمةٍ من عناوين البريد الإلكتروني، ويوفِّر لك مقياسًا لتحديد حجم المخاطرة في مراسلة ذاك الشخص، وسيتقاضى مبلغًا بسيطًا لقاء كل طلب بحث، وسيمنحك اثنتا عشرة عمليةُ بحثٍ مجانية. Datanyze Insiderيوفِّر Datanyze مجموعةً كاملةً من أدوات البحث أحدها هو «Insider email Finder»؛ ومَثَله كمَثَلِ toofr في إمكانية استخدامه كإضافةٍ لمتصفح كروم، مما يُسهِّل عليك عملك عندما تبحث (وبسرعة) عن كميّةٍ ضخمةٍ من العناوين. SellHackأما SellHack -الذي يعمل أيضًا إضافةً للمتصفح- فيبحث داخل الحسابات الاجتماعية للعثور على عناوين البريد الإلكتروني «المخفيّة» التي لا يمكن إيجادها بسهولة. تساعدك هذه الأداة كثيرًا في العثور على المعلومات المتوفِّرة للعامة لكن يصعب العثور عليها. Content Marketerلن نُقصِّر في حق Content Marketer هنا، فهذا ما صُمِّمَت له خدمتنا! فلو أردت أن تتفحَّص منشورًا حديثًا أو تبحث عن شخصٍ معيّن، فسيجد برنامجنا عناوين البريد التي تبحث عنها؛ ونمنحك فترةً تجريبيةً أيضًا. Voila NorbertNorbert هي أداةٌ سحريةٌ بسيطة المظهر تبحث في نطاقٍ واسعٍ من البيانات عن عناوين البريد الإلكتروني التي تريد الحصول عليها؛ هذه الأداة مجانيةٌ تمامًا، فإذا كنت تعرف الاسم الأول والشهرة ومكان العمل لمن تبحث عنهم، فهذه الأداة هي الخيار الأمثل. Rapportive + Gmailتعتمد هذه الأداة على التخمين؛ لا أقصد أن تحاول إرسال الرسائل إلى أشكالٍ مختلفة من العناوين البريدية آملًا أن تحصل على رد (لا تفعل هذا أبدًا)؛ وإنما استخدام Rapportive (الذي هو إضافة لـ Gmail) الذي يسمح لك بمشاهدة حساب لينكدين للشخص الذي تكتب عنوان بريده الإلكتروني؛ حاول أن تخمِّن عنوان البريد الإلكتروني في خانة «إلى» في نموذج إرسال البريد الإلكتروني، واضغط على Enter وانظر إن ظهر أمامك الحساب. العثور على نمط العناوينإذا لم تثمر رحلتك في البحث عن عناوين البريد الإلكتروني؛ فربما تعتمد على التجربة والخطأ؛ لن تحصل على عنوان البريد الإلكتروني كاملًا عندما تستخدم هذه الأدوات، وإنما نمط العناوين التي تُعطيها الشركة لموظفيها. Email For Corporationsستمثِّل هذه الأداة نقطة انطلاقٍ لك، إذ لديهم قاعدة بياناتٍ كبيرة لأغلبية الشركات الكبيرة؛ إذا كان من تبحث عن بريده يعمل في شركةٍ كبيرةٍ، فيمكنك أن تبدأ من هنا. EmailBreakerلدى هذه الأداة واجهةٌ بسيطةٌ جدًا، مما يجعل من السهل معرفة إن كان للشركة نطاقٌ مرتبطٌ بعناوين بريدٍ إلكترونيٍ أم لا. ابدأ بكتابة اسم النطاق وستساعدك ميزة الإكمال التلقائي في ذلك؛ وبعد أن يظهر النطاق الذي تبحث عنه، فستُكتَب تحته الصيغ المحتملة لعناوين البريد. CEO Email Addressesموقع جَمَعَ مختلف المعلومات عن المدراء التنفيذيين للشركات وعناوين بريدهم. Email FormatEmail Format يحتوي عددًا كبيرًا من عناوين البريد التي يمكنك البحث فيها؛ سيأخذ هذا الموقع وقتًا أكثر من غيره، ولكن إن جرَّبت الخيارات الأخرى ولم تُجدِ نفعًا، فلدى هذا الموقع أعداد ضخمةٌ من أسماء النطاقات لتبحث فيها. أدوات خاصة بالشبكاتإذا استسلمت ووصلت إلى هذه النقطة، فأنت تحتاج إلى شيءٍ أكثر تحديدًا، وربما تريد أن تستخدم طريقةً تعتمد على الشبكة. سواءً كنت تستعمل ارتباطاتك في شبكات التواصل الاجتماعي، أو تتصل بأصدقائك وتطلب منهم معروفًا، أو تستخدم الأدوات المذكورة لاحقًا؛ فستفاجأ كم يمكن أن تستفيد من طلبٍ بسيط، وستفاجأ أكثر عندما تكتشف أنَّ معظم الأشخاص يعرفون بعضهم بعضًا. Conspireيرتبط Conspire بذكاءٍ مع شبكتك الاجتماعية (مثله كمثل Google crawlers) ليساعدك بالعثور على أفضل طريق للاتصال بالشخص الذي تريده؛ استعماله بسيطٌ جدًا، فكلُّ ما عليك فعله هو التسجيل فيه وإعطاءه عنوان البريد الإلكتروني. ارتباطات لينكدين عندما تبحث عن شخصٍ ما على لينكدين، فسيخبرك الموقع بكيفية التعرّف عليه؛ لكنه لا يُظهِر دائمًا الارتباطات المباشرة، بل يعطيك رأس الخيط عبر إخبارك بمن تراسل لتتعقب الشخص الذي تبحث عنه. البحث المتقدمإذا كنت تبحث عن تطبيقٍ عمليٍ لمهاراتك التجسسية، فهذه أفضل طريقةٍ لك؛ وبعض النظر أن الأدوات المذكورة آنفًا ستحاول القيام بهذا العمل عوضًا عنك، لكن لمسةً إبداعيةً بسيطةً ستؤتي أُكلها وستحصل على ما تريد. هذه بعض الأمثلة عن آلية البحث المتقدم. البحث في المصدريمكنك الذهاب إلى الشيفرة المصدرية لصفحة ويب، والضغط على Crtl+f (أو أي اختصار آخر يُستعمَل للبحث في نظام تشغيل حاسوبك) للبحث عن عنوان بريدٍ إلكتروني، الأمر بهذه البساطة. البحث في Googleهنالك عددٌ ضخمٌ من تركبيات (combinations) البحث التي يمكنك استخدامها، ففي بعض الأحيان يكون العثور على البريد الإلكتروني لأحدهم سهلًا لأنه معروض للعموم (على عكس توقعك)؛ هذه بعض التركيبات التي يمكنك استخدامها: [الاسم الأول] + [الشهرة] email address[الاسم الأول] + [الشهرة] contact[الشهرة] + [اسم الشركة] contactجرِّب البحث عدِّة مرات وستحصل على مبتغاك بسرعة. البحث المتقدم في تويترفي نهاية المطاف، هناك ميزة البحث المتقدِّم في تويتر؛ فبعد ذهابك إلى تلك الصفحة، اجعل البحث مخصصًا لمستخدمٍ معيّن -كما في الصورة في الأعلى- والكلمات المفتاحية ستكون هي «(at)» و «(dot)» لأن الكثير من الأشخاص يحاولون استخدامها عند كتابة عناوين بريدهم خشية أن تكتشفها البوتات (bots) ثم تُرسَل إليها الرسائل المزعجة (spam)؛ جرِّب بضع تركيباتٍ، لكن تجنب كلمة «email» لأنها لن تأتي بنتيجة. دوركما هي الطرق التي وجدت أنها الأفضل للعثور على عناوين البريد الإلكتروني؟ أنسيتُ أن أذكر أحداها؟ وإذا أمكنك استخدام هذه الطرق لتعقب بريدي، فلا تتردد في إرسال أيّة أسئلة لي، فسأكون مسرورًا بالتعرف عليك! ترجمة -وبتصرّف- للمقال Content Marketer’s Guide To Finding Anyone’s Email Address لصاحبه Sujan Patel. حقوق الصورة البارزة: Designed by Freepik.
  6. يُعتبر مربع البحث أحد المكونات التي لا غنى عنها في أي موقع، وفي هذا الدرس سوف تتعلم كيف يمكنك إنشاء مربع بحث يظهر ويختفي عند النقر عليه. قد تعتقد أنّ القيام بذلك سيكون سهلًا جدًا ولكنك سوف ترى أنّ الأمر ليس كذلك، فسوف نحتاج إلى تطبيق بعض الخدع حتى نجعل كل شيء يعمل بشكل صحيح. هذه هي المتطلبات التي نريدها مبدئيًا: ما نريده مبدئيًا هو ظهور زر يحتوي على أيقونة بحث.عند النقر على ذلك الزر نريد أن يظهر مربع البحث.نريده أن يكون متجاوبًا مع جميع الأجهزة.عند كتابة أي شيء في مربع البحث نريد أن يقوم المربع بالقيام بالبحث فور النقر على مفتاح الدخول (enter) من لوحة المفاتيح أو النقر على الأيقونة نفسها.إذا كان مربع البحث ظاهرًا ولكنه كان فارغًا فإننا نريده أن يختفي عند النقر على أيقونة البحث (أي أننا إذا قمنا بالنقر على أيقونة البحث وكان المربع فارغًا فإننا لا نريده أن يقوم بالبحث وإنما يقوم بإخفاء مربع البحث).نريد أيضًا أن يختفي مربع البحث عند النقر خارجه سواء كان فارغًا أم لا.لو كانت الجافاسكربت معطلة لدى المستخدم فإننا نريد لمربع البحث أن يكون ظاهرًا (أي دون الحاجة إلى النقر على أيقونة البحث).نريد أيضًا أن ندعم الأجهزة التي تعمل باللمس.يمكنك معاينة النتيجة النهائية لهذا الدرس. بما أننا بتنا الآن نعرف ما نريد فلنقم بذلك. بنية ملف HTMLكل ما نحتاجه من وسوم HTML هو حاوٍ رئيسي (main container) وسوف يكون عبارة عن وسم <div> وسوف نحتاج إلى وسم <form> وإلى حقلي إدخال (inputs)؛ واحد من نوع "text" والآخر من نوع "submit" وأخيرًا سوف نحتاج إلى وسم <span> ليحتوي على أيقونة البحث: <div id="sb-search" class="sb-search"> <form> <input class="sb-search-input" placeholder="Enter your search term..." type="search" value="" name="search" id="search"> <input class="sb-search-submit" type="submit" value=""> <span class="sb-icon-search"></span> </form> </div>لنبدأ الآن بتنسيق العناصر باستخدام CSS. تنسيقات CSSبناءً على المتطلبات التي ذكرناها سابقًا فإنه يجب في البداية أن يكون لدينا زر يحتوي على أيقونة بحث وباقي العناصر يجب أن تكون مخفية. دعونا الآن نتخيل ما الذي سيحصل عند تمدد مربع البحث وجعله ظاهرًا (الذي هو نفسه سيكون الحاوي الرئيسي الذي ذكرناه سابقًا). كيف نقوم بذلك؟ سوف نستخدم الخاصية overflow: hidden وتكبير العرض الخاص بالعنصر الحاوي (sb-search) يجب أن يقوم بإظهار حقل البحث. إذًا أول شيء نقوم به هو تنسيق العنصر الحاوي (sb-search) بحيث سوف نجعله يطوف إلى اليمين باستخدام الخاصية float: right ونعطيه الخاصية overflow: hidden، والعرض يجب أن يكون 60px ولكن بما أننا نريد أن يزيد العرض إلى 100% فإننا سنواجه بعض المشاكل في متصفحات iOS فهي لا تقبل التغيير من عرض يعتمد على الـpixels إلى عرض يعتمد على النسب المئوية. لذلك سوف نقوم بتعريف خاصية min-width بالقيمة 60px وخاصية width بقيمة 0%. يمكنك قراءة المزيد عن هذا الحل العبقري من خلال هذا الرابط. سوف نستعمل أيضًا الخاصية transition والخاصية webkit-backface-visibility: hidden- لتلافي بعض الآثار للحقول في متصفحات الهواتف iOS: .sb-search { position: relative; margin-top: 10px; width: 0%; min-width: 60px; height: 60px; float: right; overflow: hidden; -webkit-transition: width 0.3s; -moz-transition: width 0.3s; transition: width 0.3s; -webkit-backface-visibility: hidden; }أي شيء يتجاوز/يفيض عن هذا المربع الصغير لن يكون ظاهرًا. لنقم الآن بموضعة حقل البحث. سوف نستعمل قيمة مئوية بالنسبة للعرض حتى نسمح للحقل بأن يتمدد مع تمدد العنصر الحاوي. ومع إضافة الارتفاع (height) وحجم الخط (font-size) والـpadding المناسبة يمكننا توسيط النص داخل العنصر (استعملنا padding بدل line-height لأن الخاصية line-height لا تعمل بشكل جيد في متصفح IE8). قد يبدو استعمالنا للخاصية position: absolute غير ضروري، ولكن استعمالها يقوم بحل مشكلة تظهر عند إغلاق مربع البحث بحيث يبدو الحقل وكأنه ظاهر في الجانب الأيمن لفترة قصيرة جدًا. .sb-search-input { position: absolute; top: 0; right: 0; border: none; outline: none; background: #fff; width: 100%; height: 60px; margin: 0; z-index: 10; padding: 20px 65px 20px 20px; font-family: inherit; font-size: 20px; color: #2c3e50; } input[type="search"].sb-search-input { -webkit-appearance: none; -webkit-border-radius: 0px; }قمنا أيضًا بإزالة التنسيقات الإفتراضية لحقل البحث في متصفحات WebKit. دعونا نقوم الآن بتعريف لون الخط بالنسبة للـplaceholder (الـplaceholder هو نص يظهر داخل حقل البحث قبل أن يقوم المستخدم بكتابة أي شيء بداخله حتى يُعطي المستخدم لمحة عما يجب عليه كتابته في ذلك الحقل): .sb-search-input::-webkit-input-placeholder { color: #efb480; } .sb-search-input:-moz-placeholder { color: #efb480; } .sb-search-input::-moz-placeholder { color: #efb480; } .sb-search-input:-ms-input-placeholder { color: #efb480; }دعونا الآن نقوم بتنسيق زر أيقونة البحث وحقل التأكيد/الإرسال (submit input)، فنحن نريدهما أن يظهرا في نفس المكان لذلك يجب أن نضعهما في الجانب الأيمن ونعطيهما نفس الأبعاد. وبما أنهما سيظهران فوق بعضهما فسوف نعطيهما الخاصية position: absolute: .sb-icon-search, .sb-search-submit { width: 60px; height: 60px; display: block; position: absolute; right: 0; top: 0; padding: 0; margin: 0; line-height: 60px; text-align: center; cursor: pointer; }نريد في بداية الأمر أن تكون الأيقونة قابلة للنقر، وعند فتح حقل البحث فإننا نريد لحقل التأكيد/الإرسال (submit input) أن يكون قابلًا للنقر. لذلك سوف نُعطي حقل التأكيد الخاصية z-index: -1 ونجعله شفافًا/مخفيًا حتى يمكننا رؤية أيقونة البحث: .sb-search-submit { background: #fff; /* IE needs this */ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; /* IE 8 */ filter: alpha(opacity=0); /* IE 5-7 */ opacity: 0; color: transparent; border: none; outline: none; z-index: -1; }لاحظ أننا لم نقم بجعل الخلفية شفافة وذلك لأن الأمر لا يعمل بشكل جيد في متصفح IE فالعنصر لا يكون قابلًا للنقر عند ذلك، لذلك قمنا باستعمال لون معين (الأبيض) وجعلنا الشفافية (opacity) تساوي صفر. وبما أننا نريد لأيقونة البحث أن تظهر فوق كل شيء فإننا سوف نقوم بإعطائها الخاصية z-index بقيمة عالية، وسوف نقوم باستخدام الفئة الزائفة ::before لإضافة الأيقونة: .sb-icon-search { color: #fff; background: #e67e22; z-index: 90; font-size: 22px; font-family: 'icomoon'; speak: none; font-style: normal; font-weight: normal; font-variant: normal; text-transform: none; -webkit-font-smoothing: antialiased; } .sb-icon-search:before { content: "\e000"; }ودعونا لا ننسى إضافة خط الويب (web font) في بداية ملف الـCSS: /* Search icon by IcoMoon, made with http://icomoon.io/app/ */ @font-face { font-family: 'icomoon'; src:url('../fonts/icomoon/icomoon.eot'); src:url('../fonts/icomoon/icomoon.eot?#iefix') format('embedded-opentype'), url('../fonts/icomoon/icomoon.woff') format('woff'), url('../fonts/icomoon/icomoon.ttf') format('truetype'), url('../fonts/icomoon/icomoon.svg#icomoon') format('svg'); font-weight: normal; font-style: normal; }يمكننا الآن إعطاء العنصر الحاوي (sb-search) عرضًا بقيمة 100% وذلك في حالتين؛ الأولى عند النقر على أيقونة البحث وذلك عن طريق إضافة فئة (class) بالاسم "sb-search-open" باستخدام الجافاسكربت والثانية عندما لا يكون الجافاسكربت مفعّلًا لدى المستخدم: .sb-search.sb-search-open, .no-js .sb-search { width: 100%; }لنقم الآن بتغيير لون الخط الخاص بعنصر أيقونة البحث ونضعه أسفل حقل التأكيد/الإرسال وذلك عن طريق إعطائه قيمة z-index أقل من 90 (وهي القيمة التي أعطيناها للعنصر "sb-icon-search"): .sb-search.sb-search-open .sb-icon-search, .no-js .sb-search .sb-icon-search { background: #da6d0d; color: #fff; z-index: 11; }وأخيرًا لنقم بإضافة الخاصية z-index لحقل التأكيد/الإرسال ولكن بقيمة أكبر من 11 حتى يمكننا النقر عليها: .sb-search.sb-search-open .sb-search-submit, .no-js .sb-search .sb-search-submit { z-index: 90; }انتهينا الآن من تنسيقات CSS وبقي علينا الجافاسكربت. بعض الجافاسكربتلنبدأ بإضافة وإزالة الفئة "sb-search-open". بحيث سوف يتم إضافة الفئة عند النقر على الحاوي الرئيسي (sb-search) وإزالته عند النقر على حقل التأكيد/الإرسال ولكن فقط إذا كان حقل البحث فارغًا، أمّا إذا لم يكن فارغًا فإننا نريد تأكيد عملية البحث. وحتى لا نقوم بإزالة الفئة عند النقر على الحقل (لأن الحاوي بأكمله قابل للنقر) فإننا نحتاج إلى منع حدث النقر (click event) من الانتشار على ذلك العنصر. هذا يعني أنّ النقر على الحقل لن يؤدي إلى إثارة حدث النقر على العناصر الحاوية له. ;( function( window ) { function UISearch( el, options ) { this.el = el; this.inputEl = el.querySelector( 'form > input.sb-search-input' ); this._initEvents(); } UISearch.prototype = { _initEvents : function() { var self = this, initSearchFn = function( ev ) { if( !classie.has( self.el, 'sb-search-open' ) ) { ev.preventDefault(); self.open(); } else if( classie.has( self.el, 'sb-search-open' ) && /^\s*$/.test( self.inputEl.value ) ) { self.close(); } } this.el.addEventListener( 'click', initSearchFn ); this.inputEl.addEventListener( 'click', function( ev ) { ev.stopPropagation(); }); }, open : function() { classie.add( this.el, 'sb-search-open' ); }, close : function() { classie.remove( this.el, 'sb-search-open' ); } } window.UISearch = UISearch; } )( window );سوف نحتاج أيضًا إلى إضافة الأحداث التي تقوم بإزالة الفئة "sb-search-open" عند النقر خارج مربع البحث، وحتى يعمل ذلك فإننا نريد أن نتعامل مع انتشار الأحداث (event bubbling) عند النقر على الحاوي الرئيسي. ;( function( window ) { function UISearch( el, options ) { this.el = el; this.inputEl = el.querySelector( 'form > input.sb-search-input' ); this._initEvents(); } UISearch.prototype = { _initEvents : function() { var self = this, initSearchFn = function( ev ) { ev.stopPropagation(); if( !classie.has( self.el, 'sb-search-open' ) ) { ev.preventDefault(); self.open(); } else if( classie.has( self.el, 'sb-search-open' ) && /^\s*$/.test( self.inputEl.value ) ) { self.close(); } } this.el.addEventListener( 'click', initSearchFn ); this.inputEl.addEventListener( 'click', function( ev ) { ev.stopPropagation(); }); }, open : function() { var self = this; classie.add( this.el, 'sb-search-open' ); // close the search input if body is clicked var bodyFn = function( ev ) { self.close(); this.removeEventListener( 'click', bodyFn ); }; document.addEventListener( 'click', bodyFn ); }, close : function() { classie.remove( this.el, 'sb-search-open' ); } } window.UISearch = UISearch; } )( window );وشيء آخر علينا الاهتمام به وهو قصّ مصطلح البحث. عندما نقوم أيضًا بالنقر على أيقونة البحث فإننا نريد أن يكون الحقل مفعّلًا (focused)، ولأنّ هذا يسبب بعض المشاكل في متصفح iOS (لوحة المفاتيح تظهر في نفس الوقت) فإننا نريد تلافي ذلك في هذه الحالة، وعندما يتم إغلاق مربع البحث فإننا نريد أن يكون مربع البحث غير مفعل (blur). هذا سوف يحل بعض المشاكل في بعض الأجهزة التي تُظهر بأنّ المؤشر يومض حتى بعد أن يكون الحقل مغلقًا. ملاحظة جانبية: كلمة focus تدل على أنّ مربع البحث مفعّل (أي أنّ المؤشر بداخله) وكلمة blur تدل على عكس ذلك. ;( function( window ) { // http://stackoverflow.com/a/11381730/989439 function mobilecheck() { var check = false; (function(a){if(/(android|ipad|playbook|silk|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(a)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0,4)))check = true})(navigator.userAgent||navigator.vendor||window.opera); return check; } // http://www.jonathantneal.com/blog/polyfills-and-prototypes/ !String.prototype.trim && (String.prototype.trim = function() { return this.replace(/^\s+|\s+$/g, ''); }); function UISearch( el, options ) { this.el = el; this.inputEl = el.querySelector( 'form > input.sb-search-input' ); this._initEvents(); } UISearch.prototype = { _initEvents : function() { var self = this, initSearchFn = function( ev ) { ev.stopPropagation(); // trim its value self.inputEl.value = self.inputEl.value.trim(); if( !classie.has( self.el, 'sb-search-open' ) ) { ev.preventDefault(); self.open(); } else if( classie.has( self.el, 'sb-search-open' ) && /^\s*$/.test( self.inputEl.value ) ) { self.close(); } } this.el.addEventListener( 'click', initSearchFn ); this.inputEl.addEventListener( 'click', function( ev ) { ev.stopPropagation(); }); }, open : function() { var self = this; classie.add( this.el, 'sb-search-open' ); // focus the input if( !mobilecheck() ) { this.inputEl.focus(); } // close the search input if body is clicked var bodyFn = function( ev ) { self.close(); this.removeEventListener( 'click', bodyFn ); }; document.addEventListener( 'click', bodyFn ); }, close : function() { this.inputEl.blur(); classie.remove( this.el, 'sb-search-open' ); } } window.UISearch = UISearch; } )( window );وحتى يعمل كل شيء بشكل سلس في أجهزة الهواتف فإننا سوف نحتاج إلى إضافة أحداث اللمس (touch events). كما أنّ إضافة preventDefault في دالّة initSearchFn سوف يمنع حدث النقر واللمس من أن يتفعّلا مع بعضهما في أجهزة اللمس. ;( function( window ) { // http://stackoverflow.com/a/11381730/989439 function mobilecheck() { var check = false; (function(a){if(/(android|ipad|playbook|silk|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(a)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0,4)))check = true})(navigator.userAgent||navigator.vendor||window.opera); return check; } // http://www.jonathantneal.com/blog/polyfills-and-prototypes/ !String.prototype.trim && (String.prototype.trim = function() { return this.replace(/^\s+|\s+$/g, ''); }); function UISearch( el, options ) { this.el = el; this.inputEl = el.querySelector( 'form > input.sb-search-input' ); this._initEvents(); } UISearch.prototype = { _initEvents : function() { var self = this, initSearchFn = function( ev ) { ev.stopPropagation(); // trim its value self.inputEl.value = self.inputEl.value.trim(); if( !classie.has( self.el, 'sb-search-open' ) ) { ev.preventDefault(); self.open(); } else if( classie.has( self.el, 'sb-search-open' ) && /^\s*$/.test( self.inputEl.value ) ) { ev.preventDefault(); self.close(); } } this.el.addEventListener( 'click', initSearchFn ); this.el.addEventListener( 'touchstart', initSearchFn ); this.inputEl.addEventListener( 'click', function( ev ) { ev.stopPropagation(); }); this.inputEl.addEventListener( 'touchstart', function( ev ) { ev.stopPropagation(); } ); }, open : function() { var self = this; classie.add( this.el, 'sb-search-open' ); // focus the input if( !mobilecheck() ) { this.inputEl.focus(); } // close the search input if body is clicked var bodyFn = function( ev ) { self.close(); this.removeEventListener( 'click', bodyFn ); this.removeEventListener( 'touchstart', bodyFn ); }; document.addEventListener( 'click', bodyFn ); document.addEventListener( 'touchstart', bodyFn ); }, close : function() { this.inputEl.blur(); classie.remove( this.el, 'sb-search-open' ); } } window.UISearch = UISearch; } )( window );وأخيرًا، للأجهزة التي لا تدعم addEventListener وremoveEventListener فإننا سوف نستعمل polyfill. // EventListener | @jon_neal | //github.com/jonathantneal/EventListener !window.addEventListener && window.Element && (function () { function addToPrototype(name, method) { Window.prototype[name] = HTMLDocument.prototype[name] = Element.prototype[name] = method; } var registry = []; addToPrototype("addEventListener", function (type, listener) { var target = this; registry.unshift({ __listener: function (event) { event.currentTarget = target; event.pageX = event.clientX + document.documentElement.scrollLeft; event.pageY = event.clientY + document.documentElement.scrollTop; event.preventDefault = function () { event.returnValue = false }; event.relatedTarget = event.fromElement || null; event.stopPropagation = function () { event.cancelBubble = true }; event.relatedTarget = event.fromElement || null; event.target = event.srcElement || target; event.timeStamp = +new Date; listener.call(target, event); }, listener: listener, target: target, type: type }); this.attachEvent("on" + type, registry[0].__listener); }); addToPrototype("removeEventListener", function (type, listener) { for (var index = 0, length = registry.length; index < length; ++index) { if (registry[index].target == this && registry[index].type == type && registry[index].listener == listener) { return this.detachEvent("on" + type, registry.splice(index, 1)[0].__listener); } } }); addToPrototype("dispatchEvent", function (eventObject) { try { return this.fireEvent("on" + eventObject.type, eventObject); } catch (error) { for (var index = 0, length = registry.length; index < length; ++index) { if (registry[index].target == this && registry[index].type == eventObject.type) { registry[index].call(this, eventObject); } } } }); })();خاتمةهذا كان كل شيء فيما يخص هذا الدرس، أتمنى أن تكون قد استفدت منه وتعلمت منه شيئًا جديدًا. ترجمة -وبتصرّف- للمقال Expanding Search Bar Deconstructed لصاحبته Mary Lou.
  7. جرى على مسامعي في السنوات الأخيرة الكثير من آراء العُملاء، ولكن أكثرها تكرارًا كان: يا لها من مُصيبة تلك الّتي وقع بها هذا العميل، فلتكن آخر المصائب. لا أُريد أنّ يُساء فهمي هنا، فما أريد قوله هو أنّ من وجهة نظر العميل، هو قد دفع مالًا لشخص ما لكي يبني له موقعًا أو تطبيق ويب، وهرب هذا الشخص، ولكن وعلى الجهة الأخرى، فمعظمنا نحن معشر المطورين نحاول دائمًا أنّ نعمل بشرفٍ واضعين نُصب أعيننا الصدق الأمانة في التعامل، مع ذلك دائمًا ما نواجه أشخاصًا قد يفعلون الفعلة السابقة بنا. وحتّى إن جاء شخصٌ ما إلينا بهدف توظيفنا لإكمال هذه المهمّة، سيكون لديه على الأرجح بعض الشكوك فيما إذا كان من المُمكن الوثوق بنا بالفعل لإنهاء ما كان يجب أنّ يكون مُنتهيًا من الأساس. وعلى الرغم من أنّني أعلم بالضَّبط أن موضوع المؤهلات قد تمّ الحديث عنه سابقًا مرات عدّة، ولكنّي أريد أنّ أكون واضحًا منذ البداية، لست هنا لتكرار تلك المؤهلات. سأحاول بدلًا من ذلك توضيح حقيقة المُطوّر، والنقاط الأبرز الّتي يجب توفّرها لبناء شيء مُخصّص لأحد العُملاء، وما يجب على العميل أنّ يأمل في الحصول عليه في نهاية المشروع. أظن أنّ سطوري هذه ليست موجّهة إلى مُطوّري ووردبريس بالتحديد، بل هي موجّهة إلى هؤلاء الذين يبحثون عن أشخاصٍ لتوظيفهم في تطوير مشروعٍ مبنيٍّ على سكريبت إدارة المُحتوى ووردبريس (WordPress)، وليسوا متأكّدين من اختيار الشخص المُناسب بعد. توظيف مُطوّر ووردبريس WordPressأعتقد أنّه من المُهم بدايةً توضيح رأي حول الفرق بين ذلك الشخص الّذي يبحث عنه الزبون، وذلك الشخص الّذي يحصلون عليه بالفعل، طبعًا هذا رأي الشخصي في نهاية الأمر، والناس أجناس بطبيعة الحال. إن السيناريو المعروف هو أنّ يكون لدى العميل فكرة مشروعٍ ما، وهو بحاجة إلى شخص لتطبيقها، فإن كان العميل من العُملاء الجديين، فستكون لديه الفكرة على الورق (بشكل أو بآخر)، وميزانيّة جاهزة ومحدّدة، بمعنى آخر أنّه قام بواجب التحضير للمشروع مُسبقًا على أكمل وجه، وستكون الخطوة التّالية بالنسبة لهم هي الشروع في البحث على الإنترنت عن مُطوّر ووردبريس، وذلك بعد أنّ سمعوا من هنا وهناك عن سهولة هذا النّظام في إدارة المُحتوى، وعن قوّته في إنشاء مواقع ويب. قام العميل في البحث، ليجد الكثير من الأشخاص الذين يبدو أنّهم مطوّري ووردبريس، وعليه سيوظّف الزبون المُطوّر، ويدفع مُقدمًا، وعلى ما يبدو أنّ الأمور تجري كما هو مُخطّط لها (في البداية فقط). سيبدأ العميل بعد ذلك الطلب من المُطوّر في إضافة ميزةٍ ما لا يعرف المُطوّر كيف يفعلها (بمعنى آخر هو لا يعرف أية إضافات تقوم بهذه الوظيفة أو الميّزة) وبدلًا من تحمّل مسؤوليته كمطوّر، سيأخذ النقود ويتوارى عن الأنظار. قد يقول البعض: أنّ المُطوّر يملك جزء من الدفعة، وقد قام بتنفيذ جزءً مما هو مُتّفق عليه، فهو بشكل أو بآخر يستحق هذا المبلغ، صحيح؟ لم يوظّف العميل مُطوّرًا في حقيقة الأمرما قام به العميل بالفعل هو توظيف شخص يعرف كيف يستخدم ووردبريس، بمعنى آخر هو قام بتوظيف شخص يعرف كيف يستخدم تطبيقًا العميل نفسه لا يعرف كيف يستخدمه، أو سأقولها بشكل آخر، ما تمّ توظيفه هو شخص مُتمرّس فقط. إن مُطوّر ووردبريس هو الشخص الّذي يعرف كيف يستخدم مجموعة محدّدة من الأدوات ويُنشئ من خلالها شيئًا ما يُكمّل منصّة ووردبريس ويوسّع إمكانياتها، أما هذا المُستقل الذي قام صاحبنا بتوظيفه هو شخص يعرف كيف يعطي موقع العميل هيئة معيّنة (عبر تنصيب قالب المدوّنة)، وكيف يُنصّب إضافة معيّنة (بهدف تقديم وظيفة ما)، ولكنّه في نفس الوقت غير قادر على كتابة شيفرة بأنامل أصابعه ليضيف خصائص إلى المشروع أو يُدخل تعديلات عليه. يوجد طرقٌ عدّة لتحديد المُطوّر الحقيقي، ولكن أفضل ما سمعت: رغم ذلك فإنها ليست أداة قياس جيّدة للعُملاء العاديين، وذلك بسبب أنّ العُملاء أصلًا لا تعرف ما هو المُشيّد. عوضًا عن ذلك، على صاحب المشروع أنّ يبحث عن الشخص الّذي يعرف المُصطلحات الصحيحة، الّذي يملك البراعة الفنيّة (التقنية)، ويعرف أيضًا كيف يسير بالمشروع إلى بر الأمان، والنبش هنا وهناك، عندها من المُفترض عليه أنّ يكون قادرًا بنفسه أو مع بقيّة أفراد فريقه على بث الروح في المشروع وتحويل الفكرة إلى كيان يُمكن الاستفادة منه. يجب على المُطوّر أنّ يكون قادرًا على الإجابة بسهولة على الأسئلة مثل: ما هي النماذج السابقة لمشاريع ووردبريس كنت قد عملت عليها؟هل لديك مُدوّنة، صفحة أعمال خاصّة (portfolio)، مقالات، أو شيفرة (كود) أستطيع الاطلاع عليها؟هل لديك مرجع للأعمال الّتي عملت عليها، ويستطيع أصحابها أو حتّى زملائك الحديث عن جودة هذه الأعمال؟وإن كان لدى العميل بعض الخبرة التقنيّة، فمن المُمكن أنّ يسأل المُطوّر الأسئلة من النوع التّالي: ما هو نمط التصميم المدفوع بالأحداث (event-driven)؟ما هو الفرق بين الأفعال (actions) وبين المرشّحات (filters)؟لماذا ليس من المُستحسن استخدام بعض مزايا PHP الجديدة عند التعامل مع شيفرة مبنيّة على سكريبت WorePress؟هل الإضافات (Plugins) مكتوبة بأسلوب البرمجة الكائنيّة (object-oriented) أم بأسلوب إجرائي (procedural)؟ما هي الخمس واجهات برمجيّة (API) المتوفّرة لسكريبت WordPress؟إن الأسئلة السابقة هي أبعد ما تكون من كونها عميقة أو شاملة، ولكنّها بداية جيّدة، وأنا متأكّد أنّ البعض قد يقول أنّ هذه الأسئلة ليست بتلك الأسئلة الصعبة. وكما هو الحال في العثور على الموهبة المُناسبة، أو الشخص المُناسب للعمل معه، فإن السعر أيضًا عامل مُهم، وذلك بسبب أنّ الزبون لديه ميزانيّة محدّدة ولا يُريد أنّ يبزّر ماله على أيًا كان. ولكن يوجد بالفعل عمالة رخيصةيوجد بالتأكيد، حيثُ مع توفّر العمالة تتوفّر النتائج بطبيعة الحال. ولكن وكما هو الحال في العديد من الأعمال، ترتبط العمالة الرخيصة عادةً مع نتائج ليست بتلك الجودة، وطبعًا لا يرغب أحد بالحصول على جودة مُنخفضة، وأيضًا لا يرغب أحد بصرف الآلاف لتحويل فكرتهم إلى موقع. ولكن هناك الكثير من يُمكن له بناء موقع كامل وشامل باستخدام سكريبت ووردبريس وبأرخص الأسعار. يوجد بالفعل من يفعل الكثير مقابل خمسة دولارات، ولكنّه لا يطوّر، يوجد فرق بين هذا وذاك. يوجد بالفعل مطورين حقيقين لسكريبت WordPressما أحاول قوله هو وجود هذا النوع من مطوري WordPress، وهم ليسوا من ذلك النوع الّذي يُنصّب سكريبت ووردبريس مع القالب والإضافة، ومن ثُمّ يدعون أنّهم "طوّروا" مشروع ويب، هم فقط مُستخدمين مُتمرسين فقط. يجب على مُطوّري ووردبريس أنّ يتمتّعوا بالتفكير التحليلي، وأن يكونوا قادرين على بث الروح في الموقع مُستخدمين مُختلف الأدوات والشيفرات، وأن يكونوا قادرين على تفسير وشرح ما طلبه العميل، ولهم القدرة على تقديم نمط عمل واضح في سبيل الحصول على مُنتج يتحدّث عن نفسه. يجب أنّ يكون سير العمل بين المطوّر والعميل قائم على مبدأ تنفيذ الطلب ومن ثُمّ مراجعته ونقاشه فيما بينهم، وهكذا إلى تسليم المُنتج، ولذلك عند يأتي وقت إطلاق الموقع، ستكون العملية سلسلة ومرنة للطرفين إلى أبعد الحدود، وذلك بسبب التدقيق والمراجعة المُسبقة، وما تمّ من الاختبارات على الموقع قُبيل الانطلاق. يُمكن للمزايا أنّ تُضاف وتُحذف من خلال استخدام نظام التحكم في النسخ (source control) ويجب على العميل أنّ يطلب وبدون تردّد من المُطوّر أي شيء من المُمكن تعديله، وأيضًا على المُطوّر أنّ يوضّح للعميل وبالأسباب الصريحة والواضحة لماذا لا يُمكن القيام بالتعديل، أو أنّ التعديل هو خارج مجال الميزانيّة المُقترحة. ولكن الآن، نحن لا نرى هذا النوع من أسلوب العمل، على الأقل ليس مع ووردبريس، وذلك من خلال تجربتي وخبرتي على أقل تقدير. إن كان العميل يبحث عن موقع يُمكن أن يُبنى على سكريبت إدارة المُحتوى ووردبريس، بشكل أو بآخر، فيجب على الأقل عليه أنّ يأخذ بعين الاعتبار الأسئلة والمُحادثات المطروحة هنا، وربما عليه أنّ يقوم بمقابلة مُصغّرة مع عدد مع الأشخاص المُحتملين للوظيفة، واختيار الشخص المُناسب للمُهمّة، وإلا سينتهي المطاف بالعميل مع شيء يُشبه الموقع. ترجمة –وبتصرّف- للمقال ?What is a WordPress Developer.