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

بلال زيادة

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

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

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

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

    30

إجابات الأسئلة

  1. إجابة بلال زيادة سؤال في إخفاء listTile إذا تحقق شرط في فلاتر كانت الإجابة المقبولة   
    هي أفضل طريقة استخدام Provider , هل يمكنك إرفاق الملف الذي به المشكلة , أو يمكنك وضع متغير من نوع bool و متغير geter مثل 
    bool _isHide; bool get ishide => _isHide; وتقوم بعد إرسال البيانات تقوم بتغيير قيمة هذا المتغير و من ثم قبل listTile تقوم بفحص geter إذا قيمته مثلاً true تخفي البيانات , false يعني لا تختفي.
  2. إجابة بلال زيادة سؤال في سؤال في TCPDF - كيفية احتواء الخليه للنصوص warping text كانت الإجابة المقبولة   
    يمكنك استخدام Multicell لتقوم بالتفاف النصوص 
    $pdf->MultiCell(55, 5, [LEFT]'.$text, 1, 1, 0, '', '', true); يمكنك مراجعة التوثيق الخاص بالمكتبة من هنا للقراءة أكثر عن MultiCell. 
  3. إجابة بلال زيادة سؤال في No tests found ضمن اختبار phpUnit في لارافل كانت الإجابة المقبولة   
    يجب أخبار phpunit ان يتعامل مع الدالة كاختبار, بغض النظر عن اسم الدالة بهذا الشكل 
    /** * @test */ public function add_some_thing(){ ///... } يمكنك مراجعة test@ من هنا . أو يمكنك بدء الدالة بكلمة test حتى تتعرف عليها phpunit بهذا الشكل 
    public function test_add_some_thing(){ ///... }  
  4. إجابة بلال زيادة سؤال في مشكلة في تنصيب مشروع لارافل الخطأ 403 مشكلة في الصلاحيات كانت الإجابة المقبولة   
    تأكد من ملف DatabaseSeeder.php هل يحتوي على جميع Seeders و لا لا إذا لم تكن موجود يرجى إضافتها و من ثم محاولة تنفيذ الأمر التالي 
    php artisan migrate:fresh --seed  
  5. إجابة بلال زيادة سؤال في App\Http\Controllers\DayController::update(): Argument #2 ($day) must be of type App\Models\Day, string given كانت الإجابة المقبولة   
    يجب إضافة التالي إلى الدالة update أي تصبح بهذا الشكل 
    public function update(Request $request, Habit $habit, Day $day) { $day->update([ 'done' => request()->has('done') ]); return back(); } طبعا قوم بالتعويض عن Habit $habit, بالمودل الخاص بك. لأن دالة المسار يحتوي على متغيرين.
  6. إجابة بلال زيادة سؤال في ما حل هذا الايرور heroku كانت الإجابة المقبولة   
    أرجوا أرفاق ما يظهر من مشاكل هنا ؟
     
  7. إجابة بلال زيادة سؤال في كيف اثبت اتجاه عرض الكمبوننتس فى شاشة التطبيق حتى بعد تغير اللغة ؟ react native كانت الإجابة المقبولة   
    يمكنك في المسار التالي 
    android\app\src\main\java\com\هنا اسم مجلد مشروعك فتح ملف MainApplication.java, و في دالة onCreate قم بإضافة التالي 
    public void onCreate() { super.onCreate(); SoLoader.init(this, /* native exopackage */ false); if (!BuildConfig.DEBUG) { UpdatesController.initialize(this); } initializeFlipper(this, getReactNativeHost().getReactInstanceManager()); // هذه الأسطر I18nUtil sharedI18nUtilInstance = I18nUtil.getInstance(); sharedI18nUtilInstance.forceRTL(this,false); sharedI18nUtilInstance.allowRTL(this, false); } بحيث تمنع استخدام RTL و لا تنسى إضافة 
    import com.facebook.react.modules.i18nmanager.I18nUtil; يمكنك إخباري بالنتيجة.
  8. إجابة بلال زيادة سؤال في الاستعلام من جدولين MySQL كانت الإجابة المقبولة   
    يمكنك تنفيذ الاستعلام الأول ومن ثم بداخل حلقة التكرار تنفيذ الاستعلام الثاني بناء على id من الاستعلام الأول لكل موضوع سأقوم بوضع مثال ربما يساعدك. 
    $query = "SELECT p.id, p.name FROM product p WHERE p.product_id ='".$_GET['product_id']."'"; $resouter = mysqli_query($connect, $query); $set = array(); $total_records = mysqli_num_rows($resouter); if($total_records >= 1) { while ($link = mysqli_fetch_array($resouter, MYSQLI_ASSOC)){ $set = $link; } $set1 = []; $q="select img,id from album where id = " . $set['id']; $results = mysqli_query($connect, $q); while ($row = mysqli_fetch_array($results, MYSQLI_ASSOC)) { $set1[] = $row['img_url']; } $set['album'] = $set1; } header('Content-Type: application/json; charset=utf-8'); echo $val = str_replace('\\/', '/', json_encode($set));  
  9. إجابة بلال زيادة سؤال في كيف أضيف header جديد لهذا ال react native .. APi كانت الإجابة المقبولة   
    لاحظ في هذا السطر 
    Authorization: `${token}`, سنقوم بتغييره بحيث أننا سنقوم بوضع متغير باسم bearer
    var bearer = 'Bearer ' + token; ثم في
    'Authorization': bearer,  يمكنك تجربة ذلك و تخبرني بالنتيجة.
  10. إجابة بلال زيادة سؤال في تحديد قيمة او عدد Dots في PageView في flutter كانت الإجابة المقبولة   
    يمكنك تمرير عدد List المستخدمة إلى Widget BuildDots بحيث في شرط التكرار 
    for(int i=0; i<MAX; i++){ .... } يكون مثلا متغير i أصغر من عدد List بهذا الشكل 
    filteredUsers.length فيصبح شرك التكرار بهذا الشكل 
    for(int i=0; i<filteredUsers.length; i++){ .... } يمكنك تجربة ذلك 
  11. إجابة بلال زيادة سؤال في مشكلة ImagePicker اخر اصدار في flutter كانت الإجابة المقبولة   
    يمكنك تغيير picImage إلى getImage لأنه يبدو في تحديث الحزمة الخاص بفلتر 2 قاموا بحذف هذه الدالة و استبدالها بدالة getImage 
    final pickedFile = await picker.getImage(source: ImageSource.camera); يمكنك الرجوع إلى الحزمة من خلال موقع pub.dev أو مستودع github الخاص بالحزمة من هنا. 
  12. إجابة بلال زيادة سؤال في مشكلة اصدارات حزم flutter كانت الإجابة المقبولة   
    هل يمكنك تجربة وضع 
    flutter_launcher_name: git: url: https://github.com/ride4sun/flutter_launcher_name ref: "0.9.1" أو 
    flutter_launcher_icons: any  
  13. إجابة بلال زيادة سؤال في تفعيل الزر و تعطيله في فلاتر كانت الإجابة المقبولة   
    يمكنك وضع بداخل أقواس onPressed التالي 
    onPressed: (){ if(i == 1){ return null; } return true; } أو يمكنك إنشاء متغير من نوع bool بهذا الشكل 
    bool isButtonDisabled; وفي دالة initState نضع قيمة لهذا المتغير بهذا الشكل 
    initState(){ isButtonDisabled = false; } وفي دالة onPressed 
    onPressed: isButtonDisabled ? null : _myfunction(),  
  14. إجابة بلال زيادة سؤال في ما اسم هذي الشيفرة في لارافيل ؟ كانت الإجابة المقبولة   
    هذا الكود عبارة عن شرط if مصغرة يطلق عليها اسم Ternary Operator و تكون على هذه الصيغة 
    (condition) ? (statment1) : (statement2); مثل 
    <?php $i = 50; echo ($i >= 10) ? "YES" : "NO"; ?> بحيث Statement1 تنفذ إذا تحقق الشرط, وStatment2 تحقق إذا كان الشرط خطأ. و إذا أردنا تحويلها إلى if تكون بهذا الشكل 
    <?php $i = 50; if($i >= 10){ echo "YES"; } else { echo "NO"; } ?> ويمكنك استخدامها كما تريد و تكرارها كيفما تشاء.
  15. إجابة بلال زيادة سؤال في ما هو CDN ؟ كانت الإجابة المقبولة   
    بإختصار CDN هو ما يطلق عليه Content Delivey Network أي شبكة توزيع و مزامنة المحتوى, وهي مجموعة من الخوادم المتزامنة و الموزعة على شبكة الأنترنت, تحتوي على مكتبات و بعض محتويات الأنترنت الأكثر إنتشاراً مثل مكتبة بوتستراب و مكتبة jquery  و مكتبة popper.js  والكثير من غيرها. 
    مميزاتها: 
    تسرع من عمل الموقع عند تضمينها.  تقلل من حجم ملفات مشروعك.  تقلل معدل الأرتداد عيوبها: 
    لا تعمل عند إنقطاع الأنترنت.  إذا تم فقد الموقع المستضيف إلى هذه المكتبات فستتعطل هذه المكتبات.  يمكنك البحث عن bootstrap rtl  ويمكنك استخدام cdn المقدم من قبل الموقع المستضيف لهذه المكتبة مثل موقع rtlcss.com. 
    <link rel="stylesheet" href="https://cdn.rtlcss.com/bootstrap/v4.5.3/css/bootstrap.min.css" integrity="sha384-JvExCACAZcHNJEc7156QaHXTnQL3hQBixvj5RV5buE7vgnNEzzskDtx9NQ4p6BJe" crossorigin="anonymous"> <script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script> <script src="https://cdn.rtlcss.com/bootstrap/v4.5.3/js/bootstrap.bundle.min.js" integrity="sha384-40ix5a3dj6/qaC7tfz0Yr+p9fqWLzzAXiwxVLt9dw7UjQzGYw6rWRhFAnRapuQyK" crossorigin="anonymous"></script>  
  16. إجابة بلال زيادة سؤال في مساعده في دمج كلاسين php كانت الإجابة المقبولة   
    ليس لديك أي كلاس ليتم إضافة الدالة إليه , لذلك يمكنك إنشاء كلاس بهذا الشكل 
    <?php class ControllerPhoto { public $pdo; function __construct($pdo){ $this->pdo = $pdo // الأستعلام الخاص بقاعدة البيانات } function insertPhoto($itm) { $stmt = $this->pdo->prepare('INSERT INTO photos(photo_url) VALUES(:photo_url)'); $result = $stmt->execute(array('photo_url' => $itm->photo_url,)); return $result ? true : false; } function sanitize($key) { $val = ""; if( !empty($_POST[$key]) ) $val = $_POST[$key]; return $val; } } و من ثم تمرير متغير pdo$ الخاص بالإتصال بقاعدة البيانات , ومن ثم يمكنك استدعاء الدالة بهذا الشكل 
    $controllerPhoto->controllerPhoto($photo); فيكون كامل الكود بهذا الشكل 
    <?php class ControllerPhoto { public $pdo; function __construct($pdo){ $this->pdo = $pdo // الأستعلام الخاص بقاعدة البيانات } function insertPhoto($itm) { $stmt = $this->pdo->prepare('INSERT INTO photos(photo_url) VALUES(:photo_url)'); $result = $stmt->execute(array('photo_url' => $itm->photo_url,)); return $result ? true : false; } function sanitize($key) { $val = ""; if( !empty($_POST[$key]) ) $val = $_POST[$key]; return $val; } } $controllerPhoto = new ControllerPhoto(); $controllerPhoto->controllerPhoto($photo); $extras = new Extras(); $arrPhotos = array(); if(count($arrPhotos) > 0) { for($ind = 0; $ind < count($arrPhotos); $ind++) { $photo = new Photo(); $photo->photo_url = $arrPhotos[$ind]; insertPhoto($itm)->insertPhoto($photo); } } ?>  
  17. إجابة بلال زيادة سؤال في تنفيذ أوامر artisan من خلال السيرفر أو الأستضافة كانت الإجابة المقبولة   
    يجب أن يكون لديك على السيرفر دخول على SSH , ويمكنك من خلال SSH تنفيذ ما تريده من أوامر, أيضا يمكنك أستخدام المتصفح لفعل ذلك عن طريق وضع route مخصص للأوامر و تنفيذ أي كود تريده عن طريق 
    Artisan::call(); مثل 
    Artisan::call('key:generate'); Artisan::call('cache:clear'); Artisan::call('route:clear'); Artisan::call('config:clear'); Artisan::call('view:clear'); // build database schema structure Artisan::call('migrate:refresh --seed');  
  18. إجابة بلال زيادة سؤال في التحقق من MD5 في حالة التطابق ام لا php كانت الإجابة المقبولة   
    سوف تقوم بإرجاع قيمة حقل كلمة المرور وهي مشفرة و من ثم تدخل كلمة المرور وهي مثلا 123 إلى دالة md5 بهذا الشكل 
    md5(123) ثم يمكنك عمل شرط للتحقق من أن كلمة المرور المحفوظة في قاعدة البيانات تساوي كلمة المرور المدخلة بهذا الشكل 
    if(md5(123) == $row['password']){ //.... } ملاحظ الكود توضيح.
    لن تستعمل password_verify في عملية التحقق
  19. إجابة بلال زيادة سؤال في استخدام الأيقونات في فلاتر كانت الإجابة المقبولة   
    إذا كان ما تريد موجود في مكتبة fontawsome  يمكنك تثبيت الحزمة في مشروع بوضع المكتبة في ملف pubspec.ymal 
    font_awesome_flutter:  ومن ثم تنفيذ الأمر التالي 
    flutter pub get إذا لم تجد ما تريد يمكنك صنع الأيقونات بصيغة svg أو جعل مصمم يقوم بتنفيذ الأيقونات لك.
  20. إجابة بلال زيادة سؤال في تحديد عدد العناصر المعروضه في ListView in flutter كانت الإجابة المقبولة   
    الأمر بسيط جداً , يمكنك تغيير القيمة التالية 
    itemCount: GetData.length, إلى أي رقم تريده وليكن مثلاً 6 بهذا الشكل
    itemCount: 6, بحيث سيظهر فقط 6 منتجات فقط.
  21. إجابة بلال زيادة سؤال في لماذا يجب تسمية عند التحويل from object to primitive ب [Symbol.toPrimitive] كانت الإجابة المقبولة   
    بخصوص أين يتم ذلك يتم ذلك داخلياً في اللغة , سأعطيك مثال توضيحي الأن في مثلاً لغة PHP قمنا بالاستعلام داخل جدول في قاعدة بيانات وقمنا بجلب محتوياته , هل نشاهد ذلك أم يحدث الأمر داخلياً في اللغة عن طريق الدوال التي استخدمناها في عملية الاستعلام وهكذا الأمر في Symbol.toPrimitive التي تستخدم لتحويل الكائن إلى قيمة أولية . بمساعدة الخاصية Symbol.toPrimitive (التي تشير إلى دالة) , يمكننا تحويل الكائنات إلى القيم الأولية الموافقة لها , وهذه الدالة تستدعى مع الوسيط النصي hint , والذي يحدد ما هو النوع المفضل للقيمة الأولية المعادة , ويمكن أن تكون قيمة هذا الوسيط number أو string أو default.
    ربما زيارة توثيق حسوب من هنا أو من هنا يفيدك كثيرا.
  22. إجابة بلال زيادة سؤال في تعريف ثلاث خيارت للمستخدم في فلاتر كانت الإجابة المقبولة   
    يمكنك أستخدام   Widget RadioListTile بحيث تضع أكثر من خيار و عندما يقوم المستخدم بأختيار أي خيار موجود تأخذ قيمته, ستقوم بتعريف enum تحتوي الخيارات الثلاثة 
    enum RadioValues { _, yes, no} ثم تقوم بتعريف متغير وليكن اسمه _values 
    RadioValues _values = RadioValues.yes; وتقوم بإعطاءه قيمة افتراضية, ثم تنشأ Column لأحتواء الخيارات الثلاثة مثل 
    Column( children: [ RadioListTile<RadioValues>( title: Text("_"), value: RadioValues._, groupValue: _values, onChanged: (RadioValues value){ setState(() { _values = value; }); }), RadioListTile<RadioValues>( title: Text("Yes"), value: RadioValues.yes, groupValue: _values, onChanged: (RadioValues value){ setState(() { _values = value; }); }), RadioListTile<RadioValues>( title: Text("No"), value: RadioValues.no, groupValue: _values, onChanged: (RadioValues value){ setState(() { _values = value; }); }), ], ); و في دالة onChanged تقوم بتعريف setState ليقوم عند التغيير إلى خيار يحفظ قيمة الخيار الجديد وتخزينها في متغير values_. 
    كامل الكود 
    import 'package:flutter/material.dart'; enum RadioValues { _, yes, no} class RadioTest extends StatefulWidget { @override _RadioTestState createState() => _RadioTestState(); } class _RadioTestState extends State<RadioTest> { RadioValues _values = RadioValues.yes; @override Widget build(BuildContext context) { return Scaffold( body: SafeArea( child: Column( children: [ RadioListTile<RadioValues>( title: Text("_"), value: RadioValues._, groupValue: _values, onChanged: (RadioValues value){ setState(() { _values = value; }); }), RadioListTile<RadioValues>( title: Text("Yes"), value: RadioValues.yes, groupValue: _values, onChanged: (RadioValues value){ setState(() { _values = value; }); }), RadioListTile<RadioValues>( title: Text("No"), value: RadioValues.no, groupValue: _values, onChanged: (RadioValues value){ setState(() { _values = value; }); }), ], ), ), ); } }  

  23. إجابة بلال زيادة سؤال في تصدير بيانات SQLite إلى ملف Excel كانت الإجابة المقبولة   
    يمكنك استخدام مكتبة SQLite2XL من هنا , تستخدم المكتبة لتصدير قاعدة بيانات SQLite مثل ملف Excel إلى الموقع الافتراضي أو الموقع المحدد من قبل المستخدم. تسمح لنا هذه المكتبة بتصدير جدول واحد أو قائمة جداول أو قاعدة البيانات بأكملها كـ Excel.
    حيث يجب إعطاء تصريح 
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> لتهيئة المكتبة يجب استخدام 
    SqliteToExcel sqliteToExcel = new SqliteToExcel(this, "mydb.db"); إذا كنت تريد تصدير الملف إلى مسار مفضل يمكنك استخدام 
    SqliteToExcel sqliteToExcel = new SqliteToExcel(this, "mydb.db", directory_path); لتصدير جدول واحد نستخدم 
    sqliteToExcel.exportSingleTable("table1", "singleTable.xls", new SQLiteToExcel.ExportListener() { @Override public void onStart() { } @Override public void onCompleted(String filePath) { } @Override public void onError(Exception e) { } }); لتصدير مجموعة من الجداول 
    sqliteToExcel.exportSingleTable(listTable, "listTable.xls", new SQLiteToExcel.ExportListener() { @Override public void onStart() { } @Override public void onCompleted(String filePath) { } @Override public void onError(Exception e) { } }); لتصدير قاعدة البيانات بإكملها 
    sqliteToExcel.exportAllTables ("allTable.xls", new SQLiteToExcel.ExportListener() { @Override public void onStart() { } @Override public void onCompleted(String filePath) { } @Override public void onError(Exception e) { } }); يمكنك تعريف زر بهذا الشكل 
    Button btnSqliteExport; btnSqliteExport = (Button) findViewById(R.id.btn_sqlite_export); ثم لتعريف حدث التصدير على الزر 
    btnSqliteExport.setOnClickListener(new View.OnClickListener() { @Override public void onClick(final View view) { String directory_path = Environment.getExternalStorageDirectory().getPath() + "/Backup/"; File file = new File(directory_path); if (!file.exists()) { file.mkdirs(); } // لتصدير قاعدة البيانات لملف إكسل SQLiteToExcel sqliteToExcel = new SQLiteToExcel(getApplicationContext(), DBHelper.DB_NAME, directory_path); sqliteToExcel.exportAllTables("allTables.xls", new SQLiteToExcel.ExportListener() { @Override public void onStart() { } @Override public void onCompleted(String filePath) { Utils.showSnackBar(view, "تم التصدير بنجاح"); } @Override public void onError(Exception e) { } }); } }); }  
  24. إجابة بلال زيادة سؤال في كيفية تغير اتجاه صورة العضو في محادثة شات في flutter كانت الإجابة المقبولة   
    الخطأ في الكود التالي 
    Row( children: [ Container( constraints: BoxConstraints( maxWidth: MediaQuery.of(context).size.width * .6), padding: const EdgeInsets.all(15.0), decoration: BoxDecoration( color: Color(0xfff9f9f9), borderRadius: BorderRadius.only( topRight: Radius.circular(25), bottomLeft: Radius.circular(25), bottomRight: Radius.circular(25), ), ), child: Text(data.Messages.toString(),style: TextStyle(fontSize: 17)), ), CircleAvatar( backgroundImage: NetworkImage( data.image.toString() ,) ), ], ), فالألية كالتالي يجب فحص هل إذا العضو هو المرسل تقوم بتغيير الكود بحيث الصورة بالأول و النص الأخر, والمستقبل العكس,  فممكن تقوم بتنفيذ مثل هذه الفكرة 
    isSender ? Row( children: [ CircleAvatar( backgroundImage: NetworkImage( data.image.toString() ,) ), Container( constraints: BoxConstraints( maxWidth: MediaQuery.of(context).size.width * .6), padding: const EdgeInsets.all(15.0), decoration: BoxDecoration( color: Color(0xfff9f9f9), borderRadius: BorderRadius.only( topRight: Radius.circular(25), bottomLeft: Radius.circular(25), bottomRight: Radius.circular(25), ), ), child: Text(data.Messages.toString(),style: TextStyle(fontSize: 17)), ), ], ), : Row( children: [ Container( constraints: BoxConstraints( maxWidth: MediaQuery.of(context).size.width * .6), padding: const EdgeInsets.all(15.0), decoration: BoxDecoration( color: Color(0xfff9f9f9), borderRadius: BorderRadius.only( topRight: Radius.circular(25), bottomLeft: Radius.circular(25), bottomRight: Radius.circular(25), ), ), child: Text(data.Messages.toString(),style: TextStyle(fontSize: 17)), ), CircleAvatar( backgroundImage: NetworkImage( data.image.toString() ,) ), ], ),  
  25. إجابة بلال زيادة سؤال في تحميل بيانات api قبل البدء ببناء الواجهة في فلاتر كانت الإجابة المقبولة   
    يمكنك وضع دالة الاتصال و الاستعلام من api  في دالة initState 
    @override void initState() { // ignore: todo // TODO: implement initState super.initState(); getAsync(); } ليتم الاتصال ب api في اول عملية بناء الواجهة وهكذا تضمن عدم تخزين قيم فارغة في المتغيرات.
    هناك طريقة ثانية وهي استخدام FutureBuilder بحيث تستخدم hasData التي توفرها FutureBuilder إذا كان هناك داتا أعرض الواجهة إذا لم يكن بيانات ضع shimmer لتلطيف عملية loading.
×
×
  • أضف...