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

بلال زيادة

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

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

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

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

    30

كل منشورات العضو بلال زيادة

  1. يبدو أن المشكلة أنه تقوم بالضغط على الزر قبل تحميل الإعلان وهنا يجب تمكين الزر الخاص بك فقط إذا تم تحميل الإعلان, يجب عليك الانتظار حتى يتم تحميل الإعلان, و في initState, يجب عليك تعيين حالة الزر الخاص بك وبهذه الطريقة سيتم تعطيله و إذا تم تحميل الإعلان, يجب عليك استخدام setState لتمكين الزر. يمكنك استخدام Listener بهذا الشكل, RewardedVideoAd.instance.listener = (RewardedVideoAdEvent event, {String rewardType, int rewardAmount}) { if (event == RewardedVideoAdEvent.rewarded) { ..... } if (event == RewardedVideoAdEvent.loaded) { //RewardedVideoAd.instance.show(); } }; وفي شرط يمكنك وضع setState لتمكين الزر. event == RewardedVideoAdEvent.loaded
  2. يمكنك استخدام الأمر التالي flutter downgrade <version>
  3. يمكنك استخدام دالة delete_post_thumbnail أو function my_post_image_html( $html, $post_id, $post_image_id ) { if(is_single()) { return ''; } else return $html; } add_filter( 'post_thumbnail_html', 'my_post_image_html', 10, 3 );
  4. ما هي التأثيرات التي تريد وضعها على الصورة بعد التحميل؟ أو هل تريد وضع تأثيرات على الصورة عند عرض المنشور ؟ إذا كان ذلك يمكنك استخدام CSS و تطبيق أي فلتر تريده على الصورة, يمكنك استخدام خاصية filter في css وتستخدم هذه الخاصية بهذا الشكل .img{ filter: saturate(3); } هناك عدة فلاتر ومنها: saturate(): تستخدم لضبط تشبع الصورة. brightness : تستخدم لضبط سطوع الصورة. contrast(%): تستخدم لضبط تباين الصورة. drop-shadow(h-shadow v-shadow blur spread color) : تستخدم لضبط الظل المسقط على الصورة. grayscale(%) تستخدم لتحويل الصورة إلى التدرج الرمادي. hue-rotate(deg): تستخدم لتطبيق تدوير على الصورة. invert(%): تستخدم لعكس العينات في الصورة. opacity(%): تستخدم لضبط مستوى التعتيم للصورة. sepia(%): تحول الصورة إلى بني داكن. blur(px): تستخدم لتطبيق تأثير التمويه على الصورة. يمكن زيارة الرابط أسفل يوجد شروحات مميزة من المدربين.
  5. يبدو انك غير متابع لما صدر أول امس لقد قامت فلاتر بتحديث النسخة وأصبحت فلاتر 2 و هناك الكثير من المشاكل مع البكجات التي لا تتوافق مع نسخة فلاتر 2 , ايضا قامت فلاتر 2 بتعطيل عدة بكجات ربما يكون أحدى البكجات التي تستخدمها من ضمنها. ايضا لا تقلق يمكنك الرجوع إلى إصدار فلاتر السابق إذا لا تريد العمل على إصدار فلاتر 2. كما ويمكنك الرجوع إلى كل بكج على pub.dev و متابعة يبدو أن الكثير من البكجات قامت بتحديث إصداراتها لتناسب فلاتر 2. يمكنك الرجوع هنا و أختيار أي نسخة sdk ويمكنك استخدامها إذا كنت لا تريد فلاتر 2.
  6. يمكنك استخدام دالة shell_exec وهذه الدالة تستخدم لتنفيذ الأوامر عبر shell وتقوم بارجاع المخرجات الكاملة كسلسلة. مثال عليها: shell_exec("python path/to/script.py 2>&1"); أو يمكن استخدام Symfony Process هذه المكتبة ايضا تمكنك من تشغيل ملفات بايثون باستخدام لارافل كل ما عليك هو تثبيت الحزمة باستخدام الأمر التالي composer show symphony/process ويمكن استخدامها بهذا الشكل use Symfony\Component\Process\Process; use Symfony\Component\Process\Exception\ProcessFailedException; //$process = new Process('python /path/to/your_script.py'); $process = new Process(['python','/path/to/your_script.py',$arg(optional)]); $process->run(); // executes after the command finishes if (!$process->isSuccessful()) { throw new ProcessFailedException($process); } echo $process->getOutput(); يمكنك إضافتها للمتحكم عن طريق وضعها بدالة وليكن اسمها runPython بهذا الشكل public function runPython() { $process = new Process("python3 /var/www/laravel/myLaravelApp/app/PythonScript/test.py"); $process->run(); if (!$process->isSuccessful()) { throw new ProcessFailedException($process); } $data = $process->getOutput(); dd($data); }
  7. يمكنك في ملف config/database .php في مصفوفة mysql تغيير قيمة strict إلى false. أو ترك قيمة strict في نفس الملف إلى true مع وضع تحتها 'modes' => [ 'STRICT_TRANS_TABLES', 'NO_ZERO_IN_DATE', 'NO_ZERO_DATE', 'ERROR_FOR_DIVISION_BY_ZERO', 'NO_AUTO_CREATE_USER', 'NO_ENGINE_SUBSTITUTION' ],
  8. أي ان العمود غير موقع. يمكن أن تحتوي جميع أنواع الأعداد الصحيحة على سمة اختيارية (غير قياسية) بدون توقيع. يمكن استخدام الكتابة غير الموقعة للسماح فقط بالأرقام غير السالبة في عمود أو عندما تحتاج إلى نطاق رقمي أكبر للعمود.
  9. يجب أن تكون الأعمدة من نفس النوع و يجب أن يكون المفتاح st_id_141 unsigned يرجى ارفاق الجدولين للنظر في العلاقات بينهما , ايضا اود التنبيه على تغيير عمود date إلى اسم اخر لان هذا الاسم محجوز وقد يسبب مشاكل مستقبلا لك
  10. يجب إنشاء مجلد وليكن اسمه languages في المسار الرئيسي للثيم, ثم يجب أن يحتوي على ملفين لكل لغة فمثلا: اللغة العربية يكون ملفاتها هكذا ar.mo, ar.po طبعا واللغة الأنجليزية تكون en.mo, en,po. يتم تعديل بيانات هذه الملفات باستخدام برنامج Poedit لتحرير وتعديل ملفات ذات امتداد .po وعند الإنتهاء من تحرير الملف يتم جمع الملف الذي قمنا بتحريره إلى صيغة ملف بامتداد mo, يمكنك البحث عن برنامج Poedit و فهم طريقة عمله ستفهم ماذا اقصد بجمع الملف الى ملف بامتداد mo. عن الأنتهاء من الملفات نذهب إلى ملف functions.php داخل الثيم , نضع الكود التالي load_theme_textdomain( 'assar', get_template_directory() . '/languages' ); طبعا هذه الدالة load_theme_textdomain( string $domain, string $path = false ) تقوم بتحميل سلاسل الترجمة لكل لغة. يمكنك استخدام الترجمة بهذا الشكل <?php echo esc_html__('Adsense', 'assar'); ?> <?php echo esc_html__('AboutUs', 'assar'); ?> <?php echo esc_html__('Home', 'assar'); ?> بحيث المعرف الاول وهو النص المستخدم مثلا Adsense, AboutUs, Home هو السلسلة النصية في ملف ar.mo.
  11. لا يمكن ذلك إلا بفصل الدالة بملف جديد, أو عن طريق برمجة كلاس و تضع بداخله الدالة التي تريد استدعائها و من ثم تستطيع جلب الدالة هذه من داخل الكلاس في أي ملف تريده, يمكنك تحميل الكلاس في __autoload , يكون عندنا أول ملف وليكن اسمه function.php <?php class myClass { public function __construct() { echo "Hello World"; } public function printText() { echo "hello"; } } ?> ولدينا ملف index.php وبداخله <?php function __autoload($classname) { $filename = "./". $classname .".php"; include_once($filename); } ويمكننا استدعاء الكلاس عن طريق $obj = new myClass(); وجلب الدالة من داخل الكلاس $obj = new myClass(); $obj->printText();
  12. يحدث هذا الأمر إذا قمت بتهيئة github repo جديد باستخدام ملف Readme أو ملف License يجب تنفيذ git remote add origin [//your github url] //pull those changes git pull origin master // or optionally, 'git pull origin master --allow-unrelated-histories' if you have initialized repo in github and also committed locally //now, push your work to your new repo git push origin master
  13. يمكنك استخدام خاصية filter في css وتستخدم هذه الخاصية بهذا الشكل .img{ filter: saturate(3); } هناك عدة فلاتر ومنها: saturate(): تستخدم لضبط تشبع الصورة. brightness : تستخدم لضبط سطوع الصورة. contrast(%): تستخدم لضبط تباين الصورة. drop-shadow(h-shadow v-shadow blur spread color) : تستخدم لضبط الظل المسقط على الصورة. grayscale(%) تستخدم لتحويل الصورة إلى التدرج الرمادي. hue-rotate(deg): تستخدم لتطبيق تدوير على الصورة. invert(%): تستخدم لعكس العينات في الصورة. opacity(%): تستخدم لضبط مستوى التعتيم للصورة. sepia(%): تحول الصورة إلى بني داكن. blur(px): تستخدم لتطبيق تأثير التمويه على الصورة.
  14. في الحقيقة هناك عدة طرق ومنها أولاً يمكنك وضع في إعلى المتحكم السطر التالي use Illuminate\Support\Facades\Hash; ومن ثم في سطر إدخال كلمة المرور تقوم بإضافة Hash إليه فيصبح $user->password = Hash::make(request('pass')); أو بدون وضع use Illuminate\Support\Facades\Hash; إعلى المتحكم يمكنك وضع \ قبل Hash::make $user->password = \Hash::make(request('pass')); أو يمكنك استخدام bcrypt هكذا $user->password = bcrypt(request('pass')); يمكنك ايضا استخدام md5 لتشفير كلمة المرور ولكن هذه تطلب عدة تغييرات يمكنك البحث عن كيفية جعل تشفير كلمة المرور باستخدام md5 في laravel و اتبع التعليمات.
  15. يمكنك تغيير الكود التالي $file = UploadedFile::fake()->create( 'video.mp4', $sizeInKilobytes, 'mp4' ); إلى $file = UploadedFile::fake()->create( 'video.mp4', $sizeInKilobytes, 'video/mp4' ); بحيث تم تغيير mime إلى mime صحيح. إيضا حاول استخدام ملف وسائط حقيقي بدلاً من ملف وسائط مزيف. $path = <path to your file>; $file = new UploadedFile($path, $name, filesize($path), 'video/mp4', null, true);
  16. يمكنك إضافة ذلك عن طريق برمجة دالة تقوم بإضافة ما تريد لكل عنصر بالمصفوفة ومن ثم تمريرها إلى دالة array_map $arr1 = ["https://google.com", "https://facebook.com", "https://twitter.com"]; function addSlashesToArray($str) { return "\\".$str."\\"; } $newArray = array_map("addSlashesToArray", $arr1);//array with the new values print_r ($newArray); طبعا دالة array_map دالة أخرى يحددها المستخدم على كل عنصر موجود في المصفوفات الممررة. والنتيجة تكون Array ( [0] => \https://google.com\ [1] => \https://facebook.com\ [2] => \https://twitter.com\ )
  17. في الحقيقة هناك عدة طرق, فيمكنك تطبيق الشرط التالي على متغير $imageName بحيث إذا كان فارغ لا يعدله , ويعدل الحقول الأخرى أما إذا كان يحتوي على قيمة فيعدل جميع الحقول, بحيث تصبح <?php $company = Company::find($id) ->update([ "company_name" => $request["company_name"], "former_company" => $request["former_company"], "company_logo" => $imageName, ]); هكذا <?php $company = Company::find($id); if($imageName != null){ $company->update([ "company_name" => $request["company_name"], "former_company" => $request["former_company"], "company_logo" => $imageName, ]); } else { $company->update([ "company_name" => $request["company_name"], "former_company" => $request["former_company"], ]); }
  18. تعني رسالة killed أن العملية استهلكت قدرا كبيرا من الذاكرة لذلك تحتاج إلى إضافة المزيد من الذاكرة إلى نظامك. يمكنك إضافة المكتبة إلى مجلد vendor يدويا ومن ثم يجب تشغيل الأمر التالي composer dump-autoload --optimize يمكنك من ملف php.ini من تغيير قيمة memory_limit إلى 4G
  19. وعليكم السلام ورحمة الله وبركاته يبدو انه يجب طلب الأذونات المناسبة في iOS ويمكنك تمرير دالة void requestIOSPermissions( FlutterLocalNotificationsPlugin flutterLocalNotificationsPlugin) { flutterLocalNotificationsPlugin .resolvePlatformSpecificImplementation< IOSFlutterLocalNotificationsPlugin>() ?.requestPermissions( alert: true, badge: true, sound: true, ); } ومن ثم تمرير هذه الدالة إلى دالة main وتحمل متغير flutterLocalNotificationsPlugin, تم تمرير هذه الدالة إلى دالة main حتى عند تشغيل التطبيق يتم طلب الأذونات المناسبة في iOS. final FlutterLocalNotificationsPlugin flutterLocalNotificationsPlugin = FlutterLocalNotificationsPlugin(); NotificationAppLaunchDetails notificationAppLaunchDetails; Future<void> main() async { WidgetsFlutterBinding.ensureInitialized(); await initStore(); store = getStore(); notificationAppLaunchDetails = await flutterLocalNotificationsPlugin.getNotificationAppLaunchDetails(); await initNotifications(flutterLocalNotificationsPlugin); // هنا requestIOSPermissions(flutterLocalNotificationsPlugin); runApp(LaunchingApp(store)); } إذا لم ينجح الأمر الرجاء قم بإرفاق ملفات المشروع.
  20. توفر php عدة دوال لتنفيذ على ملف php.ini فيمكنك ايضا من خلال استخدام الدالة ini_set('memory_limit', '1024M'); لتعديل قيمة memory_limit في ملف php.ini. ويمكنك جلب قيمة memory_limit باستخدام دالة ini_get('memory_limit');
  21. كل كود جافا سكربت لا تستخدمه قم بإزالته سواء في ملفات js او في ملفات html أكواد javascript تكون مخزنة بملفات امتدادها يكون .js أو ايضا تجدها في ملفات html بصيغة <script type="text/javascript">هنا كود الجافاسكريبت</script> و ايضا قم بضغط ملفات js حتى تقلل حجمها, لانه في هذه الطريقة تقلل مدة تحميل الملف مما يزيد من سرعة الموقع و يمكنك استخدام هذه الطريقة عن طريق موقع https://javascript-minifier.com/ أو اي موقع أخر يحول الكود إلى Minified. ملاحظة: يمكن ايضا التعامل مع ملفات css بنفس الطريقة وتحويلها إلى Minified. مثل هذا الكود $("#contactFormmm").validator().on("submit", function (event) { console.log("hellloooooooooooooooooooooooo"); if (event.isDefaultPrevented()) { // handle the invalid form... formError(); submitMSG(false, "هل قمت بملء النموذج بشكل صحيح؟"); } else { // everything looks good! event.preventDefault(); submitForm(); } }); function submitForm(){ // Initiate Variables With Form Content var name = $("#name").val(); var email = $("#email").val(); var subject = $("#subject").val(); var msg = $("#msg").val(); $("body").addClass("loading"); $('.abcmodal').fadeIn(500); $('.overlayy').fadeIn(500); var fd = new FormData(document.getElementById("contactFormmm")); console.log("hellloooooooooooooooooooooooo"); $.ajax({ type: "POST", url: "{{ route('contact-us.store') }}", data: fd, cache: false, processData: false, contentType: false, success : function(text){ $("body").removeClass("loading"); $('.abcmodal').fadeOut(500); $('.overlayy').fadeOut(500); formSuccess(); } }); } function formSuccess(){ $("#contactFormmm")[0].reset(); submitMSG(true, "تم الإرسال"); } function formError(){ $("#contactFormmm").removeClass().addClass('shake animated').one('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend', function(){ $(this).removeClass(); }); } function submitMSG(valid, msg){ if(valid){ var msgClasses = "h3 text-center tada animated text-success"; } else { var msgClasses = "h3 text-center text-danger"; } $("#msgSubmit").removeClass().addClass(msgClasses).text(msg); } عند تحويله يصبح function submitForm(){$("#name").val(),$("#email").val(),$("#subject").val(),$("#msg").val();$("body").addClass("loading"),$(".abcmodal").fadeIn(500),$(".overlayy").fadeIn(500);var o=new FormData(document.getElementById("contactFormmm"));console.log("hellloooooooooooooooooooooooo"),$.ajax({type:"POST",url:"{{ route('contact-us.store') }}",data:o,cache:!1,processData:!1,contentType:!1,success:function(o){$("body").removeClass("loading"),$(".abcmodal").fadeOut(500),$(".overlayy").fadeOut(500),formSuccess()}})}function formSuccess(){$("#contactFormmm")[0].reset(),submitMSG(!0,"تم الإرسال")}function formError(){$("#contactFormmm").removeClass().addClass("shake animated").one("webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend",function(){$(this).removeClass()})}function submitMSG(o,t){if(o)var e="h3 text-center tada animated text-success";else e="h3 text-center text-danger";$("#msgSubmit").removeClass().addClass(e).text(t)}$("#contactFormmm").validator().on("submit",function(o){console.log("hellloooooooooooooooooooooooo"),o.isDefaultPrevented()?(formError(),submitMSG(!1,"هل قمت بملء النموذج بشكل صحيح؟")):(o.preventDefault(),submitForm())});
  22. يتيح livewire2 الأن تمرير مكونات livewire مباشرة إلى المسارات باستخدام Route::get() مثل // قبل Route::livewire('/users', 'users'); // بعد Route::get('/users', \App\Http\Livewire\Users::class); ولو كنت تستخدم laravel 7 تحتاج إلى إزالة namespace من ملف app\Providers\RouteServiceProvider.php وهو هذا السطر protected $namespace = 'App\Http\Controllers'; ولكن في laravel 8 يتم إزالته افتراضيا. ومن ثم تشغيل الأوامر التالية php artisan cache:clear php artisan route:clear php artisan config:clear php artisan view:clear
  23. تأكد من إضافة middleware إلى ملف Kernel.php في المسار التالي app\Http في مصفوفة middlewareGroups كالتالي: protected $middlewareGroups = [ 'web' => [ \App\Http\Middleware\EncryptCookies::class, \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, \Illuminate\Session\Middleware\StartSession::class, // \Illuminate\Session\Middleware\AuthenticateSession::class, \Illuminate\View\Middleware\ShareErrorsFromSession::class, \App\Http\Middleware\VerifyCsrfToken::class, \Illuminate\Routing\Middleware\SubstituteBindings::class, \App\Http\Middleware\Language::class, ], 'api' => [ 'throttle:60,1', \Illuminate\Routing\Middleware\SubstituteBindings::class, ], ]; لقد قمنا بإضافة التالي إلى المصفوفة \App\Http\Middleware\Language::class, ويمكنك استدعاء كل لغة مثل <a href="{{ route('changeLang') }}?lang=en" style="cursor: pointer; cursor: hand;">En</a> <a href="{{ route('changeLang') }}?lang=ar" style="cursor: pointer; cursor: hand;">AR</a>
  24. يجب إضافة الأسطر التالية إلى didFinishLaunchingWithOptions في ملف AppDelegate.m إذا كنت تستخدم objective-c أو AppDelegate.swift إذا كنت تستخدم swift objective-c if (@available(iOS 10.0, *)) { [UNUserNotificationCenter currentNotificationCenter].delegate = (id<UNUserNotificationCenterDelegate>) self; } Swift if #available(iOS 10.0, *) { UNUserNotificationCenter.current().delegate = self as? UNUserNotificationCenterDelegate } ثم تشغيل الأوامر التالية flutter clean flutter run إذا لم ينجح الأمر قم بتحديث المكتبة إلى أخر إصدار.
×
×
  • أضف...