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

Adnane Kadri

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

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

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

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

    51

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

  1. في خوادم Apache الانتاجية قد تحتاج توصيف ملف htaccess. للتوجيه الى ملف index.php مباشرة. محتوى الملف سيكون مشابها للخاص بمحتوى الملف في لارافيل كـ: <IfModule mod_rewrite.c> <IfModule mod_negotiation.c> Options -MultiViews -Indexes </IfModule> RewriteEngine On # Handle Authorization Header RewriteCond %{HTTP:Authorization} . RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] # Redirect Trailing Slashes If Not A Folder... RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} (.+)/$ RewriteRule ^ %1 [L,R=301] # Send Requests To Front Controller... RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.php [L] </IfModule>
  2. ما تصفه يسمى المسافة البادئة التلقائية أو Auto indent، ولتفعيل هاته الميزة في VS code نحتاج التوجه الى: الاعدادات Settings نتوجه الى خيار Auto indent من قسم Text editor نتأكد من تفعيل الخيار full نعيد تشغيل VS code
  3. مبدئيا، لا أظن أنه يوجد حل للموضوع بشكل نهائي تماما. فقد يستعمل المستخدمون خادما وكيلا proxy للقيام بالطلبات من داخل دولة غير محظورة. ستبقى الطريقة الأكثر فعالية هي تحليل عنوان IP المستخدم للحصول على اسم البلد وحظرها. قد يساعدك استعمال Torann/laravel-geoip أو اي حزمة أو خدمة مشابهة.
  4. من غير المنطقي ان لا تكون هنالك مشكلة ما، هلا أعدت مراجعة طريقة رفعك للمشروع على الاستضافة: سنستعين بـ github في هذا. أضف موقعا جديدا عبر الدخول الى لوحة التحكم الخاصة بك على netlify والضغط على new site from git من قسم continuions deployment اضغط على Github قم بإعطاء الاذن لـ netlify بالوصول الى github قم بتحديد المستودع الخاص بك بما في ذلك الأمر الذي تقوم به بتشغيل خادم webpack ومجلد dist في قسم public directory أكد الرفع deploy site ان كنت قد واجهة مشكلة باحدى هاته الخطوات يرجى الاشارة.
  5. لا أظن ان المشكلة في vite فهو لا يهتم الا بتحزيم ملفات الأصول واخراجها. المشكلة في الغالب بسبب استعمال بروتوكول Https لطلب هاته الملفات. يفترض ان لا تجد اي مشكلة بخصوص طلب هاته الملفات او الصفحة ككل باستخدام http. فبدل التصفح الى: https://website.com/ قم بالتصفح الى: http://website.com/ او قم بجبر الطلب باستخدام https، بملف AppServiceProvider.php قم باضافة السطر: if ($this->app->environment('production')) { URL::forceScheme('https'); } الى التابع boot من هذا الملف. طبعا لا تنسى تضمين الواجهة URL: use \Illuminate\Support\Facades\URL;
  6. ستحتاج بادئ الأمر محرر أكواد من مثل sublime text أو Notepad++ لتحرير الأكواد والشيفرات بلغة PHP. ثم ستحتاج لتشغيلها خادما محليا يحوي مفسرا لهذه اللغة من مثل xampp أو wampp. وقد تحتاج كشيء جانبي متصفحا من مثل google chrome أو mozilla firefox لإستعراض خرج هاته التعليمات البرمجية. استعن بالمحتوى المجاني المنشور على أكاديمية حسوب بخصوص التطوير بلغة PHP او اطلع على تفاصيل دورة تطوير تطبيقات الويب باستخدام PHP.
  7. يمكنك استعمال حيلة بسيطة أخرى لمقاربة ذات النتيجة، نستعن في هذا بعناصر label. لنصف الهيكلة التالية: <label> <span id="enabled" class="enabled-checkbox">&#10004;</span> <input id="checkbox" type="checkbox" /> <span id="disabled" class="disabled-checkbox">&#10006;</span> </label> نصف هنا عنصري span واحد يعبر عن حالة تفعيل الصندوق وواحد عن حالة تعطيله. يمكنك تنسيقهما وفقما ما تريد: label input{ display: none; } label .enabled-checkbox ,label .disabled-checkbox { height: 50px; width: 50px; padding:5px; border: 1px solid red; } ايضا انتبه الى ان انه تم اخفاء عنصر input. لأن الضغط على عنصر label سيكون تبديلا لحالة العنصر. ثم اخيرا عن طريق الجافاسكربت: الاستماع الى حدث تغيير حالة الصندوق. ففي حالة تفعيله. نقوم بإخفاء العنصر المتعلق بتمثيل حالة التعطيل واظهار الخاص بحالة التفعيل. وفي حالة تعطيله نقوم بإخفاء العنصر المتعلق بتمثيل حالة التفعيل. واظهار الخاص بحالة التعطيل. let input = document.querySelector('#checkbox'); input.addEventListener('change', (event) => { if (event.currentTarget.checked) { enabled.style.display = "inherit" disabled.style.display = "none" } else { disabled.style.display = "inherit" enabled.style.display = "none" } }) ايضا انتبه الى انه يجب اخفاء احد عنصري span بشكل افتراضي يوافق الحالة الافتراضية لعنصر الصندوق: label .disabled-checkbox{ display: none; }
  8. بجانب المشار إليه من قبل المدرب عمر، من بين المشاريع التي تم استعمال NodeJS فيها كمحرك واجهة خلفية يوجد ايضا: تطوير تطبيق جوال (تطبيق طبيبي) باستخدام React Native. إنشاء تطبيق أسئلة وأجوبة باستخدام Next.js (هنا بالضبط تم استعمال خادم Next وهو في الأصل قائم على NodeJS). تطوير تطبيق جوال للتواصل الاجتماعي باستخدام Ionic. أما بالنسبة لأرشيف المسارات الأقدم فيوجد: تطبيق مشاركة وصفات الطعام. تطوير تطبيق لمطعم باستخدام Ionic 4. تطبيق جوال لطلاب المدارس. تطوير تطبيق قائمة مهام.
  9. يتم في هذا في الغالب توظيف مفهوم مراقبات التقاطع Intersection observers بشكل أو بآخر. يستعمل البعض على سبيل المثال اطر عمل ومكتبات من مثل WOW.js او Animate.css أو Modernizr أو AOS (Animate on scroll) وغيرها من هاته الأطر والمكتبات. أجد استعمال الأخير اسهل وابسط، يتم التثبيت اما عن طريق تضمين الملفات المصدرية: <link rel="stylesheet" href="https://unpkg.com/aos@next/dist/aos.css" /> .. <script src="https://unpkg.com/aos@next/dist/aos.js"></script> أو عن طريق مدير الحزم npm: npm install --save aos@next ثم تهيئة المكتبة: AOS.init(); ثم لن يكون عليك إلا وصف الخواص التي تتحكم في هاته الحركيات وارفاقها بالقيم المناسبة. اعرف أكثر عن التحريك في css > إظهار المحتوى أثناء التمرير
  10. لا يفترض ان يكون هنالك علاقة بين مكون collapsible و طلب Ajax في jQuery. يحتمل ان هنالك مشكلة اخرى. هل يمكنك ارفاق الشيفرة كاملة؟
  11. يمكنك الاعتماد على مواقع التوظيف والعمل الحر لأخذ تصور او فكرة عن اهم المكتبات واكثرها طلبا في سوق العمل. هي ذاتها الأشهر في مجتمعات المطورين ايضا. مثلما يمكنك استخدام محركات البحث بفعالية للبحث عن ذات الأمر يمكنك ايضا البحث عن دراسات استقصائية بهذا الخصوص. نجد مثلا دراسة مهمة مثل stackoverflow developer survey 2021 يوجد بملخص الدراسة عدة أقسام كاملة تخص اطر الويب ومكتباته. فحسب الدراسة هنالك: 40 بالمئة من اصل 70 ألف مطور يستعملون React و 35 بالمئة يستعملون jQuery. يعطي هذا فكرة عن مدى شعبية هذين الأخيرين. ايضا تحتاج الاندماج في المجتمعات التقنية لأخذ فكرة عن الأشهر والأكثر طلبا واستعمالا.
  12. ان كنت تقصد التعامل مع الخوادم عن طريق الواجهات الأمامية فنعم، يوجد ايضا مجموعة من الدروس تحت عنوان "التخاطب مع الخادم" تم فيها شرح كيفية استقبال البيانات وعرضها بالواجهة الأمامية. مفاهيم أخرى مثل التوثيق والمصادقة والتعامل مع طرق التوثيق المختلفة تم التطرق لها هي الأخرى في مسارات عدة من ذات الدورة من مثل مسار تطبيق دردشة يشبه WhatsApp. فالفكرة في مجملها واحدة.
  13. يوجد في الجزء الخاص بـ NodeJS في دورة تطوير التطبيقات باستخدام JavaScript مسار كامل يشرح هذا المفهوم بإسهاب بعنوان " بناء واجهة برمجية API لتقييم الأفلام " بداية من تصميم النماذج وقواعد البيانات إلى غيرها مرورا ببعض الجزئيات الأخرى. من مثل كيفيات التسجيل والمصادقة وقراءة الموارد، حذفها والتعديل عليها وادارتها. لأن هذا المفهوم يتعلق بشكل أكبر بـ NodeJS وجهة الخادم أكثر من جهة العميل. ولذلك سيتطلب التعرف على أسس NodeJS بجانب التعامل مع قواعد البيانات بواسطته مرورا بآليات التعامل مع خوادم الويب وإطار العمل Express.js حتى يمكن التعامل مع كامل تشعبات هذا المفهوم في NodeJS. اعرف اكثر عن:
  14. يظهر الخطأ لأنك تحاول استدعاء تابع يخص المصفوفات على سلسلة نصية. myString.split(""); myString.filter فالتابع split لا يقوم بتجاوز تعريف المتغير بل يعيد مصفوفة جديدة تماما. في هاته الحالة تبقى myString سلسلة نصية في حال لم يتم تجاوزها عن طريق: let myString = "EElllzzzzzzzeroo"; myString = myString.split(""); او مباشرة: .split("") .filter((el,i) => { return myString.indexOf(el) === i }) ثم لخدمة الغرض الذي لديك يكفي : let myString = "EElllzzzzzzzeroo"; myString = myString .split("") .filter((el,i) => { return myString.indexOf(el) === i }) يفترض ان يحل المشكل لديك. ستعاد مصفوفة من حروف فريدة في المصفوفة. ["E", "l", "z", "e", "r", "o"] String.prototype.split()‎ Array.prototype.filter()‎ String.prototype.indexOf()‎
  15. يحتمل ان هنالك مشكلة بطباعة الـ Unicodes الخاصة باللغة العربية. هل جربت تحويلها الى ترميز utf8 قبل طباعتها؟ $stringToPrint = "محمود رضا\n"; $printer -> text(utf8_encode($stringToPrint)); $printer -> cut(); قد يحل هذا المشكل لديك.
  16. يوجد الكثير من مواقع الويب التي تقدم هاته الصور بشكل مجاني. يمكنك الاستفادة مما تقدمه. نذكر من بينها: موقع freevector موقع undraw للـ illustrations موقع manypixels ابحث في قوقل عن "free vectors & illustrations websites" وستجد الكثير. قد يقدم بعضها خططا مجانية بجانب الميزات التي يوفرها فعليا.
  17. تقوم PHP بالحفاظ على الجلسة بشكل افتراضي حتى يقوم المستخدم بإغلاق المتصفح. يمكنك تجاوز القيمة التي تتحكم في هذا الافتراض عن طريق التعديل على ملف اعداد PHP او باستعمال الوظيفة ini_set: ini_set('session.cookie_lifetime', 60 * 60 * 24 * 365); session_start();
  18. يمكنك الاكتفاء باستخدام session_start في كل صفحة من صفحات التطبيق على نحو: <?php session_start(); ?> <!DOCTYPE html> <html> <body> <?php print_r($_SESSION); ?> </body> </html> سيحافظ هذا على جلسة المستخدم خلال تصفحه الموقع. ثم استعمال session_unset و session_destroy لمحو الجلسة. <?php session_start(); session_unset(); session_destroy(); ?> هل تواجه مشكلة بذلك؟
  19. مرحبا محمد، في SQL يوجد الدالة GROUP_CONCAT التي تسمح بتجميع عدد معين من الصفوف في قيمة واحدة. يمكنك استعمالها بفعالية لخدمة هذا الغرض: SELECT GROUP_CONCAT(column_name , ', ') AS things FROM table_name في مثالك يكون ذلك كـ: SELECT GROUP_CONCAT(username , ', ') AS useranames FROM users
  20. يحتمل ان هنالك اعدادا افتراضيا آخر عطل ظهور الفكرة لديك. جرب انشاء عنصر مستقل تماما وطبق عليه التنسيقات اللازمة: <body> <div class="bg"></div> .. .bg{ position:fixed; height:100%; width:100%; top:0; left:0; background-image:url(image) } ايضا تأكد من امتلاك العنصر body الخلفية الشفافة: body{ background-color: transparent; } ايضا تغاضى عن استعمال z-index لأنه سيتم وضع العنصر الثابت افتراضا وراء باقي العناصر مما لا يعطل الوصول اليه. يحتمل ان يحل هذا المشكل لديك.
  21. لم افهم المشكلة على نحو جيد. هل تحاول تعيين خلفية صورة بشفافية لعنصر body ام تحاول اضافة عنصر صورة شفافة ثابت يظهر كخلفية ثابتة على طول امتداد الصفحة؟
  22. بما ان العنصر يمتلك ثابتة، حاول اعطاءه z-index بقيمة اقل من تلك التي يمتلكها body. z-20 before:z-10 هل يوثر ذلك في ظهورها؟
  23. لما تعطي العنصر before:: الوضعية الثابتة؟ سوف يؤثر على تموضعه فوق العناصر وبالتالي الوصول اليها. جرب اعطاءه الوضعية المطلقة before:absolute before:top-0 before:left-0 قد تحتاج في هذا التخلص نهائيا من before:z-[999] يمكنك ايضا القيام بذلك عن طريق CSS وحدها، يوجد الخاصية background التي تعبر عن تجميعة الخصائص التالية مرتبة: background-color background-image background-repeat background-attachment background-position لنعطيها تدرج لوني شفاف + صورة، يكون كـ: background: linear-gradient(rgba(255, 255, 255, 0.2), rgba(255, 255, 255, 0.2)), url(image.jpg) سينشئ هذا طبقة بيضاء بشفافية نحددها فوق الصورة. سيعطي هذا نفس المقاربة. قد تحتاج ايضا اسناد هاته الخصائص لظهور كامل للخلفية دون اي مشاكل: relative bg-fixed bg-center bg-cover bg-no-repeat
  24. راجع الاجابات المقدمة بخصوص نفس سؤالك المرة السابقة:
×
×
  • أضف...