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

لوحة المتصدرين

  1. Adam Ebrahim

    Adam Ebrahim

    الأعضاء


    • نقاط

      3

    • المساهمات

      165


  2. Nuhla Almasri

    Nuhla Almasri

    الأعضاء


    • نقاط

      2

    • المساهمات

      122


  3. Abdullah Muhammad

    Abdullah Muhammad

    الأعضاء


    • نقاط

      2

    • المساهمات

      118


  4. Wael Aljamal

    Wael Aljamal

    الأعضاء


    • نقاط

      2

    • المساهمات

      6975


المحتوى الأكثر حصولًا على سمعة جيدة

المحتوى الأعلى تقييمًا في 05/11/21 في كل الموقع

  1. هل يوجد تعليمة contains ضمن السلاسل في البايثون يعني مثلا x="you are the best" if x.contains('the'): print("yes")
    1 نقطة
  2. السلام عليكم لو سمحتم لماذا عندما أدخل الى الرابط الذي أخذته من خدمة github pages بعد تغيير ال branch الى master... تُعطي الصفحة هكذا !!!
    1 نقطة
  3. لدي حقلان أحدهما من نوع Textview والاخر من نوع EditText في ال EditText ادخل رقم عشري وفي ال Textview تظهر لي نتيجة الرقم المدخل في EditText مضروبا في عدد ما السؤال هو : كيف اجعل ال Textview يظهر الناتج مباشرة بمعنى لا اريد ان اضغط على زر او صورة او غيرها بمعنى اخر اي تغيير في خانة EditText يجب ان يغير النتيجة في Textview مباشرة، شكرا لكم
    1 نقطة
  4. قد قمت بتفحص مستودعك على الـغيت هب و لا أرى إلا branch واحد ليس به أي ملفات github-pages من مثل : index.md , __config.yml أو مجلد docs أو index.html أو readme.md . فحل المشكلة ببساطة هو حذف البيئة التي تستخدمها و إعادة إنشاء صفحات غيت هب من جديد بطريقة صحيحة ( و يستحسن أن تكون في branch جديد غير الـ master ) . أولا : يجب عليك حذف البيئة التي تستخدمها . يمكنك ذلك عن طريق التصفح إلى : الإعدادات settings . البيئات Environments . اضغط على زر الحذف و قم بتأكيد حذف البيئة . ثانيا : الان يمكنك إنشاء صفحة غيت هب جديدة , و احرص على إتباع الخطوات : قم بالتصفح إلى الإعدادات settings. يمكنك النزول إلى قسم صفحات غيت هب ( إن لم يظهر أي نمموذج إدخال قم بالضغط على check it out here فيتم نقلك إلى نموذج الإدخال). إحرص على عدم تعيين أي branch و قم بوضع المصدر source كـ none , هذا سيقوم تلقائيا بإنشاء branch خاصة بصفحات غيت هب و سيعطى الإسم gh-pages تلقائيا . قم بإختيار ثيم ثم قم بعمل commit عن طريق تحديد الثيم و من ثم زر commit . الان يمكنك التصفح إلى المسار الموصوف و سيتم عمل الصفحة بشكل عادي , و تأكد أن تقوم بمسح الملفات المؤقتة في حالة لم تعمل من المرة الأولى .
    1 نقطة
  5. أود أن أنشر موقعي Static وجعله يحتوي على أكثر من لغة (العربية والإنجليزية والإيطالية .. إلخ)، لكن لا أعرف كيف يتمن الأمر في الموقع من نوع static generated، هل يتم عمل نسخة من كل صفحة بكل لغة أم يتم تعديل الـ routes لعرض لغة معينة، أعلم أن هناك حزم مثل i18next لـ next.js لكن كيف أقوم بنفس الأمر بإستخدام Gatsby؟ مع العلم أني لا أريد أن أقوم بإعادة كتابة الكود في أكثر من ملف ليكون هناك نسخة لكل لغة pages/en/index.js و pages/ar/index.js .. إلخ
    1 نقطة
  6. يمكنك إستخدام gatsby-plugin-intl لإنشاء موقع متعدد اللغات وذلك كالتالي npm install gatsby-plugin-intl بعد ذلك في ملف gatsby-config.js نقوم بإضافة الإعدادات الخاصه بالإضافة كالتالي module.exports = { plugins: [ { resolve: `gatsby-plugin-intl`, options: { // المسار الذي سيتواجد به ملفات الترجمه path: `${__dirname}/src/langs`, // اللغات التي تود إستخدامها languages: [`ar`, `en`], // اللغة الإفتراضية للموقع defaultLanguage: `ar`, }, }, ], } بعد ذلك في المسار الذي حددته تقوم بإنشاء ملف خاص بكل لغه يحتوي على ترجمة المصطلحات المطلوبه ولكن لابد من مراعاة بعض الأمور لابد أن يكون إسم الملف كالتالي "[language].json" ف علي سبيل المثال "ar.json" "en.json" لابد من إستخدام نفس ال id الدال على الترجمه في كل ملف بحيث يكون شكل الملفات الناتجة كالتالي // ar.json { "aboutUs": "عنا", "comments": "التعليقات", "home": "الصفحة الرئيسية" } // وفي ملف en.json { "aboutUs": "about us", "comments": "Comments", "home": "Home Page" } بعد ذلك يمكنك تطبيق الترجمه داخل كل مكون او صفحة كالتالي import React from "react" import { useIntl } from "gatsby-plugin-intl" export default function Index() { const intl = useIntl() const locale = intl.locale !== "en" ? `/${intl.locale}` : "" return ( <div>{intl.formatMessage({ id: "home" })}</div> ) } حيث أنه بإستخدام "formatMessage" وتمرير ال id الذي نريد إيجاد الترجمة الخاصة به سوف يتم توليد المحتوى المطلوب على حسب اللغة المختاره يتبقى لنا أن نعرف كيف نقوم بالتبديل بين اللغات المتوفرة لدينا وذلك كالتالي import React from "react" import { Link } from "gatsby" export default function LanguageSelector({ label, className }) { return ( <div> <ul> <li> <Link to="/en">En</Link> </li> <li> <Link to="/">Ar</Link> </li> </ul> </div> ) }
    1 نقطة
  7. مرحبًا، أحاول أن أضيف بعض أكواد jquery ولكن لا أستطيع فعل ذلك في Gatsby أو بالأحرى يمكنني أن أضع الأكواد في ملف html.js ولكن يتم تنفيذ هذه الأكود قبل أن يتم عرض مكونات React (يتم عمل render لها)، قمت أيضًا بمحاولة إستخدام الخطاف componentDidMount في ملف html.js ولكن الأمر لم ينجح معي هنا محتوى ملف html.js: import React from "react" import PropTypes from "prop-types" export default class HTML extends React.Component { componentDidMount() { console.log('Hello, World!'); } render() { return ( <html {...this.props.htmlAttributes}> <head> {this.props.headComponents} </head> <body> {this.props.preBodyComponents} <div key={`body`} id="___gatsby" dangerouslySetInnerHTML={{ __html: this.props.body }} /> {this.props.postBodyComponents} </body> </html> ) } } HTML.propTypes = { htmlAttributes: PropTypes.object, headComponents: PropTypes.array, bodyAttributes: PropTypes.object, preBodyComponents: PropTypes.array, body: PropTypes.string, postBodyComponents: PropTypes.array, } كما هو ظاهر قمت بطباعة جملة 'Hello, World!' من خلال الخطاف componentDidMount لكن لم يحدث شيء!
    1 نقطة
  8. يقوم موقع أدسنس بإعطائي كود في شكل سكريبت <script> (adsbygoogle = window.adsbygoogle || []).push({ google_ad_client: "ca-pub-number", enable_page_level_ads: true }); </script> كيف أقوم بإدراج هذا الكود في موقع Static مبني بإستخدام React و Gatsby ، يقوم الموقع أن أضع الكود في العنصر head ولكن في Gatsby لا يوجد غير Helmet فقط. كما أني حاولت أن أستعمل حزمة react-adsense ولكن لم أعرف كيف أستخدمها مع Gatsby.
    1 نقطة
  9. في البداية علينا أن نوضح بأن جوجل أدسنس لديها نوعين من الإعلانات Auto Ads حيث نترك جوجل هي من تحدد مكان وحجم الإعلانات Ad units حيث نحن من نقوم بتحديد مكان وحجم وشكل الإعلان المناسب للموقع الخاص بنا ولإستخدام النوع الأول يمكنك بكل بساطة إستخدام plugin gatsby-plugin-google-adsense. وذلك كالاتي npm install --save gatsby-plugin-google-adsense وفي الجزء الخاص ب plugins داخل ملف gatsby-config.js plugins: [ { resolve: `gatsby-plugin-google-adsense`, options: { publisherId: `ca-pub-number` }, }, ] و لاتنسى أن تقوم بكتابة ال id الخاص بك في publisherId ويمكنك التحكم في الإعدادت الخاصة بالاعلانات من خلال حسابك على googleAdsense في حالة أردت أن تقوم بإستخدام react-adsense وذلك لكي تستخدم Ad units في أماكن محدده بدلا من أن تدع الأمر لجوجل لتحدد موضع الإعلان يمكنك بكل بساطة تطبيق الخطوة السابقه بالإضافة إلى التالي npm install --save react-adsense ومن ثم يمكنك إستخدام react-adsense بطريقة إعتيادية كالتالي على سبيل المثال import React from 'react'; import AdSense from 'react-adsense'; // ads with no set-up <AdSense.Google client='ca-pub-number' slot='slot-number' /> ولكن لا تنسى هنا أن ترفق كلا من ال publisherId و slot-number لكل وحدة إعلانيه بدمجنا للخطوتين معا قد حققنا وضع السكريبت الخاص بجوجل adsense في الهيد وبالتالي تفعيل ال auto ads وبالخطوة التاليه تمكنا من إستخدام ad units وبحسب جوجل ادسنس في حال تم تفعيل النوعين سوف يتم إعطاء الأولويه ل "ad units"
    1 نقطة
  10. هذا الخطأ بحثت عنه واكتشفت انه بسبب ان الاستجابة غير معدلة Not Modified response code كيف أجعل هذا الاى بى أى معدل لكى اتجنب هذا الخطأ // model const mongoose = require("mongoose"); const questSchema = mongoose.Schema({ name: String, answers: [ { ansName: String, correct: Boolean, }, ], }); module.exports.Quest = mongoose.model("Quest", questSchema); // router const express = require("express"); const router = express.Router(); const { Quest } = require("../model/question"); router.get("/", async (req, res) => { const questions = await Quest.find(); if (!questions) res.send("Not Found"); res.send(questions); }); router.post("/", async (req, res) => { let newQuest = new Quest({ name: req.body.name, answers: req.body.answers, }); newQuest = await newQuest.save(); res.send(newQuest); }); module.exports = router; // index.js const questRouter = require("./router/questions"); app.use(express.json()); app.use(morgan("tiny")); app.use("/questions", questRouter); ان لم يكن الخطأ هنا فى الباك اند فهل من الممكن ان يكون فى الفرونت اند .. انا استخدمت اكسيوس const getQuestions = () => { axios .get('http://10.0.2.2:3000/questions') .then(res => setQuestions(res.data)) .then(console.log(questions)) .catch(err => console.log(err)); }; useEffect(() => { getQuestions(); }, []); ومرة الداتا تطبع ويتم جلبها ومرة لا
    1 نقطة
  11. لاحظ هذه: children: List.generate(images.length, (index) { . . .. imagecode.add(base64Image); هنا الحلقة تمر على جميع عناصر images وهم 6 ويتم إضافة صورة ل imagecode ثم في تابع آخر يتم رفع جميع هذه ال imagecode أي 6 أيضا. for(int i=0;i<=imagecode.length;i++){ await http.post(uploadEndPoint, body: { "image": imagecode[i], "NameImage": name[i], حاول اختبار القيمة المبدئية مثلا ستكون add image و إذا تغيرت قم بزيادة العداد ب 1 ثم اجعل هذه الحلقة تتكرر بعدد الصور المعدلة فقط.
    1 نقطة
  12. سبب رفع 6 صور، بسبب تهيئة قائمة الصور ب6 عناصر في هذه الجزئية: void initState() { super.initState(); setState(() { images.add("Add Image"); images.add("Add Image"); images.add("Add Image"); images.add("Add Image"); images.add("Add Image"); images.add("Add Image"); }); } ثم تقوم بالمرور عليهم بحلقة for وتنفذ الشيفرة فتتكرر العملية عدة مرات
    1 نقطة
  13. نعم صحيح حسنا يمكنك إستعمال شئ يسمى multi_image_picker و هي طريقة لتحميل عدة صورة بنفس الوقت دون الحاجة الى عمل اكثر من كبسةهنا يوجد مثال كيفية إستخدام هذه المكتبة بدلا من المكتبة العادية : https://pub.dev/packages/multi_image_picker/example و يمكنك فهم الكود بطريقة بسيطة كالتالي Future<void> loadAssets() async { // هنا نقوم بعمل ليست من الصور و هي اسسيت List<Asset> resultList = <Asset>[]; String error = 'No Error Detected'; try { // نقوم باخذ جميع الصور و خفظ الملومات باوبجكت و من ثم وضعها داخل مصفوفة resultList = await MultiImagePicker.pickImages( maxImages: 300, enableCamera: true, selectedAssets: images, cupertinoOptions: CupertinoOptions(takePhotoIcon: "chat"), materialOptions: MaterialOptions( actionBarColor: "#abcdef", actionBarTitle: "Example App", allViewTitle: "All Photos", useDetailsView: false, selectCircleStrokeColor: "#000000", ), ); } on Exception catch (e) { error = e.toString(); } // If the widget was removed from the tree while the asynchronous platform // message was in flight, we want to discard the reply rather than calling // setState to update our non-existent appearance. if (!mounted) return; // هنا نقوم بحفظ المصفوفة بالستيت setState(() { images = resultList; _error = error; }); } Widget build(BuildContext context) { return MaterialApp( home: Scaffold( appBar: AppBar( title: const Text('Plugin example app'), ), body: Column( children: <Widget>[ Center(child: Text('Error: $_error')), ElevatedButton( // هنا تقوم بعمل كبسة واحد تستدعي الدالة التي تقوم بحقظ البيانات child: Text("Pick images"), onPressed: loadAssets, ), Expanded( child: buildGridView(), ) ], ), ), ); } }
    1 نقطة
  14. اهلا بك اخي الكريم نعم انا بعد بحث طويل قمت بعمل list لصور مع تغير بسيط على الكود وقد نجح الامر كل الشكر لك اخي الكريم
    1 نقطة
  15. دائما يكون حل هذه الأمور بطريقة بسيطة يمكنك ان تقوم بعمل مصفوفة تحفظ لك الصور المحملة و بعد أن تقوم بتخميل كامل للصورة يمكنك أن تعيد الحالة الى ما كانت عليه سابقا أي فارغة و كلما حملت صورة سيتم حفظها داخل المصفوفة و عند عرضها يمكنك أخذ جميع البيانات منها و عرض كل واحد على حدة انا لست خبيرة بالفلاتر و لكن هذا دائما ما يكون الحل لجميع الأكواد المكرره او حتى يمكنك عمل class صنف يحتوي على تعريف الامور التي ستقوم بتخزينها لكل صورة العنوان و القيمة الحقيقة للصورة و من ثم حفظها بمصفوفة
    1 نقطة
  16. يمكنك البدء بقراءة موسوعة حسوب حول laravel فهي توفر لك مجموعة من الشروحات والأمثلة التطبيقية و التي يمكنك الإستفادة منها بشكل كبير, فهي لا تقتصر فقط على شرح المفاهيم الأساسية بل تتعدى ذلك إلى شرح المفاهيم المتقدمة في laravel والتي تستعمل فقط في المشاريع الكبيرة, لكن نصيحتي لك هي أن تتعلم اللغة الأنجليزية وتبحث عن مصادر أخرى لتعلم laravel. لأن نسخ laravel تتطور بشكل سريع و المحتوى العربي للأسف لا يواكب هذا التطور , فاللغة الإنجليزية لا غنى عنها في هذا العصر في جميع مجالات التكنولوجيا,
    1 نقطة
  17. كلاهما تقنيات لتطوير تطبيقات مرة لعدة منصات Cross-Platform وهذه مقارنة بينهما React Native يستخدم JavaScript وهي عبارة عن لغة Scripting بينما Flutter يستخدم Dart وهي لغة Compiled مما يعني أنها أسرع من سابقتها React Native لديه وسيط ويسمى Bridge أي الجسر لكن Flutter ليس لديه وسيط لانه يتم ترجمة Compiled الكود الى لغة المعالج مباشرة وهنا يجعله أسرع من سابقتها بإستخدام React Native تستطيع الحصول على واجهة Native بينما في Flutter لاتستطيع لان لديه محرك ++C خاص للواجهات الخاصة به React Native أقدم من Flutter لذى ستجد الكثير من الحلول والمكتبات والمطورين أكثر من Flutter فكما ترى هناك تقارب في المقارنة ويتم الإختيار بناء على حاجات المشروع على سبيل المثال فإذا كنت بالفعل مطور JavaScript و React فبكل سهولة ستختار React Native بينما إذا كنت مطور Dart فعليك بالتأكيد إختيار Flutter
    1 نقطة
  18. أولاً يعتبر ال flutter و react native أطر عمل لتطوير تطبيقات الموبايل لجميع أنظمة التشغيل أي cross platform وكلاً منهما تمكنك من بناء تطبيقات كبيرة حيث ال react native تدعمها facebook و flutter تدعمها google ال react native يستخدم ال javascript إعتماداً على الإطار react بينما ال flutter تحتاج لتعلم لغة البرمجة Dart أما بالنسبة للأفضل فذلك يرجع لك فأي لغة برمجة تتقنها ويعتبر أيضاً كلا الإطارين على نفس المستوى من الإنتشار بين المطورين ولكن هناك بعض المميزات ل flutter يوفر flutter العديد من ال components أكثر من react native يوفر لك بيئة عمل أكثر إحترافية من react native ولكن إذا كنت بالأساس تتقن javascript فالأفضل لك تعلم react native لأنه لن يأخذ منك الكثير من الوقت
    1 نقطة
×
×
  • أضف...