اذهب إلى المحتوى

Adnane Kadri

الأعضاء
  • المساهمات

    5129
  • تاريخ الانضمام

  • تاريخ آخر زيارة

  • عدد الأيام التي تصدر بها

    51

كل منشورات العضو Adnane Kadri

  1. نعم، سيمكنك تطبيق افكارك على تطبيقات بسيطة يستوعب كل منها مفهوما واحدا. مثال: آلة حاسبة بسيطة للجمع، الضرب والطرح توظف فيها تعاملك مع الأعداد والأرقام. صفحة بحث بسيطة للبحث في مصفوفات أو سلاسل نصية لتوظيف تعاملك مع المصفوفات والسلاسل النصية.
  2. في أغلب الأحيان لن يكون ذلك إلا تشتيتا وتوزيعا للتركيز بدل أن يكون استزادة. ففي الغالب أنت لن تحتاج الا مفهوما بسيطا لكل جزئية ثم التعمق فيها لاحقا عند التعرض لها بشكل أكثر. سواءا في تطبيقاتك العملية أو حتى في مسارك العملي لاحقا. ولذلك يقترح المرور لكورس آخر بعد انتهائك من الكورس الذي تتابعه. وفي غالب الأحيان ستجد نفسك تمرر أغلب المعلومات التي يتم التطرق لها لأنك قد تعرضت لها. رغم هذا إلا أنه لا ينبغي ابدا اغفال اهمية التطبيق العملي وحدك. فهو ما سيرسخ هاته المعلومات ولن تكفي المشاهدة ولو شاهدت أفضل وأبسط كورس في العالم.
  3. مرحبا زياد، لا تتوقع من ان معلومات مجردة مثل المفاهيم البرمجية وأسس اللغات سيتم ابتلاعها في ظرف زمني محدود. بل أن بعضها سيأخذ وقتا طويلا لفهمه جزءا بجزء. ولذلك فإن الذي تعايشه طبيعي جدا ولا شيء يدعوا للقلق بشأنه. وفيما يلي طرق للتعامل مع النسيان أو بطئ الفهم: قم بممارسة العديد من التطبيقات العملية وأعط كل تطبيق حقه ولا تسرع في تنفيذه. قم بالبحث والقراءة كثيرا حول أي مشكلة تصادفها، ولا تتوقف عند عودة الشيفرة للعمل وفقط. تأكد من قراءة رسائل الأخطاء ومحاولة فهم ما الذي تحاول كل رسالة الاشارة اليه. بدل مراجعة الفيديو عند نسيانه قم بإنشاء تطبيق بسيط مثلا لتوثيق المعلومات وملاحظاتك الخاصة. تصرف مع أي عائق أو صعوبة كشيء طبيعي وعادي، فهاته هي طبيعة المجال وهي ما تعطيه هاته الحساسية والصعوبة.
  4. يحتمل ان يكون ذلك بسبب تعارض حزمة file-loader مع احد الحزم الأخرى، وبما أنك ذكرت ملفات الخطوط والصور فيحتمل أن يكون هذا متعلقا بشكل أو بآخر بحزمة css-loader. تحدث مشكلة التعارض بينهما أحيانا بسبب أن كلا من الحزمتين يقوم بمحاولة تحميل وبناء هاته الملفات واحدا تلو الآخر مما يسبب في كسر مساراتهما وبالتالي عدم عرضها رغم أن بناءها قد تم وبشكل عادي. في هاته الحالة نقوم بإستعمال نسخ متوافقة مع بعضها من الحزمتين، يقترح النسخ التالية: "file-loader": "^6.2.0", "css-loader": "^5.0.0", يحتمل أن يكون أيضا هذا بسبب نسخة html-loader أيضا، ولذلك تأكد من تعديل هذا السطر بجانب السطرين السابقين أيضا بملف package.json لديك. "html-loader": "^1.3.2",
  5. واحدةٌ من المميزات التي تضعها نُظم إدارة المحتوى في أيدي أصحاب المواقع والمتاجر هي إمكانية تخصيص مواقعهم ومتاجرهم على نحوٍ واسعٍ، ولا تغفل بريستاشوب عن هذا الجانب وتهتم بتوفير الكثير من الخيارات والإمكانيات لإعطاء المتجر لمسة خاصة تتلاءم مع رؤية وتوجه المتجر. التعامل مع الإضافات يقدم متجر بريستاشوب PrestaShop مكتبة من العديد من السمات والإضافات، المجانية والمدفوعة، التي قام بتطويرها مجموعة من المساهمين والمطورين. إذ يتوفر ما يقارب 3000 مكونٍ إضافي على متجر بريستاشوب للإضافات. التعرف على متجر الإضافات للاستفادة من متجر الإضافات، يتطلب قبل كل شيء الحصول على حساب، يمكن ذلك عن طريق اتباع خطوات التسجيل البسيطة انطلاقا من صفحة تسجيل حساب جديد في بريستاشوب. تُصنَّف هذه الإضافات في صفحة كامل الاضافات وفقا للفئات التالية: إضافات التصميم والتصفح Design & Navigation: مثل التي تمكّن من تخصيص القوائم وعلامات التبويب وعروض الشرائح ومعارض الصور وأدوات البحث والفلترة وغيرها. إضافات الترافيك والأسواق Traffic & Marketplaces: يمكن عن طريقها إضافة مدونة أو منتدى مثلا. أو ربما عمل نُظم إعلانات مدفوعة أو حتى برامج تسويق بالعمولة. الإضافات الخاصة بصفحة المنتج Product Page: مثل إضافة معلومات إضافية للمنتج كشعارات، أو فيديوهات أو موسيقى. إضافات الترقيات والتسويق Promotions & Marketing: كتوفير الهدايا والترقيات للعملاء، المسابقات وقوائم التمني. ومراسلتهم عن طريق رسائل SMS وصناديق البريد الإلكتروني. الإضافات الخاصة بالمدفوعات Payment: كإضافة إمكانية الدفع بالعمل المشفرة، التحويلات البنكية أو الدفع عند التسليم Cash On Delivery (اختصارًا COD). إضافات مواقع التواصل الاجتماعي Facebook & Social Networks: كإضافة أزرار المشاركة والتعليق عن طريق منصات التواصل الإجتماعي أو التسجيل عن طريقها. إضافات الإدارة Administration: إدارة الأسعار والطلبات، المحاسبة والفوترة، وتهجير البيانات وتحضير نسخ إحتياطية للمتجر. إضافات الشحن والخدمات اللوجستية Shipping & Logistics: كإدارة المخزون والموردين، وتتبع الطلبات. إضافات العملاء Customers: كتقييمات العملاء، الدعم والإستفتاءات وأقسام الأسئلة الشائعة. التعرف على كتالوج الإضافات توفر المنصة صفحةً يتم عن طريقها تحديد واختيار مجموعة من الإضافات والخدمات المدفوعة والمجانية دون التوغل في متجر الإضافات والبحث عن إضافة ما. يمكن التوجه لهذه الصفحة عن طريق التصفح إلى صفحة "كتالوج الوحدة" من القائمة المنسدلة "الإضافات" بقسم "تحسين" من القائمة الجانبية. تعتبر هذه الصفحة بمثابة متجر وحدات مصغر داخل لوحة التحكم نفسها، أي يمكن إضافة الوحدات بشكل سهل ومبسط، أو البحث عن إضافة ما. يمكن من ذات الصفحة الاتصال بسوق الإضافات عن طريق الضغط على زر "الاتصال بسوق الإضافات" من قائمة التصفح العلوية. ستظهر نافذة منبثقة يمكنك من عليها إدخال معلومات مصادقتك لربط حساب المتجر بحساب لوحة التحكم. تثبيت إضافة لمتجر بريستاشوب يمكن تثبيت إضافات متجر بريستاشوب بطريقتين: الأولى عبر متجر الإضافات والثانية عبر كتالوج الإضافات. تثبيت إضافة عن طريق متجر الإضافات يمكنك استعمال صندوق البحث بعد تسجيل الدخول في متجر الإضافات للبحث عن إضافة ما يمكن استعمال اسمها أو وصفها. يُعرض في صفحة الإضافة وصف عام لها وما الذي تقوم به، وطريقة تثبيتها أو أية تفاصيل أخرى. في القسم السفلي للصفحة يتم عرض تقييمات العملاء لهذه الإضافة وآرائهم حولها. تثبيت الإضافة يكون عن طريق: تنزيل ملف الإضافة، بالضغط على "Download" من صفحة الإضافة، ثم اختيار النسخة المرافقة لمتجرك (1.6 أو 1.7). فتح صفحة "مدير الوحدة" في لوحة التحكم الموقع عن طريق التصفح إلى: تحسين > الإضافات > مدير الوحدة أو Module Manager. الضغط على "ارفع إضافة" من القسم العلوي للصفحة. تأكد من وضع الملف المُنزّل في مساحة "ضع الأرشيف" أو اختار الملف عن طريق التصفح إلى الملف المستهدف. ستحصل بعدها على رسالة تفيد بحالة تثبيت الإضافة من نجاح أو فشل. التعامل مع الإضافات المدفوعة لن يتم إلا بنفس المنطق، ما عدا أن تحميل ملف أرشيف الإضافة لن يكون إلا بعد عملية توثيق طلبك والتحقق من الدفع. تثبيت إضافة عن طريق كتالوج الإضافات تثبيت الإضافات عن طريق كتالوج الإضافات يعتبر الطريقة الأبسط والأسهل، حيث يمكن استعمال صندوق البحث الظاهر بصفحة "كتالوج الوحدة" للبحث عن إضافة ما. يمكن في ذلك استعمال اسمها الكامل، وصفها أو بعض الكلمات المفتاحية التي تخصها. في حالة كون هذه الإضافة مجانية، سيمكن مباشرة تثبيتها عن طريق الضغط على زر "تثبيت" الكائن ببطاقة الإضافة. أي سيتم إخبارك بعد بضع ثوانٍ بتمام التثبيت بإظهار رسالة إشعارٍ لطيفة أعلى الشاشة. إدارة الإضافات ستظهر الإضافة بعد تثبيتها في قسم الفئة الخاصة بها من صفحة "مدير الوحدة"، ويمكن استعمال زر القائمة المنسدلة بجانب زر "الإعدادات" لمسح الإضافة، أو تعطيلها، أو تعطيلها للجوال أو إعادة ضبطها. تختلف طريقة إعداد كلّ إضافة وحتّى أن بعضها يحتاج تفعيلا.فعلى سبيل المثال لا يتم تفعيل إضافة PrestaShop Metrics الموضحة في الأمثلة مباشرةً، وإنما يجب في ذلك ربط المتجر بحساب PrestaShop وحساب تحليلات جوجل Google Analytics، حيث سيكون من الممكن استعراض وظيفتها. كما يمكن بكل حال من الأحوال الاستعانة بقسم "المساعدة" للاستزادة بالمزيد من المعلومات حول الإضافة التي نحاول الاستفادة من مميزاتها. تخصيص شكل متجر بريستاشوب بجانب خيارات التخصيص الشاسعة التي توفرها عن طريق مجموعات إضافاتها، تتيح بريستاشوب إمكانية التحكم في التصميم العام للمتجر عن طريق قسم "تصميم" في جزء "تحسين" من القائمة الجانبية للوحة التحكم. تخصيص القالب والشعار تُقسم صفحة تخصيص القالب والشعار إلى ثلاثة أقسام: قسم التكيف مع اللغات وقسم الشعار وقسم تصميمي للمتجر. القسم الأول، قسم التكيف مع اللغات من اليمين إلى اليسار وفيه يمكن ضبط محاذاة النصوص وتعويم العناصر في اللغات من اليمين إلى اليسار من مثل العربية والفارسية. القسم الثاني، قسم الشعار وفيه يمكن تخصيص كل من شعار الترويسة، والشعار الذي يظهر في رسائل البريد الإلكتروني وشعار الأيقونة الذي يظهر في نوافذ المتصفح بجانب النصوص (الصيغ المقبولة هي: gif ,jpg ,jpeg ,jpe ,png). فيما يخص شعار الترويسة يتم دوما اقتراح أبعاد معينة تتلاءم مع تخطيط السمة المطبقة على المتجر يجب دوما الانتباه لهذه الأبعاد لضمان أقصى تلائم للشعار مع تصميم المتجر. يتبين شعار الترويسة في كامل صفحات الواجهة الأمامية في ترويسة الصفحات، في حين أن شعار الأيقونة favicon هو الشعار الذي يظهر بكامل نوافذ الصفحات في المتصفح. وشعار رسالة البريد الإلكتروني هو ما يظهر في القسم العلوي لرسالة البريد الإلكتروني. القسم الثالث، قسم تصميمي للمتجر وفيه يمكن اختيار سمة معينة لصفحات المتجر. إن طريقة تثبيت سمة تتبع خطوات تثبيت أي إضافة أخرى، فبعد تثبيت الإضافة على نحو صحيح مثل المبين في الخطوات السابقة يمكن إيجاد القالب المثبت في هذا القسم بجانب السمة المثبتة افتراضيا ويمكن التبديل بينهما بسهولة. كما يمكن عن طريق الضغط على "اختر تصميم" في ذيل القسم من تهيئة تصاميم كل صفحة على حدةٍ والتحكم في تخطيط كل صفحة. يمكن أيضا التحكم في كل قسم من صفحة المنتج والفئة والصفحة الرئيسية عن طريق الضغط على علامة التبويب "Pages Configuration" بشريط التصفح العلوي، حيث يمكن التحكم في محتوى الصفحات كالمنتجات والأصناف التي يتم عرضها أو تمييزها، والأقسام التي يتم وصفها بتذييل الصفحة، ومختلف إعدادات عارض الشرائح وغيرها من الخيارات. تخصيص قالب رسالة البريد الإلكتروني لمتجر بريستاشوب تهتم المنصة بجانب التسويق عبر البريد الإلكتروني بكامل تفاصيلها، فهي تتيح إمكانية تخصيص قوالب رسائل البريد الإلكتروني التي تصل إلى عملائك. يمكن التحكم في كل ذلك عن طريق صفحة "Email Theme" في "تصميم" من قسم "تحسين" من القائمة الجانبية. تضم الصفحة 4 أقسام: الإعدادات: يمكن من عليها التبديل بين قوالب الرسائل المثبتة. توليد رسائل البريد الإلكتروني: يقوم هذا القسم بتوليد رسائل بريد إلكتروني جاهزة للاستعراض عن طريق قسم تصميم البريد الإلكتروني. تصميم البريد الإلكتروني: هنا أين يمكن استعراض كامل قوالب وتخطيطات الرسائل الخاصة بكل نمط. يكون ذلك عبر الضغط على أيقونة البحث في عمود الإجراءات للنمط المراد. Translate emails (ترجمة الرسائل): بشكل افتراضي، لا يتم ترجمة رسائل البريد الإلكتروني بمجرد إعداد لغة ما في الموقع، وسنحتاج في هذا إعطاء الإذن بالترجمة يدويا، يمكن من هذا القسم عمل ذلك عن طريق تحديد اللغة المرادة وإعادة كتابة الحقول المرسلة في قسم body في رسائل البريد الإلكتروني (لاحظ أن الحقول النصية تقبل محتوى HTML أيضا). سيتم التوجه بك إلى صفحة معاينة التصميم، حيث يتم إظهار قائمة من الوضعيات، يعبّر عمود "الإضافات" بالجدول عن إضافات القوالب التي تم تثبيتها. كما يمكن عن طريق عمود "الإجراءات": استعراض القالب في المتصفح عن طريق الضغط على أيقونة "HTTP". عرض شيفرة HTML الخاصة بالقالب. عرض المحتوى النصي للرسالة. إرسال رسالة اختبار. فيما يلي قائمة مجموع الرسائل المتوفرة: table { width: 100%; } thead { vertical-align: middle; text-align: center; } td, th { border: 1px solid #dddddd; text-align: right; padding: 8px; text-align: inherit; } tr:nth-child(even) { background-color: #dddddd; } الاسم مضمون الرسالة من يستقبله account إنشاء حساب جديد العميل backoffice_order إنشاء طلب بالنيابة عن عميل ما عن طريق المشرف في لوحة التحكم العميل bankwire الدفع عن طريق تحويل بنكي العميل cheque الدفع عن طريق شيك العميل contact مراسلة أحد العملاء بريد الموقع / المشرف contact_form نجاح مراسلة أحد العملاء لدعم العملاء العميل credit_slip إنشاء قسيمة إيداع العميل download_product رسالة لتحميل منتج (في حالة توجه الموقع إلى بيع المنتجات الرقمية) العميل employee_password تسجيل موظف جديد الموظف forward_msg رد من خدمة العملاء في الموقع العميل guest_to_customer تحويل حساب زائر إلى حساب عميل العميل import نجاح استيراد ملف ما في الموقع بريد الموقع / المشرف in_transit طلب قيد انتظار الشحن العميل log_alert رسالة تذكير وتنبيه بشأن تلقي تحذير جديد في لوحة التحكم بريد الموقع / المشرف newsletter رسالة نشرة بريدية العميل order_canceled إلغاء طلب من طرف الموقع العميل order_changed تغيير تفاصيل طلب من طرف البائع أو الموقع العميل order_conf ملخص الطلب (عنوان الفاتورة، الشحن والتوصيل، السعر والتفاصيل) العميل order_customer_comment مراسلة من عميل بخصوص طلب بريد الموقع / المشرف order_merchant_comment مراسلة من بائع بخصوص طلب بريد الموقع / المشرف order_return_state مراسلة رد بشأن طلب إعادة العميل outofstock المنتجات غير متوفرة العميل password تغيير بيانات دخول عميل ما العميل password_query الرد بشأن طلب تغيير بيانات من طرف عميل العميل payment تمام عملية الدفع العميل payment_error خطأ في عملية الدفع العميل preparation طلب قيد المعالجة العميل productoutofstock منتج قارب على النفاذ من المخزن بريد الموقع / المشرف refund نجاح رد المبلغ العميل reply_msg رسالة رد بشأن مراسلة ما العميل shipped تمام عملية الشحن العميل test بريد إلكتروني تجريبي بريد الموقع / المشرف voucher نجاح إنشاء فاتورة العميل voucher_new إعلام بإنشاء فاتورة العميل followup_ مجموعة الرسائل ذات السابقة followup يتم إرسالها كتذكير في حالة عدم إكمال العميل لطلبه، يكون ذلك تلقائيا بعد إنشاء عربة تسوق وعدم العميل newsletter_conf رسالة شكر بالإشتراك في النشرة البريدية العميل newsletter_verif رسالة تأكيد على الإشتراك في النشرة البريدية العميل referralprogram رسائل إعلام بشأن برنامج الإحالة العميل بريستاشوب تجعل عملية تثبيت قالب بريدي إلكتروني جديد سهلة وبسيطة، حيث يكون هذا بنفس منطق أي إضافة أخرى: التسوق واختيار القالب المناسب، وتحميله وإضافته عن طريق صفحة مدير الوحدة. تخصيص صفحات متجر بريستاشوب يشير قسم التصميم > الصفحات إلى الصفحة التي يمكن من عليها تخصيص مجموعة من صفحات الواجهة الأمامية مثل: صفحة من نحن أو صفحة الأحكام والسياسات. يضم الجدول الأول تصنيف الصفحات المثبتة، حيث يمكن من على القسم العلوي إنشاء تصنيف صفحات جديد أو صفحة جديدة. يمكن استعراض هذه الصفحات والتصنيفات عن طريق الرابط الذي نقوم بوصفه أثناء ملئ نموذج الإدخال الخاص بالإنشاء، أو مباشرة عن طريق التصفح إليها عن طريق خريطة الموقع (يمكن إيجادها بشكل افتراضي في قسم الذيل في صفحات الواجهة الأمامية). وبشكل عام، فإن أغلب صفحات الموقع تتفرع عن التصنيف الافتراضي الذي هو الصفحة الرئيسية. يتيح نموذج إنشاء صفحة جديدة خيارات إمكانية تعيين الفئة أو التصنيف الذي تتفرع عنه هذه الصفحة، أو مسمى أو عنوان هذه الصفحة، أو عناوين وسوم الميتا والوصف وغيرها من التفاصيل، كما يمكن استعراض نتيجة فهرسة هذه الصفحة عن طريق محركات البحث في صندوق "SEO preview". يمكن إدارة هذه الصفحات، حذفها أو تغيير تصنيفاتها، محتوياتها أو كلماتها المفتاحية أو أية تفاصيل أخرى عن طريق الجدول الثاني بنفس الصفحة. يمكن أيضا التحكم في عرض هذه الصفحات عن طريق الموقع أو حجبها، أو حتّى في السماح لمحركات البحث بفهرستها أو البحث عنها. تخصيص قوائم الروابط قوائم الروابط هي تلك القوائم التي تتفرع عنها روابط صفحات، مثل تلك التي تظهر بقسم الفوتر في صفحات الواجهة الأمامية. فمن شأن هذه القوائم أن تساعد العملاء في إيجاد طريقهم عبر الموقع. يُصطلح على كل قائمة بالمصطلح "كتلة block"، حيث تتيح قائمة الأزرار بأعلى صفحة تصميم > قائمة الروابط إمكانية إنشاء كتلة جديدة عن طريق الضغط على زر "كتلة جديدة". يمكن عن طريق حقل "Hook" تخصيص المكان الذي تظهر فيه قائمة الروابط المراد إنشاؤها، إذ افتراضيا تحوي القائمة 112 موضعا ما بين مواضع لوحة التحكم والواجهة الأمامية. تخصيص الصور في متجر بريستاشوب تهتم المنصة بعدم تلف أو تشتت الصور أو تحميلها بأبعاد كبيرة لعرضها في أقسام صغيرة، وتجيب عن التساؤل:"ما جدوى تحميل صورة للمنتج بحجم 1000 بكسل لاستعمالها كصورة مصغرة للمنتج؟" وبالطبع فإنها لا تضطرك إلى تحميل نفس الصورة بأحجام مختلفة لاستخدامها في مواضع مختلفة، وتتيح بدل ذلك إعادة تحجيم تلقائي لكل صورة تقوم بتحميلها. فعندما تقوم بتحميل صورة ما على المتجر، يقوم متجر بريستاشوب PrestaShop تلقائيًا بإنشاء أحجام مختلفة انطلاقا من هذه الصورة، لذلك ما عليك سوى تحميل نسخة واحدة من صورتك، ويفضل أن تكون كبيرة بما يكفي لتغيير حجمها إلى جميع أحجام الصور، الأصغر أو الأكبرـ حيث يمكن تخصيص حجم كل نوع من المحتوى في صفحة التصميم > إعدادات الصورة الكائنة بقسم "تحسين". يتوفر بالصفحة ثلاثة أقسام: إعدادات الصورة: أين يمكنك استعراض أنواع الصور المضافة خيارات توليد الصور: يتم في هذا القسم التحكم في مختلفة الإعدادات التي يتم استعمالها لإعادة توليد الصور المحمّلة بالفعل. تجديد المصغرات: يستند هذا القسم على الخيارات المطبقة في قسم "خيارات توليد الصور" لمحو جميع الصور المصغرة التي تم تحميلها يدويًا ثم استبدالها بأخرى يتم إنشاؤها تلقائيًا. يتم ضبط هذه الصفحة افتراضيا على إعدادات مفضّلة، ولذلك فهو من غير المفضّل كثيرا التلاعب بهذه الخصائص إلا في حالات خاصة جدا. التعامل مع اللغات والترجمات قد تتعدى أحيانا -أو بالأحرى في كثير من الأحيان- في مجال التجارة الإلكترونية دائرة جمهورك المستهدف لتسع أكثر من المتكلمين بلغة واحدة فقط، وتلتفت بريستاشوب لهذا الجانب وتتيح إمكانية إنشاء أكثر من لغة في الموقع عن طريق صفحة "اللغة والإعدادات الإقليمية" وصفحة "الترجمات" الكائنتين بقائمة "عالمي" في قسم "تحسين" من القائمة الجانبية. اللغات والإعدادات الإقليمية تتيح صفحة عالمي > اللغات والإعدادات الإقليمية كلّ إمكانيات التعامل مع ما يخص إدارة الإعدادات الإقليمية في الموقع من مثل اللغة والعملة والموقع الجغرافي. يضم الشريط العلوي من الصفحة علامات التبويب التالية: 1. اللغة والإعدادات الإقليمية بشكل افتراضي، لا تقوم بريستاشوب بتحميل كامل حزم اللغات لجميع البلدان أثناء التثبيت. فهي توفر إمكانية القيام بذلك يدويا وذلك بسبب حجم الحزم المتوفر فلا يعقل أن تقوم بتضمين حزم ملفات لا تحتاجها في ملفات الموقع، ولكنها تسمح باستيرادها واحدة واحدة في أي وقت لاحق. يمكن عن طريق قسم "استيراد حزمة التعريب" استيراد حزمة لغة من خوادم بريستاشوب. يمكن من ذات القسم تخصيص المحتوى الذي يتم استيراده. يتيح القسم التالي "الإعدادات" إمكانية ضبط اللغة، المنطقة الزمنية والعملة والدولة الافتراضية للموقع. في حين يمكن ضبط وحدات الوزن، والمسافة والحجم والأبعاد بما يلائم جمهور الموقع من قسم "الوحدات المحلية". يمكنك من آخر قسم إعادة تعيين معرف ISO الخاص بكل من اللغة والدولة الموافقين للضبط الافتراضي للموقع (يفضل الإعداد الافتراضي) وهذا يدخل ضمن الإعدادات المتقدمة. 2. لغات يمكن عن طريق هذه النافذة، إدارة مختلف اللغات المثبتة، أو إضافتها أو حذفها، تفعيلها أو تعديل تفاصيلها. 3. العملات توفر النافذة التالية إمكانية إدارة العملات، أو إضافتها أو حذفها، أو تفعيلها أو تعديل معدل صرفها الدولي أو غيرها من التفاصيل. 4. الموقع الجغرافي تدعوا الحاجة أحيانا إلى حظر عناوين IP معينة أو التصريح لأخرى لأسباب معينة، ويمكن عن طريق هذه النافذة فعل ذلك والمزيد كحظر كامل عناوين IP دولة أو مجموعة دول معينة. الترجمات الإعداد الافتراضي لبريستاشوب لا يثبّت كامل حزم اللغات كما أشرنا سابقًا نظرا لحجمها الضخم، وينطبق هذا أيضا على مختلف الترجمات، إذ يمكن إعطاء تخصيص ترجمة أجزاء معينة من المتجر، أو رسائل البريد الإلكتروني أو صفحات المكتب الخلفي عن طريق صفحة عالمي > ترجمات الكائنة بقسم "تحسين" من القائمة الجانبية. يمكن عن طريق قسم تعديل الترجمات تحديد نوع معين من سياق الترجمة وإعادة ضبطه في لغة معينة، يضم حقل أنواع الترجمات ترجمات المكتب الخلفي، وترجمات البريد الإلكتروني وترجمات الإضافات التي جرى تثبيتها بجانب ترجمات أخرى. تحديد نوع الترجمة واللغة المستهدفة والضغط على "تعديل" سيأخذ بنا إلى صفحة التعديل حيث تشير الحقول المميزة بالأحمر إلى الحقول التي لم يتم إضافة ترجمة مخصصة لها بعد. في هذه الحالة يتم اعتماد اللغة الإنجليزية لها بشكل افتراضي إلى حين تعيين ترجمة مخصّصة لها في لغة مستهدفة. الخلاصة إن قابلية التخصيص العالية التي تضعها بريستاشوب بين أيدي مستعمليها -بجانب العديد من المميزات الأخرى- تحفظ لها جمهورا شاسعًا تتزايد أعداده كل سنة في سوق أنظمة إدارة المحتوى العالمية، إذ أن إمكانيات التخصيص الكثيرة لمتجر بريستاشوب تتيح لكل مالكِ متجر القدرة على إضافة لمسته الشخصية على متجره ما يميزه عن غيره من المتاجر. اقرأ أيضًا المقال السابق: جولة في لوحة تحكم بريستاشوب واستكشافها التهيئة الأولية لمتجر بريستاشوب جديد تثبيت متجر بريستاشوب إدارة المنتجات في متجر بريستاشوب
  6. يجب الاشارة الى أن المقصود بمطور وردبرس هو ذاك الشخص الذي يساهم في تطوير مكونات وردبرس ويعمل على تطويرها كنظام ادارة محتوى مفتوح المصدر. إما بإضافة وحدات جديدة أو التعديل في أخرى موجودة أو حتى بالمساهمة بتطوير قوالب وغيرها. في دورة تطوير تطبيقات الويب باستخدام PHP يخصص مسار كامل للتعامل مع تطوير قوالب الوردبرس إبتداءا من مظهره العام الى تجهيزه للنشر. هذا ويتبع بمسار لتطوير متجر إلكتروني في ووردبريس عبر ووكومرس. ونعم سيكون محتوى الدورة كافيا للحصول على أول مشاريعك كمطور لقوالب وردبرس.
  7. صحيح هو أن PHP تعاب أحيانا بسياقها وطريقة كتابتها وتعريفها للوظائف والمتغيرات مثلا ولكن لا أظن أن هنالك بها ثغرات خصوصا مع النسخ المتأخرة من PHP مثل 7 و 8. كما أنه من غير المنطقي مثلا مقارنتها بـ NodeJS ف Node بيئة تشغيل runtime environment في حين أن PHP لغة برمجة نصية. وكثيرا ما يقال عنها أنها لغة شاخت أو منقرضة ولكن الإحصائيات تقول العكس تماما فأكثر من 7 ملايين ونصف مليون موقع مكتوبة بـ PHP. خصوصا مع ظهور إطار عمل لارافيل الذي غير الموضوع تماما. عن نفسي، بين الـ NodeJS و الـ Net. كنت لأختار الـ NodeJS.
  8. النموذج العلائقي بمفهومه الأبسط هو طريقة لتمثيل البيانات في الجداول. ففي قاعدة البيانات العلائقية، كل صف في الجدول هو سجل بمعرف فريد يسمى المفتاح. أين تحتوي أعمدة الجدول على قيم تخص كل صف. وبالتالي فإننا نحتاج الى هذا النموذج كل مرة نرى فيها أن بياناتنا تنظم وفق هذا الهيكل. مثال: نريد إنشاء مدونة بسيطة متعددة المدونين حيث يمتلك كل مدون العديد من التدوينات. نتخيل أن كـــــــــل مستخدم يملك معرفا ID يميزه بجانب اسمه وبريده الاكتروني وسيرة ذاتية مختصرة. كل تدوينة ترتبط بمستخدم أنشأها، وبالتالي فإن الطريقة الأفضل ستكون عن طريق قاعدة بيانات تعتمد نموذجا علائقيا وذلك لأن: البيانات لدينا قابلة للهيكلة، فكل مستخدم يملك اسما وبريدا الكترونيا وسيرة ذاتية. البيانات لدينا مرتبطة فيما بينها. فيما يلي بعض الأنظمة الشائعة: Oracle, Mysql, MongoDB , SQLServer. أجد أن MongoDB أسهل نسبيا من الباقي. MySql مجانية في مقابل أن Microsoft SQL Server مدفوعة مثلا. Microsoft SQL Server سريعة مقارنة ب MySql مثلا. يمكنك الاستزادة أكثر بالاطلاع على قسم قواعد البيانات من دروس ومقالات الأكاديمية.
  9. لا يوجد أفضل لغات أو أدوات ولكن يوجد الأكثر شيوعا واستعمالا في الأوساط البرمجية، نذكر من بينها: PHP Python Java Net. Ruby NodeJS وتتفاوت فيما بينها بفروق طفيفة من ناحية الآداء أو وضوح السياق أو غيرها من المعايير. ولكن الذي يحدد الفارق الأكبر هو طريقة كتابتك وتعاملك وتعلمك لهاته اللغة وتوظيفك لها. فهو ما سيحدد آداء تطبيقك وجودته بدرجة أولى. أما ان كنت تتسائل عن الأكثر طلبا أو توفرا على فرص العمل فأظن أن الذهاب مع PHP أو NodeJS سيكون مناسبا جدا. بالنسبة لسؤالك الثاني، فستحتاج كخطوة أولى تحديد ما ان كان موقعك يحتاج نموذجا علائقيا أم لا. بمعنى هل ستحتوي البيانات في قواعد بياناتك على علاقات فيما بينها أو لا. وهل ستكون البيانات التي لديك قابلة للهيكلة أو لا. هذا سيحدد بدرجة أولى ما ان كنت ستختار استعمال قاعدة بيانات علائقية SQL-Based مقابل لاعلائقية NoSQL-Based. بعد هذا سنأتي لإختيار نظام ادارة قاعدة البيانات الذي نريد وفق معايير مثل: الأكثر شيوعا، الأسهل تعلما، المجاني إستعمالا، الأسرع , قابلية التوسع Scalability.
  10. لا أظن أنه يوجد ما يمكن وصفه أنه طريقة بسيطة لعمل ذلك. فقد تحتاج في الغالب إلى الكثير من الجهد لتتبع أخطاء التصميم وضبطها واحدة بواحدة. رغم هذا الا أن الناتج قد لا يستوفي شروط الشيفرة النظيفة وقد يصعب التعديل عليه لاحقا. ولذلك اقترح اعادة هيكلة الموقع من الصفر واخذ التجاوبية مع مختلف الشاشات في الحسبان. وبالطبع فإن هذا لا يمنع من وجود بعض القواعد والخطوات التي يمكن السير وفقها لضبط تجاوبية الموقع مع مختلف الشاشات: حدد نوع الحاويات التي توجد لديك وابدأ في ذلك من الحاويات الآباء نحو الأبناء. تأكد من إضافة وسم meta الذي يعطي الموقع عرضا مساويا لعرض الشاشة التي يتم عرضه من عليه. قم بتحديد كامل مجموعات نقاط التوقف break points لمختلف الشاشات التي لديك. قم باستعمال محددات عناصر سليلة descendant combinator بدل استعمال محددات عادية لضمان أنك تقوم بتحديد العنصر المراد بالضبط، وبدون أن يتداخل مع أي عنصر آخر. تعرف على محددات العناصر السليلة.
  11. لن يهم استعمال Ruby أو PHP أو Net. كلغة واجهة خلفية لتطبيق ما لديك، فهي لغات تخص الخادم بالدرجة الأولى ولن تتعلق بشكل مباشر بالواجهة الأمامية فتطبيق واجهة العميل سيتصل بالواجهة الخلفية عن طريق طلبيات HTTP. ولن يهم الخادم ما ان كان المرسل تطبيقا على الفلاتر أو الرياكت نايتيف. فالعملية شبه منفصلة تتصل فيما بينها بالواجهات البرمجية وطلبيات الـ HTTP. أما عن السؤال بشأن الأفضل، فلا يمكن تحديد ذلك على وجه الدقة فلكل منها امتيازات ونقائص وتتقارب بشكل كبير فيما بينها، وقد لا يهم كثيرا الاختيار فيما بينها. فإن كنت ترى نفسك جيدا مع PHP فستكون ممتازة جدا كلغة واجهة خلفية. يمكنك الاستزادة بالاطلاع على قسم خواديم من الدروس والمقالات المنشورة على الأكاديمية.
  12. أظن أن هذا يحدث بسبب امتلاك شريط التنقل الوضعية الثابتة position fixed بدون أن يمتلك القسم الحاوي للصورة هامشا علويا كافيا. وبالتالي فإن حاوي الصورة سيتموضع على المحور y ابتداءا من حافة الشاشة من النقطة 0 فيظهر لنا هذا التداخل. وبالتالي، ولحل المشكلة سنستخدم أحد الحلين: ازالة الوضعية الثابتة لشريط التنقل، ويكون ذلك بإزالة الصنف fixed-top بالنسبة لشريط التنقل. وهذا حتى ندع العناصر تتموضع بشكل تلقائي. الحل الأسهل والأفضل، هو اعطاء حاوي الصورة هامشا علويا كافيا لظهور الصورة. وفي هذا سنحتاج التوجه مباشرة الى الأب المباشر لعنصر الصورة واعطاءه الصنف pt-5 أو pt-4. <div class="pt-4"> <img src="path/to/img.png" /> </div> تعرف فيما يلي على: تموضع العناصر في إطار العمل Bootstrap. أدوات التباعد Spacing في إطار العمل Bootstrap.
  13. بعد تثبيتك لمنصة بريستاشوب وتسجيل الدخول على نحو صحيح، ستحتاج فهم طريقك خلال واجهة الإدارة الخاصة به لأن هذه الأخيرة ستكون المكان الذي تقضي معظم الوقت فيه، واكتشاف مميزاتها أولوية تسبق كل أولوية أخرى، وميزة يمكن استعمالها للإرتقاء بالمتجر إلى مستوى آخر. نظرة عامة على لوحة تحكم بريستاشوب بمجرد توثيق دخولك، سيتم التوجه بك إلى الصفحة الأساسية للوحة التحكم متجر بريستاشوب. تضم هذه الصفحة ملخصا جامعا لنشاط الموقع، وأدائه ونشاطاته وغيرها من المعلومات الإحصائية المهمة. الشريط العلوي توفر المنصة في الشريط العلوي لقائمة التصفح مجموعة روابط سريعة الوصول وعناصر تصفحٍ تتفرع عن بعضها قوائم منسدلة. تتمثل هذه العناصر في: شعار الموقع متبوعا بنسخة المتجر التي تستعملها. قائمة منسدلة بعنوان "الوصول السريع Quick Access" تتفرع منها الروابط التالية: الإضافات المثبتة. الطلبات. تصنيف جديد. قسيمة جديدة. كتالوج التقييم. منتج جديد. قم بإضافة هذه الصفحة إلى قائمة الوصول السريع. إدارة الوصول السريع: أين يمكن التحكم في محتويات هذه القائمة. محرك بحث بأداة للفلترة: أين يمكن البحث عن أية وحدات أو إضافات، مكونات أو عملاء، أو أي معلومات تخص الموقع. رابط للوصول السريع إلى واجهة متجرك. قائمة تنبيهات منسدلة تتفرع منها الوحدات الثلاث: أحدث الطلبات. العملاء الجدد. الرسائل. قائمة شخصية مرفقة بصورتك الشخصية يتفرع منها رابطٌ للوصول السريع لكل من: صفحتك الشخصية. دليل وتوثيق المتجر. مركز تدريب بريستاشوب. متجر بريستاشوب للوحدات والقوالب. مركز مساعدة بريستاشوب. كما يمكن من ذات القائمة الأخيرة (القائمة الشخصية المرفقة بصورتك) تسجيل خروجك من لوحة التحكم عن طريق زر تسجيل الخروج أسفل القائمة. القائمة الجانبية يتم تلخيص مجموعات القوائم المحتواة في القائمة الجانبية يمين اللوحة في الأقسام الثلاث: 1. بيع Sell سيكون هذا القسم أكثر ما ستتصفحه مستقبلا، إذ أنه يحوي كل ما تحتاجه لتتبع وإدارة الطلبات والسجلات، العملاء والموردين وما إلى ذلك. تتفرع منه الصفحات التالية: الطلبات Orders: يضم هذا القسم مجموع الطلبات التي يقوم العملاء بإنتاجها والفواتير الملخصة لذلك، يمكن عن طريق هذا القسم أيضا التعامل مع وصول الائتمان والتسليم وعربات الشراء. الفهرس Catalog: يوثق هذا القسم كل سجلات الموقع وكتالوجاته، يمكن من على هذا القسم إدارة المنتجات المعروضة، فئاتها وتصنيفاتها ومجموعات مورديها، الخصومات والمخزون وما إلى ذلك. العملاء Customers: يوفر هذا القسم وصولا لكل ما يتعلق بالعملاء وعناوينهم من معلومات وغيرها. خدمة العملاء Customer Service: يتم هنا دعم العملاء عن طريق تقديم خدمات ما بعد الشراء، كالتواصل وإعادة البضائع. الإحصائيات Statistics: تتيح لك هذه القائمة الوصول إلى جميع الإحصائيات والمخططات التي يمكن عن طريقها فهم أداء الموقع. 2. تحسين Improve قسمَ القوائم الثاني للقائمة الجانبية، يتم هنا تجميع روابط الصفحات التي تتيح إمكانية إعداد مظهر واجهة المتجر، طرق الشحن والدفع وما إلى ذلك. تتفرع عنها القوائم التالية: الإضافات Modules: أين يمكن إدارة كل إضافات المتجر، تلك الخاصة بالإدارة، التصميم والتنقل أو الدفع، الشحن والخدمات اللوجستية، الشبكات الاجتماعية أو ما إلى ذلك. التصميم Design: يمكن عن طريق هذا القسم الاستفادة من العديد من الخيارات التي توفرها المنصة في سبيل تخصيص الموقع وواجهة متجرك على نحو واسع، كقوالب الموقع ورسائل البريد الإلكتروني، الصفحات والشعار وغيرها. الشحن Shipping: فيه يمكن إضافة، وإستعراض وإدارة جهات وطرق الشحن المختلفة. الدفع Payment: عن طريق هذه الصفحة، يمكن استعراض طرق الدفع المثبتة أو تطبيق قيود معينة على عُملات، أو دول أو مجموعات مستخدمين معينة. عالمي International:يضم مجموع الأدوات التي تمكن من استهداف جمهور أكبر عن طريق إدارة اللغات، الترجمات والنطاقات الجغرافية، كما يمكن عن طريق ذات القسم التحكم في القواعد الضريبية التي يتم فرضها. 3. الإعدادات كقسم أخير، يجمع روابط الصفحات التي يمكن عن طريقها إعداد مختلف مكونات المتجر وتهيئة كل منها لتعمل بشكل معين. تضم نوعان من الإعدادات: العام منها كإعداد الطلب والعملاء، المنتج، أدوات تحسين محركات البحث وجهات الإتصال. المتقدم منها كإعداد قواعد البيانات والبريد الإلكتروني، وسجلات الأخطاء وخدمات الويب. الشكل العام للصفحات تستخدم العديد من الصفحات قالبا متشابهًا في تصميم أو تفرع صفحاتها.بشكل عام تحتوي كل صفحة على ما يلي. الفهرس وعنوان الصفحة يتواجد بكامل الصفحات، كدليل تصفح يسهل من عليه فهم تفرع الصفحات وترابطها في طريقنا من خلال المتجر. مجموعات الأزرار تتشابه الأزرار في قائمة التصفح الفرعية من حيث تموضعها أو مضمونها العام في أغلب الصفحات، وتختلف بحسب السياق أو الصفحة، إذ تتوفر أغلب الصفحات على كل أو أحد الأزرار: إضافة Add new، إذ يمكن عن طريقها الانتقال إلى صفحات الإنشاء مثل: منتج جديد. تصنيف جديد. قاعدة جديدة لقواعد سلة الشراء. طلب جديد. طلب شراء جديد. مساعدة، إن تضمين توثيق المتجر مباشرة في واجهة الإدارة قُدِّم كواحد من المميزات التي جاءت بها النسخ الأخيرة من بريستاشوب PrestaShop. إذ يؤدي الضغط على الزر "مساعدة" من أي صفحة إلى عرض التوثيق الرسمي -مكتوبا بالإنجليزية- لهذا القسم. الجداول تستعمل المنصة جداول البيانات في ترتيب وعرض سجلاتها ومجموعات عناصرها إذ يوفر كل جدول خيارات التصدير والاستيراد، أو حتى عرض استعلام SQL المستعمل في جلب مجموعة البيانات المعروضة في الصفحة. صفحة لوحة تحكم متجر بريستاشوب تعتبر الصفحة الرئيسية في لوحة التحكم، يتم التوجيه إليها مباشرة بعد توثيق الدخول. تحتوي هذه الصفحة مجموعة من المعلومات الإحصائية والملخصات التي يمكن عن طريقها فهم نشاط المتجر أو ربما الإستفادة من التوقعات التي يقدمها النظام بخصوص المبيعات، معدل قيم المنتجات في سلة التسوق أو التحويل وحركة البيانات. يمكن أيضا الاستفادة من خيار "الوضع التجريبي" لتوليد بيانات افتراضية يمكن عن طريقها اختبار الشكل النهائي لهذه الأقسام. يوجد في القسم العلوي من اللوحة شريط خيارات يسمح لك باختيار الفترة الزمنية المستخدمة لعرض الإحصائيات. تتوفر ثلاث مجموعات من الخيارات: هذا اليوم، هذا الشهر، هذا العام. اليوم أو الشهر أو السنة السابقة. تاريخ محدد (الزر الموجود على اليسار). العمود الأيمن يتم هنا إعطاء لمحة عامة عن ما يحدث في الموقع، وذلك عن طريق عرض: الزوار المتصلين، ويتم في ذلك احتساب أي زائر كان أو لا يزال نشطا في آخر أو خلال 30 دقيقة الأخيرة. عربات التسوق التي تم تحديث منتجاتها في خلال 30 دقيقة الماضية، يمكن عن طريقها استنتاج عدد الزوار الذين يقومون بعمليات تسوق حاليا. عدد الطلبات، والاستبدالات والاستراجاعات وعمليات التخلي عن عربات تسوق. إشعارات الرسائل والتعليقات الجديدة على المنتجات. تعداد المشتركين بقائمة المتجر البريدية والعملاء الجدد. حركة البيانات، مصادرها وتفاصيلها. العمود الأيسر كعمود إعلامي، يتم عن طريقه عرض بآخر تحديثات المنصة وأخبارها. كما يوفر روابط وصول سريع لكل من مركز المساعدة ومتجر بريستاشوب PrestaShop للإضافات. العمود المركزي يُعَد هذا القسم قلب الصفحة ومركزها الأساسي، يضم ثلاثة أقسام تشترك فيما بينها من حيث إمكانية تحديثها أو تخصيص إعداداتها وتختلف من حيث نوع البيانات التي توفرها. قسم التوقعات Forecast يمكن فيه تعيين الأهداف لحركة البيانات Traffic، التحويل Conversion ومتوسط قيمة سلة التسوق Average Cart Value. إذ يتم حساب المبيعات تلقائيًا بناءً على القيم التي يتم اختيارها لهذه الثلاثة. يمكن بالضغط على زر الإعدادات الخاصة بهذا القسم تخصيص الأهداف تلك. قسم المنتجات والمبيعات Products and sales أين يتم عرض آخر الطلبات، أكثر المنتجات مبيعا وأكثرها مشاهدة أو بحثا. كما يمكن تخصيص عدد المنتجات التي تظهر أسفل كل قسم عن طريق الضغط على زر الإعدادات بنفس القسم. قسم لوحة التحكم Dashboard يتم في هذا القسم تقديم ملخص عام عن بعضٍ من أهم مؤشرات الأداء: المبيعات، الطلبات وقيم سلة التسوق، الزيارات وقيمة التحويل وصافي الربح، كما يمكن أسفل هذا العمود المركزي إضافة المزيد من الأقسام عن طريق الضغط على Add more modules. خاتمة تجمع لوحات بريستاشوب PrestaShop بين لوحات التحكم التشغيلية التي توفر لقطة شاملة للأداء، ولوحات التحكم التحليلية فيها تُعرض البيانات من الماضي أو الحاضر لتحديد الاتجاهات التي يمكن أن تؤثر على صنع القرار في المستقبل، ولوحات التحكم الاستراتيجية التي ترتكز على إعداد التقارير بهدف مراقبة استراتيجية الشركة طويلة المدى بالإضافة إلى توفير نافذة للوصول إلى كل الخيارات والقوائم والإعدادات الخاصة بالمتجر بسهولة. واستكشاف لوحة تحكم PrestaShop هو إلتماسٌ لكل جانب من هذه الجوانب واستفادةٌ من مميزات كل منها فالمعرفة بالشيء قوة. اقرأ أيضًا المقال السابق: التهيئة الأولية لمتجر بريستاشوب جديد تثبيت متجر بريستاشوب إدارة المنتجات في متجر بريستاشوب التعامل مع العملاء وطلباتهم في متجر بريستاشوب ضبط طرق الدفع وعملية الشحن لمتجر بريستاشوب
  14. واحدة من أهم الخطوات التي لا ينبغي إغفالها أثناء التوجه إلى استعمال متاجر بريستاشوب هي تهيئة المتجر وإعداده من كل النواحي من الطلبات والمنتجات، العملاء وجهات الاتصال، الموظفين وحتى السجلات وغيرها. يفترض أنك قد قمت بالانتهاء من تثبيت المنصة وضبط قواعد بياناتها في المقال السابق تثبيت متجر بريستاشوب فهذا الدرس استكمال له. ففي حالة استعمال أداة تثبيت بريستاشوب ونجاح التثبيت ستظهر لك شاشة كالتالي: تخبرك هذه الصفحة بتمام التثبيت وجهوزية الاستعمال والإعداد، يظهر مربعا الحوار أسفل الشاشة: إدارة النظام: التوجه إلى لوحة التحكم الخاصة بالمتجر. اكتشف المتجر: التصفح إلى الصفحة الرئيسية الخاصة بواجهة المتجر. كما يمكن بكل حال من الأحوال التوجه إلى لوحة التحكم عن طريق الانتقال مباشرة إلى الرابط https://your_domain.dm/admin. قد تواجه في حالات شائعة رسالة خطأٍ تخبر بأن المسار الذي تطلبه غير موجود -يكون ذلك لأغراض أمنية- إذ سنضطر في هذا إلى الوصول لمجلد الملفات والبحث عن المجلد بالسابقة admin، والانتقال إليه بدلا من admin وحده، مثلًا، إن كان يتوفر لدينا المجلد admin_name فالانتقال إلى لوحة التحكم سيكون عن طريق الرابط: https://your_domain.dm/admin_name سجل دخولك عن طريق استعمال بيانات المسؤول التي أدخلتها أثناء تثبيتك للمنصة. انتبه إلى أن https://your_domain.dm هو كناية عن اسم النطاق لديك سواءً كنت على استضافة أو خادم محلي على الحاسوب لتبدله أنت بالنطاق الصحيح كما رأينا في المقال السابق. إعدادات متجر بريستاشوب لنبدأ بالتعرف على صفحات إعداد المتجر والخيارات الواجب إعداداها وضبطها للمتجر وسنبدأ بصفحة الإعدادات العامة. 1. عام preferences من القائمة الجانبية في لوحة التحكم سنحتاج النزول إلى أسفلها في قسم الإعدادات والضغط على عام من القائمة المنسدلة لقائمة إعدادات المتجر. تضم الصفحة التالية مجموع الإعدادات العامة للمتجر، أين يمكن تمكين أو تعطيل كل من: SSL (يفضل تمكينه في حالة امتلاك شهادة SSL). تفعيل SSL على كامل الصفحات أو تحديده على البعض. توثيق الطلبات عن طريق مفتاح token (يفضل تمكينه لأمان أكثر). السماح بإضافة إطارات iframe في الحقول النصية مثل وصف المنتج. استعمال محرر النصوص في الحقول النصية. (يفضل تمكينه). وضع التدوير: ويقصد به الطرق المختلفة لتقريب الأسعار (يفضل الوضع المقترح: Round up away from zero، when it is half way there recommended). صفحة الموردين في واجهة المتجر. العلامات التجارية في واجهة المتجر. صفحة أفضل المبيعات في واجهة المتجر. ميزة المتاجر المتعددة. كما يمكن اختيار طريقة تدوير الأسعار وتحديد النشاط الأساسي للمتجر. من قائمة التصفح العلوية بذات الصفحة يمكن أيضا تمكين أو تعطيل المتجر كافة (لا يشمل هذا لوحة التحكم)، إذ سيتم تفعيل وضع الصيانة بدلا منه. كما يمكن استعمال محرر النصوص أسفله لتخصيص النص الظاهر في وضع الصيانة. وضع صيانة موقع ما هو حالة يتم تطبيقها على كامل صفحات الموقع عند إجراء تغييرات يمكن أن تؤدي إلى ظهور عطل عند استخدامه من طرف زوار الموقع، فإذا كنت تريد إجراء تغييرات مثل تغيير تصميم الموقع، فمن الأفضل أن يكون موقعك في وضع الصيانة لتجنب أية انطباعات سيئة عن الموقع. إذ يتيح لك وضع موقع في وضع الصيانة إمكانية إظهار إشعار سهل الاستخدام مثل:"موقعكم تحت الصيانة، عودوا لاحقًا!"، يتم عادة توفير روابط بديلة للزيارة أو ربما أيضا توفير إطار زمني لوقت إجراء الصيانة وعودة الموقع. 2. إعداد الطلب order preferences تضم هذه الصفحة مجموع الإعدادات الخاصة بتفاصيل الطلب والمميزات التي تقدمها المنصة بخصوصه. بحيث تشمل كلا من التالي: تفعيل التقرير النهائي: أين يمكن عرض مراجعة للعناوين وطرق الشحن وعربة التسوق قبل عرض زر الطلب، ويكون ذلك كطلب تأكيدي للطلب (يفضل تفعيله كتجربة تسوق جيدة). السماح بإتمام الطلب كزائر: تعطيل أو تمكين السماح لغير المسجلين بإتمام الطلب، وذلك دون الحاجة للتسجيل. تعطيل أو تمكين خيار السماح للعملاء بإعادة الطلب من جديد بنقرة واحدة من صفحة سجل الطلبات مباشرة. تفعيل أو تمكين إعادة حساب تكاليف الشحن بعد تعديل الطلب. تفعيل أو تمكين تأخير الشحن في حالة طلب العملاء لذلك، إذ لا يحبذ بعض العملاء أحيانا خيار الشحن الفوري ويطلبون شحن منتجاتهم لاحقا. إجبار العملاء على الموافقة على شروط الخدمة قبل تقديم الطلب. تحديد الصفحة الحاوية لمجموع شروط وأحكام استخدام المتجر. كما يمكن ضبط مختلف حالات الطلب وتخصيص طرق ظهورها في السجلات، وذلك عن طريق الضغط على ضبط حالات الطلب من قائمة التصفح العلوية. 3. إعداد المنتج product preferences تضم هذه الصفحة مجموع الخصائص التي تخص المنتج وتفاصيله، وفيها يمكن: تحديد عدد الأيام التي يتم فيها اعتبار المنتج جديد، إذ يتم إزالة ملصق "جديد" عن صورة المنتج بعد تجاوز المنتج عدد الأيام المحددة، كما سيتوقف عرض المنتج في صفحة "المنتجات الجديدة"، يمكن تخصيص هذا بحسب نشاط المتجر. تحديد أقصى حجم لملخص وصف المنتج، بحيث يتم إجبار موظفيك على الالتزام بعدم تجاوز هذا الحجم أثناء كتابتهم لوصف المنتج. تحديد حسم الكمية بحسب المنتجات أو السمة: حسم الكمية هو حافز يقدم للمشتري يؤدي إلى انخفاض التكلفة لكل وحدة من السلع أو المواد عند شرائها بأعداد أكبر. تمكين ميزة عناوين URL صديقة لمحركات البحث (يفضل تفعيله) فعناوين URL الصديقة لمحركات البحث هي عناوين URL مصممة لتلبية احتياجات المستخدمين والباحثين. على وجه التحديد، تميل هذه العناوين إلى أن تكون قصيرة وغنية بالكلمات المفتاحية مثل :https://domain.dm/seo-friendly-url تخصيص صفحة المنتج: كعرض الكميات المتوفرة على صفحة المنتج أو إخفاءها، أو تحديد كمية معينة يتم الانطلاق ابتداء منها في عرض هذه الكميات. مخزون المنتجات. تقسيم المنتجات على صفحات والتحكم في عدد المنتجات الظاهرة في الصفحة الواحدة. والتصفيح عملية تقسيم محتويات صفحة موقع ويب، إلى صفحات منفصلة. فعوضًا عن عرض كل 10 آلاف منتج من منتجات المتجر يتم عرض هذه المنتجات على دفعات صغيرة في صفحات منفصلة. 4. إعداد العملاء customer preferences يتم في هذه الصفحة إعداد كل ما يخص عملائك، وذلك عن طريق: إعادة إظهار سلة التسوق عند تسجيل الدخول. إرسال بريد إلكتروني لعملائك بعد التسجيل. التحكم في المهلة المقبولة لإسترجاع كلمة المرور. السؤال عن تاريخ الميلاد كحقل إجباري لتسجيل حساب جديد. كما يمكن إدارة وتخصيص مجموعات المستخدمين، وتخصيص بيانات هذه المجموعات أو التحكم في مجموعات صلاحياتها حسب احتياجك. 5. إعداد جهات الاتصال contacts أين يمكن تخصيص معلومات الاتصال لكل من: المسؤول عن الموقع، في حالة حدوث مشكلة فنية على هذا الموقع. خدمة العملاء، المسؤول عن أية استفسارات أو طلبات العملاء. 6. إعداد الموقع من ناحية الترافيك والـ SEO يمكن في هذه الصفحة: تخصيص مجموعة وسوم الـ meta لتحسين ظهور الموقع في محركات البحث مثل: اسم الصفحات وعناوينها، مجموعة الكلمات المفتاحية لها، وصفها وغيرها من البيانات الوصفية (يشمل هذا مجموع الصفحات الظاهرة في الجدول في نفس الصفحة). يمكن أيضا ضبط عناوين الإعداد، وتعيين عنوان URL للمتجر. كما يمكن بقسم Schema Of URLs بذات الصفحة ضبط الأنماط الافتراضية لروابطك، إذ يتيح لك هذا القسم تغيير النمط الافتراضي لروابطك. فيمكن على سبيل المثال إضافة نص قبل الكلمة المفتاحية أو بعدها بصيغة {prepend:keyword:append}. على سبيل المثال، {‎-hey-:meta_title} لكي يضيف "‎-hey-my-title" في عنوان URL. توليد ملف robots.txt من ذات الصفحة (يفضل تحديثه على الأقل مرة شهريا) وهو ملف نصي يحتوي على إرشادات موجِّهة محركات البحث. أين يتم بها تحديد مناطق مواقع الويب التي يُسمح لهذه المحركات البحث عنها.باستخدام هذا الملف النصي البسيط، يمكن بسهولة استبعاد نطاقات كاملة أو أدلة كاملة أو دليل فرعي واحد أو أكثر أو حتى ملفات فردية من البحث عنها. 7. إعداد البحث Search سيمكن في هذه الصفحة تخصيص مجموعة خيارات البحث وضبطها بما يلائم احتياجاتك. الإعدادات المتقدمة في بريستاشوب سنناقش بعض الإعدادات المتقدمة التي يمكن ضبها للمتجر وسنبدأ بصفحة الروابط ذات الصلة. 1. روابط ذات صلة System information تضم هذه الصفحة مجموع معلومات الخادم والنظام من مثل: الإصدار، وإصدار PHP، وإصدار MySQL ومعلومات المتجر وقاعدة البيانات وغيرها من المعلومات. كما يضم القسم الذي يظهر أسفل الشاشة مجموع قائمة الملفات التي تم تغييرها بعد تثبيت المنصة. 2. الخصائص Performance تجمع هذه الصفحة بين العديد من الأدوات والنصائح التي قد تساعد على تحسين أداء المتجر على مستوى الخادم وسنذكر منها ما يلي: Smarty سمارتي Smarty هو اسم لغة القالب المستخدمة في قوالب PrestaShop. يتيح القسم إمكانية: تمكين أو تعطيل التخزين المؤقت cache. تحديد نوع التخزين المؤقت. كما يمكن من هذا القسم التحكم في طريقة عمل ذاكرة التخزين المؤقت للقالب وإمكانية تنظيف هذا النمط من التخزين. وكل ذلك بهدف الحصول على أداء أفضل للواجهة الأمامية، فيخزن PrestaShop صفحات HTML الخاصة بالمتجر مؤقتًا ولا يطلب تحميلها كل مرة عند كل طلب.يمكن للتخزين المؤقت في Smarty أن يعمل وفق أحد الخيارات: تجميع صفحات HTML وتخزينها مؤقتًا، ثم عرضها كما هي، حتى إذا تم تغيير المظهر في هذه الأثناء. (ينصح بهذا الخيار). إعادة ترجمة القوالب:إذا تم تحديث الملفات. PrestaShop قادر على معرفة متى تم تغيير ملف القالب. تمكين التجميع دوما: يُعَد هذا الخيار عمليا في حالة القيام بإجراء تعديلات على السمة أو القالب، ونحتاج إستعراض هذه التحديثات فورا. لا ينصح بهذا الخيار في حالات غير ذلك. وضع التصحيح Debug Mode تزداد الحاجة وراء تفعيل وضع التصحيح في حالة تشخيص الأخطاء والعمل على حلها أو الإبلاغ عنها، إذا لا ينصح بتفعيله في بيئة إنتاجية. وضع التصحيح Debug Mode هو وضع يحتاجه المطورون لعرض تشخيصات كاملة للمشاكل التي تظهر، إذ لا يتم الاكتفاء بعرض أكواد الأخطاء مثل 500 أو غيرها. يتم استعماله في تضييق نطاق المشاكل التي يواجهونها مما يساعد في حلها والتخلص منها. مميزات اختيارية يمكن الاستغناء عن بعض المميزات في سبيل تحسين الأداء، هذه المميزات الاختيارية تشمل: السمة، وخصائص المنتج، ومجموعات العملاء. يمكن إلغاء تفعيل أي منها إن لم ترى أن استعمالها موافق لحاجة الموقع والعملاء. الجمع والضغط والتخزين المؤقت يمكن تخصيص التخزين المؤقت والتحكم في نوع ملفات الواجهة الأمامية التي يمكن تخزينها مؤقتا. خوادم الوسائط ببساطة، إعداد خادم وسائط لا يعني إلا نطاقا آخرا للمتجر يتم استعماله لتحميل المحتويات الثابتة بدون ملفات تعريف ارتباط، كملفات تنسيقات الموقع وصور المنتجات وغيرها، بحيث تكون كامل هذه المحتويات المعروضة من هذا النطاق الفرعي مخزنة أو سهلة التخزين مؤقتا في المتصفحات وأجهزة المستخدمين، إذ لا يكون هنالك داعٍ من استدعائها كل مرة يتم فيها طلب صفحة ما، وبالتالي فإن تخزينها مؤقتا يعني أداء أفضل ومتجرا أسرع. في الحقيقة، هذا هو القسم الذي يمكنك من عليه إضافة نطاقات فرعية يتم من عليها تقديم هذه المحتويات الثابتة. التخزين المؤقت في الحقيقة، عندما نقوم بالدخول إلى موقع ما فنحن نطلب من الخادم أن يقوم بعرض موارد هذا الموقع لنا، قد يكون من بين هذه الموارد صور عارض شرائح بصفحة هبوط أو شعار الموقع مثلا. في العادة، مثل هذه البيانات ثابتة ولا تتغير إلا نادرا، وفكرة طلبها مع كل طلب لا تبدو عملية جدا. وبالتالي فإن الحاجة تدعو إلى تخزينها بمكان ما تستدعي منه بدل الخادم. ببساطة، هذا هو التخزين المؤقت. 3. الادارة Administration تحتوي صفحة "الإدارة" على خيارات وإعدادات عامة حول طريقة عمل PrestaShop نفسها. لها ثلاثة أقسام: عام وتحديد حجم الرفع وإشعارات. عام يمكن من على هذا القسم التحكم في عمر ملفات تعريف الارتباط لكل من واجهة الادارة وواجهة الزوار، كما يتيح إمكانية تمكين أو تعطيل كل من الفحص الآلي لتحديثات الإضافات المثبتة وتحديثها وكذلك التحقق من عناوين ip الخاصة بملفات تعريف الارتباط. (يفضل تفعيل كل من الخيارين). تحديد حجم الرفع يساعدك هذا القسم في تحديد الحجم المصرح به للملفات التي تم تحميلها من قبل فريقك وموظفيك (لا يشمل هذا عملائك). الإشعارات يمكن هذا القسم التحكم في نوع الإشعارات التي يمكن استقبالها في قسم الإشعارات. 4. البريد الإلكتروني emails سيمكن في هذه الصفحة التحكم في مختلف خصائص البريد الإلكتروني ويشمل ذلك: تخصيص مستقبل رسائل البريد الإلكتروني. السماح بإرسال مدخل HTML كرسالة بريد إلكتروني أو كنص أو كلاهما. تفعيل سجل رسائل البريد الإلكتروني. اختبار إرسال رسائل بريد إلكتروني إلى عنوان ما. 5. استيراد import يمكن في هذه الصفحة استيراد مختلف السجلات والكتالوجات، تُعَد هذه الطريقة عملية جدا في حال الرغبة في إضافة العديد من المنتجات مرة واحدة. تشمل هذه السجلات: التصنيفات. المنتجات. عينة ملف التركيبات. العملاء. العناوين. العلامات التجارية. الموردين. الأسماء المستعارة. جهات الاتصال للمخزن. كما يمكن الحصول على عينات قابلة للاستيراد بصيغة ملف csv لملفات لكل سجل بالقائمة الجانبية. 6. الفريق employees تتيح هذه الصفحة إمكانية إدارة مختلف الموظفين الذين لهم حق الوصول إلى لوحة التحكم للمتجر. بشكل افتراضي، ستجد الحساب الذي تم إنشاؤه أثناء تثبيت المتجر، والذي يتم تعيينه تلقائيًا على أنه SuperAdmin أو مشرف مميز. بحيث يتمتع المشرف المميز بإمكانية الوصول إلى جميع ميزات اللوحة دون قيود. كما يمكن بذات الصفحة التحكم في مختلف خيارات الموظفين أو إضافة موظفٍ من القسم العلوي للصفحة. 7. قاعدة البيانات sql requests يمكن من هذه الصفحة تطبيق استعلام SQL مخصص، إذ قد يكون هذا عمليا جدا في خدمة بعض الإحتياجات، كما يمكن انطلاقا منها الحصول على نسخة أو نسخ احتياطية لقاعدة بيانات المتجر. يفضل تصدير نسخ احتياطية بشكل دوري لقواعد البيانات، يمكن أن يكون هذا مفيدًا جدًا في حالات عطل. 8. السجلات logs صفحة "السجلات" هي المكان الذي يمكن فيه إلقاء نظرة على جميع الإجراءات التي تم تنفيذها في المتجر، وبالتالي العثور على أخطاء PHP التي قد تصيب المتجر. فمن المهم جدًا تتبع السجل لضمان استقرارٍ أفضل للمتجر. 9. خدمات الويب WebService في هذه الصفحة، يمكن تمكين خدمة الويب للمتجر، أين يمكن إنشاء مفاتيح واجهات برمجية API للسماح لها بالوصول إلى موارد المتجر وإدارتها عن طريق طلبيات HTTP. يكون هذا عمليا في الحاجة لتطوير تطبيقات هاتف محمول تستند على موارد المتجر مثل تطبيق أندرويد مرافق للمتجر. يمكن إنشاء مفتاح خدمة ويب جديد عن طريق الضغط على "إضافة مفتاح خدمة ويب جديد" من أعلى الصفحة، ثم إرفاق كل من المفتاح ووصفه ومجموعة صلاحياته. بعد حفظ المفتاح، يمكن استعماله في مصادقة طلبيات HTTP للوصول إلى موارد المتجر. خاتمة تعرفنا في هذه المقالة على أن الانطلاق لمستوى آخر من النجاح في مجال المتاجر الإلكترونية يتطلب إعدادًا مضبوطا وتهيئةً جيدة للمتجر، كما أنه سيحتاج تتبعًا دوريا لسجلات الإعداد والأخطاء، إذ يمكن لكل هذا أن يكون مساعدًا في فهم حاجة العملاء والموظفين وكواليس سير المتجر، وبالتالي الإرتقاء بالمتجر إلى ما هو أفضل. اقرأ أيضًا المقال التالي: جولة في لوحة تحكم بريستاشوب واستكشافها المقال السابق: تثبيت متجر بريستاشوب إدارة المنتجات في متجر بريستاشوب التعامل مع العملاء وطلباتهم في متجر بريستاشوب ضبط طرق الدفع وعملية الشحن لمتجر بريستاشوب
  15. يتعلق هذا بشكل وثيق بطبيعة نوع آخر من رموز token هو رمز الوصول access token. عندما يقوم المستخدم بتسجيل الدخول، يصدر خادمنا رمز وصول، وهو بشكله البسيط رمز أو سلسلة نصية تستعمل للوصول إلى خادم الواجهة البرمجية API. فعندما يحتاج العميل إلى الوصول إلى الموارد المحمية على الخادم، فإن هذا الرمز يسمح له بذلك. من هذا المنطق، يجب أن تخضع هاته الرموز إلى قواعد حماية عالية. من بين استراتيجيات الأمان توجد تلك التي تنص على إنشاء رموز وصول ذات عمر قصير، بمعنى أنها صالحة فقط لفترة قصيرة محددة من حيث الساعات أو الأيام. وبالتالي فإن العميل يحتاج دوما امتلاك رموز وصول غير منتهية الصلاحية. من بين طرق إنتاج رمز وصول جديد، يوجد طريقة التحديث عن طريق إنشاء رمز تحديث للعميل يتيح له استبدال رمز وصول منتهي الصلاحية بآخر جديد. هذا الرمز هو ما يعرف بـ refresh token. يعني هذا أن العملاء لن يجبروا على إعادة تسجيل الدخول وكل عملية التحديث ستحدث خلف الكواليس. وفيما يلي طريقة عمله وكيفية حمايته للموارد: يطلب العميل رمز وصول عن طريق المصادقة مع خادم نسميه خادم الترخيص Authorization Server وهو جهة أو خدمة أو واجهة في واجهتنا الخلفية تقوم بتولي عمليات الترخيص والتوثيق وتوليد رموز الوصول. يقوم خادم الترخيص بمصادقة العميل والتحقق من صحة منح الترخيص، فإذا كان صالحًا ،يقوم هذا الخادم بإصدار رمز وصول ورمز مميز للتحديث. يقوم العميل بتقديم طلب مورد محمي إلى خادم يخزن المورد نسميه خادم المورد Resource Server من خلال تقديم رمز وصول access token. هذا الخادم هو جهة أو خدمة أو واجهة في واجهتنا الخلفية تقوم بتولي عمليات تقديم الموارد وعرضها وإدارتها. يتحقق خادم المورد Resource Server من رمز الوصول Access token، وإذا كان صالحًا، فإنه يخدم الطلب. يتم تكرير الخطوتين 3 و 4 حتى تنتهي صلاحية رمز الوصول. في حالة انتهاء صلاحية رمز الوصول، يقوم خادم المورد Resource Server بإرجاع خطأ رمز غير صالح. في هاته الحالة يطلب العميل رمز وصول جديد من خلال المصادقة مع خادم الترخيص Authorization Server وتقديم رمز التحديث إليه. يقوم خادم الترخيص Authorization Server بمصادقة طلب العميل والتحقق من صحة رمز التحديث، وإذا كان صالحًا، فإنه يصدر رمز وصول جديد. وهكذا.. تنبيه بشأن خطأ في الصورة: رمز وصول وليس رمز توصيل.
  16. من غير المنطقي أن يتم إخفاء العناصر على المحور X في حاوية مرنة (display:flex) مرفقة بالقيمة wrap في الخاصية flex-wrap، فأي عنصر يحمل عرضا لا يكفي سيتم إنزاله للسطر الثاني وهكذا. أظن أن المشكلة بالضبط هي في تهيئة المتصفح لتفسير الصفحة على عرض معين. إذ تحدث المشكلة أحيانا عند الانتقال من عرض 1 الى عرض 2 مباشرة في المتصفح دون انتقالة بين العرضين. فعندما نقوم مثلا باستعراض عنصر ما عن طريق Inspect ثم نقوم بتغيير العرض الى عرض معين (وليكن 307px) ثم نغلق شاشة الاستعراض. ونقوم مباشرة باستعراض العنصر مرة ثانية فسيحافظ المتصفح على العرض الذي استعرضت به العنصر سابقا ويظهر لك مباشرة 307 في شاشة الاستعراض. وبسبب الانتقالة من عرض الشاشة كاملة الى العرض 307 دون تدرج يحدث أن لا يستجيب المتصفح لهاته الانتقالة وتظهر وكأنها غير متجاوبة. وقد تأخذ من البعض ساعات وساعات وهو يحاول ضبط التجاوبية ولكن دون فعالية. وهذا ما حدث معك ببساطة. وكدليل عن ذلك، لاحظ أن حتى شريط التنقل الخاص بموقع CodePen لا يظهر بشكل متجاوب أثناء عمل هاته الانتقالة مباشرة. في حين أن نفس المشكلة لا تظهر وبنفس الموقع عند مجرد إعادة تهيئة المتصفح ليلتقط هذا العرض المستهدف. يمكنك ذلك عن طريق الضغط على أيقونة الشاشات مرتين لتهيئة العرض مجددا. النتيجة:
  17. سنبدأ ببداية بهذه المقالة سلسلة مقالات تعليمية تقوم بشرح كل ما يتعلق بمنصة PrestaShop -وتُلفظ بريستاشوب- تستهدف ذوي الخلفية التقنية وغيرهم و تهدف إلى تعليمك كيفية إنشاء متجرك الإلكتروني عن طريق واحدة من أكثر منصات التجارة الإلكترونية المجانية شعبية، ستتعلم أيضا كيفية إعداده وتهيئته، تخصيصه وإدارته، وسنتطرق فيما يأتي من هذا المقال لكيفية تثبيته وتفاصيل ذلك. بريستاشوب هو أحد أنظمة إدارة المحتوى الفرنسية، ومثله مثل باقي نظم إدارة المحتوى يتيح إمكانية إنشاء موقعك الإلكتروني وتخصيصه بسهولة واحترافية عاليتين دون الحاجة لأي خلفية تقنية. توفر المنصة طرقا مختلفة للتثبيت، تتحكم في الاختيار بينها الحاجة وراء كل طريقة والهدف منها، وسنتعرف عليها فيما سيأتي: كيفية إعداد خادم محلي لتثبيت بريستاشوب عليه بغرض التطوير محليًا على الحاسوب، أو يمكن رفع متجر بريستاشوب مباشرة على الخادم وتثبيته وبدء استعمال المتجر. هذه المقالة جزء من سلسلة مقالات حول إعداد متجر بريستاشوب، وإليك فهرس مقالات السلسلة كاملة: تثبيت متجر بريستاشوب التهيئة الأولية لمتجر بريستاشوب جديد جولة في لوحة تحكم بريستاشوب واستكشافها تخصيص متجر بريستاشوب إدارة المنتجات في متجر بريستاشوب التعامل مع العملاء وطلباتهم في متجر بريستاشوب ضبط طرق الدفع وعملية الشحن لمتجر بريستاشوب إدارة متاجر متعددة عبر بريستاشوب خطوات إعداد خادم محلي تدعوا الحاجة إلى تثبيت خادم محلي في حالة الرغبة في تثبيت بريستاشوب محليا على الحاسوب إما بغرض اختباره وتجربته أو بغرض التطوير فيه. تثبيت xampp في ويندوز windows نزل حزمة التثبيت الموافقة لنظام التشغيل Windows الذي لديك من الموقع الرسمي لـ xampp. افتح الملف المنزل لتشغيل أداة تثبيت الخادم، ثم اضغط على "التالي" في نافذة الإعداد التي تظهر. تأكد من تحديد كامل المكونات المراد تثبيتها واضغط على "التالي Next". اختر مجلدًا لتثبيت XAMPP واضغط على "التالي Next" ثم ألغ تحديد الخيار "معرفة المزيد حول Bitnami for XAMPP" واضغط على "التالي Next". ستظهر نافذة "جاهز للتثبيت" على الشاشة، واضغط على "التالي Next"، ثم اضغط على "إنهاء Finish" بعد انتهاء التثبيت. ابدأ تشغيل لوحة تحكم XAMPP من خلال خيار "تشغيل كمسؤول Run as Admin". ستظهر "لوحة تحكم XAMPP" على الشاشة، ثم انقر فوق "بدء" الإجراء لبدء كل من وحدات "Apache" و "MySQL". تثبيت xampp في لينكس linux نزّل حزمة التثبيت الموافقة لنظام التشغيل لينكس Linux الذي لديك من الموقع الرسمي لـ xampp ثم انتقل إلى حاو ملف الحزمة. cd /home/[username]/Downloads بدل username إلى اسم المستخدم لنظامك. اجعل حزمة التثبيت قابلة للتنفيذ عن طريق إعطائها مجموعة الصلاحيات المناسبة. sudo chmod 755 [package_name] شغّل ملف التثبيت. sudo./xampp-linux-x64-7.3.5.1-installer.run شغل XAMPP بالأمر التالي. sudo opt/lampp/lampp start واتبع نفس خطوات التثبيت الموضحة في القسم السابق: تثبيت وإعداد خادم xampp > في ويندوز windows. للاستزادة يفضل الإطلاع على دليل اعداد خادم ويب محلي خطوة بخطوة. متطلبات متجر بريستاشوب قبل التثبيت تحتاج المنصة توفر المتطلبات التالية في الخادم الذي تشتغل عليه (سواء في خادمك المحلي أو على الاستضافة المشتركة): table { width: 100%; } thead { vertical-align: middle; text-align: center; } td, th { border: 1px solid #dddddd; text-align: right; padding: 8px; text-align: inherit; } tr:nth-child(even) { background-color: #dddddd; } نظام التشغيل لينكس linux، ويندوز windows أو أي نظام قائم على نظام تشغيل يونكس unix-based خادم الويب Apache 2.2 فما أكثر نسخة PHP يقترح نسخة 7.1 فأكثر، نسخة 7.4 مناسبة، على أن نسخة 8 غير مدعومة بعد في المنصة نسخة MySql يشترط نسخة 5.6 على الأقل، كما يفضل نسخ أحدث ذاكرة الخادم الحية RAM يشترط على الأقل 265M كما يمكن لبريستاشوب أن تعمل مع خادم Nginx النسخة 1.1. يجدر الذكر أن هذه المتطلبات صالحة حتى وقت كتابة المقال، ولذلك يفضل دوما الإطلاع على متطلبات النسخة التي تحاول تثبيتها من على توثيق المنصة. هذه المتطلبات في العادة متوفرة على خوادم الاستضافة المشتركة أو على الخوادم المحلية، ولكن يمكنك بكل حال من الأحوال استعمال أداة التحقق من متطلبات الخادم من PrestaShop (كخطوة إضافية) لتفحص ذلك بالتفصيل عن طريق اتباع الخطوات التالية: أولًا، نزّل النسخة الأخيرة من ملف php-ps-info من رابط المستودع على GitHub ثانيًا، ارفع هذا الملف إلى خادمك إلى المسار العام بداخل publlic_html. أما في حالة عملك على تثبيت المنصة على الخادم المحلي فتأكد من رفع الملف إلى مجلد htdocs الخاص بخادم xampp أو lampp على لينكس. يتوفر المجلد في المسار التالي في ويندوز windows: c:/xampp/htdocs وعلى المسار التالي في لينكس Linux: /opt/lampp ويكون كل هذا بشكل افتراضي كون عملية تحديد المسار مُتحكّمٌ فيها عن طريق عملية تثبيت الخادم أول الأمر. ثالثًا، افتح المتصفح واذهب إلى الرابط التالي http://your-domain.com/phppsinfo.php أو http://localhost/phppsinfo.php في حالة استعمال خادم محلي. رابعًا، تأكد أن تستعمل prestashop لكل من كلمة المرور واسم المستخدم ثم اضغط على زر sign in. أخيرًا، ستحصل على صفحة كالتالي: تخبرك هذه الصفحة عن كامل ما تتطلبه المنصة، من نسخة PHP إلى إضافاتها وإعداداتها ومتطلبات الخادم بشكل عام الحالية، المقترحة والمطلوبة، حيث يعبر اللون الأحمر عن عدم توافق إعداد أو إضافة ما مع المطلوب في حين أن اللون الأخضر والبرتقالي يمثلان المتوافق المقترح والمتوافق فقط على الترتيب. تثبيت متجر بريستاشوب هنالك عدة طريق لتثبيت متجر بريستاشوب تختلف باختلاف الهدف من عملية التثبيت، فيمكن تثبيت متجر بريستاشوب على خادم محلي على حاسوبك بغرض تطوير المتجر ثم رفعه لاحقًا على الخادم أو يمكن مباشرة رفع المتجر على الخادم مباشرة وتثبيت وتطويره كما توفر بريستاشوب طريقة سريعة لتثبيت متجر بريستاشوب عبر سطر الأوامر، سنناقشها كل الطرق بالتفصيل. تثبيت متجر بريستاشوب محليا شائع استعمال حزمة xampp لذلك شرحناه في القسم السابق "خطوات إعداد خادم محلي"، وفي حالة عدم امتلاكك لخادم محلي أو تريد إنشاء متجر مباشرة على خادم واستضافة مباشرةً، فتخطى هذا القسم وانتقل إلى القسم اللاحق "رفع متجر بريستاشوب على الخادم". أولًا، تأكد أن تفك ضغط الملف المحمل من موقع بريستاشوب داخل مجلد htdocs الكائن داخل مجلد xampp في ويندوز windows أو lampp في لينكس linux. ثانيًا، شغّل الخادم المحلي xampp، يمكن ذلك في ويندوز Windows عن طريق فتح لوحة تحكم xampp من المسار c:\xampp\xampp-control.exe ثم الضغط على زري البدء start لكل من خادم Apache وقواعد بيانات MySql. أو عن طريق تشغيل الأمر التالي في لينكس: sudo /opt/lampp/lampp start ثالثًا، انتقل إلى الرابط التالي: http://127.0.0.1/prestashop_folder/ وذلك لتشغيل أداة تثبيت prestashop، ثم تابع نفس خطوات استعمال مساعد التثبيت الموضحة سابقا في القسم التالي "خطوات تثبيت متجر بريستاشوب". رفع متجر بريستاشوب على الخادم لتثبيته أولًا، نزل الملف المضغوط لحزمة PrestaShop، وفك ضغطه على الجهاز الشخصي. يمكنك تنزيل النسخة الأخيرة من PrestaShop مباشرة من الموقع الرسمي للمنصة وذلك بعد ملئ النموذج الذي يظهر والموافقة على سياسات الاستخدام. ثانيًا، ستحصل على مجلد باسم prestashop مرفقا بنسخة الحزمة المرافقة، يحتوي هذا المجلد الملفات التالية: ملف Install_PrestaShop.html: يحوي توثيقا لطريقة التثبيت. ملفات الموقع متمثلة في ملف index.php وملف مضغوط باسم prestashop (تأكد أن لا تقوم بفك ضغطه). ثالثًا، أنشئ قاعدة بيانات على الخادم الخاص للمتجر، ومستخدما لهذه القاعدة بكامل صلاحيات الإنشاء، التعديل والحذف، ويفضل استعمال phpMyadmin باتباع الخطوات التالية: توجه إلى phpMyadmin ووثق دخولك دخولك وتوجه إلى حقلي الادخال التاليين: أدخل اسم قاعدة البيانات في الحقل الأول ومن القائمة المنسدلة بجانب الحقل وابحث عن الترميز بالاسم utf8generalci، ثم اضغط على زر الإنشاء create ليتم إنشاء قاعدة البيانات الخاصة بنا. نحتاج تاليا إنشاء مستخدم كامل الصلاحيات باسم مستخدم وكلمة مرور نحتاج الاحتفاظ بها لإستعمالها لاحقا. ولذلك نحتاج التوجه إلى privileges من قائمة التصفح العلوية التي تظهر أثناء الضغط على اسم قاعدة البيانات الخاصة بك المنشأة حديثا. اضغط على add user account واملأ خانتي اسم المستخدم وكلمة المرور وتأكد أن تقوم بالاحتفاظ بهذه البيانات، ومن قائمة الصلاحيات وحدد كامل الصلاحيات عن طريق الضغط على check all. اضغط على Go من أسفل مربعات الحوار. ستظهر رسالة يتم فيها اخبارك أن المستخدم تمت إضافته. رابعًا، ارفع محتويات المجلد مفكوك الضغط prestashop إلى وجهة الملفات المختارة، ويمكن ذلك عن طريق استعمال بروتوكول نقل ملفات مثل FileZilla، أو عن طريق استعمال مدير الملفات الخاص بإستضافتك. يمكنك تثبيت وإعداد FileZilla في ويندوز Windows باتباع الخطوات التالية: نزل ملف تثبيت FileZilla الموافق لنظام التشغيل Windows الخاص بك من الموقع الرسمي للبرنامج. شغل ملف الإعداد. اقرأ ووافق على اتفاقية الترخيص. اضغط على " التالي " لحد إظهار زر التثبيت install ثم اضغطه. بعد اكتمال التثبيت سيمكن ضغط إنهاء أو Finish. أما في لينكس، فيمكنك ببساطة تثبيت FileZilla عن طريق مدير الحزم في التوزيعة التي تستعملها، مثلًا في أوبنتو، يمكن استعمال مدير الحزم apt بتنفيذ الأمرين التاليين: sudo apt update sudo apt install filezilla يمكنك الإطلاع على دليل استخدام FileZilla وphpMyAdmin لإدارة ملفات وقواعد بيانات.. بعد استكمال تثبيت وإعداد FileZilla سيمكن استئناف عملية نقل الملفات إلى خادمنا عن طريق الخطوات التالية: من القائمة العلوية في النافذة التي تظهر بعد فتح البرنامج املأ بيانات مستخدم ftp الخاص باستضافتك ثم اضغط على connect. ستلاحظ ظهور الملفات المرفوعة على خادمك في القسم الأيمن تحت عنوان remote site في مقابل كل الملفات على حاسبك في الجانب الأيسر للشاشة. انتقل إلى مجلد prestashop وارفع محتوياته إلى مجلد public_html في خادمك عن طريق اختيار upload من القائمة التي تظهر عند الضغط على الزر الأيمن للفأرة بعد تحديد المحتويات (يمكنك استثناء ملف install_Prestashop.html والاكتفاء برفع ملف index.php والملف المضغوط prestaShop.zip عن طريق تحديد كليهما ثم اختيار upload أو رفع من القائمة المنسدلة). يمكنك متابعة الحالة في مربع الحوار أسفل الشاشة. خطوات تثبيت متجر بريستاشوب ويتم ذلك عن طريق تصفح للمسار العام لموقعك مرفقا بكلمة install فاستعمل رابط localhost المحلي إن كنت تعمل محليًا على حاسوبك: http://127.0.0.1/prestashop_folder/install أو استعمل النطاق الخاص بالاستضافة إن رفعت موقعك على خادم استضافة مباشرةً: http://www.example.com/prestashop_folder/install حيث ضع مكان prestashop_folder اسم مجلد بريستاشوب الذي وضعته في الخادم. املأ بعد ذلك النماذج بالبيانات المناسبة في كل من النماذج التي تظهر: الخطوة 1: الترحيب وإعداد اللغة. الخطوة 2: الموافقة على اتفاقية الترخيص. الخطوة 3: تأكد الأداة من توافقية النظام وفحصها. الخطوة 4: ملئ استمارة معلومات المتجر. الخطوة 5: ملئ استمارة معلومات البيئة وقواعد البيانات. يمكنك ترك خانة بادئة الجداول فارغة. الخطوة الأخيرة: استكمال التثبيت. بعد اكتمال التثبيت ونجاحه يفضل حفظ معلومات الدخول في مكان آمن، كما يرجى التأكد، لأسباب أمنية، من حذف الملفات والمجلدات التالية من على خادمك: مجلد ‎/install. مجلد ‎/docs. ملف README.md. قد يتطلب عليك أحيانا البحث عن المجلد بالسابقة admin وتغيير اسمه إلى admin فقط. تثبيت متجر بريستاشوب باستعمال سطر الأوامر توفر المنصة كخطوة متقدمة طريقة تثبيت عن طريق سطر الأوامر، موجهة للمستخدمين المتقدمين، الذين يفضلون واجهات الأوامر كونها توفر وسائل أكثر إيجازًا وقوة للتحكم في البرامج أو نظم التشغيل. يتم استعمال هذه الطريقة كالتالي: أولًا، فك ضغط الملف المضغوط pestashop.zip بداخل مجلد public_html في خادمك المستضيف أو htdocs في خادمك المحلي. ثانيًا، الدخول إلى مجلد install. cd install ثالثًا، تشغيل ملف php بعنوان index_cli.php. php index_cli.php ستظهر شاشة كالتالي: قائمة الخيارات التي تظهر هي ما يخص خيارات التثبيت، من لغة ومنطقة زمنية وغيرها. يمكنك تخصيص أي منها عن طريق طباعة ذات الأمر السابق، مع إضافة لاحقة باسم الخيار مرفقة بقيمة لها، مثل: php index_cli.php --option=value في العادة يتم تخصيص مجموعة الخواص التالية: php index_cli.php --domain=example.com --db_server=sql.example.com --db_name=prestashop --db_user=root --db_password=123456789 تتضمن قائمة الخيارات كل من التالي: الخاصية وصف الخاصية معين افتراضيا كـ timezone يعبر عن المنطقة الزمنية المرافقة. localhost step معين افتراضيا كـ process. send_email إرسال رسالة بريد إلكتروني يتم فيها إخبار المسؤول عن تمام التثبيت. true prefix سابقة الجداول بقواعد البيانات. ps_‎ password كلمة مرور المشرف. 0123456789 newsletter اشتراك المشرف في صندوق البريد الإلكتروني لـ prestaShop. true name اسم المتجر. PrestaShop lastname الاسم الأخير للمشرف. Doe language كود الـ iso الخاص بلغة المتجر fr firstname الاسم الأول للمشرف. Jhon engine محرك قواعد البيانات. InnoDB email البريد الإلكتروني الخاص بالمشرف. pub@prestashop.com domain اسم نطاق الموقع. localhost db_user اسم مستخدم قواعد البيانات. localhost db_server خادم قواعد البيانات. localhost db_password كلمة مرور مستخدم قواعد البيانات. db_name اسم قواعد البيانات. prestashop db_create إنشاء قواعد البيانات في حالة عدم وجودها. false db_clear تفريغ ومسح جداول قواعد البيانات في حالة وجودها. true country البلد المرافق. fr إزالة تثبيت متجر بريستاشوب يمكن إزالة متجر بريستاشوب والتخلص من جميع المعلومات المسجلة في المتجر: العملاء، الطلبات، الفواتير، المنتجات …إلخ. بسهولة عن طريق حذف مجلد الملفات prestashop، ويمكن ذلك عن طريق FileZella أو مدير الملفات الخاص باستضافتك. ستحتاج أيضا، إلى حذف كل ما يتعلق بها من جداول وبيانات في قواعد البيانات عن طريق حذف قاعدة بيانات متجرك مباشرة. لحذف قواعد بيانات عن طريق phpmyadmin اتبع التالي: اضغط على قواعد بيانات متجرك من لوحة تحكم phpmyadmin. اضغط على عمليات operations من قائمة التصفح العلوية. اضغط على Drop the database (DROP)‎ من قسم حذف قواعد البيانات remove database. قد لا يتم إعطاء مثل هكذا صلاحيات في بعض الاستضافات المشتركة في phpMyadmin، إذ يتم إنشاء وحذف قواعد البيانات عن طريق وسائل أخرى مثل توفير صفحة منفصلة لإضافة، حذف وإعادة تسمية قواعد البيانات. الخاتمة تعرفنا في هذا المقال على بريستاشوب ومتطلبات تثبيتها وتفاصيل طرق ذلك المختلفة على استضافتنا المشتركة، محليا على الحاسوب وباستعمال سطر الأوامر مرورا بكيفية الإزالة وغيرها - يعتبر انطلاقة لنا في هذا العالم، وحجرَ أساسٍ في إدارة متجرنا الخاص على الإنترنت عن طريق واحدة من أكثر المنصات تمييزًا وشيوعًا. اقرأ أيضًا المقال التالي: تهيئة متجر بريستاشوب جديد الخطوات الأولى في بريستاشوب إدارة متاجر متعددة عبر بريستاشوب
  18. الاستعلام export وحده في جافاسكربت يستعمل لتصدير روابط للوظائف والدوال أو الكائنات من ملفات تدعى بالوحدات النمطية modules. فجافاسكربت الحديثة لم تعد تضطرك الى كتابة كامل الشيفراتت البرمجية من دوال وكائنات في ملف واحد، بل أصبح يمكنك إنشاء ملفات خاصة بكل دالة وبكل كائن وتصديرها لإستعمالها في ملفات أو سياقات أخرى. هناك نوعان من التصديرات عن طريق export: التصديرات المسماة export function functionName(){...} التصديرات الافتراضية export default expression; أما بخصوص module.export فهي طريقة تخص NodeJs للتصدير، ومثلما واضح أنها تقوم بالوصول الى التابع export للكائن module. الكائن module في NodeJS هو عبارة عن كائن JavaScript عادي يمثل الوحدة النمطية الحالية (التي يتم كتابة الشيفرة فيها). و module هنا هو بشكل بسيط تابع لهذا الكائن يقوم بنفس وظيفة التصدير بمميزات أكثر من حيث أن كل ما ستقوم بتعيينه لـ module.exports سيتم عرضه كوحدة نمطية مستقلة. بشكل بسيط يختلفان من حيث: export تخص جافاسكربت في حين أن module.exports تخص NodeJs. يمكن لـ export ان تقوم بتصدير العديد من الدوال والمتغيرات على عكس module.exports التي تقوم بتصدير أي ما يسند اليها كوحدة نمطية واحدة. وبمعنى آخر لا يمكن أن يحوي ملف جافاسكربت واحد العديد من module.exports في NodeJs في حين أنه يمكن ان يحوي ملف جافاسكربت واحد على العديد من تصديرات export في جافاسكربت. من ناحية الاستعمال: تستعمل module.exports لتصدير كائنات ملفات الاعداد وملفات الخدمات مثل ملفات اعداد ويب باك webpack.config.js و axios.config.js و غيرها. أين يجب أن تحوي خدمة أو كائنا أو وظيفة واحدة مستقلة. تعتبر هنا module.exports طريقة جيدة وشائعة لتصديرها. تستعمل export لتصدير متغيرات، دوال من ملفات. مثل تصدير دالة للترجمة ودالة لتغيير اللغة وكائن الترجمات من ملف لغات language.js مثلا. يتوفر في NodeJs مكافئ لـ export أيضا، هو exports.
  19. بشكل عام، تتباين طرق تخزين رموز المصادقة بين: التخزين المحلي LocalStorage، تخزين الجلسة SessionStorage أو التخزين عن طريق ملف تعريف الارتباط Cookies. يتم عادة وضع رموز التوثيق في تخزين الويب Web Storage للمتصفحات، والذي يعمل بشكل ممتاز في أغلب حالات الاستعمال. وبشكله المجمل. ويحوي هو ذاته طريقتين تشتركان في حيث أنهما يستعملان مساحة تخزين المتصفح: التخزين المحلي localStorage: حيث أن البيانات تبقى مخزنة حتى يتم حذفها اما يدويا أو عن طريق جافاسكربت التطبيق. تخزين الجلسة sessionStorage: أين يتم حفظ التغييرات التي تم إجراؤها وإتاحتها للصفحة الحالية فقط، وبمجرد إغلاق النافذة، يتم حذف التخزين. من بين عيوب هاته الطريقة: على عكس ملفات تعريف الارتباط، يتم تضييق نطاق الوصول للبيانات المخزنة محليا في نطاق معين ولا يمكن الوصول إلى هاته البيانات من قبل أي نطاق آخر بما في ذلك النطاقات الفرعية، ولذلك فإن تخزين الويب ليس خيارا جيدا ان كنت تستعمل نطاقات فرعية. يمكن الوصول إلى مساحة تخزين الويب من خلال JavaScript في نفس المجال، لذا فإن أي سكربت JavaScript يعمل على موقعك سيكون له حق الوصول إلى مساحة تخزين الويب، قد يسبب هذا هجمات البرمجة النصية عبر المواقع (XSS أو Cross Site Scripting). الطريقة الأخرى للتخزين هي في استخدام ملفات تعريف الارتباط. وتتميز بأن لها عمر يمكن التحكم فيه عن طريق التالي: يمكن تدمير ملفات تعريف الارتباط بعد إغلاق المتصفح (ملفات تعريف ارتباط الجلسة session cookies). كما يمكن أن تكون ملفات تعريف الارتباط دائمة (لا يتم إتلافها بعد إغلاق المتصفح) مع انتهاء الصلاحية. يمكن قراءة ملفات تعريف الارتباط بواسطة كل من JavaScript وجانب الخادم (في حالة Node مثلا). من بين عيوب هاته الطريقة: لملفات تعريف الارتباط حجم أقصى لا يمكن تجاوز (4 كب)، ولذلك فإن هاته الطريقة قد تسبب بعض المشاكل أحيانا. يمكن أن تكون ملفات تعريف الارتباط عرضة لهجمات طلب التزوير عبر المواقع (CSRF أو XSRF). إذا كنت تستخدم ملفات تعريف الارتباط، سيقوم المتصفح تلقائيًا بإرسال معلومات المصادقة مع كل طلب إلى الخادم. أما إذا كنت تستخدم تخزين ويب فيجب عليك كتابة الأمر الذي يدير بالضبط معلومات المصادقة التي يتم إرسالها إليه. كأن ترسلها في الـHeaders أو كمعامل في طلبات GET أو POST. في الأخير، يجب معرفة أن ما يجب الاهتمام به بأكبر قدر هو كيفية تخزين رمز التوثيق على الخادم وكيفية التعامل مع الطلبات التي يستقبلها الخادم من العميل لأن الخادم هو ما يتحكم في كيفية تسيير هذا الأمر، وان قام الخادم بتغطية كامل هاته الاعتبارات فلن تختلف الطريقة والأخرى كثيرا. على أن الشائع والمفضل لدى أغلب المطورين التخزين المحلي في تخزين الويب localStorage لما له من أفضلية من ناحية سهولة التعامل معه. اقرأ أيضا: التخزين المحلي (Local Storage) في HTML5 ملفات تعريف الارتباط وضبطها في جافاسكربت
  20. يجب أولا فهم كل منهما على حدة قبل محاولة إدراك الفروق الجوهرية التي تميز كلا منهما عن الآخر: عندما تقوم الدالة بإعادة استدعاء نفسها يدعى هذا بالتعاود recursion، أي أنها تعاود استدعاء نفسها من جديد. مثال: function factorial(n) { console.log(n); if(n==0){ // ان كان المعامل الممرر يساوي واحد return 1; // نعيد 1 ونكسر التعاود }else{ return factorial(n -1); // وإلا فإننا سنحتاج تقليل قيمة المعامل ب1 وإعادة استدعاء الدالة } } factorial(1); عندما نقوم بإستدعاء الدالة factorial وتمرير المعامل 1 ستقوم الدالة بالتحقق من ما ان كان 1 يساوي 0 أو لا، فإن كان ستقوم بإعادة عدد عادي. وإلا فإنها ستقوم بإنقاص 1 من 1 وإعادة استدعاء الدالة عن طريق ناتج الطرح أي 0. هذا ببساطة ما يدعى بالتعاود. الحلقة التكرارية loop هي بشكل بسيط تكرار شيفرة معينة كذا مرة. مثال: ان كنا نريد طباعة العدد 5 ثلاث مرات في شاشة الكونسول فإن يخدم فكرتنا هنا هي الحلقات التكرارية. for(var i=1 ;i<3 ; i++){ console.log(5) } في هذا المثال، نحن نقوم بالاعتماد على الحلقة التكرارية for لإعادة طباعة 5 3 مرات. وفيما يلي أهم الفروق بينهما: التعريف، بشكل واضح فإنهما يختلفان من حيث المفهوم والفكرة التي يخدمها كل منهما. السرعة، إذ أن تنفيذ التعاود أقل وأبطئ نسبيا من التكرارات التي هي أسرع منه من ناحية التنفيذ. السياق، إذ يمكن للتكرارت إستعمال أية متغيرات معرفة بشكل عام في حين أن التعاود لا يمكنه إلا إستعمال سياق خاص به، إذ لا يمكن الوصول إلى متغير خارج الدالة التي تقوم بالتعاود. التعقيد، يعتبر التعاود أعقد نسبيا من ناحية فهم وتجريده. قابلية القراءة، إذ يعتبر التعاود أفضل وأنظف من ناحية قابلية القراءة. ويشتركان في حيث أنهما: الشرط، من الواضح أن كل منهما يمتلك شرطا خاصا لكسر التكرار أو التعاود. يمكنك الاستزادة بالاطلاع على التعاود حسب ويكي حسوب، الحلقات التكرارية في البرمجة.
  21. في الحقيقة، لا مشكلة بإستعمال أي سياق مادام يؤدي الغرض ويعطي التنسيق أو التموضع المطلوب، ولكن الذي يتحكم ويؤول خاصية عن أخرى هو بالدرجة الأولى تجاوب كل خاصية مع مختلف حالات الاستعمال التي يمكن لها أن تحدث. على سبيل المثال: ان كنا نريد مثلا أن يظهر زر التسجيل في القائمة البريدية في منتصف الترويسة الأساسية للموقع، سيمكننا أن نعطي هذا الزر وضعية ثابتة position:fixed ونقوم بضبط المسافة من اليمين واليسار إلى حد أن تتموضع في المنتصف تماما. لحد ما تفي هاته الفكرة بالغرض، ولكن بعض حالات الاستعمال الأخرى قد تسقط هذا المنطق وتفضل طريقة أخرى عن هاته الطريقة. مثل: ان قام المستخدم بالانزلاق الى الاسفل لتفحص باقي العناصر فإن العنوان سيبقى ثابتا في منتصف الصفحة بشكل مزعج يغطي باقي الأقسام. ولو حدث وقلنا أن موقعنا ككل يمتلك قسما واحدا. فإن مشكلة أخرى ستظهر في حالة تصفح العميل للموقع عن طريق الهاتف أو التابلت مثلا، فالنسب من اليمين واليسار في شاشة الكمبيوتر 24" ليست هي نفسها في شاشة الهاتف أو التابلت، ولذلك فإن تموضع العنصر سيتغير في كل من الشاشات. هاته المشاكل تجعل من الأفضل استعمال هامش تلقائي على المحور x بدل الوضعية الثابتة. فإن حدث وقام المستخدم بتصفح الموقع من الهاتف فسيحافظ الموقع على شكله هنا أيضا، لأن الهامش التلقائي من اليمين واليسار لن يتغير من الهاتف الى الكمبيوتر. كما أن العنصر لن يبقى في المنتصف في حالة انزلاق المستخدم لتصفح أقسام اخرى. هاته الاحتمالات والاعتبارات التي يجب أن يأخذها المصمم أثناء عمله لتصميم موقع هي ما يعتبر جزءا هاما من ادارة أولويات التصميم، وهي ما يسقط خاصية على أخرى. وعموما، لا يكتسب ذلك إلا بالاختبار والتجريب والتكرار والخبرة. والتفاعل مع العناصر بشتى الاحتمالات. واستخراج مختلف حالات الاستعمال سيجعلنا نقرر بالضبط أي خاصية نستخدمها وأي خاصية لا، مثل: ما الذي يحدث عندما يضغط المستخدم الزر؟ ما الذي يحدث عندما ينزلق المستخدم الى القسم التالي؟ ماذا سيحدث ان حاول مستخدمنا سحب العنصر؟ ماذا سيحدث ان قام المستخدم بإعادة تحجيم نافذة الموقع؟ الى أي حد تلائم هاته الخاصية التصميم الحالي؟ إلى أي مدى تتجاوب هاته الخاصية أو الخواص مع مختلف الشاشات ولا تتطلبنا أن نخصص كل مجموعة من الخواص لكل شاشة بمفردها؟ هل تعتبر هاته الخواص هي أقل وأنظف شيفرة تحقق الغرض؟ وما الى ذلك من احتمالات واعتبارات..
  22. الأمر بسيط وليس بذلك التعقيد الذي يظهر عليه، فالتواصل بين الخادم والعميل يتم عن طريق آلية سهلة وبسيطة. لنقل أن التطبيق ككل يتكون من قسمين أساسين: قسم يراه المتصفح ويقرأه ويظهره للعميل الذي يتصفح هذا الموقع. قسم لا يراه المتصفح، ولا يصل إليه مباشرة وتتم فيه أغلب العمليات الحساسة التي من غير الآمن أن يراها من هو المتصفح. القسم الأول يدعى بقسم العميل، في حين أن القسم الثاني يدعى بقسم الخادم. والتواصل بينهما يتم غالبا بالشكل الآتي: عندما نستعرض موقعا ما، فإن تطبيقنا يسمح بتسليم الجزء المسموح إظهاره للمتصفح. يستقبل جزء "العميل" مجموع الشيفرات والملفات المسموح عرضها، ويترجمها المتصفح إلى هياكل HTML و تنسيقات CSS و تفاعلات جافاسكربت مع الموقع. وبناءا على حدث ما (وليكن ضغطة زر) يقوم العميل بالتواصل مع الجزء الخفي للتطبيق، ويكون ذلك عن طريق طلبيات الـ HTTP أين يتم ارسال أو طلب بيانات واستقبال رد. عندما يستقبل العميل هذا الرد يقوم بالتصرف بناءا عليه. لنقم بفهم هذا التكامل جيدا عن طريق مثال شائع عن عمليات تسجيل الدخول: يقوم الطالب "أحمد" بالتصفح عن طريق المتصفح الى رابط تسجيل الدخول في أحد المنصات التي يسجل بها https://app.co/login . يستقبل الجزء الخفي من هذا التطبيق طلب أحمد، ويقوم بإرسال الملف الموافق لصفحة تسجيل الدخول في الرد. يستقبل المتصفح هذا الملف، ويقوم بترجمة HTML و CSS و جافاسكربت ليظهر الموقع بشكله وتنسيقاته وتفاعليته المطلوبة. يقوم "أحمد" بعد أن يعرض له المتصفح تفاصيل الموقع بملئ حقل البريد الالكتروني ببريده الذي سجل به، وحقل كلمة المرور بكلمة المرور الخاصة به. عندما يظغط "أحمد" زر "تسجيل الدخول" يقوم العميل بالتحسس الى هذا الحدث ومعرفة أن أحمد يريد ان نتحقق من بياناته ونسجل دخوله. وبالتالي يقوم بإرسال طلبية HTTP إلى الخادم مرفقة ببريده الالكتروني وكلمة مروره. لأن من غير الآمن أن نتحقق من صدق كلمة المرور ومطابقتها البريد الالكتروني في الجزء الذي يظهر لأحمد، وإلا فإنه سيمكنه تزييف دخوله ومعرفة كلمة المرور الحقيقية لأننا نقارن التي يرسلها مع الحقيقية. يستقبل الخادم هذا الطلب ويقوم بمعالجة هاته البيانات ويتحقق منها، فإن كانت مطابقة قام بإرسال رد بالنجاح، وإلا فإنه سيرسل ردا بالفشل لأحمد. يستقبل أحمد هذا الرد من الخادم، ويقوم بالتصرف بناءا على هذا الرد، فإن كانت بياناته صحيحة طبقا للخادم فسيتم توجيهه مثلا إلى لوحة تحكمه، وإلا فإنه سيتم إظهار رسالة الخطأ الموافقة لذلك. مبدئيا، هاته هي الخطوط العريضة في التواصل بين الخادم والعميل عن طريق طلبيات الـ HTTP. إذ يمكن تكييف أي مثال وفق طريقة الاستماع إلى حدث يعطي إشارة بإرسال الطلب وإستقبال الرد والتصرف بناءا عليه.
  23. يحاول الخطأ اخبارك أن الأمر git غير معروف في ويندوز، وهذا طبيعي لأن git غير مثبت افتراضا في ويندوز مثل لينكس مثلا ولكنه يحتاج تثبيتا بشكل منفصل قبل محاولة استعمال أي امر git. ولتثبيته نحتاج اتباع الخطوات: تحميل برنامج التثبيت الموافق لنظام التشغيل الذي لديك من الموقع الرسمي https://git-scm.com/download/win تشغيل برنامج التثبيت بعد تمام تنزيله. أثناء تشغيل برنامج التثبيت سيظهر مربع حوار يتم من عليه تحديد المكونات التي سيتم تثبيتها. بعد الانتهاء سيمكن استعمال أوامر git السابقة بشكل عادي، ان واجهت مشكلة بهذا يفضل اعادة تشغيل النظام قبل استعمال git.
  24. في الحقيقة، غيتهب ليست استضافة وانما نظام git يمكن من عليها متابعة النسخ المختلفة أو تطورات مشروع ما، بشكل يجعل من الممكن التراجع عن تعديل أو نسخة ما. وبجانب هذا يوفر طريقة لاستضافة المواقع الثابتة تدعى github-pages. سؤالك يتضمن أو يقصد به أحد الطريقتين: مشاركة ملفات المشروع وشيفرته لتفحصها من قبل العميل. مشاركة النتيجة النهائية للموقع لكي يستعرضه العميل. أظنك تقصدين الحالة الأولى، وفي ذلك نحتاج اتباع الخطوات التالية: إنشاء مستودع git في github، ويمكن ذلك عن طريق التوجه الى نافذة المستودعات repositories والضغط على زر new. ستظهر استمارة يمكن من عليها تخصيص اسم المستودع، وصفه وحالته: عام أو خاص. حيث ان المستودعات العامة تظهر لأي مستخدم يتصفح حسابك في github في حين أن المستودعات الخاصة لن تظهر. اغلب العملاء يشترطون أن تكون المستودعات التي يشاركها معهم المطورون خاصة. بعد تأكيد انشاء المستودع سيتم التوجيه االى صفحة المستودع، أين تظهر فارغة وموضح عليها بعض الأوامر في كيفية التعامل مع هذا المستودع. بعد انشاء المستودع والتأكد من ذلك نحتاج الآن دفع ملفات المشروع التي على حاسوبك الى هذا المستودع الموجود في github لمشاركتها مع العميل. لدفع الملفات نحتاج تنفيذ هاته الاوامر: نحتاج الدخول الى مجلد ملفات المشروع لتنفيذ الأوامر عليه cd path/to/yourProjectFolder تهيئة مستودع غيت محلي على ملفات المشروع git init اضافة كامل ملفات المشروع الى المستودع git add . تنفيذ أول ايداع للمشروع بتخصيص عنوان له git commit -m "my first commit" انشاء فرع للمشروع للدفع اليه git branch -M main اضافة رابط مستودع غيت ، يرجى التأكد من استبدال رابط مستودع غيت بالرابط المثال في هذا الامر git remote add origin https://github.com/example-user/example-repo.git الآن وقد قمت بهذا يتبقى أمر واحد أخير يحتاج عملا أكثر. الآن وقبل تنفيذ أمر الدفع الذي ينقل الملفات فعليا من مستودعك المحلي الى مستودع غيت نحتاج بالطبع توثيق هذا الطلب فغيتهب لا تقبل أي ملفات من اي شخص يدفع اليها وفقط، بل تحتاج ان تتأكد في هذا أن الشخص الذي يقوم بالدفع هو صاحب المستودع نفسه او يملك صلاحية ذلك. وتستعمل في ذلك طريقة التوثيق عن طريق رمز التوثيق. وفيما يلي كيفية استخراجه. التوجه الى الاعدادات عن طريق الضغط على settings من القائمة المنسدلة. في صفحة الاعدادات التوجه الى اعدادات المطور Developer settings اسفل القائمة الجانبية. الضغط على generate new token من نافذة Personal access tokens لتوليد مفتاح توثيق جديد. تأكدي من تحديد تاريخ انتهاء صلاحيته، ومن تحديد كامل مربعات التحقق التي تخص الصلاحيات أسفله. ثم سيمكن تقديم طلب الانشاء. سيتم بعد هذا اعطاءك مفتاح التوثيق، يرجى التأكد من حفظه بمكان آمن لأنه لن يمكن استخراجه لاحقا عن طريق github. الآن وأخيرا سنعود الى تنفيذ أمر الدفع الأخير على مستودع المشروع في حاسوبك الشخصي: git push -u origin main سيطلب منك بعد تنفيذ هذا الأمر ادخال اسم مستخدم github ثم سيطلب منك ادخال كلمة المرور. كلمة المرور هاهنا هي هذا الرمز الذي قمنا للتو بإنشاءه. الآن وقد قمت بهذا سنحتاج بالطبع مشاركة المشروع مع العميل. ولفعل هذا نحتاج: التأكد من ان العميل يمتلك حساب غيتهب أيضا. عن طريق صفحة المستودع، التوجه الى نافذة اعدادات المستودع settings. من القائمة الجانبية، الضغط على مشاركين collaborators للتحكم فيمن يمكنهم الوصول الى هذا المستودع. الضغط على زر اضافة اشخاص add people. اضافة البريد الالكتروني الذي يستخدمه العميل في غيتهب أو اسم مستخدمه على غيتهب. تأكيد الاضافة. يمكنك الاستفاذة من سلسلة المقالات المنشورة حول git هنا.
×
×
  • أضف...