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

Adnane Kadri

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

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

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

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

    51

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

  1. حزمة laravel-translatble من spatie تقوم أصلا بإعادة الترجمة الموافقة للغة المفعلة الحالية عن طريق قراءة المفتاح بشكل مباشر: $product->name; ولا حاجة لاستعمال مفتاح اللغة الحالية في ذلك. يمكنك على كل حال استعمال التابع getTranslation لقراءة الترجمة الموافقة للغة معينة: $product->getTranslation('name', 'en'); أما عن السياق الذي تستخدمينه في جلب الترجمات أو وضعها فهو سياق لا يختص بالحزمة التي تستعملينها، فالتوابع الموصوفة موجودة في حزمة laravel-translatable من Astrotomic في حين أن السياق المطلوب هو ذلك الخاص ب laravel-translatble من spatie. والتوابع الموصوفة في الأولى تختلف عن دلالة استخدامها في الثانية وهو ما ينتج المشكلة التي تحدث معك بطبيعة الحال. تعرفي على الفروقات ما بينهما عن طريق توثيقاتهما الرسمية: Astrotomic / laravel-translatable spatie/laravel-translatable
  2. بجانب ما اقترحه المدربون يمكنك اعادة التوجيه الى رابط الوجهة الحالية عن طريق: window.location.href = window.location.pathname + window.location.search + window.location.hash; Document.location
  3. انتبه الى أنك لا تقوم اساسا بتضمين بوتستراب في المشروع، سيعطل هذا بطبيعة الحال أي وظيفية يقدمها هذا الأخير. قم باستدعاء ملف جافاسكربت الخاص ببوتستراب عن طريق cdn: <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.min.js"></script> </body> او عن طريق تثبيتها عن طريق مدير الحزم npm: npm i bootstrap ثم في ملف index.js: import 'bootstrap' تأكد فقط من اعادة تحزيم ملفات المشروع عن طريق تنفيذ npm run build
  4. جرب فتح VS code كمسؤول أولا، وقم بالموافقة على مربع الحوار الذي يظهر بخصوص تحديث VS code. يفترض أن يتم التحديث بعد ذلك بشكل عادي. في حالة التعذر جرب التوصل الى ملف سجل الخطأ مفصلا مثلما يوصف بالمسار: C:\Users\pc\AppData\Locale\Temp\vscode-inno-updater-1677959981.log حاول استخلاص المشكلة وحلها أو قم بارفاق نص رسالة الخطأ.
  5. يمكنك وضع تطبيق لارافيل لديك في مجلد فرعي عن مجلد public_html في خادم الاستضافة، ومن ثم ضبط السابقة mm كسابقة لكامل المسارات المشتعبة عن المسار الرئيسي، بهاته الطريقة سيمكنك المحافظة على نفس الوظيفية. في ملف RouteServiceProvider اضف السطر التالي: ->prefix('mm') الى: Route::middleware('web') ->group(base_path('routes/web.php')); ليصبح: Route::middleware('web') ->prefix('mm') ->group(base_path('routes/web.php')); التوجيه (Routing) في Laravel
  6. ستحتاجين تعريف هاذين العمودين في خاصية translatable التي تستعملها السمة HasTranslations كالتالي: public $translatable = ['name' ,'description']; انتبهي الى أن هاته الأعمدة يجب ان تكون من نوع longText لتسع تخزين كائنات الجيسون داخلها.
  7. إذا كنت تريد تخزين عدد صحيح مكون من رقمين حصرا وبمجال مفتوح قد يحتوي على أصفار بادئة ("01" أو "09" مثلا)، فيجب عليك استخدام عمود VARCHAR بدلاً من الاستعانة بـ tinyInteger او smallinteger لأن كل منهما يقوم بإنشاء عمودين TINYINT و SMALLINT على التوالي، وهما ما لا يخدمان الغرض الذي لديك. $table->string('price', 2); لأن TINYINT والذي يعتبر الأقل يقبل تخزين أعداد من سالب 127 الى 127 معينة و من 0 الى 255 غير معينة.
  8. هو نفسه الفرق بين استضافات Linux واستضافات ويندوز، فالأولى قائمة على نظام تشغيل لينكس ومعدة للتعامل مع وحدات وتطبيقات قائمة على هذا النظام، من مثل: التطبيقات او السكربتات القائمة على وحدات Apache مثل PHP وما الى ذلك. SSH أما استضافات ويندوز فهي معدة للتعامل مع تطبيقات قائمة على نظام ويندوز من مثل: ASP.net MS access C# RDP في الأولى، نجد Cpanel كواحدة من لوحات التحكم الشائعة في مثل هاته الاستضافات، وتقابلها WHM في استضافات ويندوز. أما عن الأكثر شيوعا، فاستضافات لينكس تكتسح بفرق كبير. وهو الأمر ذاته في خطط قودادي.
  9. يوجد الكثير من الطرق، أفضل استعمال احد اضافات قوقل كروم في ذلك. يوجد مثلا اضافة اسمها 1clickvpn بسيطة وسهلة الاستعمال. اختبري ذلك.
  10. تأكدي من كل من التالي: أن البلد الذي تقومين من عليه بتصفح التطبيق مدعوم وغير محظور من قبل الموقع. وفي حالة ما كان ذلك يمكنك استعمال VPN للقيام بذلك. أنك تقومين بتصفحه من الرابط الصحيح: https://chat.openai.com/chat من امتلاك حساب. ايضا قد تكون المشكلة متعلقة بالخادم لا بالعميل، أي انها مشكلة تتعلق بالوصول الى المورد من الخادم. انتظري بعض دقائق واعيدي الدخول.
  11. يمكنك تعطيل زر الارسال عند ضغطه لأول واعادة تمكينه عند اكتمال الطلب. سيمكنك بهذا تلافي هاته المشكلة. مثال: <button onclick="sendMessage()">send</button> .. <script> let isSending = false; function sendMessage(){ if(! isSending){ // يتم الارسال الآن isSending = true // ارسال طلب الاجاكس // بعد نجاح طلب الاجاكس .then(response => { isSending = false }) } } </script>
  12. مرحبا ايمن، بالطبع يمكنك فالخوارزميات وبنى المعطيات أوسع من أن تحصر في بايثون، ولكنك لن تحتاج تعلمه على نحو عميق اذ يتم في بادئ المسار شرح تهيئة بيئة عمل خاصة ببايثون فقط. اي انك لن تعرف منه الا القدر الذي ستحتاجه لاستيعاب مفاهيم المسار. ولك الخيار ان شئت تطبيق ذلك وفق الجافاسكربت. أظن أن الأمر سيكون متعبا ومشتتا اذ ستحتاج استيعاب شيفرات بايثون اولا ثم تحويلها الى شيفرات جافاسكربت، فأنت في الأخير ستجد نفسك تتعرض لها حتما.
  13. يبدوا أن هنالك مشكلة بتضمين مكون portfolio.vue من الأساس. انتبه الى تضمينه على نحو صحيح.
  14. ان كنت تقصد من ضمن دورات الأكاديمية، فلا. لا تتوفر أكاديمية حسوب على دورة لتعليم الهكر الأخلاقي. يمكنك تقديم اقتراحك لفريق الدعم.
  15. لا أظن أن ذلك يسبب مشكلة للهاتف ولكن يمكنك استعمال ادوات اكثر فعالية لرفع الفيديو من مثل : ضغط الفيديو ورفعه، استعن في ذلك بتطبيقات من مثل 7-Zip استعمال تطبيق عميل FTP / SFTP. استعمال uTorrent لرفع الملف على دفعات في الخلفية (تأكد من موضوع الخصوصية)
  16. أفترض أنك تمتلك مكون فرعي يتم به عرض مجموعة من الأعمال ولنقل انه يتم تخزينها في مصفوفة كائنات projects. وتريد بشكل ما حساب عدد هاته الأعمال وحقنها الى المكون العام الذي يعبر عن الصفحة الرئيسية. يمكنك كفكرة التقاطها كعائد عن تابع للمكون معرفا كمرجع كـ: <template> <div id="app"> <h2> {{ projectsCount }} </h2> <ProjectsComponent ref="ProjectsComponent" /> </div> </template> <script> import ProjectsComponent from './ProjectsComponent' export default { data:{ projectsCount: 0, } components: { ProjectsComponent }, mounted () { this.projectsCount = this.$refs.ProjectsComponent.getProjectsCount(); } } </script> قم في داخل المكون الفرعي نعرف التابع getProjectsCount الذي يعيد عدد المشاريع: <template> <div id="projects"> projects </div> </template> <script> export default { data(){ return { projects:[ {id: 1, name: 'Web development'}, {id: 1, name: 'Web design'} ] } }, methods:{ getProjectsCount(){ return this.projects.length } } } </script>
  17. الأمر في النهاية هو واحد، فكل اللغات قادرة على تلبية احتياجات أي مشروع ويب مطروح وتبقى هاته اللغة مجرد آداة لهندسة تصميم معين أو وصف نظام ليعمل وفق طريقة ما. ان كنت تحس أنك تائه في اختيار لغة ما ففيما يلي بعض الخطوات التي قد تساعدك في ذلك: قم بعمل نظرة تحليلة شاملة لسوق العمل الذي تريد أن تعمل فيه مستقبلا واستخلص الأكثر طلبا. قم بالبحث عن حجم مجتمع لغة معينة وعدد العاملين بها في العالم (قد تساعدك استفتاءات مطوري stackoverflow). فاللغة الأكثر شيوعا لها الأفضلية طبعا. خذ نظرة عامة عن أقوى أطر العمل في كل لغة ومدى شيوعها. اسأل أو قم بتقدير سهولة تعلم كل لغة وقارن بينها (learning curves). وفي الأخير قم بالإختيار وابدأ التعلم مباشرة وفقط. وفي مرحلة ما، ستجد أن كلها يتشابه بنسبة كبيرة وسيمكنك التبديل بينها بسهولة تامة. ولكن الأهم أولا هو اختيار أحدها واتقانه والتركيز عليه.
  18. لا حاجة للحذف اذن، قم بتعديل تعليقك وازل الصورة ان كانت عن مشروع خاص. وفي حالة اقتباس تعليقك من قبل مدرب معين، جرب التواصل معه وطلب ذلك منه.
  19. مرحبا احمد وعليكم السلام، أظن أنه لا يمكن ذلك في الأكاديمية. الأعضاء المشرفون فقط من يمتلكون صلاحية اخفاء تعليق عن عامة المستخدمين الآخرين. التعليقات السابقة في الدورات هي الأخرى مرجع ومادة علمية يستفيد منها الطلبة الآخرون. لما تريد حذفها؟
  20. هلا قمت بالتقاط صورة كاملة لرسالة الخطأ التي تظهر؟ هل الموضع الذي تقوم بتعليقه هو ما ان ينتج المشكلة ام انك تقوم بتصريح المتغير facebook_login_url في مكان آخر؟
  21. أظن أن الموضوع نسبي وذاتي جدا، فاستيعابك وتطبيقك العملي على ما تتعلمه يؤثران بشكل كبير على الموضوع، هذا بجانب احتمالية أن تكون هنالك بعض الدروس التي تمتد الى مدة اطول من الأخرى، وبالتالي فإن المادة العلمية المقدمة ستكون أكثر. بدل ذلك، يمكنك تخصيص ساعتين او ثلاث او ما يناسبك بشكل يومي، على أن تجعلها كحد أقصى للدراسة والممارسة. وبما أن الدورة منظمة ومهيكلة وفق دروس ومسارات فسيخدمك ذلك كثيرا. التركيز على موضوع الوقت غير مجدي كثيرا، في مقابل ان التركيز في فعاليتك وانتاجيتك هو ما يهم فعلا. فأن تتعلم شيء ما جديد كل يوم مؤشر جيد. وبالتالي فإن الحد الذي تتوقف فيه عن استيعاب الدرس والتعلم هو ما يعتبر نهاية مدة دراستك لليوم او الفترة. سواء بسبب التعب او الملل او ما الى ذلك. قم بجعل العملية مرنة وواصل التعلم وفقط.
  22. مرحبا أحمد، الاحساس بالغموض تجاه الأكواد شيء طبيعي وخصوصا في بداية مسيرتك، ولذلك فإنه لا يجب عليك القلق كثيرا بشأن هذا الموضوع. وفي حال التباس شيء ما عليك تذكر ان هنالك فريقا كاملا من المدربين والمتخصيين يتابعون الدورات اذ يمكنك طرح سؤالك او تعليقك او طلب توضيح اسفل الدرس المعني وسيتم المتابعة معك حتى تتضح الفكرة معك بشكل كامل.
  23. الفكرة كلها تتمحور حول شرط: اعجاب المستخدم بالمنشور او لا. والذي يترجم الى: امتلاك المستخدم المعني لسطر في جدول likes بـ post_id المنشور المعني. يمثل بالاستعلام: $currentUserId = ..; $targetPostId = ..; $sql = "SELECT * FROM likes WHERE user_id = ${currentUserId} AND post_id = ${targetPostId}"; الآن لن تحتاج الا للتحقق من اعادة هذا الاستعلام لنتائج او لا: $conn = new mysqli("host", "username", "password", "database"); $currentUserId = ..; $targetPostId = ..; $sql = "SELECT * FROM likes WHERE user_id = ${currentUserId} AND post_id = ${targetPostId}"; $result = $conn->query($sql); if (mysqli_num_rows($result) > 0) { echo "المستخدم معجب"; } else { echo "المستخدم غير معجب"; } الآن سيمكن استعمال هذا الشرط لعرض وتصيير زر الاعجاب.
×
×
  • أضف...