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

Ahmed.Sayed

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

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

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

كل منشورات العضو Ahmed.Sayed

  1. غالبًا أنك لم تقم بتضمين ملف الـ _breakpoints.scss حيث يجب عليك التأكد من أنك قمت بتضمين الملف التالي:- @import "~bootstrap/scss/mixins/_breakpoints.scss"; إذا قمت بتضمينه سيعمل الكود الخاص بك بشكل سليم تمامًا ، من المرجح كذلك أنك قمت بتضمين مسار خاطئ ، يرجى التأكد من المسار.
  2. يمكنك البداية بـ موسوعة حسوب لشرح الخوارزميات وأنواعها الخوارزميات - موسوعة حسوب كذلك يمكنك إيجاد مستودعات لشرح الخوارزميات على موقع GitHub بشكل ممتاز ومٌفصل. وإذا كنت تريد تطبيق تلك الخوارزميات ككود يمكنك إستعمال موقع Codeacademy حيث هناك الكثير من الخوارزميات التي يمكنك تطبيقها على اللغات البرمجية المختلفة. يمكنك كذلك الإطلاع على المقالات التالية:-
  3. نعم ، يوجد بالفعل حزمة متوفرة على المستودع التالي في جيت هب. laravel-subscriptions كذلك أرشح لك خيار أفضل وهو حزمة مقدمة من laravel https://laravel.com/docs/9.x/billing والحزمة كذلك خالية من نظام المدفوعات ، بمعنى أنها مناسبة تمامًا لإحتياجاتك المكتوبة. يمكنك كذلك عمل النظام يدويًا ، لكن سيكون هناك مجهود أكبر في إنشاءها ، بمعنى آخر ستحتاج لإعادة إنشاء العجلة ، على كلً يمكنك جعل الإشتراك ينتهي عبر جدولة المهام الموجودة في لارافيل يمكنك الإطلاع على الشرح الخاص بها على الويكي الخاص بحسوب. جدولة المهام (Task scheduling) في Laravel
  4. نعم يمكنك ، وهناك عدة طرق لتستطيع الولوج إلى موقع مُستضاف محليًا على جهاز آخر وأسهل طريقة هي الإتصال عبر نفس الشبكة يجب على الجهاز الذي تستخدمه أن يكون متصل بنفس الشبكة المُستضاف عليها الجهاز ، ثم ستستخدم الأيبي للولوج للموقع ، ويمكنك الحصول على الأيبي عبر الدخول لإعدادات الشبكة وإيجاد IPv4 Address من "مشاهدة حالة الإتصال" كذلك يمكنك إستعمال الـhostname بدلًا من الأيبي للولوج إلى التطبيقات المستضافة محليًا. والطريقة الأخرى هي بتحويل الجهاز الخاص بك إلى خادم لإستضافة الموقع (ينطوي هذا الخيار على بعض من المخاطرة على ملفاتك) وهي بالخطوات التالية:- فتح البورت الخاص المطلوب من الراوتر الخاص بك ، أو التواصل مع الشركة التي تقوم بتزويدك بالإنترنت لفتحه. ضبط إعدادات الـ NAT & DHPC gateway لتعمل مع الأجهزة الخارجية. ربط الدومين الخاص بك على جهازك الذي أصبح بمثابة مستضيف الآن للموقع.
  5. يجب أولًا توضيح ماهي واجهات الموقع ، الواجهة تعني التصميم أو الشكل الخاص بالموقع وهي تختلف عن الواجهة الخلفية ، الواجهة الخلفية لا تراها ولكنها هي المسؤولة بدرجة أولى عن تخزين والتعامل ومعالجة البيانات ، منها كذلك الدفع وإرسال بريد إلكتروني ، الواجهات الأمامية تعني التصميم ، تحديدًا HTML & CSS &JS. يمكنك رؤية هذا في صفحة الدورة تحت "ماذا ستتعلم في هذه الدورة" حيث ستجد التالي:- أساسيات لغات تطوير واجهات المستخدم: HTML, CSS, JavaScript. مفهوم الواجهة الأماميّة للموقع front-end وكيفية عملها. استخدام أحدث أدوات التطوير: Bootstrap, jQuery, Sass, Gulp. وغيرها الكثير ، طبعًا بعد إنهاء وإتقان الواجهة الأمامية يمكنك إختيار لغة للواجهة الخلفية ، مثلًا دورة الـ PHP ، ويمكنك كذلك إستخدام جافاسكربت للواجهة الخلفية عبر النود جي إس.
  6. للحصول على تفاصيل بخصوص الدورات يُمكنك التواصل مع الدعم الفني لحسوب. ستدخل إلى هذا الرابط الدعم الفني لحسوب وستقوم بإختيار أكاديمية حسوب ، وسيتواصل معك الدعم الفني لتزويدك بالتفاصيل المطلوبة والجواب على أسئلتك بدقة.
  7. من الأفضل عدم إستدعاء الهيدر والفوتر فرديًا بهذه الطريقة أو عمل include الأفضل هو إستعمال extends في التعامل مع القوالب ، أولًا ستقوم بعمل ملف إسمه base.html داخل هذا الملف ستقوم بوضع الهيدر والفوتر والجزئية المتغيرة للصفحة أو الـ content بمعنى أصح. {% include "templates/header.html" %} {% block content %} {% endblock %} {% include "templates/footer.html" %} الآن يمكنك في صفحة الـ home ببساطة وضع الكود التالي وبدء إنشاء محتويات الصفحة بدون الحاجة لعمل include كل مرة للهيدر والفوتر. {% extends 'base.html' %} {% block content %} <p>محتوى الصفحة هنا</p> {% endblock %} تستخدم هذه الطريقة لجعل التحكم أكثر مرونة في المحتوى ومنفصل ومُقسم بشكل أفضل ، مثلًا لو احتجت لإضافة شيء أسفل الهيدر ستحتاج لتغييرها في كل الصفحات إذا إستعملت include لكل الصفحات ، لكن بهذه الطريقة يكفيك التعديل على الـ base.html.
  8. يجب عليك أولًا تنصيب Jquery npm i jquery ثم تقوم بعمل إستدعاء لمكتبة الـ Jquery داخل المسار التالي resources/js/bootstrap.js window.$ = require('jquery'); كذلك من أفضل الحلول بالنسبة لي وأبسطها هو تحميل الملفات الخاصة بـ Jquery مباشرة ووضعها في ملف الـpublic وربطها مباشرة بدون إستعمال الmix عن طريق حفظ ملفات jquery في المسار التالي public/js ثم إستدعاءها في الHead بهذا الشكل <script src="{{ asset('js/jquery-3.6.0.min.js') }}"></script> تعتبر الطريقة الأخيرة من أبسط وأضمن الطرق.
  9. يبدو الكود الخاص بك سليم ، تعود المشكلة في هذه الحالة غالبًا لقاعدة البيانات ، من الحلول الشائعة إزالة الباسوورد ، مادام أن التعامل يكون على السيرفر المحلي فلا فائدة من إستخدام كلمة سر. يمكنك الرد في حال لم يعمل هذا الحل معك.
  10. ببساطة يجب عليك تمرير المتغيرات عبر تعريفها بالإسم بالشكل التالي:- {{ route('admin.page', ['username'=>'emad', 'id'=>12]) }} عدم تعريفك لأسماء الباراميترز سيُظهر لك خطأ في الصفحة ، لكن بهذه الطريقة من المفترض أن يعمل الكود الخاص بك بشكل سليم تمامًا. يمكنك الإطلاع على توثيق التالي لمعرفة المزيد من التفاصيل Routing - Laravel 9.x
  11. STATIC_ROOT هو مسار الملفات الثابتة بعد إستخدام manage.py collectstatic بينما MEDIA_ROOT هي خاصة فقط بمسار الملفات التي يتم رفعها بإستخدام "FileField" يمكنك الإطلاع على التوثيق الخاص بهما لمعرفة المزيد من التفاصيل. STATIC_ROOT - Django MEDIA_ROOT - Django
  12. حسب ما إستنتجت أن مشكلتك مع الروابط ، هذه المشكلة تكون في الـhtml تحديدًا بحيث يكون هذا هو الكود "كمثال" <a href="https://beta.domain.com/login.php">login</a> هنا ستحتاج لإستبدال الـhref وجعله بالـ login.php ، بحيث إذا قمت بإضافة دومين آخر سيقوده لنفس الدومين الموجود عليه المستخدم ، ولن يحتاج للذهاب لسبدومين الـbeta بمعنى آخر سيكون بهذا الشكل <a href="/login.php">login</a> كذلك يمكنك عمل redirect من السبدومين الأول إذا كنت تريد إستعمال السبدومين test فقط.
  13. نعم ، يمكنك إستعمال فلتر yesno لحل هذه المشكلة ، وهو بسيط جدًا {{ value|yesno:"yeah,no,maybe" }} هنا إذا كانت قيمة الـ value = true سيقوم بطباعة yeah إذا كانت قيمة value = false سيقوم بطباعة no إذا كانت قيمة value = none سيقوم بطباعة maybe كذلك يمكنك جعلها بهذه الشكل {{ value|yesno:"yeah,no" }} هنا سيتم تحويل الـ none لـ false ، يمكنك الإطلاع أكثر من خلال توثيق django على الفلتر توثيق فلتر yesno من django
  14. حسنًا ، إنشاء أي نموذج للتعامل مع قاعدة بيانات يحتاج إلى تصميم ، كما ذكرت سيكون هناك حقلان ، حقل لمُعرف الطالب وهو الـ ID number ، والحقل الآخر هو كلمة السر ، والآن لنفترض أن إسم الصفحة هو checkGrade.php <form method="POST" action="checkGrade.php"> <input type="text" placeholder="ID Number" name="ID" /> <input type="password" placeholder="Password" name="password" /> <button type="submit">Show Your Grade</button> </form> سيكون هذا النموذج "بشكل أولي" مع إمكانية إضافة تصميم عبر الـcss ، الآن إنتهينا من الواجهة الأمامية. يبقى الواجهة الخلفية او الباك إند. سنحتاج أولًا لإستدعاء wpdb لنتعامل مع قاعدة بيانات الووردبريس global $wpdb; ثانيًا يجب أن نتأكد أن المستخدم قام بتعبئة حقل الأيدي والباسوورد عبر الشرط التالي if( isset($_POST['ID']) && isset($_POST['password']) ) // يتم التحقق من تعبئة إسم المستخدم وكلمة السر { } داخل هذا الشرط سنقوم بإستدعاء البيانات المطلوبة من قاعدة البيانات بعد التأكد من وجود أيدي وباسوورد بنفس المُدخلات التي أدخلها الطالب ، سنستخدم الدالة التالية $wpdb->get_results() والتي هي من الووردبريس نفسها وتقوم بإستدعاء البيانات من قاعدة البيانات عبر ال SQL Queries ، وطبعًا لتجنب حدوث مشاكل أو إختراق أو تلاعب في البيانات يجب علينا حماية المُدخلات من هذا التلاعب عبر الدالة التالية $wpdb->prepare() وهذه الدالة تحديدًا سنقوم بوضع الـ query فيها مع المتغيرات كـ argument ثاني بعد الـ query ، طبعًا سأرفق لك التوثيقات المطلوبة من الووردبريس للإطلاع على هذه الدوال بشكل أكثر تفصيلًا في نهاية الرد. وسيكون تجهيز الـ query بهذا الشكل:- $query = $wpdb->prepare( "SELECT grade FROM grades WHERE ID_number = '%s' AND password='%s' " , [$_POST['ID'], $_POST['password'] ] ) طبعًا يمكنك تغيير الأسماء حسب إحتياجاتك ، الآن أصبح الـquery جاهز ومحمي ، تبقى فقط تمريره لقاعدة البيانات لإستدعاء الدرجة المطلوبة ليكون بهذا الشكل <?php global $wpdb; if( isset($_POST['ID']) && isset($_POST['password']) ) // يتم التحقق من تعبئة إسم المستخدم وكلمة السر { $query = $wpdb->prepare( "SELECT grade FROM grades WHERE ID_number = '%s' AND password='%s' " , [$_POST['ID'], $_POST['password'] ] ) $result = $wpdb->get_results($query); echo 'Your grade is '.$result[0]['grade']; } ?> <form method="POST" action="index.php"> <input type="text" placeholder="ID Number" name="ID" /> <input type="password" placeholder="Password" name="password" /> <button type="submit">Show Your Grade</button> </form> الآن تبقى آخر شيء وهو أمر طباعة الدرجة بالشكل التالي:- echo 'Your grade is '.$result[0]['grade']; ليكون الكود بشكله الكامل بهذه الطريقة وهذه هي أبسط طريقة للكود ، يمكنك إضافة تعديلات حسب إحتياجاتك. وأخيرًا هذه هي التوثيقات الخاصة بالدوال في wordpress wpdb::get_results() wpdb::prepare()
  15. سأفصل لك الأخطاء مع التصحيح ، مبدئيًا <input type="text" id="username" name="username"><br> قمت بوضع هذا المُدخل قبل الـنموذج نفسه ، بالتالي ليس له فائدة ، والأصح أن يكون المُدخل داخل النموذج ونفس الأمر كذلك ينطبق على المُدخلات الموجودة بعد النموذج. فلا يمكنك وضع مُدخل إلا داخل وسم <form> فقط في حالتك. ثاني نقطة ، وهي بخصوص وسم <form> ، يلزم لوسم الـ form إضافة الaction والـmethod وهذا الكود كمثال بسيط <form action="addUser.php" method="post"> <fieldset> <legend>النموذج</legend> <input type="text" name="username" id="username"> <label for="username">اضغط هنا</label> </fieldset> </form> كذلك في السطر ما قبل الأخير ، قمت بوضع نهاية للوسم form ، بالرغم أنك أغلقته في الأعلى ، بمعنى أنك قمت بإغلاق الوسم form مرتين. هذه كانت المشاكل الملحوظة في الكود الخاص بك ، يمكنك الإطلاع على موسوعة حسوب ومشاهدة أمثلة ومحتويات الـ HTML للحصول على فائدة ومعرفة أكثر. موسوعة حسوب - HTML
  16. هذا يُسمى بالـ SaaS وهي إختصار لمصطلح "Software as a Service" أو "البرمجيات كخدمة" ، ببساطة أنت كشخص يمكنك عمل منصة لإنشاء المتاجر ، حيث يكون لكل تاجر موقعه الخاص ويكون عبر نسبة من البيع أو إشتراك شهري أو أيًا كان ، ستسألني مالفرق لو أنشأت موقع عنها؟ بإختصار الإجابة تكمن في الوفرة والسهولة. يهتم مقدمو خدمات الـ SaaS بتقديم البرمجيات لك والواجهة لتبدأ في العمل بشكل مباشر. وهذا يختلف عن الـAPI من عدة نواحي ، لن أخوض فيها لأنها ليست موضوعنا. طبعًا الـ SaaS له عدة مميزات سأذكر بعضها:- توفير الوقت والمجهود بدلًا من البحث عن مطور. توفير بيئة مستقرة تهتم بها جهة عليا. توفير واجهات مستخدم وتحكم كامل لكل خدمة على حدى. توفير المال ، فبالنسبة للمشاريع الناشئة يعتبر ال SaaS فكرة ممتازة.
  17. يمكنك إستخدام عدة حلول سهلة وبسيطة ، مثلًا firstOrCreate() او firstOrNew() تعمل هاتان الدالتان على البحث عن قيمة معينة في الداتابيز ، في حال لم تتوفر أو لم يجدها يتم إضافة هذه القيمة كـ row ، والكود التالي كمثال $user = User::firstOrCreate([ 'username' => 'Mohamed Ali' ]); يقوم هذا الكود بالبحث عن المستخدم بإسم "Mohamed Ali" في حال توفر هذا الإسم يتم إرجاعه كـ $user في حال لم يتوفر يتم إضافته لقاعدة البيانات وإرجاعه كذلك كـ $user توثيق firstOrCreate & firstOrNew على ويكي حسوب
  18. مبدئيًا ، لا يمكنك الإعتماد على الكتب بشكل كامل في تعلمك للبرمجة لأن البرمجة هي عملية بالدرجة الأولى ، الكتب تساندك وتسرع رحلتك في التعلم لكن الإعتماد الكلي عليها لن يُقدم ولا يؤخر. يُنصح لتعلم أي لغة برمجة سواء كانت البايثون أو أي لغة أخرى بفهم أساسيات البرمجة أولًا ، فلغات البرمجة بينها العديد من الأشياء المشتركة ، بل تكاد تكون لغات البرمجة هي الأفكار ذاتها مع تغيُر طريقة كتابة الكود أو ما نسميه ال "Syntax" وهذه هي الخطوات المرُشحة من المتخصصين لتعلم البايثون:- مشاهدة كورس لشرح البايثون (مع ضرورة التطبيق أثناء العمل) من المهم جدًا أن يكون الكورس معتمد على التطبيق وليس التلقين ، وأرُشح لك كورسات منصة حسوب في البايثون ، فدائمًا حسوب تقدم شروحات ذات جودة عالية سواءًا كانت مكتوبة أو مرئية يمكنك الوصول لكورس البايثون الخاص بأكاديمية حسوب من هنا بعد إتقانك للـSyntax وطريقة كتابة الكود ، أرُشح لك بدأ مشاريع صغيرة من أفكارك الخاصة ، بدون الإعتماد على أكواد الغير ، يبدو الأمر صعبًا في البداية لكن سرعان ما سيتحسن الأمر وستلاحظ فرق كبير في المستوى. شارك أعمالك مع مجتمع المبرمجين في GitHub و Twitter، كذلك يمكنك المشاركة في التحديات مثل #100DaysOfCode ، ستجعلك أكثر حماسًا للتعلم وتُلزم نفسك بالإستمرار في هذا المسار.
  19. أي مشروع إلكتروني ينطوي على جانبان ، الجانب التقني والجانب القانوني وبما أن سؤالك يشمل الجانب القانوني فسأتناول هذا الأمر. يجب أن تحرص عند فتح مشروع إلكتروني بشكل عام خاص بالخدمات على التالي:- إستخدام إسم ليس لعلامة مسجلة أخرى. إستخدام شعار فريد من نوعه ولا يكون مُقتبس أو مسروق أو له حقوق ملكية. ستحتاج في حال نمى مشروعك بشكل متزايد إلى إستخراج سجل تجاري في بلدك ، هذا يعزز من مصداقيتك أمام العملاء. كذلك أحبذ التحدث مع مستشار قانوني لإعطائك بعض النصائح والتفضيلات المتخصصة في هذا الأمر. وأرشح لك هذا المقال على الأكاديمية https://academy.hsoub.com/entrepreneurship/ecommerce/4-نصائح-لإطلاق-متجر-إلكتروني-ناجح-r99/
  20. يجب عليك الحصول على برنامج الفوتوشوب من موقع adobe الرسمي. الموقع الرسمي يُفضل أن تحصل على المنتجات دائمًا من مواقعها الرسمية لتجنب إختراق جهازك أو تعرض ملفاتك لخطر التشفير ، كذلك يوجد تجربة مجانية لمدة ثلاثين يوم توفرها الشركة في حال قمت بتحميل البرنامج لأول مرة.
  21. إستنادًا إلى شروط الإستخدام على منصة حسوب شروط الإستخدام يمكن لكل شخص إستخدام حساب واحد فقط لكل منصة ، بمعنى آخر نعم يُسمح لك بإنشاء حسابين على منصة حسوب ككل ، لكن غير مسموح إستخدام حسابين على نفس المنصة كمسُتقل أو خمسات ، لأن هذا يعطيك أفضلية غير شرعية بالحصول على الزبائن ويُرشح حسوب في الإرشادات إستخدام حساب واحد فقط لكل المنصات لعدم حدوث تشتت.
×
×
  • أضف...