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

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

  1. بلال زيادة

    بلال زيادة

    الأعضاء


    • نقاط

      7

    • المساهمات

      4376


  2. Wael Aljamal

    Wael Aljamal

    الأعضاء


    • نقاط

      4

    • المساهمات

      6975


  3. عبدالله عبدالرحمن11

    • نقاط

      3

    • المساهمات

      526


  4. عبدالباسط ابراهيم

    • نقاط

      3

    • المساهمات

      4901


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

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

  1. أريد الإستفسار في موضوع بخصوص مشاريع بايثن للويب خصوصا كفكرة أريد برمجة موقع متكامل باستخدام احد الفريمووركات مثل جانغو فما هو احسن فريموورك من ناحية التطوير للمدى البعيد والمشاريع الكبيرة ايضا ما هو اطار العمل المناسل لاكمال هاته المشاريع لتطيبقات سطح المكتب مثل انشاء تطبيق سطح مكتب لذلك الموقع المبني بالبايثن ويكون متزامن معه مثلا وجدت PyQt ولكن ليس لها ترخيص GPL بشكل صريح ويمكن ان تسبب مشاكل في حال عدم القدرة على توفير رخصة تجارية, وفما هي الاطر المتناسبة لهاته الاغراض
    2 نقاط
  2. وعليكم السلام ورحمة الله يمكنك مطابقة الأعداد في REGEX عن طريق [0-9]+ ومعناه انك تريد مطابقة كل الأرقام من 0 إلى تسعة وعلامة ال + تعني مع إمكانية التكرار أي مطابقة رقم واحد أو اكثر وبالتالي لمطابقة الدرجات بالشكل المطلوب سيكون التعبير كالتالي [0-9]+/[0-9]+ مع ملاحظة أنه عند استخدامك ل "/" ك delimiter فعليك استثناءها فمثلا في لغة ال PHP سيكون الكود شبيها بهذا $string = 'Your First Subject score is 45/50'; $matches = null; preg_match('/[0-9]+\/[0-9]+/', $string, $matches); وستكون قيمة $matches في الكود السابق هي Array ( [0] => 45/50 ) تحديث كما ذكر @Adnane Kadri بخصوص علامات بداية العبارة '^' ونهاية العبارة '$'، يمكنك استخدامهما في حالة أردت مطابقة النص كاملا وليس جزءا من النص. فمثلا إذا أردنا أن نقوم بعمل دالة تتحقق من أن النص هو درجة طالب صحيحة --أي مطابقة للشكل الذي نريده--؛ سيكون الكود في PHP شبيها بهذا: function isValidScore($string) { return (bool) preg_match('/^[0-9]+\/[0-9]+$/', $string); } أمثلة لقيمة ما ترجعه الدالة السابقة عند استخدامها للتحقق من النص isValidScore('45/50'); //-> bool(true) النص المدخل بالكامل من بدايته لنهايته هو درجة طالب كما نريدها isValidScore('Your Score is 45/50'); //-> bool(false) النص ليس درجة طالب
    2 نقاط
  3. يمكنك تنفيذ هذه التعليمة في محرر الأوامر: pip list --outdated --format=freeze | grep -v '^\-e' | cut -d = -f 1 | xargs -n1 pip install -U كما يمكن تنفيذ التعليمات التالية ضمن شيفرة python: For pip < 10.0.1 import pip from subprocess import call packages = [dist.project_name for dist in pip.get_installed_distributions()] call("pip install --upgrade " + ' '.join(packages), shell=True) # =============== For pip >= 10.0.1 import pkg_resources from subprocess import call packages = [dist.project_name for dist in pkg_resources.working_set] call("pip install --upgrade " + ' '.join(packages), shell=True) حسب إصدار pip لديك.. كما يمكن تنفيذ التالي: $ pip install pip-review $ pip-review --local --interactive أو: $ pip freeze > requirements.txt $ pip install -r requirements.txt --upgrade أو: pipupgrade $ pip install pipupgrade $ pipupgrade --verbose --latest --yes
    2 نقاط
  4. أشهر إطاري عمل Python للتطوير الويب هما Flask Django ولكن من أجل التطوير للمشاريع الكبيرة فيجب عليك استخدام Django فهناك العديد من الشركات الكبيرة تقوم بإستخدمه مثل Pinterest Instagram Udemy Coursera وغيرها من المواقع وهذا دليل على قوة إطار العمل Django أما أطر عمل Python لتطبيقات سطح المكتب فهناك العديد أشهرها: Kivy PyQT Tkinter WxPython PyGU يمكنك إستخدام Kivy بدلا من PyQT هذه هي أطر عمل تطبيقات سطح المكتب إذا أردت التطوير بإستخدام Python ولكن لديك العديد من الحلول الأخرى لتطبيقات سطح المكتب تختلف بحسب إحتياجاتك فيمكنك بكل سهولة استخدم تقنيات الويب من HTML, CSS و JavaScript وعمل برنامج لسطح المكتب لجميع المنصات بإستخدام Electron ومن أشهر البرامج التي صنعت بإستخدام Electron هو برنامج VS Code وأيضا لديك العديد من الحلول الأخرى مثل استخدام #C أو Java
    1 نقطة
  5. أريد أن أعرف كود الحالة Status Code في مكتبة Axios، لكي أقوم بتغير حالة المكون وأقوم بعرض رسالة خطأ للمستخدم، أقوم بإستخدام الكود التالي: axios.get('https://api.example.com') .then((response) => {}) .catch((error) => { setErrorCode(error) // Error: Request failed with status code 404 }) المشكلة هي أن رسالة الخطأ تظهر كاملة للمستخدم بينما أريد أن يظهر كود الخطأ فقط، كيف أقوم بعمل ذلك؟ أستعمل الإصدار 0.21 من مكتبة Axios و الإصدار 17.0.2 من React
    1 نقطة
  6. الدالة toFixed ليست موجهة لعمل تدوير للأعداد و إنما تقوم بعمل format بطريقة fixed point notation و هي تعيد سلسلة نصية و ليس عدد. يُمكنك إستخدام التالي للوصول إلى ما تريد: Number.prototype.round = function(places) { return +(Math.round(this + "e+" + places) + "e-" + places); } // الإستخدام 1.35.round(1); // 1.4 6.35.round(1); // 6.4 52.7785.round(3); // 52.779
    1 نقطة
  7. يمكنك استخدم الرسائل الخاص بك عن طريق تعريف مصفوفه خاصه تحتوي الرسائل التي تحتاجها مصفوفة الشروط $rules = array( 'phone' => 'required|unique:users,phone' ); مصفوفة تحتوي علي الرسائل التي تظهر في حالة حدوث أخطاء $messages = array( 'phone.required' => 'Phone is required.', 'phone.unique' => 'Phone must be unique.', ); فحص الداتا المدخله من المستخدم و ظهور الاخطاء في حالة وجود أخطاء $validator = Validator::make( $request->all(), $rules, $messages ); if ( $validator->fails() ) { return [ 'success' => 0, 'message' => $validator->errors()->toArray() ]; } ويمكن فصل عملية ال Validation في كلاس منفصل يسمي FormRequest وتنقل كل عمليات ال Validation داخل هذا الكلاس إنشاء الكلاس عن طريق أمر في لارفال ويتم إنشاءه داخل مجلد app\Http\Requests php artisan make:request AuthRequest ثم تقوم باضافة عمليات ال validation داخل دالة ال rules وإضافة الرسائل الخاصه داخل دالة messages <?php namespace App\Http\Requests; use Illuminate\Foundation\Http\FormRequest; use Illuminate\Http\Request; class AuthRequest extends FormRequest { public function authorize() { return true; } /** * Get the validation rules that apply to the request. * * @return array */ public function rules() { return [ 'phone' => 'required|unique:users,phone', ]; } public function messages() { return [ 'phone.required' => 'Phone is required', 'phone.unique' => 'Phone is unique' ]; } } ثم تستدعي هذا الكلاس داخل Controller وسيقوم ال AuthRequest بإظهار الاخطاء في حالة وجود أخطاء <?php namespace App\Http\Controllers; use App\Http\Controllers\Controller; use App\Http\Requests\AuthRequest; class AuthController extends Controller { public function login(AuthRequest $request) { // $validator = Validator::make($request->all(), [ // 'phone' => 'required|unique:users,phone' // ]);// end of validator // if ($validator->fails()) { // return Redirect::back()->withErrors($validator); // }//end of if // do register or login operation // .......... }// end of login }
    1 نقطة
  8. دالة toFix تستخدم نظام الباينري للحساب و ليس جميع الارقام يقوم تحويلها بطريقة دقيقة بعد الفاصلة العشرية مثلا 2.34.toFixed(1) // يرجع '2.3' 2.35.toFixed(1) // يرجع 2.4 اي يقوم بتقريب الى اعلى قيمة 2.55.toFixed(1) // يرجع 2.5 اي يقوم بتقريبها الى القيمة الاقل
    1 نقطة
  9. عموماً أي تعاملات على الإنترنت الأفضل استخدام paypal أو أي خدمة مشابهه له ويعتبر paypal الأفضل وذلك لأن معظم البنوك تضع قيوداً وصعوبات للتعامل على الإنترنت وبالنسبة للعمل على الإنترنت فمعظم منصات العمل الحر تضع paypal الخيار الأفضل والأول عند سحب الأموال وبالنسبة لمنصة مستقل فتتعامل فقط مع paypal ولتفعيل paypal في مصر عدة بطاقات قليلة لتفعيل paypal منها بطاقة easypay من البريد المصري وتعمل معي بدون مشاكل
    1 نقطة
  10. مكونات الـ regular expression التي سيتم استعمالها : ^ : بداية العبارة . 0-9 : رقم بين 0 و 9 . + : محدد التكرار , اي قبول عنصر واحد في التجميعة أو أكثر . / : علامة الـ / الفاصلة بين العددين . [ .. ] : حاضنتين لتشكيل تجميعة . $ : نهاية العبارة . فتكون العبارة كالتالي : ^[0-9]+/[0-9]+$ أي نقبل فقط : الأرقام بين 0 و 9 , قابلة للتكرار / الأرقام بين 0 و 9 قابلة للتكرار . و يكون كل ما هو ليس pos_num/pos_num غير مقبول . أمثلة : 12/100 مقبول في حين أن e0/100 غير مقبول .
    1 نقطة
  11. كيف يمكنني تحديث all python packages باستخدام تعليمة pip؟
    1 نقطة
  12. إليك كيفية استخدام Axios لإرسال طلب POST برؤوس مخصصة إلى عنوان URL. يحول Axios البيانات تلقائيًا إلى JSON ، لذلك لا داعي لذلك. const options = { url: 'http://localhost/test.htm', method: 'POST', headers: { 'Accept': 'application/json', 'Content-Type': 'application/json;charset=UTF-8' }, data: { a: 17, b: 25 } }; axios(options) .then(response => { console.log(response.status); }); قارن الآن الشيفرة فوق بإصدار fetchالذي ينتج نفس النتيجة: const url = 'http://localhost/test.htm'; const options = { method: 'POST', headers: { 'Accept': 'application/json', 'Content-Type': 'application/json;charset=UTF-8' }, body: JSON.stringify({ a: 17, b: 25 }) }; fetch(url, options) .then(response => { console.log(response.status); }); لاحظ أن: لإرسال البيانات ، تستخدم fetch خاصية body ، بينما يستخدم Axios خاصية data البيانات في fetch تكون strigified يتم تمرير عنوان URL كوسيطة ل fetch و في Axios يتم تعيين عنوان URL في كائن الخيارات
    1 نقطة
  13. ليس من الخطأ أبدا استخدام Fetch ولكن أغلب المطورين يلجئون إلى إستخدام axios لعدة مميزات لعل من أشهرها هو التالي 1- تقليل الكود المكتوب فعلى سبيل المثال إذا أخذنا الكود المرفق في السؤال وكتبناه بإستخدام axios فسيكون كالتالي useEffect(() => { axios("https://api.example.com/items") .then((result) => { setIsLoaded(true); setItems(result.data); }) .catch((error) => { setIsLoaded(true); setError(error); }); }, []); حيث تم توفير خطوة التي كنا نقوم فيها بالتحويل إلى JSON 2. تضمين بعض الأمور من أجل الحماية بشكل تلقائي على سبيل المثال XSRF إختصار ل "Cross-site request forgery" أو ما يسمى ب "تزوير الطلب عبر المواقع" مثال axios.post('/signup',{ xsrfCookieName: 'XSRF-TOKEN', xsrfHeaderName: 'X-XSRF-TOKEN', }); 3. ماذا لو قمت بإنشاء طلب بإستخدام axios وأردت إلغاء هذا الطلب على الفور لأنه يأخذ وقت طويل مثلا يمكنك القيام بذلك مباشرة بإستخدام axios بشكل إفتراضي بإستخدام "CancelToken" و "cancel()" 4. متابعة عملية رفع ملف مثلا وتتبع تقدم عملية الرفع باستخدام const config = { onUploadProgress: progressEvent => { console.log(progressEvent.loaded); } } axios.put(`${URL}/upload/image.png`, data, config) 4. لعل من ضمن المميزات أيضا أننا يمكننا إستخدام axios على السيرفر أيضا على عكس fetch فهي موجودة في المتصفح فقط ولذا يقوم المطورين بتوحيد الأداة المستخدمه. وغيرها من المميزات المدمجه في axios والتي تساعدنا في إنجاز عدة أمور دون كتابتها من الصفر. ولعلنا هنا نحتاج إلى أن نركز على أن axios هي مكتبة خارجيه تم إدماج العديد من المميزات بها من قبل المطورين القائمين عليها حتى تقوم بتسهيل الكثير من الأمور ولذا يمكننا إستخدامها مثلا في المتصفح والسيرفر ولكن fetch هي موجوده بشكل إفتراضي في جافا سكريبت ولها وظيفة واحده وأساسيه ولذا هنا سبب الفارق بينهما.
    1 نقطة
  14. ليس من الخطأ استعمال fetch عوضا عن axios فكلاهما مكتبتان لطلبات الhttp مثلها مثل : Node http node-fetch fetch-polyfill reqwest .. وغيرها الكثير .. و اختيار مكتبة الاجاكس قد يخضع لعدة معايير نذكر منها : دعم المتصفحات , فالمكتبة التي تدعمها أغلب المتصفحات تكون لها الأفضلية . على سبيل المثال فإن fetch لا تعمل في النسخة 11 من انترنت اكسبلورر و لا توجد طريقة لتحقيق ذلك كون fetch طريقة تخص المصتفح في حين أن مكتبة axios تعمل في كلها . مهلة الاستجابة , و أقصد بهذا التحكم في المهلة الاختيارية قبل إحباط الطلب فليست كل المكتبات توفر هاته الميزة , وإن كانت فليست كلها توفرها بطريقة بسيطة وسهلة مثل تلك التي تقدمها مكتبة axios . التحويل التلقائي للبيانات الى صيغة JSON . رغم أن العملية جد بسيطة و لا تحتاج الا عمل parse للبيانات المستدعية عن طريق الـAPI لكن الافضلية تبقى لمن يبسط العمليةإاكثر . فعلى سبيل المثال تحتاج لتحويل البيانات الى json باستعمال fetch عن طريق : // fetch() fetch('https://my.api.co/api/v1/items') .then(response => response.json()) // تحويل .then(data => { console.log(data) }) .catch(error => console.error(error)); في حين أنك باستعمال axios لن تضطر لتحويلها : // axios axios.get('https://my.api.co/api/v1/teachers') .then(response => { console.log(response.data); // لا حاجة لتحويل البيانات }, error => { console.log(error); }); و طبعا , كود أقصر يعني كود أفضل . وقس على ذلك العشرات من طلبات الـ HTTP . 4. اعتراضات HTTP أو ( HTTP interceptors ) : القدرة على اعتراض طلبات الHttp بشكل globally مفهوم ستحتاج للتعامل معه بشكل كبير في بناء تطبيقات الصفحة الواحدة SPA و تطبيقات الويب التقدمية , فقبل عرض أي نتائج تحتاج طبعا إلى فحص طلبات HTTP ( كأن تتفحص حالة الطلب أو كود الحالة ) ومن ثم التصرف بناءا عليها , كالتسجيل والمصادقة و ما إلى ذلك , ولن تضطر لكتابة رمز منفصل لكل طلب HTTP. و مكتبة axios تجعل الأمر جد سهل فعلى سبيل المثال : // تعريف بملف اعداد axios axios.interceptors.request.use(response => response, config => { // يشير الكود 403 في توثيق الاي بي اي لهذا التطبيق الى ان التوكن قد استهلك استعماله وهو غير صالح if(response.data.status == 403){ alert('يرجى اعادة تسجيل الدخول'); } return config; }); // هنا يمكنك ارسال طلب في حين أن مكتبة fetch لا توفر طريقة مباشرة لإعتراض الطلبات و هذا ما يجعل axios إفضل بهاته التقطة . و كنقطة فرعية لا ينبغي إغفال المجتمع المستعمل لمكتبة axios في الـ vue و الreact الangular و الnode و غيرها , و كونها شعبية يعني وفرة المعلومة و سهولة الوصول إليها , وهذا شيء نحتاجه كمطورين . اما عن رأيي الشخصي فأفضل استعمال مكتبة axios , فهي توفر كود أقصر و أفضل قراءة . و لها شعبية مستعملين كبيرة و واسعة , كما أنها سهلة الادارة و الاعداد . وفي النهاية يبقى الاختيار لك , فـ axios توفر حزمة مضغوطة لمعظم إحتياجات اتصال HTTP الخاصة بك. ومع ذلك , فان استخدام طريقة fetch التي توفرها متصفحات الويب لا تحتاج منك استدعاء و استعمال عميل HTTP API . فذلك شيء يحدده درجة تعقيد مشروعك و تعاملك مع الAPI و حاجتك لمختلف مفاهيم اتصال HTTP الخاصة بك .
    1 نقطة
  15. أولاً fetch دالة جاهزة في ال javascript بينما axios مكتبة تحتاج لإستدعائها بالطبع ليس خطأ والفرق بينهما بسيط ويمكن لكلاهما القيام بنفس الشئ والفرق بينهما fetch لا تدعم IE 11 بينما axios تدعمه عند عمل request يجب أن تقوم بتنفيذ الدالة json() function لل response بينما لا نقوم بذلك في axios يجب عليك تحويل ال object ل json في ال fetch بينما لا نقوم بذلك في ال axios أعتقد أنه لا يمكنك العمل مع ال service worker لل PWA باستخدام axios فقط fetch لذلك يمكنك استخدام كلاهما بدون مشاكل ولكن في التطبيقات الكبيرة ربما تسهل ال axios العمل عن ال fetch
    1 نقطة
  16. يوجد بعض الاختلافات بين ال fetch و الاكسيوس ساوضح بعضها كالتاللي : fetch لا يوجد تحويل مباشر الي صيغة json بما معناه النتيجة الراجعه لن تكوم على شكل json و عليك اولا استقبال القيمة و من ثم تحويلها فيما يخص axios فانه يستقبل القيمة و يحولها فورا اكسيوس يدعم تحديثات البراوزر اكثر من الفيتش حيث ان fetch تدعم فقط Chrome 42+, Firefox 39+, Edge 14+, and Safari 10.1 fetch تستخدم قيمة الbody اكسيوس يستخدم قيمة data ,و كما قلنا بالاعلى اكسيوس يحتوي على قيمة اوبجت اما الفيتش فسوف تحتاج الى استخدام json.stringified او json.pars لتحويل المعلومات الي الصيغة المرادة يسمح Axios بإلغاء الطلب وانتهاء مهلة الطلب اما الفيتش فلا يسمح بذلك fetch بلد ان لذلك لست بحاجة الى تنصيبها للاستخدامها اما ال axios فإنك بحاجة الى تنصيب الملف ليس من الخطأ استخدام fetch و لكن من الافضل استخدام مكتبة لها دعم اكبر في المتصفحات كما انها اكثر سهولة و مرونة
    1 نقطة
  17. يمكنك الحصول على كود الخطأ كالتالي axios.get('https://api.example.com') .then((response) => {}) .catch((error) => { setErrorCode(error.response.status) // error.response.status })
    1 نقطة
  18. تمام, يبدو أنك لم تقم بجلب حزمة Geolocator بشكل مناسب لأنه الخصائص هذه من الحزمة يمكنك مراجعة التوثيق من هنا, وجميع الخصائص الموجودة في الكود يمكنك التحقق منها ايضا. لم أنشئ لك كود كامل لأخفاء و إظهار الخريطة , قمت فقط بوضع كود ليفحص GPS إذا شغال أو لا, باقي التفاصيل يمكنك تطبيقها بناءاً على ما تريد. بما أنه يمكنك فحص و معرفة حالة GPS يمكنك التحكم في إظهار و إخفاء الخريطة كما تريد.
    1 نقطة
  19. أولاً يمكنك في python 3 استخدام super كالتالي class Child(SomeBaseClass): def __init__(self): super().__init__() ثانياً في المثالين السابقين ستكون النتيجة واحدة ولكن الفرق بينهما؟ أن في الحالة الأولى لا تحتاج لكتابة SomeBaseClass وبالتالي توفر لك فائدة الوراثة من أكثر من class كالتالي class First(object): def __init__(self): super(First, self).__init__() print("first") class Second(object): def __init__(self): super(Second, self).__init__() print("second") class Third(First, Second): def __init__(self): super(Third, self).__init__() print("third")
    1 نقطة
  20. لغة php محصورة للبرمجة الخلفية للمواقع وليست محصورة بال wordpress فهناك عدة أطر عمل يمكنك إستخدامها مثل Laravel أو Symfony وغيرها وهناك لغات أخرى منافسة للphp وأفضل منها من عدة نواحي مثل السرعة والأمن وعليها طلب أكثر واللغتين الأكثر شهرة هما NodeJS وهو عبارة عن JavaScript لكن خارج المتصفح وأدائها وسرعتها ممتازة فإذا كان لديك خبرة سابقة في JavaScript فلا تحتاج لتعلم الكثير من الأشياء الجديدة مقارنة بتعلم أشياء جديدة ومن أهم استخدامتها في التواصل في الوقت الحقيقي باستخدام WebSocket أو WebRTC لأن Nodejs سريعة جدا واما إذا أردت الدخول في مجال الذكاء الاصطناعي فينصح باستخدام Python لبرمجة الخلفية
    1 نقطة
  21. شكرا للرد هل هناك مكاتب او اضافات يمكن استخدامها لتقليل كتابة الـ sql , او لتسهل عملية الاتصال بالدتا بيز
    1 نقطة
  22. ستقوم بتثبيت حزمة geolocator ثم تعمل check على gps و تظهر رسالة إذا لم يكن مفعل بهذا الشكل var isGpsEnabled = await Geolocator().isLocationServiceEnabled(); Future _checkGps() async { if (!(await Geolocator().isLocationServiceEnabled())) { if (Theme.of(context).platform == TargetPlatform.android) { showDialog( context: context, builder: (BuildContext context) { return AlertDialog( title: Text("لا يمكن جلب الموقع الحالي"), content: const Text('الرجاء تفعيل GPS'), actions: <Widget>[ FlatButton( child: Text('Ok'), onPressed: () { final AndroidIntent intent = AndroidIntent( action: 'android.settings.LOCATION_SOURCE_SETTINGS'); intent.launch(); Navigator.of(context, rootNavigator: true).pop(); }, ), ], ); }, ); } } } ستقوم بتثبيت الحزمتين google_maps_flutter location يمكنك البحث عنهما من خلال موقع pub.dev من هنا. في المسار التالي android/app/src/main/directory. ستقوم بفتح ملف AndroidManifest.xml ستقوم بوضع التالي <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> import 'package:flutter/material.dart'; import 'package:google_maps_flutter/google_maps_flutter.dart'; import 'package:location/location.dart'; void main() { runApp(MyApp()); } class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( debugShowCheckedModeBanner: false, home: MyHomePage(), ); } } class MyHomePage extends StatefulWidget { @override _MyHomePageState createState() => _MyHomePageState(); } class _MyHomePageState extends State<MyHomePage> { LatLng _initialcameraposition = LatLng(20.5937, 78.9629); GoogleMapController _controller; Location _location = Location(); void _onMapCreated(GoogleMapController _cntlr) { _controller = _cntlr; _location.onLocationChanged.listen((l) { _controller.animateCamera( CameraUpdate.newCameraPosition( CameraPosition(target: LatLng(l.latitude, l.longitude),zoom: 15), ), ); }); } @override Widget build(BuildContext context) { return Scaffold( body: Container( height: MediaQuery.of(context).size.height, width: MediaQuery.of(context).size.width, child: Stack( children: [ GoogleMap( initialCameraPosition: CameraPosition(target: _initialcameraposition), mapType: MapType.normal, onMapCreated: _onMapCreated, myLocationEnabled: true, ), ], ), ), ); } } في الكود إعلاه هنا يتم وضع Lat , lng إفتراضي, ثم يأتي دور دالة _onMapCreated كلما تغير موقع الجهاز, سيتم نقل الكاميرا إلى الموقع الجديد. أخبرنا إلى أين وصلت في الكود الخاص بك و ما هي المشاكل وسنساعدك بإذن الله.
    1 نقطة
  23. هل يمكنك إرفاق ملفات مشروعك كاملاً مع الداتا بيز الخاصة به؟
    1 نقطة
  24. يمكنك استخدام list بهذا الشكل list(my_dataframe) او استخدام columns.values مع اسم dataframe list(my_dataframe.columns.values)
    1 نقطة
  25. جرب أخي أن تضع سينجل كوت قبل المتغير هكذا وتأكد من القيم $sql = "SELECT * FROM conversations WHERE (user_Received_id='$user_Received_id' AND user_send_id='$user_send_id') or (user_Received_id='$user_send_id' AND user_send_id='$user_Received_id') and topic_id = $topic_id";
    1 نقطة
  26. تستخدم الكلمة المفتاحية yield فيما يدعى generators أو المولدات, حيث أن yield تعمل مثل return في إعادة القيمة التي تم حسابها ولكنها لا توقف عمل الدالة بشكل كامل بل تسمح لنا بإعادة استدعاء الدالة نفسها مع حفظ آخر خطوة قمنا بها والعمل على الخطوة التالية. حيث يتم الاعتماد على المولدات مثلا لتوليد سلاسل من الأعداد التي تتبع لعلاقة رياضية ما و بدل الانتظار لحساب كامل السلسلة و من ثم تخزينها (دالة عادية تقوم بتوليد السلسلة ثم تقوم بإرجاع array) وثم المرور عليها، تسمح لنا generator بتوليد القيمة التي نريدها بشكل متتالي عند كل استدعاء لهذه الدالة أي تعيد عنصر واحد عند كل استدعاء. مثلا إذا أردنا إرجاع عدة قيم لنفرض 1 2 3 يمكن عمل التالي: def simpleGeneratorFun(): yield 1 yield 2 yield 3 # Driver code to check above generator function for value in simpleGeneratorFun(): print(value) لاحظي استدعاء الدالة ضمن الحلقة حيث يمكن اعتبارها مصفوفة ولكن العنصر الحالي غير موجود حتى يتم حسابه و إعادته من خلال yield. بالنسبة للشيفرة لديكِ: تقوم بعمل Iterator (تكرار) على القائمة node لجلب العنصر التالي ويمكنك ملاحظة أننا نقوم بالاستدعاء بدون ذكر دليل العنصر أو index لأن ال Generator يقوم بحفظ المرحلة التي وصل لها من الاستدعاء أي سيرجع العنصر التالي دوما (له ذاكرة داخلية خاصة)
    1 نقطة
  27. أنصحك بعدم استخدام heroku إلا للتجريب فقط و إذا كان مشروعك بشكل دائم قم بشراء حزمة من heroku أو قم بالأشتراك في استضافة او سيرفر كلاود حتى لا تحدث لك هذه المشكلة مجدداً, لذلك لا تضع مشاريع فعلية على heroku المجانية. ثم يمكنك تخزين الصور بداخل مجلد Public حتى تتفادى عمليات المسح المتكرر من قبل شركة heroku فمثلاً, if($request->hasFile('image')){ $img = time() . '.' . $request->file('image')->getClientOriginalExtension(); $category->image = \URL::to('').'/categories/images/' . $img; $request->image->move(public_path('categories/images'), $img); } أو استخدام AWS S 3 بهذا الشكل $files = $request->file('image'); $errors = []; $i = 0; foreach ($files as $file) { $flebImages = new FlebImage(); $watermark = Image::make(public_path('images/logo.png')); $name = time() . $file->getClientOriginalName(); $img = Image::make($file); $watermarkSize = $img->width() - 20; //size of the image minus 20 margins //#2 $watermarkSize = $img->width() / 5; //half of the image size //#3 $resizePercentage = 70;//70% less then an actual image (play with this value) $watermarkSize = round($img->width() * ((100 - $resizePercentage) / 100), 2); //watermark will be $resizePercentage less then the actual width of the image // resize watermark width keep height auto $watermark->resize(70, 70, function ($constraint) { $constraint->aspectRatio(); }); $watermark->opacity(50); //insert resized watermark to image center aligned //$img->insert($watermark, 'center'); /*$img->resize(500, 500, function ($constraint) { $constraint->aspectRatio(); //$constraint->upsize(); });*/ //$img->insert(public_path('images/logo.jpeg'), 'bottom-right', 10, 10); $img->insert($watermark, 'bottom-right', 10, 10); $filePath = 'flebs/'. $flebFolder . '/' . $name; //detach method is the key! Hours to find it... : $resource = $img->stream()->detach(); \Storage::disk('s3')->put($filePath, $resource); $flebImages->image = \Storage::disk('s3')->url($filePath); $flebImages->save(); }
    1 نقطة
  28. المشكله ان Heroku's filesystem سربعة الزوال ولذلك لدينا اكثر من حل اسهلهم ان نقوم بعمل راوت لكى يقوم بارجاع الصور لنا من فولدر ال storage كالمثال التالى : Route::get('images/{filename}', function ($filename) { $path = storage_path() . '/img/' . $filename; if(!File::exists($path)) abort(404); $file = File::get($path); $type = File::mimeType($path); $response = Response::make($file, 200); $response->header("Content-Type", $type); return $response; }); حل اخر وهوا ان نتستخدم Amazon S3 وهذا طبعا حل ليس مجانى ايضا حل اخر وهوا ان تقوم برفع الصور فى فولدر ال public ولكن هذا الحل غير مفضل لاغراض الحماية
    1 نقطة
  29. مشكلتك موجودة في Github ومازالت مفتوحة وحالياً الحل الوحيد هو التحديث يدوياً
    1 نقطة
  30. لتحويل pandas dataframe لِ numpy, يمكنك استخدام df.values في الكود الخاص بك. يمكنك استخدام الكود التالي ليظهر الخرج كما تريد import numpy as np import pandas as pd index = [1, 2, 3, 4, 5, 6, 7] a = [np.nan, np.nan, np.nan, 0.1, 0.1, 0.1, 0.1] b = [0.2, np.nan, 0.2, 0.2, 0.2, np.nan, np.nan] c = [np.nan, 0.5, 0.5, np.nan, 0.5, 0.5, np.nan] df = pd.DataFrame({'A': a, 'B': b, 'C': c}, index=index) df = df.rename_axis('ID').values print(df) وهذه صورة مرفقة من الخرج الذي ظهر لي عند تنفيذ الكود إعلاه.
    1 نقطة
  31. ربما تكمن المشكلة في إصدار react-scripts الرابع حيث ظهر المشكلة، يمكنك استعمال الإصدار الثالث تعديل الإصدار في packages.json الأعدادت "react-scripts": "3.4.4" حذف node_modules + package-lock.json ثم إعادة التثبيت npm i ..... في ريأكت 17 تم تعديل Hot refresh إلى Fast refresh عدل ملف env. : FAST_REFRESH=false
    1 نقطة
  32. بس حبيت اسئل عن كيفية وضع علامة التخفيض في متجر woocommerce تحت السعر القديم وشكرا لكم مثال مرفق
    1 نقطة
  33. هناك إضافة رائعة يمكن استخدامها وهي woocommerce-wholesale-prices يمكنك من خلال صفحة الإضافة التعامل معها و تضع علامة التخفيض بشكل ممتاز . حدد المنتج الذي تريد تعديله.قم بالتمرير لأسفل إلى قسم بيانات المنتج. في علامة التبويب عام ، ابحث عن العنوان الجديد Wholesale Prices . يمكنك إيضا متابعة شروحات استخدام هذه الإضافة ستجد الأمر سهل جدا في التعامل معها.
    1 نقطة
  34. يوجد العديد من الطرق لتنفيذ علامة التخفيض في ووكوميرس. يقدم ووكوميرس filters وactions للتحكم في الـ markup أو شكل الصفحة في العموم، مثل ووردبريس. بجانب العديد من الإضافات (plugins) لتسهيل هذا الموضوع، إذا كنت لا تريد التعامل مع كود PHP. أولاً، يمكنك استخدام YITH WOOCOMMERCE BADGE MANAGEMENT وهو من أفضل الإضافات لهذه المهمة. فيمكنك التحكم في شكل ومكان ومحتوى العلامة التي ستضعها على المنتج. ثانياً، عن طريق الميزات التي يقدمها ووكوميرس وووردبريس، يمكنك عمل هذه الخاصية بالعديد من الطرق. فمثلاً، يمكنك ان تصنع Post Type جديد للـ badges عن طريق: <?php // قم بعمل نوع منشور جديد بالخصائص التي تحتاجها register_post_type( 'wpwc-badge', array( // قم بإختيار الميزات التي تحتاجها للمنشور ) ); add_action( 'init', 'wpwc_register_badges_post_type' ); ومن ثم، يمكنك عمل template او shortcode وربطه بداخل صفحة عرض المنتجات بكل سهولة. فسيكون لديك تحكم كامل في خصائص العلامة: <?php // [wpwc-badge] function wpwc_badge_shortcode( $atts ) { // قم بكتابة العلامة بالشكل الذي تريده } add_shortcode( 'wpwc-badge', 'wpwc_badge_shortcode' );
    1 نقطة
×
×
  • أضف...