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

عمر قره محمد

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

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

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

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

    40

كل منشورات العضو عمر قره محمد

  1. نعم سيتم مساعدك في ذلك بالفعل، وإذا كان لديك مشكلة ما مع GitHub فيمكنك السؤال دائماً.
  2. يمكنك الترقية من خلال الملف composer.json ومن ثم تنفيذ التعليمات التالية : composer install ثم composer dump-autoload ثم composer update وقد تجد الكثير من التعديلات و الكثير من الوظائف الملغات deprecated بعد عملية الترقية. قد يفيدك الدليل الرسمي من Laravel للترقية من هنا ولقد تم الاجابة على سؤالك سابقاً :
  3. ونعم يقدمون شرح كافي أو اكثر من كافي بالنسبة لواجهات المستخدم front-end، ويمكنك العمل بعدها بالفعل وهنالك الكثير من الشركات التي تطلب مبرمجين front-end بشكل دوري، أما بالنسبة للعمل الحر فلست واثقاً من ان الـ front-end هو الاكثر طلباً فغالبية الطلبات في العمل الحر تكون لإنشاء موقع الكتروني متكامل full-stack والذي يشمل الواجهات الامامية والخلفية. ويمكنك الاطلاع على الفيديو التالي للتعرف أكثر عن الدورة : وقد يفيدك الاطلاع على النقاش التالي : وقد يفيدك النقاشات التالية كذلك :
  4. هل يمكنك ايضاح سؤالك بشكل افضل، واعطاء المزيد من التفاصيل عن مشكلتك.
  5. يمكنك اظهار الملفات المخفية كالتالي في windows 11 والطريقة هي نفسها تقريباً في windows 10 : ثم :
  6. عدل الكود للشكل التالي : const handlePrevClick = () => { const box = carrouselRef.current; let width = box.clientWidth; box.scrollLeft = box.scrollLeft - width; }; const handleNextClick = () => { const box = carrouselRef.current; let width = box.clientWidth; box.scrollLeft = box.scrollLeft + width; }; بحيث تعرف الـ box داخل كل وظيفة بدلاً م ان تعرفه خارج الوظائف. وسبب المشكلة انك تعرف الـ box والذي هو عبارة عن useRef قبل ان تقوم بإسناد الـ useRef للعنصر الذي تريد التحكم به وفي هذه الحالة تكون قيمته undefined وهو يعمل عند اضافة الـ console.log بسبب خواص react والتي تسمح للتطبيع بالتحديث بدون اعادة تحميل الصفحة بالكامل. بينما في الشكل الثاني تقوم بتعرفي الـ box بعد ان تم اسناد الـ useRef.
  7. يبدو ان هنالك عنصر ما ناقص في مشكلتك، جرب الكود التالي : const handlePrevClick = () => { let width = box.clientWidth box.scrollLeft = box.scrollLeft - width // console.log(box.clientWidth); } const handleNextClick = () => { let width = box.clientWidth box.scrollLeft = box.scrollLeft + width //console.log(box.clientWidth); } في حال لم يعم قم بمشاركة ملفات المشروع حتى استطيع تجريبه.
  8. بحسب التوثيق الرسمي يمكنك الوصول إلى العنصر كالتالي : comboBox1.Items[i].ToString() حيث ان الـ i هو الـ index الخاص بالعنصر، والـ comboBox1 هو الـ comboBox الخاص بك. يمكنك الاطلاع على التوثيق الرسمي من هنا
  9. نعم توفر لك معلومات كافية للقيام ببعض الأعمال ولكن كما قال الاستاذ قيس فأنت بحاجة للاختصاص في مجال معين حتى تقوم بالأعمال المعقدة. ولقد كان هنالك بعض النقاشات السابقة بهذا الخصوص :
  10. ربما يمكنك احضارهم بالشكل التالي : SELECT * FROM writers ORDER BY posts LIMIT 5 حيث انني في الكود السابق افترض ان الـ writers هو اسم الجدول الخاص بالكتاب و posts هو اسم الحقل الخاص بعدد المنشورات في الجدول.
  11. يمكنك تعديل الكود للشكل التالي : <form> <label for="number">Enter 7-digit number:</label> <input type="text" id="number" name="number" maxlength="7" /> <!-- عدل استدعاء الوظيفة من هنا --> <button type="submit" id="submit" onclick="redirect(event)">Submit</button> </form> <script> // قم بإضافات البراميتر function redirect(e) { // قم بإضافة الكود التالي e.preventDefault(); var number = document.getElementById("number").value; var url = ""; switch (number) { case "1111111": url = "https://google.com/"; break; case "2222222": url = "https://youtube.com/"; break; case "3333333": url = "https://twitter.com/"; break; case "4444444": url = "https://facebook.com/"; break; case "5555555": url = "https://rraass852.com/"; break; case "6666666": url = "https://meta.com/"; break; case "7777777": url = "https://tesla.com/"; break; default: var error = document.createElement("div"); error.style.cssText = "font-size:1.2em; padding:20px; background-color:red; color:white; text-align:center;"; error.innerHTML = "Invalid number, please enter a valid number"; document.body.appendChild(error); setTimeout(function () { document.body.removeChild(error); }, 3000); return; } window.location.href = url; } </script>
  12. الفيديو التالي يشرح الامر : ستحتاج ان تملك ملف public يقوم بتقديم الملفات الثابتة ويمكنك اعداده كالتالي : app.use(express.static(path.join(__dirname, 'public'))); ثم ستقوم بعمل build لتطبيق الـ react ثم تضعه الملفات الناتجة في ملف الـ public الخاص بسيرفر الـ node. بحيث يكون ملف الـ index.js النتاج موجود داخل المجلد public مباشرةً. ملاحظة : Heroku لم يعد مجانياً بعد الآن
  13. وعليكم السلام ورحمة الله، شارك رابط المستودع الخاص بك ورابط الموقع.
  14. هنالك الكثير من الطرق لرفع الموقع بشكل مجاني. ومنها رفع الموقع على GitHub pages ويمكنك تعلم ذلك من هنا : وإذا كان الوقع الخاص بك مبني باستخدام react : وهنالك طريقة ثانية وهي رفع الموقع على استضافة مجانية مثل 000webhost وكل ما عليك فعله في هذه الحالة هو التسجيل في الموقع وانشاء استضافة مجانية. وبعدها تقوم برفع الموقع الخاص بك في المجلد public الموجود لوحة التحكم. وكذلك يمكنك رفع الموقع على Netlify :
  15. اعتقد ان ذلك لحدث لأنك تضع الخاصية للعنصر container الموجود داخل الـ footer بينما الصحيح ان تضع الخاصية للعنصر container الموجود قبل الـ footer والذي يحتوي مكونات الصفحة الرئيسية. والفكرة من الخاصية السابقة هي ان العنصر الذي يسبق الـ footer سيصبح اطول وبالتالي لن يبقى هنالك فراغ في الصفحة بعد الـ footer
  16. لقد عمل الكود لدي، لاحظ : عدله للشكل : <div class="container" style="min-height: 100vh;">
  17. هل جربت أن تعطي الخاصية : min-height: 100vh; للعنصر صاحب الكلاس container
  18. قم بإعطاء الخاصية نفسها : min-height: 100vh; للعنصر صاحب الكلاس container . ويمكنك تعديل الارتفاع من 100 إلى المقاس الذي يناسبك او يمكنك اضافة الكلاس التالي للـ footer : fixed-bottom
  19. على ما يبدو أن المشكلة ليست في ال footer هل يمكنك مشاركة كامل ملفات المشروع،
  20. قم بإعطاء العنصر body الخاصية التالية : body{min-height 100vh} وهذا كفيل بأن يحل المشكلة.
  21. يمكنك فعل ذلك بوضع شروط مثل (إذا كان العمود يساوي قيمة معينة قم بإضافة نسبة معينة إلى السعر) وبالتالي ستضطر إلى اضافة شرط لكل قيمة تريد اضافتها : =D1+IF(B1 = "احمر";D1*0.1;0)+IF(B1 = "اخضر";D1*0.05;0)+IF(B1 = "اصفر";D1*0.05;0)+IF(B1 = "ازرق";D1*0.07;0)+IF(C1="كبير";D1*0.25;0) والنتيجة كالتالي :
  22. وعليكم السلام ورحمة الله، هل تحاول فصل عناصر العمود الاول في السطر 5 وما بعد حتى تصبح في ثلاث عواميد مثل السطر 1 ؟ إذا كنت تحاول فعل ذلك فيمكنك القيام بالأمر باتباع الخطوات التالية : حدد الخلية أو العمود الذي يحتوي على النص الذي تريد تقسيمه. حدد البيانات > النص إلى أعمدة. في معالج تحويل النص إلى أعمدة،حدد محدد > التالي. حدد المحددات لبياناتك. وهي في حالتك المساحة. يمكنك الاطلاع على معاينة للبيانات في النافذة معاينة البيانات. حدد التالي. حدد الوجهة في ورقة العمل حيث تريد ظهور البيانات المنقسمة. حدد إنهاء.
  23. وعليكم السلام ورحمة الله، هل تحاول فصل عناصر العمود الاول في السطر 5 وما بعد حتى تصبح في ثلاث عواميد مثل السطر 1 ؟ إذا كنت تحاول فعل ذلك فيمكنك القيام بالأمر باتباع الخطوات التالية : حدد الخلية أو العمود الذي يحتوي على النص الذي تريد تقسيمه. حدد البيانات > النص إلى أعمدة. في معالج تحويل النص إلى أعمدة،حدد محدد > التالي. حدد المحددات لبياناتك. وهي في حالتك المساحة. يمكنك الاطلاع على معاينة للبيانات في النافذة معاينة البيانات. حدد التالي. حدد الوجهة في ورقة العمل حيث تريد ظهور البيانات المنقسمة. حدد إنهاء.
  24. قم بإعطاء كل واحدة منهم اسم معين (كل ملف html) وضعهم في ملف الـ public. ففي العادة يكون ترتيب الملفات بالشكل : - index.html - css - newName.css - css باقي ملفات الـ - js - script.js - باقي ملفات الجافاسكريبت فما يجب عليك ان تفعله هو : - newName.html - css - newName.css - css باقي ملفات الـ - js - newName.js - باقي ملفات الجافاسكريبت حيث أن newName هو اسم الملف الجديد وبعد ذلك تعدل الروابط الخاصة باستدعاء ملفات الـ js و الـ css إلى الاسم newName الجديد. وتقوم بهذه الخطوة لكل واحدة من صفحات الهبوط وبعدها تقوم بدمج كل مجلدات الـ css في مجلد css واحد وكذلك بالنسبة للـ js. لتصبح الملفات لديك بالشكل التالي : - newName1.html - newName2.html - css - newName1.css - newName2.css - css باقي ملفات الـ - js - newName1.js - newName2.js - باقي ملفات الجافاسكريبت وفي حال وجود المزيد من المجلدات مثل images و fonts ..إلخ فتقوم بتجميعها في مجلد واحد بالاسم images و fonts بنفس الطريقة ولا داعي لإعادة تسمية الملفات في هذه الحالة إلى إذا كان هنالك اكثر من صورة بنفس الاسم.
×
×
  • أضف...