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

Wael Aljamal

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

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

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

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

    218

كل منشورات العضو Wael Aljamal

  1. يفترض أن تعمل بأحد الشكلين ->whereDate('حقل التاريخ', '=', date('Y-m-d')) ->whereDate('حقل التاريخ', date('Y-m-d')) // == إن whereDate لا تنتمي للصنف collection فلن تعمل في حالتك، where تعمل وهذا المطلوب.
  2. لاحظ أن الخطأ بسبب مشكلة صلاحية، توجه إلى المسار android/app/src/main/AndroidManifest.xml ثم أضف الصلاحيات الخاصة بالكاميرا (أول سطر ضروري فقط) <!-- Required --> <uses-permission android:name="android.permission.CAMERA" /> <!-- Include this only if you are planning to use the camera roll --> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <!-- Include this only if you are planning to use the microphone for video recording --> <uses-permission android:name="android.permission.RECORD_AUDIO"/> وفي الملف android/app/build.gradle: android { ... defaultConfig { ... missingDimensionStrategy 'react-native-camera', 'general' // <--- insert this line } } والتحقق أن JDK >= 1.7 and your buildToolsVersion >= 25.0.2 jitpack added في الملف android/build.gradle ^^^^^^^^ allprojects { repositories { maven { url "https://www.jitpack.io" } maven { url "https://maven.google.com" } } } هذا حسب التوثيق، جميع الأمور مذكورة (تابع جميع أجزاء أندرويد)
  3. تمام، يمكن تطبيق دالة المقارنة whereDate للتاريخ دالة whrerTime للوقت أو where نمرر لها اسم العمود الأول ثم معامل المقارنة ثم تاريخ اليوم الحالي <?php {{ $projects->()where('nextdate', '=', (new DateTime)->format('Y-m-d') )->count }} ^^^^^^^^ ^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ يمكن جلب تاريخ اليوم من خلال: date("Y-m-d H:i:s"); date("Y-m-d"); now()->format('Y-m-d') (new DateTime)->format('d-m-Y'); وغيرهم يمكن الاستعانة بحزمة Carbon <?php public function myDate($query) { // الوقت الحالي $now = Carbon::now(); // قصر الوقت لتاريخ $date = Carbon::parse($now)->toDateString(); // قصر الوقت لتوقيت $time = Carbon::parse($now)->toTimeString(); return $query ->whereDate('published_at', '<', $date) // مقارنة تاريخ ->orWhere(function($query) use ($date, $time) { $query ->whereDate('published_at', '=', $date) ->whereTime('published_at', '<=', $time); // مقارنة وقت }); } يوجد دوال أخرى مثل: whereYear whereMonth whereDay
  4. ما هي المنصة التي تشغل الاطبيق عليها؟ حاول عمل expo upgrade
  5. في حال التثبيت من yarn يمكنك تحديثهم منها أيضاً yarn upgrade في مسار مشروعك
  6. يحتاج ظهور التطبيق في قائمة البحث الانتظار عدة أيام حتى يظهر , و في حالة وجود تطبيقات مشابهة و بنفس الاسم وتاريخ نشرها أقدم من تطبيقك فسوف تظهر قبله ويكون لها أولوية و يكون تطبيقك في الصفحات التالية. الحل: الاهتمام بوصف التطبيق و اسمه (اكتب ميزات التطبيق وما يقدمه للمستخدم وكيف يعمل ومجال عمله) أي مثل مقالة مختصرة فيها كلمات دلالية تزيد معدل الوصول لتطبيقك عند عمل بحث، و محاولة تمييزه بكلمات دليلة تدل عليه مما تساعد في تقدمه في نتائج البحث الأولى. سوف يظهر تطبيقك مع مرور الوقت في الصفحات الأولى بعد زيادة عدد الزيارات و التحميلات عليه.
  7. الخطأ في error$ أنه تم تعريفه ضمن مجال else فهو متغير محلي، حاولي تعريفه في أعلى الملف في السطر 14 أو 15 مثلاً، ثم يمكنك تعديل قيمته مثل باقي المتغيرات، والوصول لها في ملفا أخرى أرجو إرفاق الشيفرات البرمجية كنص عن طريق محرر الأكواد
  8. توليد اسم عمود الجدول الخاص بالاسم بإضافة اللغة. مثل دمج رمز اللغة مع حقل الاسم name_ar لجلب اسم الفئة بالعربية
  9. كما يبدو أن هذه كلمات يدخلها المسؤول عن الموقع Admin وبذلك، يتوجب إدخال هذه البيانات مترجمة لأكثر من لغة، أي عند إضافة تصنيف جديد، نضيف لقاعدة البيانات اسمه بالعربية و الانكليزية وغيرها. أي سيكون لجدول قاعدة البيانات عدة حقول بعدد اللغات، Category Table id name_ar name_en ... 1 لحم meat 2 خضار vegetables وسيكون لاستمارة HTML Form حقل لكل لغة، و نقوم بإسناد هذه الأسماء، ثم نجلبهم حسب اللغة $lang = $setting['lang']; // ar $filed = 'cat_name_' . $lang; cat_name = $cat[$filed]; خضار يمكن وضع المنطق في دالة لترتيب الكود.
  10. أرجو مشاركة الرابط للمعاينة
  11. حاول تثبيت أحد الإضافات التالية على متصفح كروم ثم تجريب الترجمة الخاصة بهم Ultimate Video Translator Subtitles Player - Translate video Youtube
  12. توفر لغة PHP دوال سحرية magic methods ومنها دالتين __get __set تستخدمان لقراءة قيم خاصيات الكائنات وإسناد قيم لها على الترتيب. <?php class MyClass { private $Field1; private $Field2; // قراءة قيمة خاصية public function __get($property) { if (property_exists($this, $property)) { return $this->$property; } } // إسناد قيمة خاصية public function __set($property, $value) { if (property_exists($this, $property)) { $this->$property = $value; } return $this; } } ?> للدوال السابقة بعض المساوئ، صعوبة و تعقيد تخصيص التحقق من إدخال قيم معينة لخواص معينة (قبول أرقام موجبة لبعض القيم و تواريخ لبعضها) صعوبة عمل تنسيق للمخرجات/ مثل تنسيق التاريخ و العملات. عدم التفريق بين محددات الوصول للمعاملات لذلك من الأفضل تخصيص دالة لكل معامل من خواص الصنف و التعامل معها بالطريقة التي تناسبها أي تطبيق دالة set و get خاصة لكل خاصية GET => $this->getProperty() SET => $this->setProperty($value) وتطبيقها بشكل بسيط (يمكن إضافة التحقق و تخصيص الخرج لكل خاصية) public function getField1() { return $this->Field1; } protected function setField2($x) { $this->Field2 = $x; } مثال: class Person { private $name = ''; private $birth_date; public function setName($name) { $this->name = $name; } public function getName() { return $this->name; } public function getBirthDate($format='Y-m-d') { //format $birth_date ... //$birth_date = ... return $birth_date; } public function setBirthDate($birth_date) { //if($birth_date is not valid) throw an exception ... $this->birth_date = $birth_date; } public function getAge() { //calculate age ... return $age; } } https://wiki.hsoub.com/PHP/magic
  13. نعم الطريقة صحيحة. عند إعطاء أي حاوية أو عنصر الخاصية Position : fixed سوف ينفصل عن مستوى صفحة HTML أي تعتبر أن له طبقة مختلفة، وسوف يحل محله العنصر التالي في ترتيب صفحة HTML وبذلك لنحافظ على ظهور العنصر الذي أسفله، نقوم بعمل إزاحة من الأعلى من خلال الخاصية margin-top لتبتعد عن الجزء العلوي للعنصر body (الحافة الداخلية) حيث أصبح هذا العنصر هو الذي يسبق باقي أجزاء الصفحة و ليس العنصر ذو Position : fixed، أي سوف ينزلق أسفله، و بذلك نعيده لمكانه بعمل إزاحة من الأعلى. موسوعة حسوب position#fixed
  14. يمكن دفع المشاريع التي هي من نفس النوع بطريقة بسيطة، وهي أن تكون هي نفسها في مجلد واحد في حاسوبك المحلي، سوف تقوم بإنشاء المستودع لمشاريع فلاتر في مجلد Flutter، و في حاسوبك يكون كل المشاريع ضمن مجلد واحد، ثم تقوم بدفع مجلد Flutter لمستودع غيت هاب. Projects Flutter Flutter_1 Flutter_2 Flutter_3 Laravel Laravel_1 Laravel_2 Laravel_3 لكن الأفضل هو وجود مستودع لكل مشروع منفضل، يمكنك لاحقا ضمن غيت هاب GitHub عمل فلترة لنتائج البحث وجلب المشاريع التي هي من نفس النوع، لأن وجود مستودع لجميع المشاريع هو أمر خطر و غير محبذ. حذف مشاريع عن طريق الخطأ بطيء في عمليات دفع و سحب التعديلات لأن المستودع يصبح ضخم و كبير حيث أن حلول دفع عدة مشاريع لنفس المستودع تكون بتسميه فرع مختلف لكل منهم و ممكن عن طريق الخطأ دفع ملفات من مشروع لآخر.. في حال عمل عدة مستودعات محلية (لكل مجلد مشروع) يمكنك دفعهم لنفس المستودع مع تغيير الاسم # repo 1 git push origin Flutter:Flutter-1 # repo 2 git push origin Flutter:Flutter-2 # repo 3 git push origin Laravel:Laravel-1 # repo 4 git push origin Laravel:Laravel-2 وهو شيء لا أنصح به
  15. حاول عمل توقيع جديد للتطبيق، لأنه من غير المفيد استخدام التوقيع السابق، كما أن المبرمج يحذفه عند رفع المشروع. قم ضمن أندرويد استديو بالدخول لتبويب Terminal ثم نفذ الأمر: keytool -genkey -v -keystore ~/key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias key سيتم توليد مفتاح خاص. في حال أردت استعراض التوقيع ممكن بالأمر: keytool -list -v -alias key -keystore android/app/key.jks في حال وجود اختلافات لديك، من الأفضل التوجه للتوثيق الرسمي android app-signing #generate-key
  16. يمكنك الاستفادة من إجابة عدنان على سؤال مشابه
  17. كلاهما يمكنهما القيام بنفس الأمر، حيث أن لا فرق بين لغات البرمجة، الأفضلية نسبياً و الشهرة أكثر لبيئة Laravel فهي أقوى. اختر حسب إتقانك للغات، إن كنت تجيد جافاسكربت اختر node وإلا فإن كنت تعلمت PHP تابع مع Laravel. أرجو البحث في الموقع عن الأسئلة المكررة فسوف تجد العديد من الإجابات:
  18. جافاسكربت أساسية لتعلم ريأكت والتي هي مكتبة جافاسكربت، إن احتجت لمراجعة HTML - CSS يمكنك مشاهدة المسار الأول من دورة تطوير واجهات المستخدم فهي متاحة لك. بالتوفيق
  19. هذا ممكن، ربما لا تحظر الشركة جميع خدماتها في بلد معين، تسمح للشخص بإدارة حسابه في twilio ولكن API التوثيق عن طريق الرقم هو أمر مختلف وغير فعال حالياً و غير مرتبط مع الشركات المحلية
  20. حاول البحث ضمن شركات الاتصال المحلية في بلدك إن كانت توفر هذه الخدمة (أو في البلدان التي تريد تفعيل الخدمة فيها للزبون لديك)
  21. مرحبا موسى، طبعا من الأفضل دراسة الأساسيات أولاً و حتى التطبيق مع المدرب و البدء بممارسة كتابة الأكواد و حل الأخطاء البسيطة التي تظهر لك، لتكون مجهزاً للبدء في القسم التالي أي الأصعب وأنت متعود على طريقة مشاهدة الدورة وزيادة تمرسك في كتابة التعليمات البرمجية، طبعا يوجد ملاحظات في الدروس و التعليقات في جميع المسارات و دروسهم وأنصح بمتابعة كل شيء لأن الفائدة أكبر، ومعك كل الوقت في الدراسة، فأرجو التركيز على الأساسيات.
×
×
  • أضف...