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

Mustafa Suleiman

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

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

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

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

    284

كل منشورات العضو Mustafa Suleiman

  1. الخطأ يحدث عندما يتم محاولة الوصول إلى مؤشر مصفوفة على قيمة من نوع boolean (bool)، وهو ما يشير إلى وجود مشكلة في الكود في السطر 195 من ملف sql.php. وربما الخطأ مرتبطًا بتنفيذ الدالة find_by_groupLevel() التي لا يتم فيها إرجاع مصفوفة من قاعدة البيانات كما هو متوقع، وبدلاً من ذلك يتم إرجاع قيمة boolean. لحل هذه المشكلة، يجب التحقق من مدى صحة وعملية تنفيذ دالة find_by_groupLevel() والتأكد من عودتها بالمخرجات المتوقعة، وإذا كان هذا هي المشكلة، فيجب إجراء التعديلات اللازمة على الدالة لإصلاحها. كما يمكن استخدام دالة var_dump() لفحص مخرجات الدالة ومعرفة ما إذا كانت تعود قيمة boolean أو مصفوفة كما هو متوقع.
  2. إذا كنت تريد التخصص في البرمجة، فأنصحك بشدة بالإجتهاد في الثانوية لتتمكن من دخول كلية حاسبات ومعلومات وغالبًا في بلدك تابعة لتخصص IT ولكن لا أستطيع أن أجزم فيجب السؤال عن المنهج الخاص بتلك الكلية، أما هندسة البرمجيات فهي بعيدة عن البرمجة بعض الشيء حيث تدرس الأمور بشكل نظري وتهتم أكثر بالـ Hardware. وتجنبًا للتكرار ستجد ضالتك هنا. ما الفرق بين هندسة برمجيات وكلية حاسبات ومعلومات
  3. سأحدثك بواقعية، تعلم أي أمر في الحياة ممل صدقني حتى لو كنت تستمتع في البداية بعد فترة ستمل، لذلك اسمع مني تلك النصيحة واستمسك بها، لا تعتمد أبدًا على شغفك أو إحساسك عند تعلم شيء مفيد في الحياة، لن تنجز شيء بتلك الطريقة. لذلك عليك بإنشاء تصميمين كاملين باستخدام HTML و CSS واختر تصميم تتحمس له أي في اللحظة التي تراه فيها تريد أن تنفذه مثله، وسأترك لك مواقع لتصميمات الويب. بعد القيام بالسابق سيتعين عليك تعلم JS وتنفيذ مشروع كامل في النهاية مع استخدام HTML و CSS، وخلال رحلة تعلمك في JS يجب التطبيق وكتابة الكود ويا حبذا لو قمت بإنشاء مشاريع صغيرة للتطبيق على ما تعلمته. ولا تعتمد على ذاكرتك، بل مرن يديك على كتابة الكود وعقلك على التفكير في الكود، الأمر مختلف تمامًا عن مشاهدة الفيديو تمامًا. وأيضًا حاول التغيير بعض الشيء في المشاريع التي تقوم بتنفيذها في حال كنت تشاهد شرحً ما وتطبق وراءه، وستتعلم الكثير من ذلك جراء البحث عن حلول للمشاكل التي ستواجهك أو كيفية تنفيذ أمر جديد لا تعلم عنه شيء لكن لديك الفكرة. في البرمجة، لا تنتقل على القسم التالي في مسار تعلمك إلا بعد التطبيق وتنفيذ المشاريع، فبذلك ستصبح مبرمج، غير ذلك ستتعلم القليل.
  4. كما ذكر لك أستاذ مسعود، من خلال إطارا ات العمل الخاصة ببايثون يمكنك تنفيذ ما تريده، فإطار عمل Django يوفر العديد من الميزات المهمة لتطوير تطبيقات الويب ، بما في ذلك: توفير نظام تسجيل الدخول والمستخدمين والصلاحيات إدارة قواعد البيانات إنشاء وتنظيم وإدارة عرض المحتوى توفير أدوات البرمجة النصية وتقنيات الويب الحديثة مثل HTML5 و CSS3 و JavaScript وغيرها. علاوة على ذلك، يمكن لـ Django تكوين وتخصيص بسهولة لتطوير تطبيقات الويب المعقدة والمتطلبات العالية ، ويوفر قاعدة بيانات ORM متطورة وتحليل الطلبات وتصميم الصفحات ومتطلبات الأمان والأداء. بالإضافة إلى Django ، هناك العديد من إطارات العمل الأخرى في Python التي يمكن استخدامها لتطوير تطبيقات الويب ، بما في ذلك Flask و Pyramid و CherryPy و Tornado وغيرها. أي يمكن القول أن Python هي لغة قوية لتطوير تطبيقات الويب، وتوفر إطارات عمل متعددة لتلبية احتياجات مختلفة للمطورين وتوفير أدوات مفيدة وموثوقة لتطوير تطبيقات الويب بشكل سريع وفعال، لكنها ليست الأفضل في ذلك. وهناك العديد من اللغات والإطارات المستخدمة لإنشاء تطبيقات الويب والتي يمكن اختيارها حسب احتياجات المشروع ومتطلبات العميل وخبراتك. ومن بين هذه اللغات والإطارات: 1- PHP: يستخدم بشكل واسع لإنشاء تطبيقات الويب، ويحتوي على إطارات عمل مثل Laravel وSymfony وCakePHP وغيرها. 2- Java: يستخدم بشكل واسع في تطوير تطبيقات الويب، ويحتوي على إطارات عمل مثل Spring وStruts وPlay Framework وغيرها. 3- Ruby: يستخدم في تطوير تطبيقات الويب، ويحتوي على إطارات عمل مثل Ruby on Rails وSinatra وHanami وغيرها. 4- JavaScript: يستخدم بشكل واسع في تطوير تطبيقات الويب الحديثة، ويحتوي على إطارات عمل مثل React وAngular وVue.js وغيرها. 5- ASP.NET: يستخدم في تطوير تطبيقات الويب باستخدام لغة C#، ويحتوي على إطارات عمل مثل ASP.NET MVC وASP.NET Core وغيرها. ومن الأفضل لك تعلم إطارات العمل الخاصة بلغة PHP وجافاسكريبت.
  5. من خلال حساب المتوسط الحسابي للتقييمات المعطاة من قبل المستخدمين. في حالة تقييم المسلسلات أو الأفلام بنجوم من 1 إلى 10، يتم جمع جميع التقييمات الفردية التي قدمها المستخدمون ثم يتم تقسيم مجموع تلك التقييمات على عدد المستخدمين الذين أعطوا تقييماتهم. على سبيل المثال، إذا قيم 100 شخص مسلسلًا بتقييم مجموعه 750 نقطة، فإن التقييم النهائي للمسلسل سيكون 7.5 نقاط (750 ÷ 100 = 7.5). إليك مثال بسيط يستخدم جافاسكريبت لحساب التقييم النهائي من 10 بناءً على التقييمات الفردية التي تم إدخالها من قبل المستخدمين: // عين القيم الأولية لتقييم المستخدمين let userRatings = [6, 8, 9, 7, 5, 8, 7, 10, 8]; // حساب مجموع التقييمات let totalRatings = userRatings.reduce((acc, cur) => acc + cur); // حساب العدد الإجمالي للتقييمات let numRatings = userRatings.length; // حساب التقييم النهائي let averageRating = (totalRatings / numRatings).toFixed(2); // طباعة التقييم النهائي console.log(`تقييم المستخدمين: ${userRatings}`); console.log(`التقييم النهائي: ${averageRating}/10`);
  6. السؤال غير واضح، هل تقصدين عمل متجر إلكتروني على سلة أو منصة زد أو ما شابه؟ إذا كنتي كذلك، فالأمر بسيط، سيقوم العمل بشراء الباقة المناسبة له من على تلك المنصات، ومن ثمّ سيقوم بإنشاء حساب لك كفريق عمل لتتمكني من التعديل على إعدادات المتجر والتصميم. أما إذا كنتي تقصدين برمجة خاصة، فستعملين على إنشاء المتجر بإطار العمل الذي تستخدمينه مثل لارافيل أو إضافة WooCommerce على وورد بريس مثلاً، فمن المفترض أن العميل يقوم بشراء الاستضافة المناسبة بعد توجيهك له، ثم توفير بيانات الدخول لك، وبعدها ستتمكني من رفع المتجر على الاستضافة وإنشاء الحسابات اللازمة. وسيتعين عليك تسليم الكود المصدري بعد الإنتهاء أيضًا وملفات التصميم إن وجدت. وعلي أي حال أرجو توضيح السؤال وما الذي تريدي فعله بالضبط ليتم الإجابة على سؤالك.
  7. تأكد من أنك قمت بتحميل وتثبيت إضافة خاصة باللغة التي تستخدمها من متجر الإضافات ليتمكن المحرر من التعرف على الـ syntax الخاص باللغة، ابحث باسم اللغة وستجد إضافة لها. يجب التأكد من كتابة إمتداد الملف مثل index.js أو index.css وهكذا ليتمكن المحرر من عمل Syntax highlighting لها. تحقق من تحديد لوحة ألوان مفضلة من قائمة الخيارات المتاحة في VS Code. يمكنك الوصول إليها عن طريق الضغط على زر Ctrl+Shift+P (في Windows/Linux) أو Command+Shift+P (في macOS)، ثم البحث عن "Preferences: Color Theme". قد يكون هناك خطأ في ملف إعدادات VS Code. في هذه الحالة، يمكنك محاولة إعادة تعيين إعدادات VS Code إلى الإعدادات الافتراضية عن طريق القيام بالخطوات التالية: انقر فوق الزر "Open Settings" في قائمة الخيارات المتاحة في VS Code، أو استخدم الاختصار Ctrl+Comma (في Windows/Linux) أو Command+Comma (في macOS) لفتح صفحة إعدادات VS Code. ابحث عن "Reset Settings" في شريط البحث في الأعلى. انقر فوق "Reset Settings"، ثم انتظر حتى يتم إعادة تعيين إعدادات VS Code إلى الإعدادات الافتراضية. أعد تشغيل VS Code وتحقق مما إذا كانت المشكلة قد تم حلها. إذا استمرت المشكلة يمكنك محاولة حذف وإعادة تثبيت VS Code، أو مشاركة تفاصيل أكثر عن المشكلة الخاصة بصورة كتوضيح.
  8. المشكلة في الرابط المستخدم لعرض الصورة في الكود. عند رفع الصورة إلى مستودع GitHub الخاص بك، يجب استخدام الرابط الصحيح لعرض الصورة. فرابط الصورة في الموقع كالتالي: <img class="logo" src="/images/logo.png" alt="Logo"> باستطاعتك استخدام الرابط النسبي لعرض الصورة، كالتالي: <img class="logo" src="images/logo.png" alt="Logo"> حيث يكون مجلد "images" هو المجلد الذي يحتوي على الصورة والموجود في مستودع GitHub الخاص بك. يمكنك أيضًا استخدام رابط مباشر لصورة عند رفعها على GitHub، مثل: <img class="logo" src="https://raw.githubusercontent.com/ayman-alrawy/second-site/main/images/logo.png" alt="Logo"> عند استخدام هذا الرابط، يجب التأكد من تحديد الفرع الصحيح في المستودع وتغيير اسم المستخدم واسم المستودع حسب ما ينطبق على المشروع الخاص بك. والأفضل رفع المشروع الخاص بك على netlify أو vercel بينما الكود قم برفعه على GitHub.
  9. المشكلة في استخدام المتغير TouchDist كـ "object" بدلاً من استخدامه كـ "Vector2". يجب التأكد من أن المتغير TouchDist من نوع Vector2. وللتأكد من ذلك ، يمكنك التحقق من الكلاس FixedTouchField والتحقق من أن تحديث المتغير TouchDist يتم باستخدام Vector2 وليس object. وقد يكون هذا الخطأ قد ظهر بسبب تغيير نوع المتغير في وقت لاحق في الكود. TouchDist هو كائن من النوع object ولا يحتوي على خصائص x و y كما هو متوقع. فيجب تحويل TouchDist إلى النوع المناسب لهذه الخصائص. وفي هذه الحالة، على الأرجح أن FixedTouchField هو الكائن الذي يتم تمرير TouchDist إليه. لذلك، يجب التأكد من أن FixedTouchField يحتوي على خصائص x و y المطلوبة. ويمكنك تجربة تغيير السطر التالي: Yaxis += touchField.TouchDist.x * RotationSensitivity; Xaxis -= touchField.TouchDist.y * RotationSensitivity; إلى: Yaxis += touchField.TouchDist.normalized.x * RotationSensitivity; Xaxis -= touchField.TouchDist.normalized.y * RotationSensitivity; بتحويل TouchDist إلى نوع Vector2 باستخدام الخاصية normalized التي تعيد قيمة Vector2 مع محافظة الاتجاه الأصلي ولكن بقيمة طول تمثيلي يساوي 1.0. بعد ذلك، يمكن استخدام خصائص x و y بشكل صحيح.
  10. المشكلة تنتج عن عدم وجود الامتدادات اللازمة للتعامل مع XML binding في جهاز الكمبيوتر الخاص بك. حاولي تجربة الخطوات التالية لحل هذه المشكلة: تثبيت حزمة JDK المطلوبة: يجب أن تتأكدي من تثبيت JDK بنجاح على جهاز الكمبيوتر الخاص بك. قومي بزيارة الموقع الرسمي لـ JDK وتنزيل الإصدار المناسب لنظام التشغيل الخاص بك وتثبيته. تحديث مسار البيئة: تأكدي من تحديث مسار البيئة الخاص بك بمسار تثبيت JDK و Android SDK على النحو التالي: في نظام Windows: افتحي "محرر المتغيرات" من خلال الضغط على زر البدء والبحث عن "تحرير المتغيرات البيئية" ، وقم بتحديد "مسار المستخدم" ، وأضيفي المسار الخاص بتثبيت JDK و Android SDK إلى المتغير PATH. 3. تثبيت مكتبة JAXB المطلوبة: قد يتطلب الأمر تثبيت مكتبة JAXB اللازمة لتشغيل البرنامج. ويمكنك تنزيل مكتبة JAXB من موقع Oracle الرسمي وتثبيتها على جهاز الكمبيوتر الخاص بك. حيث قد المشكلة بعدم تثبيت حزمة javax.xml.bind.JAXBException المطلوبة من قبل مكتبة Android SDK التي يستخدمها Cordova. وإذا كنت تستخدمي JDK 9 أو إصدار أحدث، فقد تواجه مشكلة في تثبيت حزمة JAXB بسبب إزالة هذه الحزمة من JDK 9 وما بعده. في هذه الحالة ، يمكن استخدام إصدار JDK أقدم يتضمن حزمة JAXB أو يمكنك تثبيت حزمة JAXB بشكل منفصل. بعد تثبيت حزمة JAXB ، يجب أن يتمكن Cordova من تثبيت Android target بنجاح. وإذا واجهت أي مشاكل أخرى ، فيمكنك مراجعة مستندات Cordova الرسمية.
  11. يمكنك تعلم ما تشاء بعد تعلم بوت ستراب و tailwindcss، فهما الأساس في تطوير الويب حاليًا.
  12. الأمر مشتت فعلاً فهناك الكثير من المكتبات التي توفر لك مكونات جاهزة وتنسيقات CSS، والأمر يعتمد على إحتياجاتك. فإذا كنت تريد إنشاء تصاميم متشابهة وبسيطة فمكتبة Bootstrap والمكتبات المشابهة لها هي الخيار الأمثل لك. اما إذا كنت تريد حرية في تخصيص التنسيق واستخدام تنسيقات متفق عليها Standard في تصميمك ليبدوا أنك تم تنفيذه بشكل إحترافي، فعليك باستخدام tailwindCSS، وهي الأكثر إنتشارًًا حاليًا ويتم استخدامها بكثرة. ولكن يجب عليك تعلم Bootstrap أيضًا فنسبة كبيرة من المشاريع يتم استخدامها بها، ولذلك أنت بحاجة إلى أن تكون على علم بها، وكنصيحة تعلم tailwind أولاً ثم Bootstrap.
  13. في الدول العربية يجب التركيز وبشدة على الحصول على شهادة جامعية، فللأسف بدونها ستعاني، وإذا كنت تريد تعلم البرمجة فقم بالدراسة بجد وإجتهاد لدخول كلية علوم الحاسب. وهي ستساعدك بشكل كبير في التركيز على مجال البرمجة على الرغم من أن الكلية نفسها لن تقدم لك شيء، لكن ستساعدك على إحاطة نفسك بأشخاص مهتمين بالمجال وأيضًا ستركز أنت على دراسة البرمجة لكونها متعلقة بدراستك في الأساس. لذلك لا مشكلة في التوقف وتخصيص ساعتين أو حتى ساعة يوميًا لكتابة الكود أو تعلم شيء جديد، لكن لا تنقطع فستعود من نقطة الصفر. وبخصوص قيمة الشهادة، فهي لا قيمة لها، سوى في بعض الشركات التي تطلب دارسي علوم الحاسب، لكن الأغلبية تنظر إلى مهاراتك واللغات التي تبرع بها والقيمة التي ستضيفها للشركة لا الشهادة التي تمتلكها على الرغم من أنها قد تعطيك أفضلية بلا شك لكونك متخصص ولكن يجب أن تكون جيد في البرمجة لتحصل على تلك الأفضلية.
  14. شعور طبيعي في البداية ومع التكرار سيزول، ولكن يجب أن تقرأ عن كل خاصية تقوم باستخدامها وتجربتها بعد القراءة، فالغالبية يشاهد المدرب يقوم باستخدام خاصية بهذا الشكل ثم يقوم بتقليده لكنه لا يعلم كيف تعمل تلك الخاصية فعلا. والنتيجة هي أنه يقوم بعملية التصميم عن طريق التجربة والخطأ أكثر من مرة حتى ينجح في تنفيذ المطلوب، رغم أنه من الأسهل فهم طبيعة عمل خواص CSS وستجد أن الأمر منطقي، وهناك مصادر لذلك: https://wiki.hsoub.com/CSS https://academy.hsoub.com/programming/css/ https://developer.mozilla.org/en-US/docs/Web/CSS/Reference وستجد ما تحتاجه في موسوعة حسوب بالإضافة إلى الأكاديمية، وأيضًا مستندات MDN رائعة جدًا. الخطوة التي تلي ذلك هو التطبيق على أجزاء صغيرة مثل نموذج Form أو ما شابه لفهم طبيعة عمل الخواص بشكل أفضل، ثم محاولة بناء موقع كامل لاستخدام كل ما تعلمته وتثبيت المعلومات وتطوير مهاراتك. ولا تشغل بالك بعملية التصميم في تلك المرحلة، يكفي أن تعلم أساسيات التصميم فقط بل يجب عليك ذلك من البداية مثل المساحات والخطوط وخلافه، أما التصميم الكامل فقم بتقليد أي تصميم تراه وينال إعجابك.
  15. يجب العثور على عنصر HTML الذي يحتوي على المعلومات المطلوبة واستخراجها باستخدام BeautifulSoup. حيث يمكن القيام بذلك باستخدام الكلاس الخاص بعنصر HTML الذي يحتوي على المعلومات المطلوبة. وباستطاعتك استخدام ميثود find_all للبحث عن جميع العناصر التي تحتوي على الكلاس المحدد ثم الوصول لنص الراتب باستخدام text attribute. ويمكن تحديد الكلاس المحتوي على الراتب عن طريق فحص مصدر الصفحة والعثور على العنصر الذي يحتوي على الراتب، أو بإمكانك استخدام ميثود البحث المتقدم select للعثور على العنصر المحتوي على الراتب عن طريق تحديد مسار CSS المطلوب. في النهاية، يجب أن يكون لديك شيء ما مثل هذا الكود: for link in links: result = requests.get(link) src = result.content soup = BeautifulSoup(src,"html.parser") salary_element = soup.select_one("div.css-rcl8e5 > span.css-4xky9y") salary.append(salary_element.text if salary_element else None) والكود يستخدم select_one للبحث عن العنصر الذي يحتوي على الراتب باستخدام المسار CSS المحدد ثم يستخرج النص الموجود داخل العنصر. في حال عدم العثور على العنصر، سيتم إضافة None إلى قائمة الرواتب.
  16. قد يكون هذا نتيجة لتغيير مستوى سطوع الشاشة. حيث يمكن للعديد من الأجهزة المحمولة التي تعمل على البطارية تغيير مستوى سطوع الشاشة تلقائيًا عند فصل الشاحن، الأمر الذي يؤدي إلى اهتزاز الشاشة. لحل هذه المشكلة ، يمكنك تجربة تغيير إعدادات سطوع الشاشة لجعلها أقل حساسية. ويمكنك أيضًا محاولة توصيل الكمبيوتر المحمول بمقبس آخر أو استخدام كابل طاقة مختلف. إذا لم تنجح هذه الخطوات يمكنك تجربة الحلول التالية: الحل الأول: قم بالدخول إلى إعدادات النظام الخاصة بالعرض display عن طريق النقر على زر "إبدأ" ثم النقر على العنصر "الإعدادات". اختر "العرض" من الخيارات المتاحة في الإعدادات. في نافذة العرض، اختر "إعدادات الألوان عالية الجودة HDR لنظام Windows" من القائمة الجانبية. تحت "خيارات البطارية"، اختر "تحسين الجودة للصورة" بدلاً من "تحسين الطاقة" (Optimize for battery life) في قائمة الخيارات. يمكنك أيضًا تعطيل HDR تمامًا بالذهاب إلى إعدادات العرض ، وتحديد خيار "تعطيل HDR" تحت "إعدادات Windows HD Color". الحل الثاني: قم بالدخول إلى إعدادات الحاسوب الخاصة بك عن طريق النقر على زر "إبدأ" ثم النقر على العنصر "الإعدادات". اختر "نظام system" من الخيارات المتاحة في الإعدادات. في نافذة "نظام"، اختر "طاقة وسهر Power & Sleep" من القائمة الجانبية. تحت "الإعدادات المتقدمة للطاقة"، اضغط على الارتباط "إعدادات إضافية للطاقة". ستظهر لك قائمة بخيارات خطط الطاقة المتاحة. اختر الخيار المسمى "متوازن Balanced (موصى به)". انقر على الارتباط "تعديل إعدادات الخطة" بجوار خيار الطاقة المختار. ستظهر لك الخيارات المتاحة للتعديل على إعدادات السطوع. يمكنك ضبط مستوى السطوع على 75٪ أو أقل على البطارية. ثم احفظ الإعدادات. الحل الثالث: قم بالنقر بزر الماوس الأيمن في أي مكان فارغ على سطح المكتب واختر "Graphics Properties". في النافذة التي تظهر، انتقل إلى وضع "Advanced Mode" عن طريق النقر على الأيقونة الموجودة في الزاوية اليمنى العليا من النافذة. سيتم عرض علامة تبويب "Power"، انتقل إليها عن طريق النقر عليها. تحت "Power Source"، قم بتغيير القائمة المنسدلة إلى "On Battery". ستظهر لك خيارات "Display Power Saving Technology". قم بإلغاء تحديدها (Uncheck) عن طريق النقر عليها. انقر على زر "OK" لحفظ التغييرات وإغلاق النافذة.
  17. باستطاعك بناء متجر إلكتروني باستخدام إطار عمل Laravel عن طريق اتباع الخطوات التالية: 1- تثبيت Laravel على الخادم الخاص بك باستخدام Composer. 2- إنشاء قاعدة بيانات MySQL وتكوينها في ملف .env 3- إنشاء نموذج لكل منتج سيتم بيعه في المتجر الإلكتروني باستخدام Migrations. 4- إنشاء صفحات وعرض المنتجات في المتجر الإلكتروني باستخدام Controllers وViews. 5- تكوين نظام دفع آمن باستخدام أحد بوابات الدفع المتاحة مثل Stripe أو PayPal. 6- تكوين معالجات الدفع لتتمكن من معالجة الدفعات وتحويل الأموال إلى حساباتك. يمكنك استخدام Laravel Cashier لإدارة المعاملات المالية بسهولة. 7- تكوين رسائل البريد الإلكتروني لإرسال رسائل تأكيد الدفع والفواتير للعملاء. يمكنك استخدام Laravel Notifications لإرسال الرسائل البريدية. بالإضافة للخطوات السابقة هناك المكتبات المفيدة: Snipe-IT: هي منصة لإدارة الموارد الأصول والمخزونات، يمكن استخدامها لبناء نظام إدارة المخزون والمنتجات والمستخدمين في المتجر الإلكتروني. Voyager: هي لوحة تحكم مبنية على Laravel توفر واجهة مستخدم لإدارة المحتوى، يمكن استخدامها لبناء واجهة مستخدم لإدارة المنتجات والمستخدمين والطلبات في المتجر الإلكتروني. Laravel Nova: هي لوحة تحكم مبنية على Laravel تتيح إدارة الموارد المتعددة، يمكن استخدامها لإدارة المنتجات والمستخدمين والطلبات في المتجر الإلكتروني. Laravel Ecommerce: هي حزمة توفر ميزات المتجر الإلكتروني كاملة، والتي يمكن تخصيصها وتعديلها بسهولة لتناسب الاحتياجات الخاصة بك. وهناك العديد من المكتبات والحزم التي يمكن استخدامها لبناء متجر إلكتروني باستخدام لارافيل بشكل أسهل، مثلاً باستخدام الحزمة الإضافية Laravel Spark. والتي توفر حزمة Spark ميزات كاملة لإنشاء متاجر إلكترونية وتأتي مع العديد من المميزات مثل: نظام الفوترة دفع الفواتير دعم مدفوعات البطاقات الائتمانية والخدمات المالية الأخرى ميزة الإعلانات والتذكيرات الآلية نظام إدارة الطلبات والمخزون دعم الشحن وتتبع الشحنات دعم الإشعارات والبريد الإلكتروني يمكنك الحصول على Laravel Spark من موقعها الرسمي https://spark.laravel.com/ وهي تأتي بتكلفة مدفوعة. بعد تثبيت Laravel Spark، يمكنك إنشاء متجرك الإلكتروني بسهولة باستخدام أدوات التخصيص الخاصة بالحزمة. كما يمكنك تكوين قنوات الدفع المختلفة بسهولة باستخدام خيارات الدفع المدمجة في Laravel Spark. المقالات الخاصة بإطار عمل لارافيل في أكاديمية حسوب
  18. Node.js يعمل بشكل افتراضي في وضع CommonJS وليس ES Modules الذي يتضمن استخدام export وimport. وبالطبع لايزال بإمكانك استخدام export وimport في Node.js، ولكن يجب أن تقوم بتحديد نوع الموديول الذي تستخدمه في ملف package.json الخاص بمشروعك. أي يجب عليك تحديد "type": "module" في ملف package.json الخاص بمشروعك، ثم يمكنك استخدام export وimport. أيضًا، في حال استخدام CommonJS ، يجب استخدام module.exports بدلاً من export لتصدير الوحدات وrequire بدلاً من import لاستيرادها. على سبيل المثال: { "name": "myapp", "version": "1.0.0", "description": "My awesome app", "type": "module", "main": "index.js", "scripts": { "start": "node index.js" }, "author": "Your Name", "license": "MIT" } بعد تعيين "type": "module" في ملف package.json، يمكنك استخدام الـ import في ملف آخر لاستدعاء الدوال التي يتم تصديرها. على سبيل المثال، إذا كانت الدالة login تم تصديرها في ملف index.js، فيمكنك استيرادها في ملف آخر باستخدام الـ import على النحو التالي: import { login } from './index.js'; // استخدام الدالة المستوردة هنا يرجى ملاحظة أنه يجب تحديد مسار الملف الصحيح في الـ import، ويجب أن يتوافق اسم الملف المستورد مع اسم الملف الذي يتم تصديره في الملف الأصلي.
  19. تم ذكر معلومات قيمة بخصوص سؤالك، لكن لم يتم ذكر الطريقة الصحيحة لتعلم البرمجة حيث يجب القيام بالتالي: 1- إختيار مسار تعليمي واضح قبل البدء: بعد تحديد المجال الذي تريد التخصص به مثل تطوير التطبيقات أو تطوير مواقع الويب، يجب عليك إختيار مسار تعليمي Roadmap مخصص للمجال الذي إخترته من مصدر موثوق وقام طلاب آخرين من قبلك بدراسته. وإلتزم بذلك المسار التعليمي وستصل أسرع، فهناك مئات المصادر على الإنترنت وهي نعمة ونقمة في نفس الوقت، لذلك لا تشتت نفسك وإلتزم بالكورسات المذكورة في المسار أو الكورسات التي قمت بإختيارها بناءًا على تقييمات طلاب سابقين. ويجب أن تحتوي تلك الكورسات على تطبيقات عملية على مشاريع حقيقية بها تعقيد كافي لتعليمك كيف يتم بناء المشاريع وتوظيف ما تعلمته. فبناء النماذج الصغيرة في بداية مرحلة التعلم أمر لابد منه بلا خلاف، لكن فيما يتعلق بسوق العمل والواقع فأنت ستعمل على بناء مثل تلك المشاريع المعقدة والتي تتطلب وقت وجهد في تنفيذها. وفي النهاية ستحصل على مشروع يصلح لوضعه في معرض أعمالك عند التقدم للوظيفة أو في مواقع العمل الحر. 2- أنت بحاجة إلى 6 شهور أو سنة تبعًا لمستواك وجهدك تلك هي الحقيقة ولا تنخدع بالعبارات التسويقية بأنك ستصبح مبرمج خلال شهرين أو ثلاث، بل أقل فترة في رأي هي 6 شهور مع الإلتزام بمسار تعليمي. بعد تلك الفترة سيتوجب عليك العمل على مشاريع أخرى لتكتسب الخبرة والثقة اللازمة للتقدم للوظائف، ففترة الـ 6 شهور أو سنة هي فترة تعلم فقط، ولا تعتبر فترة خبرة. وخلال فترة تطبيقك على مشاريع قم بالتقديم على وظائف بمستوى Junior أو Entry level، وسيتم رفضك كثيرًا أو لن يتم الرد عليك، فلا تكن حساسًا أكثر من اللازم واستمر بالعمل، فالجميع مر بتلك المرحلة، الجميع كذلك. 3- التطبيق على المشاريع الكبيرة أكثر من مرة أثناء فترة التعلم وتطبيقك على المشاريع داخل الكورسات وبعد الإنتهاء من المشروع. يجب عليك القيام به مرة أخرى خلال فترة بحد أقصى أسبوع، فصدقًا ستجد نفسك قد نسيت الكثير من الأمور ففي البداية مرة واحدة لا تفكي، فتعلم البرمجة عملية تكرارية وتحتاج إلى التطبيق أكثر من مرة على الكود في البداية لتثبيت المعلومات والمفاهيم. لذلك لا تكتفي بالتطبيق مرة واحدة أو كتابة الكود مرة واحدة وراء المدرب في الكورس. 4- ابحث عن كل ما يدور في بالك جوجل هو صديقك كمبرمج، فلا تجعله عدوك، لكن لا تهرع بالبحث أولاً بل قم بالتفكير في حل للمشكلة وتجربته، بعد ذلك قم بالبحث عن حلول وأسباب تلك المشكلة، وقراءة المقالات ولا تتكاسل في تعلم الأشياء الجديدة التي ستجدها في طريقك بلا شك.
  20. مرحبًا @عبد الرحمن جهاد ما تشعر به أمر طبيعي للغاية، وهي نقطة فارقة فإما أن تستجمع عزيمتك وتتغلب على خوفك وقلقك وتجبر نفسك على الإعادة والتكرار، أو ستصبح مثل الغالبية الذين ظنوا أن مجال البرمجة سهل ويمكن تعلمه خلال شهر. والواقع ليس كذلك، ولولا المشقة لساد الناس كلهم، وما يعطي لمجال قيمته هو صعوبته في التعلم ومقدار الإجتهاد المطلوب فيه، لذلك ستجد مرتبات المبرمجين مرتفعة مقارنًة بباقي الوظائف، والأمر ليس من فراغ. فالمبرمجين المحترفين قليلون بسبب مقدار الجهد المطلوب للوصول لمستوى محترف، وذلك عن طريق تعلم الأساسيات والتركيز عليها بشدة، وبعد ذلك يمكنك تعلم التقنيات وإطارات العمل المختلفة. ونصيحتي إليك هي، أرجو ألا تنتقل من نقطة أو فيديو إلى آخر إلا بعد إعادة كتابة الكود أكثر من مرة حتى تفهمه وتصبح قادر على إنشاء أمثلة أخرى بنفس الكود أو التعديل عليه. وذلك الأمر يمكن أن يتم من خلال إعادة مشاهدة الفيديو وقراءة دروس ومقالات في موسوعة حسوب و أكاديمية حسوب، فهناك مقالات كثيرة جدًا تغطي لغة جافاسكريبت وبالأمثلة. فقط قم بالبحث عن اسم الدرس أو الدالة أو الجزء التي تقوم بدراسه في اللغة ثم ضع بجانبه كلمة حسوب وستجد ما تريده. صدقًا في بدايات تعلمي للبرمجة كنت أقضى أكثر من 10 ساعات يوميًا في التعلم وربما قضيت يوم كامل في فهم واستيعاب جزء من اللغة لكنه هام للغاية أو محاولة التدرب على ما تعلمته وحل المشاكل التي تواجهني بالبحث والقراءة والتجربة. والوقت هنا هو العامل الأهم، يجب أن تعطي نفسك الوقت الكافي لتشعر بالتحسن، فعند الذهاب لصالات الجيم لن تنمو لك العضلات مباشرًة بل يجب أن ترهق نفسك بشكل يومي أو متكرر على مدار الأسبوع وبعد فترة من الزمن تبعًا لمستواك ستصل بلا شك. فمن أدمن طرق الباب، يوشك أن يُفتح له. أيضًا نصيحة أخرى، لابد ويجب عليك أن تتعلم الإنجليزية جنبًا إلى جنب مع تعلم البرمجة، فصدقًا ستعاني من ذلك، فلغة البرمجة هي الإنجليزية، ولديك قناة زي أمريكان إنجليش يمكنك التعلم منها أو قناة طليق. ولا تتردد في السؤال عن أي شيء يخطر في بالك، وستجد من يساعدك هنا. بالتوفيق إن شاء الله.
  21. يمكنك استخدام jQuery لإزالة الكلاس الذي تم إضافته إلى الديف عن طريق استخدام دالة removeClass(). في الكود jQuery الذي قمت بإضافته، يمكنك استخدام محدد CSS لاستهداف الديف وإزالة الكلاس المحدد. على سبيل المثال، إذا كان للـ div الكلاس الأول "first-class" والكلاس الثاني "second-class"، يمكنك استخدام الكود التالي: $('div.first-class').removeClass('second-class'); هذا الكود يستهدف جميع الديفات التي لديها الكلاس الأول "first-class" ويزيل الكلاس الثاني "second-class". يمكنك استخدام محدد CSS آخر لاستهداف الديف الذي تريد تغييره. ويجب وضع هذا الكود داخل ملف JavaScript وتضمينه في صفحة HTML.
  22. من المرجح أن يظهر لك العديد من الأخطاء الناتجة عن عدم تمكن النظام من العثور على هذه الملفات. على سبيل المثال، إذا كنت تستخدم Python وفقدت مسار متغير البيئة "PYTHONPATH" الخاص بك، فلن تتمكن من استخدام المكتبات التي تعتمد عليها في تطبيقاتك. لحل هذه المشكلة، يمكنك إعادة تثبيت المسارات المفقودة من جديد وإضافتها إلى متغيرات البيئة path مرة أخرى. يمكنك القيام بذلك يدويًا إذا احتجت لذلك ففي الغالب يتم إضافة أغلب المتغيرات بشكل تلقائي عند التثبيت، بإضافة المسارات إلى متغيرات البيئة path من خلال خصائص النظام في Windows أو عن طريق إعدادات النظام في Linux و macOS. ولكن إذا أردت عمل نسخة إحتياطية، فيمكنك استخدام السكريبت التالي: ووظيفته هو عمل نسخ احتياطية للمسارات والمتغيرات في نظام Windows وإنشاء ملف reg لاستعادتها. يجب إنشاء ملف بإمتداد .bat ووضع السكريبت به، أي قم بإنشاء ملف باسم path-backup.bat ثم إضغط بزر الفأرة الأيمن وإختار edit ثم ضع السكريبت به وإحفظ وشغل السكريبت. @echo off set BACKUP_PATH=C:\backup set BACKUP_FILE=%BACKUP_PATH%\path_variables.reg :: create backup directory if it doesn't exist if not exist %BACKUP_PATH% mkdir %BACKUP_PATH% :: backup system path variables reg export "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" %BACKUP_FILE% /y :: backup user path variables reg export "HKCU\Environment" %BACKUP_FILE% /y echo Backup of path variables is created at %BACKUP_FILE% pause تم تعيين مسار النسخ الاحتياطي إلى مجلد C:\backup في المتغير BACKUP_PATH أي ستجد المجلد في قرص الـ C باسم backup، وتم تسمية الملف الاحتياطي path_variables.reg في المتغير BACKUP_FILE. ويتم نسخ متغيرات البيئة في نظام Windows في المفتاح HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment للنظام و HKCU\Environment للمستخدم. والأمر reg export للحصول على تفاصيل مفاتيح التسجيل وتصديرها إلى الملف المحدد. ولاستعادة المسارات والمتغيرات المحفوظة، يمكن فتح ملف reg وتشغيله بعد إعادة تحميل الويندوز أو عند الحاجة.
  23. الخطأ يشير إليك بالتوجه إلى الرابط التالي لتفعيل الفواتير، وستجد المشروع الخاص بك وسيتطلب منك تفعيل الفواتير لذلك المشروع: https://console.cloud.google.com/projectselector2/billing/enable?utm_source=Docs_BillingNudge&pli=1 والجدير بالذكر أن هناك نوعان من حسابات الفواتير متاحة على منصة Google، حساب فواتير Google Cloud وحساب فواتير Google Maps Platform. ويبدو أنك قمت باستخدام حساب فواتير Google Cloud وربما يمكنك تجربة استخدام حساب فواتير Google Maps Platform لتفعيل Places API والحصول على الملأ التلقائي للأماكن. وإذا كنت تواجه مشكلة في تغيير الحساب الخاص بالفواتير للمشروع الحالي، فيمكنك إنشاء مشروع جديد وتوصيله بحساب فواتير Google Maps Platform. https://developers.google.com/maps/get-started أيضًا باستطاعتك استخدام الرابط الذي تم توفيره لإنشاء حساب فواتير Google Maps Platform، كما يمكنك التبديل بين حسابات الفواتير عن طريق تعطيل الفواتير في المشروع الحالي ، ثم تغيير حساب الفواتير وتفعيل الفواتير مرة أخرى.
  24. هناك العديد من خيارات نظام إدارة المحتوى المتاحة لتطوير موقع جامعة باستخدام Laravel والأمر يتوقف على إحتياجاتك، وعلي أي حال هناك بعض الخيارات الجيد والتي تتضمن: 1- Laravel Nova: هي حزمة إضافية لـ Laravel توفر واجهة مستخدم مرنة وسهلة الاستخدام لإدارة المحتوى. يمكن للمستخدمين إضافة وتحرير المحتوى بسهولة وتخصيص الواجهة حسب احتياجات المشروع. 2- Backpack for Laravel: هي حزمة إضافية لـ Laravel توفر واجهة مستخدم مرنة وسهلة الاستخدام لإدارة المحتوى. توفر Backpack إدارة المحتوى بشكل أساسي، مع إمكانية تخصيص الواجهة والعمليات حسب احتياجات المشروع. 3- WordPress: هو نظام إدارة المحتوى الأكثر شيوعًا في العالم والذي يمكن تثبيته في Laravel باستخدام حزمة الإضافة WP-Laravel. يوفر WordPress واجهة مستخدم سهلة الاستخدام ويتيح للمستخدمين إنشاء وتحرير المحتوى بسهولة. 4- Joomla: هو نظام إدارة المحتوى آخر يمكن تثبيته في Laravel. يوفر Joomla واجهة مستخدم سهلة الاستخدام ويتيح للمستخدمين إنشاء وتحرير المحتوى بسهولة، مع إمكانية تخصيص الواجهة حسب احتياجات المشروع. 5- October CMS: هو نظام إدارة محتوى مفتوح المصدر يعتمد على لارافيل، ويتميز بتصميم جميل وواجهة مستخدم سهلة الاستخدام، ويدعم العديد من الإضافات المفيدة لتوسيع وظائفه. وبالنسبة لـ Dashboard الافتراضية في لارافيل، فهي توفر واجهة مستخدم لإدارة المشروع بشكل عام ولكنها لا توفر كل الوظائف التي يمكن أن تحتاجها في إدارة موقع جامعة، ولذلك يمكن استخدام الخيارات السابقة لتلبية المتطلبات المحددة لمشروعك. وبالطبع هناك برمجة خاصة لإنشاء نظام محتوى يلبي إحتياجاتك إذا لم تتوافر، لكن لا أظن أنك بحاجة إلى ذلك.
  25. لنفترض أنك تريد إنشاء صفحة ويب لنشر أخبار على موقعك باستخدام ASP.NET. يمكنك القيام بذلك باستخدام عدة خطوات: إنشاء قاعدة بيانات: يجب عليك إنشاء قاعدة بيانات لتخزين معلومات الأخبار. يمكن استخدام أي قاعدة بيانات تدعم .NET مثل SQL Server أو MySQL. إنشاء صفحة إضافة الأخبار: يمكنك إنشاء صفحة ويب تحتوي على نموذج لإضافة أخبار جديدة. يمكن استخدام عناصر تحكم ASP.NET مثل TextBox وDropDownList وFileUpload لجمع المعلومات المطلوبة. فيما يلي مثال بسيط لصفحة إضافة الأخبار: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="AddNews.aspx.cs" Inherits="AddNews" %> <!DOCTYPE html> <html> <head> <title>Add News</title> </head> <body> <form runat="server"> <div> <label for="title">Title:</label> <asp:TextBox ID="txtTitle" runat="server"></asp:TextBox> </div> <div> <label for="category">Category:</label> <asp:DropDownList ID="ddlCategory" runat="server"> <asp:ListItem Value="1">Sports</asp:ListItem> <asp:ListItem Value="2">Politics</asp:ListItem> <asp:ListItem Value="3">Entertainment</asp:ListItem> </asp:DropDownList> </div> <div> <label for="image">Image:</label> <asp:FileUpload ID="fuImage" runat="server" /> </div> <div> <label for="content">Content:</label> <asp:TextBox ID="txtContent" TextMode="MultiLine" Rows="10" runat="server"></asp:TextBox> </div> <asp:Button ID="btnSubmit" runat="server" Text="Submit" OnClick="btnSubmit_Click" /> </form> </body> </html> إنشاء صفحة عرض الأخبار: يجب عليك إنشاء صفحة لعرض الأخبار التي تم إضافتها. يمكنك استخدام عناصر تحكم ASP.NET مثل GridView لعرض الأخبار في جدول. فيما يلي مثال بسيط لصفحة عرض الأخبار: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="ViewNews.aspx.cs" Inherits="ViewNews" %> <!DOCTYPE html> <html> <head> <title>View News</title> </head> <body> <form runat="server"> <asp:GridView ID="gvNews" runat="server" AutoGenerateColumns="False"> <Columns> <asp:BoundField DataField="Title" HeaderText="Title" /> <asp:BoundField DataField="Category" HeaderText="Category" /> <asp:BoundField DataField="Content" HeaderText="Content" /> </Columns> </asp:GridView> </form> </body> </html> البرمجة الخلفية: يجب عليك برمجة الصفحات الخلفية لإضافة وعرض الأخبار. فيما يلي مثال بسيط لكيفية إضافة وعرض الأخبار باستخدام ASP.NET وC#: // AddNews.aspx.cs protected void btnSubmit_Click(object sender, EventArgs e) { string title = txtTitle.Text; int category = int.Parse(ddlCategory.SelectedValue); string content = txtContent.Text; string image = ""; if (fuImage.HasFile) { string fileName = Path.GetFileName(fuImage.FileName); fuImage.SaveAs(Server.MapPath("~/images/" + fileName)); image = "~/images/" + fileName; } string connectionString = ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString; using (SqlConnection connection = new SqlConnection(connectionString)) { SqlCommand command = new SqlCommand("INSERT INTO News (Title, Category, Content, Image) VALUES (@Title, @Category, @Content, @Image)", connection); command.Parameters.AddWithValue("@Title", title); command.Parameters.AddWithValue("@Category", category); command.Parameters.AddWithValue("@Content", content); command.Parameters.AddWithValue("@Image", image); connection.Open(); command.ExecuteNonQuery(); } Response.Redirect("ViewNews.aspx"); } // ViewNews.aspx.cs protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { string connectionString = ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString; using (SqlConnection connection = new SqlConnection(connectionString)) { SqlDataAdapter adapter = new SqlDataAdapter("SELECT ID, Title, Category, Content, Image FROM News", connection); DataTable table = new DataTable(); adapter.Fill(table); gvNews.DataSource = table; gvNews.DataBind(); } } } protected void gvNews_RowEditing(object sender, GridViewEditEventArgs e) { gvNews.EditIndex = e.NewEditIndex; BindGrid(); } protected void gvNews_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e) { gvNews.EditIndex = -1; BindGrid(); } protected void gvNews_RowUpdating(object sender, GridViewUpdateEventArgs e) { string ID = gvNews.DataKeys[e.RowIndex].Value.ToString(); string title = ((TextBox)gvNews.Rows[e.RowIndex].FindControl("txtTitle")).Text; int category = int.Parse(((DropDownList)gvNews.Rows[e.RowIndex].FindControl("ddlCategory")).SelectedValue); string content = ((TextBox)gvNews.Rows[e.RowIndex].FindControl("txtContent")).Text; string connectionString = ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString; using (SqlConnection connection = new SqlConnection(connectionString)) { SqlCommand command = new SqlCommand("UPDATE News SET Title = @Title, Category = @Category, Content = @Content WHERE ID = @ID", connection); command.Parameters.AddWithValue("@ID", ID); command.Parameters.AddWithValue("@Title", title); command.Parameters.AddWithValue("@Category", category); command.Parameters.AddWithValue("@Content", content); connection.Open(); command.ExecuteNonQuery(); } gvNews.EditIndex = -1; BindGrid(); } protected void gvNews_RowDeleting(object sender, GridViewDeleteEventArgs e) { string ID = gvNews.DataKeys[e.RowIndex].Value.ToString(); string connectionString = ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString; using (SqlConnection connection = new SqlConnection(connectionString)) { SqlCommand command = new SqlCommand("DELETE FROM News WHERE ID = @ID", connection); command.Parameters.AddWithValue("@ID", ID); connection.Open(); command.ExecuteNonQuery(); } BindGrid(); } private void BindGrid() { string connectionString = ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString; using (SqlConnection connection = new SqlConnection(connectionString)) { SqlDataAdapter adapter = new SqlDataAdapter("SELECT ID, Title, Category, Content, Image FROM News", connection); DataTable table = new DataTable(); adapter.Fill(table); gvNews.DataSource = table; gvNews.DataBind(); } } الكود السابق يقوم بعرض الأخبار المضافة في قاعدة البيانات باستخدام GridView. ويتم استخدام SqlDataAdapter لاستعلام قاعدة البيانات وتعبئة DataTable، ثم يتم تعيين هذا DataTable كمصدر بيانات لـ GridView. بعد ذلك يتم استخدام الحدث RowEditing للسماح للمستخدم بتحرير سجل الأخبار، ثم استخدام الحدث RowUpdating لتحديث السجل بعد التعديل.
×
×
  • أضف...