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

كريم أمعطيل

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

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

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

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

  1. إجابة كريم أمعطيل سؤال في html +JavaScript البحث من فقره كانت الإجابة المقبولة   
    تفضل هذا هو الكود الكامل حيث أضفت به خاصية البحث وتفريغ البحث
    <!DOCTYPE html> <html> <head> <style> </style> </head> <body> <header> <textarea id="TextEditor" rows="30" cols="50" placeholder="Copy and Paste a text here ..."></textarea> </header> <section> <h1>Styling a paragraph</h1> <label for="textcolor">Text Color:</label> <input type="color" id="textcolor" value="#ffffff"><br> <label for="backgroundcolor">Background Color:</label> <input type="color" id="backgroundcolor" value="#ff0000"><br> <input type="radio" name="border" value="1">With Border<br> <input type="radio" name="border" value="0">Without Border<br> <label for="bordercolor">Border Color:</label> <input type="color" id="bordercolor" value="#000000"><br> <input type="button" onclick="StylePara()" value="Create the styled button"> <aside> <h1>Searching for a text</h1> <label for="findword">Text Color:</label> <input type="text" id="findword"><br> <input type="button" onclick="SearchPara()" value="Search"> <input type="button" onclick="ClearSearch()" value="Clear Search"> </aside> </section> <footer> <div id="Results"></div> </footer> <script> function StylePara() { document.getElementById("Results").innerHTML = document.getElementById("TextEditor").value; if(document.querySelector('input[type=radio]:checked').value === '1'){ document.getElementById("Results").style.border = "thick solid "+document.getElementById("bordercolor").value; }else if(document.querySelector('input[type=radio]:checked').value === '0'){ document.getElementById("Results").style.border = "none"; } document.getElementById("Results").style.color = document.getElementById("textcolor").value; document.getElementById("Results").style.backgroundColor = document.getElementById("backgroundcolor").value; } function ClearSearch(){ var opar = document.getElementById('Results').innerHTML; var paragraph = document.getElementById('Results'); paragraph.innerHTML = opar.replace('<mark>','').replace('</mark>',''); } function SearchPara() { ClearSearch(); var opar = document.getElementById('Results').innerHTML; var paragraph = document.getElementById('Results'); var search = document.getElementById('findword').value; search = search.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); var re = new RegExp(search, 'g'); var m; if (search.length > 0) paragraph.innerHTML = opar.replace(re, `<mark>$&</mark>`); else paragraph.innerHTML = opar; } </script> </body> </html> بالتوفيق
  2. إجابة كريم أمعطيل سؤال في عرض صفحة php من نفس ملفات الموقع في الورد بريس كانت الإجابة المقبولة   
    ستحتاج إنشاء قالب صفحة جديد (Custom Page Template) ووضع الكود الذي تحتاجه بداخله, لتنفيذ العملية عليك إنشاء ملف php داخل مجلد القالب أي في المسار التالي :
    wp-content/themes/ThemeName/FileName.php // ThemeName = إسم القالب الذي تعتمده & FileName = تغيره بإسم الملف الذي قمت بإنشاءه بداية هذا الملف ضروري ان تكون بهذا الشكل :
    <?php /* Template Name: TemplateName */ ?> ضع بدل TemplateName إسم قالب الصفحة الذي تريد إنشاءه, مثلاً Contact-us وضروري ان يكون بالإنجليزي ولا يضم فراغات, بعد ان تضيف هذا السطر ضع المحتوى الذي تريد 
    ملاحظة أخيرة : سيكون عليك تضمين رأسية الموقع وكذا الـfooter للصفحة التي تنشئهاً طبعاً هذا في حال كنت ستحتاج رأسية وذيل الموقع ... لإضافة الرئسية والذيل إعتمد الكود التالي :
    <?php get_header(); // يستحسن وضعها مباشرة بعد الكود الذي الذي سبق وطرحته ?> .... <?php get_footer(); // يستحسن وضعها كأخر عنصر في الملف ?>  
  3. إجابة كريم أمعطيل سؤال في ممكن برنامج الهندسة العكسية كانت الإجابة المقبولة   
    الهندسة العكسية او ما يسمى بالـReskin هي عملية البحث عن تطبيق (صالح للهندسة العكسية) لأنه توجد بعض التطبيقات التي لا يمكنك العمل عليها نهائيا و التعديل عليها ، سواء كانت تطبيقات موجود على متجر  جوجل بلاي او تطبيقات موجود على متجر آخر و خير مثال amazon , aptoid ....
    لعمل الموضوع كل ما عليك هو تحميل تطبيق موجود على المتجر عن طريق هذا الموقع apkpure ، وبعدها تقوم بتفكيكيه عن طريق برنامج Advanced ApkTool ، ثم بعد ذالك يجب عليك أن تحمل النوت باد ++ أو أي برنامج تحرير ، و تقوم بعمل له Edit او تحديث ثم تقوم بتغير كل من الأسماء و إعلانات ادموب و الباڭاج نيم بعدها ستنتقل إلى مرحلة الصور ، تقوم بتغييرها عن طريق الملفات و ها هو أصبح لديك تطبيق خاص بك .. 
    وللأسف برنامج Advanced ApkTool غير متوفر على الهواتف .. ستحتاج حاسوب لإنجاز العملية
  4. إجابة كريم أمعطيل سؤال في ممكن اعرف ما هوا المنتاج المستخدم كانت الإجابة المقبولة   
    الطريقة المُعتمدة تسمى الظهور والاختفاء التدريجي، وهو ظهور الصورة على الشاشة تدريجياً واختفاؤها تدريجياً كذلك، ففي الظهور التدريجي تكون الشاشة معتمة، ثم تبدأ الصورة في الظهور حتى تتضح تماماً، ويحدث العكس في الاختفاء التدريجي حيث تبدأ الصورة في الإعتام حتى تظلم الشاشة تماماً. وتحدث عملية الظهور أو الاختفاء التدريجي في ثانية أو ثانيتين
    أغلب برماج المونتاج الحالية تضمن لك هذه الطريقة لكن في حالك كنت تبحث عن إسم برنامج معين فأنصحك بـSony Vegas و Camtasia (البرنامج الأخير سهل في التعامل)
    بالنسبة للطريقة فالصورتين التالييتين توضحان طريقة عمل الظهور التدريجي حيث تم إعتماد برنامج Sony Vegas Pro 11 :


  5. إجابة كريم أمعطيل سؤال في عدم ظهور صور المنتجات في متجري woocommerce كانت الإجابة المقبولة   
    السبب على الأرجح هو انك لم تدخل الصور في مكانها الصحيح, الصورة التالية توضح القسم الخاص بمكان وضع صور المنتج :

    صورة المنتج الرئيسية والتي ستظهر في واجهة المنتج يتم وضعها في هذا الحقل :

    بالنسبة لصور المعرض فتُوضع في هذا القسم :

    في حال كنت قد وضعت الصور في مكانها المناسب ومع هذا لا تظهر ففي هذه الحالة من المرجح ان هناك إضافة او القالب نفسه الذي تعتمده يقوم بحجب الصور من الظهور ... في هذه الحالة انصحك بالتحدث مع دعم القالب او مراجعة صفحة إعدادات القالب والتحقق من ما إذا كان هناك خيار إظهار او إخفاء صور المنتجات
  6. إجابة كريم أمعطيل سؤال في اريد اسم برنامج يكون بسيط لعمل اديتينج للفيديو كانت الإجابة المقبولة   
    يوجد برنامج إسمه Audacity تستطيع إعتماده من أجل حذف الـbackground noise لكن للأسف هذا البرنامج كون انه بسيط فهو يسمح بالتعديل على الصوت فقط, أي تُعدل الصوت عبر هذا البرنامج تم تقوم بدمج الصوت مع الفيديو مرة اخرى عبر أحد برامج تعديل الفيديوهات
    لكن في حالتك أنت تبحث عن برنامج يقوم بالأمرين : تعديل الفيديوهات وحذف الـbackground noise وأيضاً بواجهة بسيطة وسهلة الإستخدام ,أنصحك ببرنامج فيلمورا يملك نسخة مجانية وأخرى مدفوعة
     
  7. إجابة كريم أمعطيل سؤال في شرح ال ـContext.. رياكت ناتيف كانت الإجابة المقبولة   
    يوفر السياق او الـContext طريقة لتمرير البيانات عبر شجرة المكونات دون الحاجة إلى نقل الخاصيات يدويًا بين كل مستوى.
    اما بالنسبة لإنشاء سياق جديد فهو عندما يقوم React بعرض مكون يشترك مع السياق المُنشٓئ حيث يقوم بقراءة سياق أقرب مُزوِّد من الشجرة
    تستطيع الإطلاع على كتيب تعليمات React Context لمزيد من المعلومات حول الدالة
  8. إجابة كريم أمعطيل سؤال في كيف يمكني عمل فنكشن . AddBack and AddInOrder كانت الإجابة المقبولة   
    سأعطيك إجابة عن التمرين بإعتماد الدوال التي طلبوها منك
    STL::STL (string S, string language) { s = S; lang = language; } string STL::gets () {return s;}//returns the string of the word. STL * STL::getlang () {return lang;}//returns the lang. void STL::print() {cout << s << endl;} void LLN::AddFront (string S) { //Adds a word (If one does't already exist) into the back of the list. string temp1 = S; string temp2 = this->s; int i = 0; while(temp2[i]) { temp2[i] = tolower(temp2[i]); i++; } i = 0; while(temp1[i]) { temp1[i] = tolower(temp1[i]); i++; } if (temp1 == temp2) return; if (lang==NULL) next = new STL (S,NULL); else lang->addback (S); } void LLN::AddBack (string S) { //Adds a word (If one does't already exist) into the back of the list. string temp1 = S; string temp2 = this->s; int i = 0; while(temp1[i]) { temp1[i] = tolower(temp1[i]); i++; } i = 0; while(temp2[i]) { temp2[i] = tolower(temp2[i]); i++; } if (temp2 == temp1) return; if (lang==NULL) next = new STL (S,NULL); else lang->addback (S); } void STL::AddInOrder (string S) { //Adds a word in alphabetical order. We do a check here to determine whether or not the word we're probing for exists. string tempS = this->gets(); for (int i = 0; i < S.length(); i++) { S[i] = tolower(S[i]); } for (int i = 0; i < tempS.length(); i++) { tempS[i] = tolower(tempS[i]); } if (!lang || S < lang->gets()){ lang = new STL (S,next); } else lang->addinorder (S); } void STL::Sort () { //Sort all the words in the list starting with me in reverse order print (); if (lang != NULL) lang->Sort (); } كملاحظة : خلال كل العملية نقوم بتصغير حروف الـstring بإعتماد مصفوفة tolower
  9. إجابة كريم أمعطيل سؤال في Live Search Using PHP & AJAX كانت الإجابة المقبولة   
    بداية يجب عليك وضع الكود :
    داخل success الخاص بالـajax لأنه إذا وُضع خارج الـajax لن يعمل حيث أن محتوى صندوق .res سيكون فارغ, هذه الخطوة الأولى.
    الخطوة الثانية في حال قمت بالتعديل الأول ومع هذا لم يعمل فقم بتغيير أمر الـclick الخاص بالـjquery وإجعله أمر document ثم click أي بهذا الشكل
    $(document).on('click', '.res li', function () { $("form.add-invoice input[name='product']").val($(this).text()); }); أيضاً يستحسن إستبدال $("form.add-invoice input[name='product']") بـ$(this), لتقليص حجم الكود
    هذا هو الكود النهائي :
    $("form.add-invoice input[name='product']").on("keyup", function() { $.ajax({ method: "post", url: "includes/search.php", data: {q: $(this).val()}, success: function(one) { $("#r").html(one); $(document).on('click', '.res li', function () { $("form.add-invoice input[name='product']").val($(this).text()); }); }, error: function() { console.log("error"); } }); }) بالتوفيق
  10. إجابة كريم أمعطيل سؤال في سؤال بخصوص VMs in the Cloud كانت الإجابة المقبولة   
    مرحباً,
    طرحت العديد من المواضيح بسؤالك لكن سأحاول الإجابة عن كل موضوع على حدة وتوضيح المصطلحات لك
    نبدأ بـ"reference images" المقصود بها بيانات صور(نُسخ) الـآلة الإفتراضية, وتضم هذه البيانات إسم الصورة ثم الهوست وعنوان الجهاز (MacAddress) ...
    نستطيع الإجابة حتى على مصطلح "disk image" فهو يعني نسخ محتوى القرص(أو مساحة التخزين) وتكون في الغالب بغرض الحفاظ على نسخة Backup (إسترجاع)
     
    بخصوص الـcontainers أو الحاويات فهي تختلف عن الألة الإفتراضية, الإختلاف يكمن في أنه بدلاً من جعل الكمبيوتر الأساسي افتراضيًا كما هو الحال مع الألة الإفتراضية (VM) ، يكون نظام التشغيل فقط افتراضيًا, والحاويات تعتبر أقل تكلفة
     
    بالنسبة للسحابات :
    السحابة العامة (Public Cloud) هي حوسبة سحابية يتم تقديمها عبر الإنترنت ومشاركتها عبر المؤسسات.
    السحابة الخاصة (Private Cloud) هي حوسبة سحابية مخصصة لمؤسستك فقط.
    السحابة المختلطة أو الهجينة (Hybrid Cloud) هي أي بيئة تستخدم كلا من السحابة العامة والخاصة.
    السحابة المتعددة (Multi-Cloud) هي استخدام لعدة خدمات الحوسبة السحابية وخدمات التخزين في بنية شبكة واحدة ومشتركة.
  11. إجابة كريم أمعطيل سؤال في مساعدة في تصميم نفس الاطار المرفق كانت الإجابة المقبولة   
    السلام عليكم
    سنعتمد في الإنجاز على الـcss و html 
    سنحدد تصنيف لصندوق النص ونعطيع مثلاً قيمة "TextBox" ونضيف صندوقين أخرين يتضمنان النصوص, واحد للنص العربي والأخر للنص الإنجليزي
    ويكون بهذا الشكل
    <div class="TextBox"> <div class="Text right"> <!-- صندوق يظهر النص من اليمين لليسار --> <h2>عنوان النص</h2> <p> محتوى السطر الأول<br> محتوى السطر<br> محتوى السطر<br> <a href="#">نص الرابط</a> تحياتي </p> </div> <div class="Text left"> <h2>Text Title</h2> <p> First line content<br> line content<br> line content<br> <a href="#">Link Text</a> regards </p> </div> </div> ونضيف كود الـcss التالي :
    .TextBox { width: calc(100% - 20px); margin: 0 10px; background: #f2f2f2 /* اللون الرمادي */ border-radius: 0 50px; /* إنحراف الزاوية */ } .Text.right { padding : 5px 10px; text-align: right; } .Text.left { padding : 5px 10px; text-align: left; } بالتوفيق
  12. إجابة كريم أمعطيل سؤال في التعديل على البيانات في قاعدة البيانات باستخدام php كانت الإجابة المقبولة   
    من باب توضيح إجابة الأخ وائل وحتى يكون لديك مثال حي لما تحدث عنه
    في البداية نحتاج القيام بربط بقاعدة البيانات ثم جلب بيانات حساب معين من أحد جداول القاعدة, ويكون هذا عبر الكود التالي :
    <?php mysql_connect('localhost','username','password'); @mysql_select_db('database') or die( "حدث خطأ في تحديد قاعدة البيانات"); $id = '1'; $query = "SELECT * FROM إسم الجدول WHERE id = ".$id; $result = mysql_query($query); $data = mysql_fetch_array($result); mysql_close(); ?> ثم بعدها تأتي خطوة إضافة فورم(إستمارة) لإتاحة التعديل على البيانات, والكود يكون بهذا الشكل :
    <form method="post" action="EditData.php" /> <table> <tr> <td><input type="hidden" name="id" value="<?= $row['id'] ?>"></td> </tr> <tr> <td>الإسم الشخصي:</td> <td><input type="text" name="first" value="<?= $row['first'] ?>"></td> </tr> <tr> <td>الإسم العائلي:</td> <td><input type="text" name="last" value="<?= $row['last'] ?>"></td> </tr> <tr> <td>رقم الهاتف:</td> <td><input type="text" name="phone" value="<?= $row['phone'] ?>"></td> </tr> <tr> <td>البريد الإلكتروني:</td> <td><input type="text" name="email" value="<?= $row['email'] ?>"></td> </tr> </table> </form> ملاحظة : في الكود السابق إعتمدت <?= بدل <? echo وهذه الخاصية في الكتابة متوفرة فقط في نسخة php فوق 7, أي إذا كنت تعتمد نسخة أقدم فيجب كتابة echo وإضافة ; عند النهاية تفادياً لظهور أي أخطاء
     
    كما تلاحظ في الفورم وضعنا قيمة action هي EditData.php, وتعني الملف الذي يقوم بمعالجة مٌدخلات الإستمارة
    محتوى هذا الملف يكون بهذا الشكل :
    <?php mysql_connect('localhost','username','password'); @mysql_select_db('database') or die( "حدث خطأ في تحديد قاعدة البيانات"); mysql_query("UPDATE إسم الجدول SET first=".$_POST['first']." AND last=".$_POST['last']." WHERE id=".$_POST['id']); mysql_close(); ?> بالتوفيق
  13. إجابة كريم أمعطيل سؤال في هل يمكن جعل TIMER لا يتوقف flutter كانت الإجابة المقبولة   
    مرحباً,
    بدايةً يجب توضيح أن اللغة التي بُرمج بها Flutter تُسمى Dart وهي لغة من بين عدة لغات مُعدة بنظام العرض-المترابط او المتزامن وهو نظام يُركز على تنفيذ الأوامر سطراً بسطر وحفظها سطر بسطر, كما هو الحال بالنسبة للزر الذي يحسب عدد مرات الضغط عليه
    وهذا رابط لمقال مُفيد جداً يشرح الموضع بتعمق : Dart والبرمجة المتزامنة
    لكن ما علاقة هذا بسؤالك؟
    العلاقة هي أنه بفهم الطريقة التي بُرمج بها Flutter نستطيع إيجاد حل للمشكل 
    الحل هو إعتماد خاصية العزل (Isolate) في تنفيذ الأمر الذي تريده (وفي حالتك إبقاء العداد شغال في الخلفية) , هذه الخاصية عند إضافتها في Dart ستسمح بتنفيذ أوامر في الخلفية بشكل منعزل عن باقي الأوامر التي يحتاجها التطبيق أثناء التصفح ويمكن تشغيل هذه الأوامر بصفة دورية (مثلاً كل 1000 جزء من الثانية).
    والتالي هو مثال لكود العزل الذي نتحدث عنه, تستطيع نسخه وإعتماد نفس المبدأ في تنفيذ فكرة الـTimer
    import 'dart:io'; import 'dart:async'; import 'dart:isolate'; Isolate isolate; void start() async { ReceivePort receivePort= ReceivePort(); // مدخل العازل لإسقبال الرسائل isolate = await Isolate.spawn(runTimer, receivePort.sendPort); receivePort.listen((data) { stdout.write('إستقبل: ' + data + ', '); }); } void runTimer(SendPort sendPort) { int counter = 0; Timer.periodic(new Duration(seconds: 1), (Timer t) { counter++; String msg = 'إشعار ' + counter.toString(); stdout.write('أرسل: ' + msg + ' - '); sendPort.send(msg); }); } void stop() { if (isolate != null) { stdout.writeln('حذف العازل'); isolate.kill(priority: Isolate.immediate); isolate = null; } } void main() async { stdout.writeln('جاري إعادة بدأ العازل'); await start(); stdout.writeln('إضغط أي رمز للخروج...'); await stdin.first; stop(); stdout.writeln('وداعاً'); exit(0); } بالتوفيق
  14. إجابة كريم أمعطيل سؤال في كيف يمكنني ان ابرمج (اكود) عدو 2d في Godot Game engine كانت الإجابة المقبولة   
    مرحباً,
    للأسف السؤال يشمل عدد ضخم من المعلومات وصعب الإجابة عنه إجابة محددة
    لكن سأُدرج كود مثال لعدو طائر لتتمكن من أخد فكرة حول البرمجية وتطبيقها في فكترتك الخاصة
    # MAX_SPEED تضم بعض الثوابت من قبيل extends "res://Enemies/Enemy.gd" export(int) var ACCELERATION = 100 # WorldCameraحفظ اللاعب و الـ var MainInstances = ResourceLoader.MainInstances onready var sprite = $Sprite func _ready(): # تجميد الحركة, تفعيلها يتم عبر VisibilityNotifier2D حيث يتحرك العدو ويلاحق الشخصية الرئيسية عندما تقترب منه set_physics_process(false) func _physics_process(delta): var player = MainInstances.Player if player != null: chase_player(player, delta) func chase_player(player, delta): # تحصل على الإتجاهات بإعتماد PlayerPosition - EnemyPosition. var direction = (player.global_position - global_position).normalized() enter code here motion += direction * ACCELERATION * delta motion = motion.clamped(MAX_SPEED) # توجيه العدو لينظر جهة اللاعب sprite.flip_h = global_position < player.global_position motion = move_and_slide(motion) func _on_VisibilityNotifier2D_screen_entered(): set_physics_process(true) لكن أنصحك بشدة بالإطلاع على التعليمات الرسمية لـGodot :
    https://docs.godotengine.org/en/latest/getting_started/step_by_step/your_first_game.html
    وهذه بعض المواضيح الأخرى التي ستساعدك :
    https://docs.godotengine.org/en/latest/tutorials/2d/2d_movement.html https://docs.godotengine.org/en/latest/tutorials/physics/using_kinematic_body_2d.html https://docs.godotengine.org/en/latest/tutorials/2d/2d_sprite_animation.html https://docs.godotengine.org/en/latest/tutorials/physics/ray-casting.html بالتوفيق
×
×
  • أضف...