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

Mustafa Suleiman

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

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

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

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

    340

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

  1. لا يجب أن تقوم بتوزيع تطبيقك كاملاً مفتوح المصدر إذا استخدمت مكتبة مفتوحة المصدر كجزء منه. حيث تعتبر المكتبة مفتوحة المصدر مجرد جزء من تطبيقك، ولا يؤثر استخدامها في ترخيص تطبيقك، ومع ذلك، يجب عليك الالتزام بشروط الترخيص الخاصة بالمكتبة المفتوحة المصدر والإفصاح عن المصدر الأصلي. علاوة على ذلك، قد يوجد شروط مختلفة لتوزيع تطبيقك وفقًا للتراخيص المختلفة للمكتبات المفتوحة المصدر التي استخدمتها، لذلك، يجب عليك التأكد من مطابقة شروط الترخيص لجميع المكتبات المفتوحة المصدر التي تستخدمها في تطبيقك والتوافق معها.
  2. تعني الأعمال المشتقة في تراخيص مكتبات مفتوحة المصدر (Open Source) أي تعديلات أو تعديلات مشابهة أو إنشاءات جديدة تم إنشاؤها على أساس العمل الأصلي المفتوح المصدر. وبموجب تراخيص البرمجيات المفتوحة المصدر ، فإن أي شخص يمكنه تحميل واستخدام وتعديل البرنامج الأصلي وإعادة توزيعه مع التعديلات التي أجراها، شريطة الالتزام بشروط الترخيص الخاصة بالبرنامج المفتوح المصدر وتضمن الإفصاح عن المصدر الأصلي وعدم التحايل على حقوق الملكية الفكرية. ومن الأمثلة على تراخيص مكتبات مفتوحة المصدر Apache وGNU GPL وMIT.
  3. يمكن استخدام حلقة التكرارية foreach للمرور على جميع عناصر المصفوفة والتحقق إذا كان العنصر رقمًا أو حرفًا باستخدام الدالة is_numeric() و is_string(). ولتخزين العدد، يمكن إنشاء متغير وزيادته بمقدار 1 في كل مرة يتم فيها طباعة عنصر رقمي، بعد الانتهاء من حلقة التكرارية، يمكن حساب عدد الأحرف التي تم تجاهلها عن طريق طرح عدد الأرقام من عدد العناصر في المصفوفة. مثلاً ، يتم استخدام حلقة foreach للمرور على جميع العناصر في المصفوفة، ثم التحقق إذا كان العنصر رقمًا باستخدام is_numeric() وإذا كان كذلك، ويتم طباعته و زيادة المتغير $countNumbers بمقدار 1، ثم حساب عدد الأحرف باستخدام count() لعدد العناصر في المصفوفة وطرحها من عدد الأرقام، وعرض النتائج في النهاية باستخدام echo. عليك بالبحث عزيزي، فمثلاً لو قمنا بالبحث عن "foreach في php حسوب أو المصفوفات في PHP حسوب" عن سنجد التالي:
  4. بالإضافة إلى ما ذكره قيس، يمكن أن يكون السبب هو عدم ربط ملف CSS الخاص بك بشكل صحيح داخل صفحة HTML الخاصة بك. لذلك، يجب التأكد من وجود رابط CSS صحيح في الصفحة HTML الخاصة بك وأن يشير إلى ملف CSS الصحيح. <!DOCTYPE html> <html> <head> <title>مثال على إضافة رابط CSS</title> <!-- رابط CSS --> <link rel="stylesheet" type="text/css" href="style.css"> </head> <body> <h1>مرحبا بالعالم!</h1> <p>هذا مثال على كيفية إضافة رابط CSS في صفحة HTML.</p> </body> </html> في المثال، تم إضافة عنصر "link" داخل رأس الصفحة HTML الخاصة بنا، وتم تحديد الرابط المناسب لملف CSS الذي يحتوي على الأنماط التي نريد تطبيقها على الصفحة. يتم تحديد المسار النسبي لملف CSS في الخاصية "href" التي تأتي بعد كلمة "stylesheet". الفرق بين color و column-rule-color يجب معرفة أن color و column-rule-color هما خاصيتان في CSS تستخدمان لتحديد لون النص ولون حاشية العمود (column rule) في تنسيق النصوص على شكل عمود في الصفحة. فخاصية color تستخدم لتحديد لون النص وتطبق على النص ككل، وتأخذ القيمة في شكل قيمة HEX، RGB أو اسم اللون. على سبيل المثال: h1 { color: #ff0000; /* يحدد لون النص كأحمر */ } أما خاصية column-rule-color فتستخدم لتحديد لون حاشية العمود في صفحات الويب الذي يتم عرضها على شكل عمود. تأخذ هذه الخاصية قيمة اللون بنفس الطريقة التي يتم بها تحديد لون النص. على سبيل المثال: div { -webkit-column-rule-color: blue; /* يحدد لون حاشية العمود بلون أزرق */ -moz-column-rule-color: blue; column-rule-color: blue; }
  5. ذكرت لك أكثر من مرة عزيزي ولم تستمع لي، قم بوضع مجهودك وطاقتك في التعلم وبناء مشروعك، ومسألة التراخيص لا داعي للقلق هكذا بشأنها فلا أحد يفعل ذلك.
  6. يمكنك استخدام مكتبات مفتوحة المصدر ذات التراخيص المختلفة في تطبيقك الخاص دون الحاجة لتعديلها، ما لم تكن هذه المكتبات تحمل ترخيص GPL. ومع ذلك، يجب الالتزام بتلك التراخيص وشروطها المحددة، والتي قد تشتمل على تطلب المصدر المفتوح لتلك المكتبات، وعدم استخدامها في تطبيق مغلق المصدر. فيما يتعلق بإنشاء ملف يعرض فيه المكتبات المستخدمة وتراخيصها، فهذا يعد خطوة جيدة ومهمة. ومن الممكن أن تقوم ببيع التطبيق مغلق المصدر، ومنع نسخه وإعادة توزيعه، ولكن ذلك يتوقف على الترخيص الذي اخترته لتطبيقك. سأشرح لك بشكل مفصل أكثر: الترخيص هو الشروط التي يتم تحديدها لاستخدام البرنامج أو المكتبة المفتوحة المصدر. يمكن لصاحب العمل أن يختار الترخيص الذي يتناسب مع احتياجاته، والذي يعبر عن الحقوق التي يمنحها للمستخدمين الآخرين لاستخدام برنامجه أو تطبيقه أو مكتبته المفتوحة المصدر. فترخيص GPL هو واحد من أكثر التراخيص شيوعًا للمكتبات المفتوحة المصدر، ويتطلب هذا الترخيص من المستخدمين نشر أي تعديلات يجرونها على البرنامج أو المكتبة المفتوحة المصدر، وأن يتم نشر أي تطبيقات يستخدمونها تحت نفس الترخيص GPL. ومن الممكن أن يكون من الصعب بيع تطبيق مغلق المصدر يستخدم مكتبات تحت ترخيص GPL، لأنه سيتطلب من المستخدمين إما شراء الترخيص الخاص بالمكتبات الخاصة بالتطبيق، أو نشر البرنامج أو التطبيق بشكل مفتوح المصدر. من ناحية أخرى، هناك تراخيص أخرى تسمح للمبرمج ببيع تطبيقه مغلق المصدر، ومنع نسخه وإعادة توزيعه. مثال على ذلك هو ترخيص MIT ، الذي يسمح للمبرمجين ببيع تطبيقاتهم مغلقة المصدر، ومنع نسخها وإعادة توزيعها، مع الالتزام بتضمين إشعار بحقوق النشر في جميع النسخ الموزعة من التطبيق. لذلك، يجب على المبرمج اختيار الترخيص الذي يناسب احتياجاته والتأكد من احترام شروط الترخيص لجميع المكتبات التي يستخدمها في تطبيقه.
  7. يمكن استخدام pandas مع pyqt5 رغم اختلاف تراخيصهما. فالترخيص الذي يُطبَّق على pyqt5 هو GPL، وهذا يتطلب أن يتم توزيع أي عمل مشتق يستخدم pyqt5 بترخيص متوافق مع GPL، وهذا يعني أن أي برنامج يستخدم pyqt5 يجب أن يتم توزيعه بترخيص GPL. أما بالنسبة لترخيص pandas فهو BSD، وهذا يسمح بتوزيعها مع أي برنامج بترخيص GPL أو غيره، ولذلك لا يوجد أي مشكلة في استخدام pandas مع pyqt5، ويمكنك استخدام الاثنين معًا بحرية. ومع ذلك، ينبغي الانتباه إلى أنه قد يوجد بعض التفاصيل القانونية التي قد تؤثر على استخدامك لهذه المكتبات في بعض الحالات الخاصة، لذلك يمكن الرجوع إلى الشروط الدقيقة لكل ترخيص والاطلاع على ما إذا كان هناك أي قيود تطبق في حالتك الخاصة.
  8. الأسئلة الإمتحانية أو الخاصة بالمشاريع لا يتم الإجابة عليها إلا في حالة توافر كود وتريدي المساعدة في حل مشكلٍة ما. وبخصوص سؤالك، يمكن إرشادك لطريقة الحل. الخطوات اللازمة لحل هذا السؤال هي كالتالي: 1- إنشاء فئة "Car" التي تحتوي على بيانات السيارة المطلوبة (نوع السيارة ، اسم الشركة المصنعة ، النموذج ، رقم اللوحة ، والرمز). 2- تحديد كافة الطرق المناسبة والبناء للفئة. 3- إنشاء فئة الاختبار (Test class) وإضافة خمس سيارات إلى النظام وتعيين سيارتين فقط للعملاء، وترك السيارات الأخرى لعملاء آخرين. 4- عرض تقرير يتضمن جميع بيانات السيارات داخل النظام. 5- تصميم رسم بياني لفئة "Car" باستخدام UML. ملاحظة: يجب مراعاة أنواع المتغيرات (static أو instance) وحقوق الوصول (visibility modifiers) وطرق الحصول والتعيين (getter and setter methods) وصف المصفوفة من الكائنات (array of objects). وإليك توضيح بخصوص الخطوة رقم 5: حيث تصميم الرسم البياني لفئة "Car" باستخدام UML يمثل أسلوباً هاماً لوصف هيكلية الكلاس وتفاعلاته مع الأنظمة الأخرى. وهناك عدة مكونات في الرسم البياني لفئة "Car" باستخدام UML: الاسم (Class Name): يمثل اسم الفئة ويكون موضوعًا في الجزء الأعلى من الدائرة. المتغيرات (Variables): تمثل خواص الفئة ويكون لها أسماء وأنواع، وتوضع في المستطيلات تحت اسم الفئة. الأساليب (Methods): تمثل الوظائف والإجراءات التي تنفذها الفئة، وتوضع أيضًا في المستطيلات تحت اسم الفئة. الإرث (Inheritance): تمثل العلاقة بين الفئات الأب والفئات الفرعية. الوصلات (Associations): تمثل العلاقة بين الفئة والفئات الأخرى. التعليقات (Comments): يمكن إضافة تعليقات إلى الرسم البياني لشرح أي جزء من الرسم البياني.
  9. من الصعب تزويدك بالكود الدقيق دون معرفة تفاصيل صفحتك وقاعدة بياناتك وطريقة عرض البيانات، ولكن يمكن توفير نموذج عام لعرض بيانات دكتور معين عند النقر على اسمه. في البداية، يجب عليك تخزين بيانات الأطباء في قاعدة البيانات الخاصة بك وتعيين مفتاح رئيسي فريد لكل سجل، مثل "id". ثم باستطاعتك إنشاء صفحة PHP تقوم بالاتصال بقاعدة البيانات واسترداد بيانات الطبيب المحدد باستخدام ال "id" المحدد في الرابط الذي تم النقر عليه يمكن استخدام الدالة $_GET للحصول على ال "id" المحدد في عنوان URL، على سبيل المثال: <?php // استدعاء ملف الاتصال بقاعدة البيانات include('db_connect.php'); // التحقق من وجود قيمة "id" في العنوان URL if (isset($_GET['id'])) { // استعلام SQL لاسترداد بيانات الطبيب المحدد $sql = "SELECT * FROM doctors WHERE id = ".$_GET['id']; $result = mysqli_query($connection, $sql); // التحقق من وجود بيانات الطبيب if (mysqli_num_rows($result) > 0) { // عرض بيانات الطبيب المحدد $row = mysqli_fetch_assoc($result); echo "اسم الطبيب: ".$row['name']."<br>"; echo "تخصص الطبيب: ".$row['specialization']."<br>"; // وهكذا } else { echo "لم يتم العثور على بيانات الطبيب المحدد"; } } else { echo "لم يتم تحديد أي طبيب"; } ?> ويمكنك استخدام روابط HTML التي تحوي ال "id" المحدد لتحويل المستخدمين إلى صفحة عرض بيانات الطبيب المحدد، على سبيل المثال: <a href="doctor_details.php?id=1">اسم الطبيب</a> حيث "1" هو قيمة "id" المحددة للطبيب المراد عرض بياناته.
  10. بالإضافة إلى ما تم ذكره، يمكنك الإعتماد على المقالات الخاصة بالأساسيات في أكاديمية حسوب: كما يمكنك التسجيل في إحدى دورات أكاديمية حسوب وبذلك ستفتح لك المسارات الأولى من جميع الدورات المتوفرة على الأكاديمية. بعد ذلك يمكنك تصفح كافة المقالات المتعلقة بـ HTML5 و CSS من خلال القسم الخاص بهم في أكاديمية حسوب. قسم دروس ومقالات HTML قسم دروس ومقالات CSS
  11. حاول تجربة الخطوات التالية: افتح ملف Word الذي تريد ترقيم صفحاته. انتقل إلى الصفحة التي تريد أن يبدأ الترقيم منها. انتقل إلى علامة التبويب "إدراج" Insert في شريط الأدوات. انقر على زر "رقم الصفحة" Page Number. حدد "تنسيق الرقم" Format Page Numbers. في صندوق حوار "تنسيق رقم الصفحة" Format Page Number، حدد خيار "بدء الترقيم من" Start at. ادخل الرقم الذي تريد أن يبدأ منه الترقيم، على سبيل المثال "6" للبدء من الصفحة السادسة. انقر على زر "موافق" OK. بعد الانتهاء من هذه الخطوات، سيبدأ الترقيم من الصفحة التي حددتها في خطوة رقم 2.
  12. تراخيص جافاسكريبت باستطاعتك استخدام JavaScript بحرية دون الحاجة إلى الحصول على أي ترخيص. وبالنسبة للمكتبات المختلفة المتاحة لـ JavaScript، فهي تأتي بشكل عام مع تراخيص مفتوحة المصدر. وبالتالي، يمكن استخدامها وتعديلها وتوزيعها بحرية وفقًا للشروط المحددة في تراخيصها. ومن بين المكتبات الشائعة لـ JavaScript هي React وVue وAngular وغيرها الكثير، وتأتي جميعها بتراخيص مفتوحة المصدر التي يمكن الاطلاع عليها عبر المستودعات الخاصة بها على منصات مثل GitHub. تعلم JavaScript بدون تعلم HTML و CSS يجب معرفة أن JavaScript لغة برمجة مستقلة عن الويب ويمكن استخدامها في مجالات برمجية أخرى غير تطوير صفحات الويب. ومع ذلك، فإن الحصول على فهم جيد لـ HTML و CSS يمكن أن يكون مفيدًا جدًا عند تعلم JavaScript لعدة أسباب: 1- HTML و CSS يشكلان أساسًا لتطوير صفحات الويب، ولذلك يساعد فهمهما في فهم كيفية تخطيط وتصميم الصفحات وتحسينها باستخدام JavaScript. 2- العديد من تطبيقات الويب تستخدم JavaScript بشكل كبير لتحسين التفاعلية والوظائف، ومعرفة HTML و CSS يمكن أن تساعد في فهم كيفية إدارة وتحرير العناصر على الصفحة باستخدام JavaScript. 3- يمكن استخدام JavaScript للتحكم في عناصر HTML و CSS، ولذلك من المفيد جدًا فهم كيفية عمل HTML و CSS لتحسين الأداء وتسهيل تطوير الصفحات باستخدام JavaScript. لذلك، أنصحك بشدة بتعلم HTML و CSS قبل تعلم JavaScript، لأنها تشكل الأساس اللازم لتطوير صفحات الويب باستخدام JavaScript وتساعد على فهم كيفية إدارة الصفحات وتحسينها. وبعد ذلك، يمكن البدء في تعلم JavaScript واستخدامها لتحسين التفاعلية والوظائف على صفحات الويب.
  13. السبب هو التحذيرات الإعلانية (Deprecation warnings) في PHP والتي تشير إلى أن بعض الميزات أو الوظائف المستخدمة في المشروع Laravel قد تم إهمالها وقد تصبح غير مدعومة في إصدارات PHP المستقبلية، لكن في الوقت الحالي، يمكن استخدامها بدون أي مشاكل. لذلك تأكد من أنك تستخدم إصدارًا من Laravel متوافقًا مع إصدار PHP الذي تستخدمه، ومن المفترض أن تعمل معظم إصدارات Laravel على PHP 7.3 فأعلى. وعادةً ما يمكن تجاهل تحذيرات الإعلانية، ولكن إذا كنت ترغب في إيقاف ظهورها، يمكنك تعطيل تحذيرات الإعلانية عن طريق إعدادات PHP في ملف php.ini. وذلك من خلال إضافة السطر التالي: error_reporting = E_ALL & ~E_DEPRECATED الأمر سيمنع ظهور جميع تحذيرات الإعلانية في PHP، وإذا كنت تريد تعطيل تحذير محدد فقط، يمكنك استخدام دالة error_reporting() في بداية الكود وتحديد أنواع الأخطاء التي تريد تجاهلها. لكن يجب الإنتباه إلى أن تعطيل تحذيرات الإعلانية يمكن أن يؤدي إلى عدم تحذيرك من وجود أخطاء في الكود. وإذا استمرت المشكلة في الظهور عند تشغيل مشروع Laravel الخاص بك، يمكنك محاولة تحديث Laravel وجميع المكتبات الخاصة به إلى أحدث الإصدارات، وذلك بتشغيل الأمر التالي في وحدة التحكم: composer update
  14. الجميع بدأ من تلك النقطة وأصابته نفس الحيرة، ولا يوجد نصيحة واحدة تناسب الجميع. لذلك إذا كان لديك الوقت الكافي وأقصد من 6 شهور لسنة تبعًا لمستواكي وخبرتك بالحاسوب والأمور المتعلقة به والإنترنت أيضًا، فأنصحك بتعلم أساسيات علوم الحاسب. حيث ستمكنك من رؤية الأمور بشكل أوضح، وتوجد دورة في أكاديمية حسوب خاصة بأساسيات علوم الحاسب والبرمجةـ وتلك هي البداية الصحيحة. أما إذا كان الوقت محدود لديك وتريدي الوظيفة، فسأنصحك بتعلم مجال الويب، وذلك لأنه الأسهل في البداية على عكس المجالات الأخرى مثل تطبيقات الهاتف أو برامج سطح المكتب. وعليكي بتعلم الآتي: HTML ثم CSS ثم جافاسكريبت بعد ذلك يأتي دور تعلم إطار العمل الخاص بجافاسكريبت، وأنصحك بتعلم Angular فستجدي سهولة في الحصول على وظيفة في البداية مقارنًة بمكتبة أو إطار React. وأيضًا بإمكانك تعلم PHP وإطار لارافيل مع Vue.js بدلاً من Angular، والأمر يعتمد على سوق العمل الخاص بك والبلد التي أنتي بها، وهل تريدي العمل على مواقع العمل الحر أم لا؟ حيث يتم طلب PHP ولارافيل بكثرة بالإضافة إلى وورد بريس المبني على لغة PHP. والأمر بحاجة إلى جد وإجتهاد ولن تجدي الطريق سهلاً، لذلك لا تيأسي حاولي مرارًا وتكرارًا وتحلي بالصبر، وحددي ساعات معينة يوميًا للمذاكرة حسب الوقت المتاح لك وكلما كان أكثر كان أفضل. وعليكي بإختيار كورس أو مسار تعليمي للغات السابق ذكرها بالإضافة إلى كورس خاص بالأساسيات، ولا تشتتي نفسك، إختاري مصدر واحد ثم تمسكي به في حال كنتي تفهمي منه بشكل جيد، فالمصادر كثيرة. وأكرر الأمر بحاجة إلى وقت وصبر فلا تنخدعي بمن يخبرك أنه يمكن تعلم مجال البرمجة في 3 شهور مثلاً، فعلى الأقل فترة 6 شهور لسنة، ولتحصلي على وظيفة اعملي على إنشاء مشاريع أثناء فترة تعلمك والمشاريع يجب أن تكون واقعية وليست مجرد نماذج. ولا تشغلي بالك بكل ذلك حاليًا فقط حاولي تنفيذ خطوة خطوة وهكذا، حتى لا تتشتي.
  15. عليكي بوضع الصورة والأيقونة والنص في عنصر واحد، وقد قمتي بذلك بالفعل، ولذلك يمكنك استخدام عنصر div وتحديد display:flex لإظهار العناصر جنبًا إلى جنب. حاولي تعديل الشفرة الخاصة بك كالتالي: <div style="display: flex; align-items: center;"> <img class="imgl@" v-if="item.logo I== ''" :src="require('../../assats/ing/$Eitam.Lago')"/> <p class="heder-box ps-3 mb-0"> {{item.name}} | HEE : <i v-if="index != 3" class="fa fa-plus ms-3" aria-hidden="true"></i> </p> </div> وباستطاعتك تعديل أنماط CSS الخاصة بك وفقًا لما تريدينه.
  16. يوجد عدة أسباب محتملة لهذه المشكلة، أرجو منك التحقق من الآتي: عدم وجود بيانات الاتصال الصحيحة لقاعدة البيانات، يجب التأكد من صحة اسم المضيف (hostname) واسم المستخدم (username) وكلمة المرور (password) واسم قاعدة البيانات (database name) ورقم المنفذ (port number). عدم وجود برنامج خادم MySQL مثبتًا على الجهاز، يجب تثبيت خادم MySQL على الجهاز والتأكد من أنه يعمل بشكل صحيح. تعذر الوصول إلى الخادم، يجب التأكد من توفر اتصال بالإنترنت وأن الخادم يعمل بشكل صحيح. إذا كنت تستخدمي MySQL على الإنترنت، فقد يكون المشكلة في توجيه المنفذ على الخادم، وهذا يتطلب إعداد خادم MySQL بشكل صحيح للسماح بالاتصال عبر المنافذ المطلوبة. و يجب التأكد من أن جميع بيانات الاتصال الخاصة بقاعدة البيانات صحيحة، وتجربة الاتصال بقاعدة البيانات باستخدام أدوات إدارة القواعد الخاصة بقاعدة البيانات للتحقق من صحة الاتصال، كما يمكن استخدام وحدات التحكم والتصحيح المتاحة في Android Studio لمعرفة سبب الخطأ.
  17. سيتم دفع المبلغ المحدد من قبل المستخدمين مباشرة إلى حساب المرابحة الذي قمت بإنشائه عند إعداد Apple Pay، وتعتمد طريقة سحب الأموال على مزود خدمة المدفوعات الذي استخدمته، وقد يتضمن ذلك تحويل الأموال إلى حساب مصرفي أو توفير خيارات أخرى للتحويل. ولمزيد من المعلومات، يمكنك الاطلاع على مستندات Apple Pay والتواصل مع دعم مزود الخدمة المدفوعات الذي استخدمته لمزيد من المعلومات حول الحصول على الأموال التي تم دفعها عن طريق Apple Pay. ويجب معرفة أن عمولة متجر تطبيقات آبل، هي 30 في المئة على التطبيقات والمشتريات داخل التطبيقات للسلع الرقمية والخدمات. ولكن يستثنى من ذلك مبيعات المنتجات الفعلية (المادية). وبعد مرور عام على الاشتراك، تتراجع العمولة المستحقة إلى 15 في المئة. وإليك نبذة عامة حول بعض الإرشادات اللازمة لتكوين التطبيق بما يتوافق مع قوانين Apple Pay في بعض الأسواق. على سبيل المثال، يتطلب القانون الأوروبي (PSD2) تضمين بعض الخيارات في خصائص Apple Pay للمعاملات التي تجري في المملكة المتحدة ومنطقة الاتحاد الأوروبي. بالإضافة إلى ذلك، يجب على التجار إظهار مبلغ نهائي على ورقة الدفع. بالنسبة للسعودية، يتطلب استخدام شبكة دفع (Mada) لجميع معاملات الخصم المحلية، وعلى التجار المقيمين في السعودية والذين يدعمون بطاقات الخصم إضافة شبكة الدفع (Mada) إلى الشبكات المدعومة. كما يجب على التجار المستخدمين لمزود الخدمة الدفع التأكد من دعم شبكة (Mada). وإذا لم يتم تضمين Mada، قد لا يتمكن مستخدمو Apple Pay من استخدام بعض البطاقات المصدرة في المملكة العربية السعودية عندما يكون الكود الخاص بالدولة هو SA.
  18. أهلا بك في أي وقت مهيب، شكرًا لإقتراحك وسيتم أخذه في الإعتبار لرؤية إمكانية إضافته للتحديثات القادمة لدورة PHP إن شاء الله. بخصوص ما تريده فهمه: بالنسبة للتعامل مع group by في قواعد البيانات، فهذا يستخدم عادةً لتجميع الصفوف في الجداول وتحليل البيانات المختلفة، ففي Laravel، يمكن استخدام الدالة groupBy في الاستعلامات الخاصة بقاعدة البيانات للقيام بعملية group by. أما بالنسبة لدمج هذا مع API RESTful في مشروع Laravel، فبإمكانك استخدام الـ Eloquent ORM الذي يمكنك من التعامل مع قاعدة البيانات بطريقة سهلة ومباشرة ويسهل عمليات الـ CRUD (الإنشاء والقراءة والتحديث والحذف)، وباستطاعتك إنشاء نموذج Model يمثل الجدول المراد القيام بـ group by عليه، ثم استخدام الدالة groupBy في الاستعلامات الخاصة بقاعدة البيانات. أما بالنسبة للدردشة، فيمكن تنفيذها باستخدام Laravel وتطبيق WebSocket، واستخدام مكتبات مثل Ratchet أو Pusher لإنشاء اتصال ثنائي الاتجاه بين المستخدمين والسيرفر، وإرسال واستقبال الرسائل في الوقت الحقيقي، بالإضافة إلى استخدام group by لتجميع رسائل معينة حسب العنوان أو الغرفة أو المستخدم. مثال بسيط: باستخدام Laravel وتطبيق WebSocket لإنشاء اتصال ثنائي الاتجاه بين المستخدمين والسيرفر، وإرسال واستقبال الرسائل في الوقت الحقيقي، والتحكم بعدد المستخدمين الموجودين في الدردشة، وإنشاء غرف الدردشة وإضافة المستخدمين إلى تلك الغرف. من الممكن استخدام مكتبات مثل Ratchet أو Pusher لتنفيذ هذا النوع من التطبيقات. لاحظ أن Ratchet يوفر خادم WebSocket لـ PHP ، في حين أن Pusher يوفر واجهة برمجة تطبيقات (API) لإنشاء تطبيقات الدردشة بسهولة. فيما يلي مثال بسيط يستخدم Pusher: // create a new chat room Route::post('/chat/room', function(Request $request) { $roomName = $request->input('roomName'); $pusher = new Pusher(env('PUSHER_APP_KEY'), env('PUSHER_APP_SECRET'), env('PUSHER_APP_ID')); $pusher->trigger('chatroom', 'new-room', ['roomName' => $roomName]); }); // join a chat room Route::post('/chat/room/join', function(Request $request) { $roomName = $request->input('roomName'); $username = $request->input('username'); $pusher = new Pusher(env('PUSHER_APP_KEY'), env('PUSHER_APP_SECRET'), env('PUSHER_APP_ID')); $pusher->trigger("chatroom-$roomName", 'new-user', ['username' => $username]); }); // send a message to a chat room Route::post('/chat/message', function(Request $request) { $roomName = $request->input('roomName'); $username = $request->input('username'); $message = $request->input('message'); $pusher = new Pusher(env('PUSHER_APP_KEY'), env('PUSHER_APP_SECRET'), env('PUSHER_APP_ID')); $pusher->trigger("chatroom-$roomName", 'new-message', ['username' => $username, 'message' => $message]); }); في المثال، تستخدم Pusher لإنشاء غرف الدردشة وإضافة المستخدمين إلى تلك الغرف، وإرسال واستقبال الرسائل في الوقت الحقيقي،ويمكنك تغيير الرموز المميزة مثل 'chatroom' أو 'new-room' و 'chat-message' حسب احتياجات تطبيقك. ويمكن إضافة مزيد من الميزات إلى التطبيق مثل إضافة نظام مصادقة لتحديد المستخدمين المسجلين والمصرح لهم الانضمام إلى غرف الدردشة، وإمكانية تحديد صلاحيات المستخدمين في الغرف المختلفة، أيضًا تخصيص واجهة المستخدم وإضافة مزيد من الميزات الإضافية مثل إرسال الصور والملفات، وتوفير وظائف بحث وتصفية لرسائل الدردشة.
  19. من المهم أن ينظر المدير والإداريون في وكالات الإعلان إلى المستهلكين من كلا المنظورين كأعضاء في القناة وكمستخدمين نهائيين للخدمات، وذلك لأنهم يمثلون الجانبين الأساسيين في أي استراتيجية إعلانية ويؤثران بشكل كبير على النجاح العام للحملة الإعلانية. فمن منظور إداري، يجب أن يتم النظر إلى المستهلكين كأعضاء في القناة والتفكير في كيفية تأثيرهم على عمليات الوكالة بشكل عام، ويجب مراعاة احتياجاتهم ومتطلباتهم واستجابة لها بطريقة تساعد على تحسين عمل الوكالة وإدارة العملاء بشكل أفضل. ومن منظور المستخدم النهائي، يجب أن تتم دراسة احتياجات المستهلكين واهتماماتهم وتفضيلاتهم. حيث يتعين على وكالات الإعلان أن تعرف كيفية التواصل مع المستهلكين وتحسين تجربتهم بشكل عام للوصول إلى هدف الحملة الإعلانية والحفاظ على رضا العملاء. وعامًة من الأفضل أن يتم التعامل مع المستهلكين بشكل متوازن والتفكير فيهم من كلا المنظورين لضمان تطوير استراتيجية إعلانية ناجحة ورضا العملاء.
  20. تثبيت TailwindCSS باستخدام npm عن طريق الأمر التالي: npm install tailwindcss بعد ذلك، إنشاء ملف tailwind.css واستيراد TailwindCSS فيه باستخدام @import كما يلي: @import 'tailwindcss/base'; @import 'tailwindcss/components'; @import 'tailwindcss/utilities'; ثم تكوين ملف tailwind.config.js لتحديد الـ breakpoints المطلوبة، وتمكين الخصائص الإضافية التي ترغب في استخدامها. على سبيل المثال، يمكنك استخدام الكود التالي: // tailwind.config.js module.exports = { theme: { screens: { 'sm': '640px', 'md': '768px', 'lg': '1024px', 'xl': '1280px', }, extend: { colors: { 'primary': '#1a202c', 'secondary': '#718096', }, }, }, variants: {}, plugins: [], } بعد ذلك، يمكنك استخدام الـ breakpoints المحددة في ملفات CSS الخاصة بك، ولتفعيل TailwindCSS في مشروع React، يجب تضمين ملف tailwind.css في ملف index.js الخاص بالمشروع كما يلي: // index.js import React from 'react'; import ReactDOM from 'react-dom'; import './tailwind.css'; import App from './App'; ReactDOM.render( <React.StrictMode> <App /> </React.StrictMode>, document.getElementById('root') );
  21. قم بالتأكد من تضمين مكتبة TailwindCSS وإضافة الـ breakpoints الخاصة بها في ملف الـ CSS الخاص بك، باستخدام الـ breakpoints المرتبطة بعرض الشاشة، مثل sm, md, lg, و xl. بعد ذلك، يمكنك تحديد عرض العناصر بناءً على الشاشة المعنية باستخدام الـ breakpoints في CSS الخاص بالكارد، مثل: @media (min-width: 640px) { .card { width: 50%; } } @media (min-width: 768px) { .card { width: 33.33%; } } ومن خلال الكود السابق، عندما يكون عرض الشاشة أكبر من 640 بكسل، سيتم تعيين عرض الكارد على 50٪، وعندما يكون أكبر من 768 بكسل، سيتم تعيين عرض الكارد على 33.33٪. كما يمكنك استخدام الـ breakpoints المختلفة لتحديد الأحجام الأخرى التي تناسب شاشات مختلفة.
  22. بالإضافة إلى ما ذكره لك عدنان حاول التأكد من النقاط التالية: 1- التأكد من أن المسار الذي تم استدعاء الملف من خلاله صحيح، أي E:\web-sit\formik\ps_academy\p2\pro2\src\components\FicheAxois.js هو المسار الصحيح. 2- التأكد من تثبيت المكتبة اللازمة للمكون، ففي الكود الخاص بك يتم استخدام axios لإحضار البيانات من API. 3- التأكد من عدم وجود أخطاء في الأكواد الأخرى في التطبيق، حيث أن الأخطاء في الأكواد الأخرى يمكن أن تؤثر على عرض المكون في الشاشة. 4- قد يكون المشكلة مرتبطة بطريقة عرض المكون في الكود، يجب التأكد من عدم وجود أي أخطاء في طريقة عرض المكون داخل ملف الكود. 5- يمكن أن يكون المشكلة مرتبطة بخطأ في ملف الـ CSS الخاص بالمكون، حيث أنه إذا كانت الصفحة تعمل بشكل صحيح ولكن المكون لا يظهر بشكل صحيح، فقد يكون السبب في ذلك هو خطأ في ملف الـ CSS.
  23. المعلومات التي بحاجة إلى توفيرها هي كالتالي: توضيح متطلبات النظام: تحديد المتطلبات اللازمة لتشغيل المشروع على النظام، مثل نسخة معينة من نظام التشغيل أو البرامج المطلوبة للتشغيل، على سبيل المثال: "يحتاج المشروع إلى نظام تشغيل Windows 10 ومتصفح Chrome". طريقة تحميل المشروع: تحديد كيفية تحميل المشروع، سواء عن طريق الحصول على الرمز المصدري أو تنزيل حزمة التثبيت، على سبيل المثال: "يمكن تحميل المشروع من مستودع GitHub أو من خلال تنزيل حزمة التثبيت". طريقة تثبيت المشروع: شرح كيفية تثبيت المشروع على النظام، سواء كان ذلك بتنزيل الحزمة وتثبيتها أو ببناء المشروع من الرمز المصدري، على سبيل المثال: "يمكن تثبيت المشروع بتنزيل حزمة التثبيت وتشغيلها على جهاز الكمبيوتر الخاص بك". كيفية تهيئة المشروع: شرح كيفية تهيئة المشروع قبل تشغيله، سواء كان ذلك بتكوين الملفات التكوينية أو بإعداد قاعدة البيانات، على سبيل المثال: "يجب تحرير ملف التكوين لتعيين المفاتيح السرية المطلوبة لتشغيل المشروع". كيفية تشغيل المشروع: شرح كيفية تشغيل المشروع، سواء بتشغيل الخادم أو بفتح صفحة الويب، على سبيل المثال: "يمكن تشغيل المشروع عن طريق تشغيل خادم الويب الذي يتم تضمينه في حزمة التثبيت، ثم فتح المتصفح والانتقال إلى عنوان URL الخاص بالمشروع". شرح وظائف المشروع: يمكنك شرح وظائف المشروع وكيفية استخدامها بشكل أفضل. توضيح المعلمات اللازمة: إذا كان المشروع يستخدم معلمات معينة، فعليك وضع شرح لهذه المعلمات وكيفية استخدامها بشكل صحيح. مثال للاستخدام: يمكنك وضع مثال عن كيفية استخدام المشروع بشكل صحيح من خلال توضيح المدخلات والمخرجات المتوقعة. توضيح الأخطاء الشائعة: يمكنك وضع تحذير للمستخدمين حول الأخطاء الشائعة التي قد يواجهونها عند استخدام المشروع وكيفية حلها. وبالنسبة للمشاريع الصغيرة فكل ما تحتاجه هو وصف بسيط للمشروع مع عنوان وصورة للتطبيق أو الموقع، مع عنوان ووصف للتقنيات واللغات المستخدمة، وعنوان ووصف لطريقة التشغيل. وهناك أداة بسيطة ستمكنك من فعل ذلك بكل سهولة: https://readmd.itsvg.in/ وإذا أردت المزيد من التخصيص وإضافة المزيد من المعلومات فالأداة التالية ستوفر لك ما تحتاجه: https://readme.so/ اللغة التي يتم بها كتابة ملفREADME اللغة الأكثر شيوعًا لكتابة README هي لغة تنسيق النصوص Markdown، لأنها توفر تنسيقًا بسيطًا وسهل القراءة للمستخدمين وتدعم تنسيقات متعددة مثل الصور والروابط والجداول والشفرة والاقتباسات والعناوين والنماذج والقوائم. بالإضافة إلى أن Markdown يعتبر لغة نصوص بسيطة وسهلة التعلم والاستخدام ولا تتطلب مهارات تقنية خاصة، مما يجعلها مثالية لكتابة ملفات README للمشاريع. ويمكن استخدام لغة HTML لكتابة ملف README، لأنها لغة تنسيق متعددة الاستخدامات وتدعم العديد من العناصر والسمات المختلفة التي يمكن استخدامها لتنسيق النص وتوضيح المشروع بشكل أفضل. أي يمكنك الجمع بين Markdown و HTML.
  24. أنت تحاول تمرير سلسلة نصية تحتوي على رمز الأيقونة كـ "Icon" للمكون "Card"، وما يجب هو تمرير الأيقونة نفسها كعنصر منفصل داخل المكون. import { AiFillFacebook, AiFillTwitterSquare, AiFillInstagram, AiFillYoutube } from 'react-icons/ai'; function Card(props) { return ( <div> {props.Icon} </div> ); } function App() { return ( <div> <Card Icon={<AiFillFacebook size={22} />} /> <Card Icon={<AiFillTwitterSquare size={22} />} /> <Card Icon={<AiFillInstagram size={22} />} /> <Card Icon={<AiFillYoutube size={22} />} /> </div> ); } يتم استيراد الأيقونات من مكتبة "react-icons" ويتم تمريرها كـ argument منفصل داخل المكون "Card" باستخدام الأقواس الزوجية، ثم عرض الأيقونة داخل المكون "Card" باستخدام "props.Icon".
  25. ربما هناك خطأ في عمود file_srno في الجدول الفرعي "details" الذي تم إنشاؤه في MySQL، حاول تجربة تعريف عمود السيريال "file_srno" على أنه مفتاح أساسي (primary key)، والذي يتم توليد قيمه تلقائياً بواسطة خاصية AUTO_INCREMENT. CREATE TABLE table_sub ( file_type INT NOT NULL, file_no INT NOT NULL, file_srno INT NOT NULL AUTO_INCREMENT PRIMARY KEY, descr NVARCHAR(100), FOREIGN KEY (file_type, file_no) REFERENCES table_main(file_type, file_no) ON UPDATE CASCADE ON DELETE CASCADE ); تم إضافة PRIMARY KEY في عمود file_srno لجعله المفتاح الأساسي، والاحتفاظ بخاصية AUTO_INCREMENT.
×
×
  • أضف...