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

بلال زيادة

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

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

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

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

    30

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

  1. لا يمكن ذلك إلا بفصل الدالة بملف جديد, أو عن طريق برمجة كلاس و تضع بداخله الدالة التي تريد استدعائها و من ثم تستطيع جلب الدالة هذه من داخل الكلاس في أي ملف تريده, يمكنك تحميل الكلاس في __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();
  2. يحدث هذا الأمر إذا قمت بتهيئة 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
  3. يمكنك استخدام خاصية 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): تستخدم لتطبيق تأثير التمويه على الصورة.
  4. في الحقيقة هناك عدة طرق ومنها أولاً يمكنك وضع في إعلى المتحكم السطر التالي 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 و اتبع التعليمات.
  5. يمكنك تغيير الكود التالي $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);
  6. يمكنك إضافة ذلك عن طريق برمجة دالة تقوم بإضافة ما تريد لكل عنصر بالمصفوفة ومن ثم تمريرها إلى دالة 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\ )
  7. في الحقيقة هناك عدة طرق, فيمكنك تطبيق الشرط التالي على متغير $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"], ]); }
  8. تعني رسالة killed أن العملية استهلكت قدرا كبيرا من الذاكرة لذلك تحتاج إلى إضافة المزيد من الذاكرة إلى نظامك. يمكنك إضافة المكتبة إلى مجلد vendor يدويا ومن ثم يجب تشغيل الأمر التالي composer dump-autoload --optimize يمكنك من ملف php.ini من تغيير قيمة memory_limit إلى 4G
  9. وعليكم السلام ورحمة الله وبركاته يبدو انه يجب طلب الأذونات المناسبة في 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)); } إذا لم ينجح الأمر الرجاء قم بإرفاق ملفات المشروع.
  10. توفر php عدة دوال لتنفيذ على ملف php.ini فيمكنك ايضا من خلال استخدام الدالة ini_set('memory_limit', '1024M'); لتعديل قيمة memory_limit في ملف php.ini. ويمكنك جلب قيمة memory_limit باستخدام دالة ini_get('memory_limit');
  11. كل كود جافا سكربت لا تستخدمه قم بإزالته سواء في ملفات 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())});
  12. يتيح 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
  13. تأكد من إضافة 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>
  14. يجب إضافة الأسطر التالية إلى 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 إذا لم ينجح الأمر قم بتحديث المكتبة إلى أخر إصدار.
  15. في المسار التالي config/app.php , يجب وضع Laravel\Socialite\SocialiteServiceProvider::class في مصفوفة providers, و وضع التالي 'Socialite' => Laravel\Socialite\Facades\Socialite::class في مصفوفة aliases . ولأستخدامها في ملفات Controllers نضع use Socialite; ايضا يمكنك تشغيل الأمر التالي php artisan config:clear
  16. يجب استدعاء الأمر التالي php artisan passport:install سيُنشئ هذا الأمر مفاتيح التشفير اللازمة لإنشاء رموز وصول آمنة.
  17. يمكنك مراسلة الدعم الفني من هنا و طلب تقديم الأختبار وسيقدمون لك التعليمات الكاملة لتنفيذ الاختبار
  18. يمكنك شراء شهادة اسمها SSL وتقوم بتركيبها على موقعك هناك مواقع عديدة تقوم ببيع هذه الشهادة باسعار متفاوتة. ايضا هناك مواقع تقوم بإعطاء سنة مجانية للذي يشتري الشهادة لتشجيعه على الاستمرار في شراء الشهادة من خلال هذا الموقع. لو بحث في محرك بحث قوقل ستجد الكثير من المواقع يقدم خدمة بيع هذه الشهادة, بعد شرائك للشهادة تقوم بتركيبها على موقعك من خلال cpanel.
  19. ممكن ترفق ملفات المشروع كاملاً؟ وتأكد من <meta-data android:name="com.google.android.gms.ads.APPLICATION_ID" android:value="[ADMOB_APP_ID]"/> داخل ملف AndroidManifest.xml بحيث أنه [ADMOB_APP_ID] هو معرف التطبيق على أدموب. لتجريب المشروع والتأكد من أنك قمت بالخطوات كاملاً يرجى إرفاق ملفات المشروع للمساعدة في حل المشكلة.
  20. يمكنك في المسار التالي maiproject\app صنع مجلد جديد وليكن باسم Helpers ثم في داخل المجلد هذا نضع ملف اسمه helpers.php. ومن ثم فليكن الملف بداخله هكذا <?php if (! function_exists('create_option')) { function create_option($table = '',$value = '',$show = '',$selected = '', $where = null) { if($where != null){ $results = DB::table($table)->where($where)->orderBy('id','DESC')->get(); }else{ $results = DB::table($table)->orderBy('id','DESC')->get(); } $option = ''; foreach ($results as $data) { if($data->$value == $selected){ $option .= '<option value="' . $data->$value . '" selected>' . (isset(unserialize($data->$show)[get_option('language')]) ? unserialize($data->$show)[get_option('language')] : '') . '</option>'; }else{ $option .= '<option value="' . $data->$value . '">' . (isset(unserialize($data->$show)[get_option('language')]) ? unserialize($data->$show)[get_option('language')] : '') . '</option>'; } } echo $option; } } if ( ! function_exists('get_row')){ function get_row($table, $where = null , $order = 'ASC') { if($where != null){ $row = DB::table($table)->where($where)->orderBy('id', $order)->first(); }else{ $row = DB::table($table)->orderBy('id', $order)->first(); } return $row; } } if ( ! function_exists('get_table')){ function get_table($table, $where = null , $order = 'DESC') { if($where != null){ $results = DB::table($table)->where($where)->orderBy('id', $order)->get(); }else{ $results = DB::table($table)->orderBy('id', $order)->get(); } return $results; } } if ( ! function_exists('get_logo')){ function get_logo() { $logo = get_option("logo"); if($logo == ''){ return asset("public/uploads/images/default-logo.png"); } return asset("public/uploads/images/$logo"); } } if ( ! function_exists('get_icon')){ function get_icon($name) { return asset("public/images/icons/".$name); } } if ( ! function_exists('month_number_to_name')){ function month_number_to_name($month_number) { $month_name = date("F", mktime(0, 0, 0, $month_number, 10)); return $month_name; } } if ( ! function_exists('sql_escape')){ function sql_escape($unsafe_str) { if (get_magic_quotes_gpc()) { $unsafe_str = stripslashes($unsafe_str); } return $escaped_str = str_replace("'", "", $unsafe_str); } } if ( ! function_exists('get_option')){ function get_option($name, $optional = '') { $setting = DB::table('settings')->where('meta_key', $name)->get(); if ( ! $setting->isEmpty() ) { return $setting[0]->meta_value; } return $optional; } } if ( ! function_exists('timezone_list')) { function timezone_list() { $zones_array = array(); $timestamp = time(); foreach(timezone_identifiers_list() as $key => $zone) { date_default_timezone_set($zone); $zones_array[$key]['ZONE'] = $zone; $zones_array[$key]['GMT'] = 'UTC/GMT ' . date('P', $timestamp); } return $zones_array; } } if ( ! function_exists('create_timezone_option')) { function create_timezone_option($old="") { $option = ""; $timestamp = time(); foreach(timezone_identifiers_list() as $key => $zone) { date_default_timezone_set($zone); $selected = $old == $zone ? "selected" : ""; $option .= '<option value="'. $zone .'"'.$selected.'>'. 'GMT ' . date('P', $timestamp) .' '.$zone.'</option>'; } echo $option; } } if ( ! function_exists( 'get_country_list' )) { function get_country_list($selected = '') { if( $selected == "" ){ echo file_get_contents( app_path().'/Helpers/country.txt' ); }else{ $pattern = '<option value="'.$selected.'">'; $replace = '<option value="'.$selected.'" selected="selected">'; $country_list = file_get_contents( app_path().'/Helpers/country.txt' ); $country_list = str_replace($pattern, $replace, $country_list); echo $country_list; } } } if( !function_exists('load_language') ){ function load_language($active=''){ $path = resource_path() . "/_lang"; $files = scandir($path); $options = ""; foreach($files as $file){ $name = pathinfo($file, PATHINFO_FILENAME); if($name == "." || $name == "" || $name == "language"){ continue; } $selected = ""; if($active == $name){ $selected = "selected"; }else{ $selected = ""; } $options .= "<option value='$name' $selected>".ucwords($name)."</option>"; } echo $options; } } if( !function_exists('get_language_list') ){ function get_language_list(){ $path = resource_path() . "/_lang"; $files = scandir($path); $array = array(); $default = get_option('language'); $array[] = $default; foreach($files as $file){ $name = pathinfo($file, PATHINFO_FILENAME); if($name == "." || $name == "" || $name == "language" || $name == $default){ continue; } $array[] = $name; } return $array; } } if ( ! function_exists('counter')){ function counter($table, $where = null) { if($where != null){ $results = DB::table($table)->where($where)->count(); }else{ $results = DB::table($table)->count(); } return $results; } } if ( ! function_exists('count_inbox')){ function count_inbox() { $inbox = App\ContactMessage::where('status', 0)->count(); return $inbox; } } if (! function_exists('is_site_installed')) { function is_site_installed() { return is_file(public_path('install.txt')); } } ملاحظة هذا الكود مجرد مثال. ثم في ملف composer.json نضع بداخل السطر التالي "autoload": { "psr-4": { "App\\": "app/" }, "classmap": [ "database/seeds", "database/factories" ] }, فيكون "autoload": { "psr-4": { "App\\": "app/" }, "files": [ "app/Helpers/helpers.php" ], "classmap": [ "database/seeds", "database/factories" ] }, ثم نقوم بتنفيذ هذا الامر داخل terminal composer dump-autoload وهكذا نكون قد أضفنا هذا الملف للمشروع بكل سهولة.
  21. تنتشر في فلسطين مكاتب عديدة تقوم بالسحب لك من خلال موقع مستقل أو خمسات, ولكن الأمر المزعج في هذه المكاتب هي العمولة المقتطعة من قبل أصحاب المكاتب و هي كبيرة نوعا ما. يمكنك البحث عن هذه المكاتب والتواصل معها والتفاوض على نسبة العمولة إذا أردت السحب من خلال المكتب. هناك أيضا اشخاص يقومون بالسحب لك ولكن لا أنصح بهم إطلاقاً. هذه المكاتب ممكن أن تقوم بالدفع نقداً أو التحويل إلى حسابك البنكي بعد ما يقومون باستلام الأرباح على حساب paypal الخاص بهم.
  22. يمكنك فتح تذكرة للدعم الفني من هنا و طرح مشكلتك عليهم و سوف يقومون بمساعدتك بحلها
  23. react تستخدم لإنشاء صفحات ويب أحادية الصفحة (SPA) أي صفحات تعمل على المتصفحات, اما react native تستخدم لبرمجة تطبيقات موبايل أي تطبيقات تعمل على الجوال أو التابلت. react native ليست نسخة تختلف عن react, بل هي تطوير ل react, وهي تستخدم مكونات النيتف native لبرمجة تطبيقات تعمل على الموبايل. اما react تستخدم مكونات Web لبرمجة صفحات تعمل على الويب. ولتعلم react native يجب أولاً تعلم react حتى تكون على دراية بالمفاهيم الأساسية مثل Props, State, Components. هناك شركات كبرى تستخدم react , react native في مشاريعها, مع العلم أن شركة فيسبوك هي من قامت بتطوير إطار العمل react.
  24. لا يمكنك تجربة الإعلانات على جهاز وهمي او emulator فقط على جهاز جوال حقيقي ستظهر. يمكنك تجربة ذلك واخباري, أيضا إذا استمريت بفتح الإعلانات من الجهاز الأفتراضي أو الوهمي سيتم حظر حسابك في أدموب أو تعليقه.
  25. يمكنك استخدام الكود كاملا, لقد قمت بتجربته و التأكد من عمله <?php $DATABASE_HOST = 'localhost'; $DATABASE_USER = 'root'; $DATABASE_PASS = ''; $DATABASE_NAME = 'phplogin'; $db = mysqli_connect($DATABASE_HOST, $DATABASE_USER, $DATABASE_PASS, $DATABASE_NAME); if ($stmt = $db->prepare('SELECT id, password FROM accounts WHERE username = ?')) { $stmt->bind_param('s', $_POST['username']); $stmt->execute(); $stmt->store_result(); if ($stmt->num_rows > 0) { echo 'Username exists, please choose another!'; }else { $sql = "INSERT INTO accounts (username, password, email) VALUES (?, ?, ?)"; if($stmt = mysqli_prepare($db, $sql)) { mysqli_stmt_bind_param($stmt, "sss", $username, $password, $email); $username = $_REQUEST['username']; $password = password_hash($_POST['password'], PASSWORD_DEFAULT); $email = $_REQUEST['email']; if(mysqli_stmt_execute($stmt)) { echo "Records inserted successfully."; } } } } $stmt->close(); $db->close(); ?> بحيث أنه في الكود الثاني الذي قمت أنت بإرفاقه تقوم بالتحقق من وجود اسم المستخدم ام لا لذلك يوجد في الكود شرط ويمكن استخدام هذا الشرط بحيث أنه إذا تحقق وكان اسم المستخدم موجود لا نقوم بإدخال البيانات إلى قاعدة البيانات, وإذا كان اسم المستخدم غير موجود نضيف البيانات إلى قاعدة البيانات. وهذا هو الشرط if ($stmt->num_rows > 0) { echo 'Username exists, please choose another!'; } نضيف إليه else بحيث يصبح هكذا مع إضافة كود الإدخال إلى قاعدة البيانات. if ($stmt->num_rows > 0) { echo 'Username exists, please choose another!'; }else { $sql = "INSERT INTO accounts (username, password, email) VALUES (?, ?, ?)"; if($stmt = mysqli_prepare($db, $sql)) { mysqli_stmt_bind_param($stmt, "sss", $username, $password, $email); $username = $_REQUEST['username']; $password = password_hash($_POST['password'], PASSWORD_DEFAULT); $email = $_REQUEST['email']; if(mysqli_stmt_execute($stmt)) { echo "Records inserted successfully."; } } }
×
×
  • أضف...