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

Ahmed Emad35

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

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

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

كل منشورات العضو Ahmed Emad35

  1. من الممكن ان يكون هناك تضارب بين الصفحة التي تنشأها و Theme My Login اليك عدة طرق من الممكن ان تقوم بحل المشكلة :- 1. تحقق من الترتيب : تأكد من ان اضافة theme my login مفعلة بعد اضافة الالمينتور يمكنك فعل ذلك من خلال الانتقال إلى صفحة "الإضافات" في لوحة التحكم 2. تحقق من القوالب تأكد من ان قالب الصفحة الخاص بك لصفحة انشاء الحساب يستجيب لاضافة theme my login 3. قم بتعطيل جميع الإضافات بما في ذلك Theme My Login وأنظر ما إذا كانت صفحة إنشاء الحساب تعمل. ثم قم بتفعيلها تدريجياً لاكتشاف الإضافة التي قد تسبب المشكلة. 4. قم بفتح وحدة تحكم المتصفح (Console) وتحقق من وجود أي أخطاء JavaScript أو CSS التي قد تظهر أثناء تحميل الصفحة.
  2. اولا عليك التأكد من انك قمت بتثبيت بايثون علي جهازك ثانيا عليك بتثبيت flask pip install Flask ثالثا انشاء مشروع فلاسك عليك بانشاء مجلد و انشاء بداخله ملف بايثون و ليكن اسمه app.py from flask import Flask app = Flask(__name__) @app.route('/') def hello_world(): return 'Hello, World!' if __name__ == '__main__': app.run(debug=True) عليك كتابة هذا الكود داخل الملف رابعا عليك تنفيذ هذا الامر من خلال ال terminal اذا كنت تشتغل على VScode او من خلال command prompt بعد توجيه المسار الي مجلد مشروع ال flask python app.py سيقوم هذا الامر بتشغيل المشروع على ال localhost الخاص بجهازك خامسا الوصول الي المشروع من خلال http://127.0.0.1:5000/ و بهذا ستكون قمت بانشاء مشروع فلاسك
  3. اولا عليك ان تتأكد من تثبيت المكتبة من خلال المر التالي pip install pyaudio pip install SpeechRecognition ثانيا عليك الحصول على ال API من خلال الخطوات التالية :- الذهاب الي Google Cloud Console من ثم انشاء مشروع جديد من ثم تفعيل خاصية الكلام الي نصوص و من ثم انشاء API ثالثا استخدام المكتبة للتسجيل من خلال الكود التالي :- import pyaudio import wave CHUNK = 1024 FORMAT = pyaudio.paInt16 CHANNELS = 1 RATE = 44100 RECORD_SECONDS = 5 WAVE_OUTPUT_FILENAME = "audio.wav" p = pyaudio.PyAudio() stream = p.open(format=FORMAT, channels=CHANNELS, rate=RATE, input=True, frames_per_buffer=CHUNK) print("* Recording audio...") frames = [] for i in range(0, int(RATE / CHUNK * RECORD_SECONDS)): data = stream.read(CHUNK) frames.append(data) print("* Finished recording") stream.stop_stream() stream.close() p.terminate() wf = wave.open(WAVE_OUTPUT_FILENAME, 'wb') wf.setnchannels(CHANNELS) wf.setsampwidth(p.get_sample_size(FORMAT)) wf.setframerate(RATE) wf.writeframes(b''.join(frames)) wf.close() رابعا استخدام مكتبة SpeechRecognition :- import speech_recognition as sr recognizer = sr.Recognizer() audio_file = "audio.wav" with sr.AudioFile(audio_file) as source: audio_data = recognizer.record(source) try: text = recognizer.recognize_google(audio_data, key="YOUR_GOOGLE_API_KEY") print("Google Speech Recognition thinks you said:", text) except sr.UnknownValueError: print("Google Speech Recognition could not understand the audio") except sr.RequestError as e: print("Could not request results from Google Speech Recognition service; {0}".format(e)) استبدل " YOUR_GOOGLE_API_KEY" بال API الذي حصلت عليه
  4. هذا بسبب ان mailtrap تستخدم في ال testing و التدريبات فقط ولكن اذا كنت تريد ان ترسل الايميل عليك بالتالي :- أولا :- تسجيل الدخول ل SMTP Service ثانيا تعديل ملف ال .env MAIL_MAILER=smtp MAIL_HOST=smtp.gmail.com MAIL_PORT=587 MAIL_USERNAME=your-gmail-email@gmail.com MAIL_PASSWORD=your-gmail-password MAIL_ENCRYPTION=tls MAIL_FROM_ADDRESS=your-email@example.com MAIL_FROM_NAME="${APP_NAME}" مع اذافة بياناتك انت ثالثا تحديث ال Mail Configuration 'driver' => env('MAIL_MAILER', 'smtp'), 'host' => env('MAIL_HOST', 'smtp.example.com'), 'port' => env('MAIL_PORT', 587), 'username' => env('MAIL_USERNAME'), 'password' => env('MAIL_PASSWORD'), 'encryption' => env('MAIL_ENCRYPTION', 'tls'), رابعا انشاء class ليمثل الايميل التي سترسله من خلال الامر التالي php artisan make:mail YourMailClass خامسا :- افتح هذا ال class و قم بتهيئة دالة ال build لوضع موضوع البريد و باقي تفاصيل الايميل public function build() { return $this->subject('Your Email Subject') ->view('emails.your_template'); } سادسا ارسال البريد الالكتروني use Illuminate\Support\Facades\Mail; use App\Mail\YourMailClass; // ... Mail::to('friend@example.com')->send(new YourMailClass()); واخيرا افحص ال laravel logs للبحث عن اي اخطأ او ان الايميل لم يتم ارساله
  5. يمكنك محاولة فعل ذلك من خلال تقيد المستخدم بعدة طرق و ليكن بعلمك انه يجب ان يتحول الملف لجهاز المستخدم حتى يتم عرضه و لكن سنحاول انخه لا يقوم بتحميله من خلال اولا :- تعطيل الزر الايمن بالفأرة حتى لا يقوم بفتح القائمة التي تساعده في التحميل و الطباعة <iframe id="pdfFrame" height="500" width="500" src="{{ asset($files->file_path) }}" frameborder="0"></iframe> <script> document.getElementById('pdfFrame').oncontextmenu = function() { return false; }; </script> ثانيا وضع صورة على الملف :- <div style="position: relative; width: 500px; height: 500px;"> <iframe height="500" width="500" src="{{ asset($files->file_path) }}" frameborder="0"></iframe> <img src="/images/overlay.png" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%;"> </div> ثالثا استخدام بعض المكتبات لعرض الملف :- <script src="https://mozilla.github.io/pdf.js/build/pdf.js"></script> <div id="pdf-container"></div> <script> var url = "{{ asset($files->file_path) }}"; var pdfjsLib = window['pdfjs-dist/build/pdf']; pdfjsLib.GlobalWorkerOptions.workerSrc = "https://mozilla.github.io/pdf.js/build/pdf.worker.js"; var loadingTask = pdfjsLib.getDocument(url); loadingTask.promise.then(function(pdf) { pdf.getPage(1).then(function(page) { var scale = 1.5; var viewport = page.getViewport({ scale: scale }); var container = document.getElementById("pdf-container"); container.appendChild(page.getViewport({ scale: scale }).canvas); }); }); </script> تذكر انه يمكن التغلب على هذه الطرق من خلال استخدام بعض الادوات و تحميل الملف ولكن هذه الطرق ستغلق هذا الامر على الكثير
  6. المشكلة في انك لم تقم بتثبيت المكتبة django وعليك تثبيتها من خلال الامر pip install django ولكن اذا كنت قمت بتثبيتها فمن الممكن ان يكون هناك عدة اسباب ايضا لهذا الخطأ مثل :- 1. تأكد من ان مكتبة django محطوطة بالمسار الصحيح و انه في البيئة الصحيحة التي تستخدمها 2. تأكد من انك تستخدم الاصدار المتوافق من البايثون مع ال django 3. تأكد من تثبيت جميع التبعيات اللازمة لمشروعك و يمكنك ان تراها من خلال الامر pip install -r requirements.txt 4. إعادة تشغيل البيئة الظاهرة (Virtual Environment)
  7. يمكنك فعل ذلك بعمل دالة تتحقق من الشروط التي تريدها في كلمة المرور و هنا انت تريد التأكد من اربع شروط و يمكن تنفيذها كالتالي def check_password (password): has_upper = any(x.isupper() for x in password )# هذا ليتحقق ان كان هناك حروف كبيرة has_lower = any(x.islower() for x in password )# هذا ليحقق ان كان هناك حروف صغيرة has_digit = any (x.isdigit() for x in password ) # هذا ليحقق ان كان هناك ارقام has_special = any(c in '!@#$%^&*()-_+=<>,.?/:;{}[]|' for c in password) # هذا للتأكد من ان هناك رموز و يمكنك اضافة او حذف الرموز حسب رغبتك if has_upper and has_lower and has_digit and has_special: print "كلمة المرور قوية!" else: print "كلمة المرور ضعيفة يجب عليك استخدام حروف كبيرة و صغيرة و ارقام و رموز" password = input("ادخل كلمة السر ") check_password (password) و يمكنك ايضا استخدام كل متغير على حدى حتى تتحقي من كل شرط وحده
  8. بالنسبة ل Master في العادة نقوم باستخدامها غالبا عند إنشاء عناصر واجهة المستخدم لإنشاء التسلسل الهرمي لعناصر واجهة المستخدم. اما بالنسبة ل super نقوم باستخدامها من اجل استدعاء method من الparent class. اما اذا اردت الربط او الوراثة من class اخر فيجب عليك استخدام super في ال constructor الخاص بال class من اجل مناداة ال constructor من ال base class l مثال الاتي : class Fram_yourclass(Frame_base): def __init__(self, master): super().__init__(master)
  9. اذا اردت الاظهار والاخفاء بناء علي رغبة المستخدم يجب عليك عمل الاتي في الكود : add_action('woocommerce_register_form_start', 'text_domain_woo_reg_form_fields'); function text_domain_woo_reg_form_fields() { ?> <p class="form-row form-row-first"> <label for="billing_company"><?php _e('Name Company', 'text_domain'); ?><span class="required">*</span></label> <input type="text" class="input-text" name="billing_company" id="billing_company" value="<?php if (!empty($_POST['billing_company'])) esc_attr_e($_POST['billing_company']); ?>" /> </p> <p class="form-row form-row-last"> <label for="billing_product"><?php _e('Company Product', 'text_domain'); ?><span class="required">*</span></label> <input type="text" class="input-text" name="billing_product" id="billing_product" value="<?php if (!empty($_POST['billing_product'])) esc_attr_e($_POST['billing_product']); ?>" /> </p> <div class="clear"></div> <?php } add_action('wp_footer', 'custom_registration_script'); function custom_registration_script() { ?> <script type="text/javascript"> jQuery(document).ready(function($){ $('#reg_role').change(function() { var selectedRole = $(this).val(); if (selectedRole == 'subscriber') { $('#billing_company').hide(); $('#billing_product').show(); } else { $('#billing_company').show(); $('#billing_product').hide(); } }); }); </script> <?php } add_action('woocommerce_register_form', 'wc_extra_registation_fields'); function wc_extra_registation_fields() { ?> <p class="form-row form-row-first"> <label for="reg_role"><?php _e('Agent?', 'woocommerce'); ?></label> <select class="input-text" name="role" id="reg_role"> <option <?php if (!empty($_POST['role']) && $_POST['role'] == 'customer') esc_attr_e('selected'); ?> value="customer">Client</option> <option <?php if (!empty($_POST['role']) && $_POST['role'] == 'subscriber') esc_attr_e('selected'); ?> value="subscriber">Agent</option> </select> </p> <?php> } التعديلات التي قمنا بها هي الاتي : 1- تغيير keyup ب change حيث ان change تقوم بالعمل عند تغيير قيمة عنصر الإدخال (بما في drop down list). 2- اضافة wp_footer من اجل ضمان تحميل مكتبة ال jQuery و ال form
  10. الخطأ هو انك لم تعطي الكود مصدر البيانات عليك استخدام خاصية DataSource كالتاللي :- <asp:Repeater id="Problemss" runat="server" DataSource="<%= SqlDataSource1.Select() %>"> <HeaderTemplate> <table border="1" width="100%"> <tr> <th>تم</th> <th>الحلول</th> <th>المشكله</th> <th>م</th> <th>الرقم</th> </tr> </HeaderTemplate> <ItemTemplate> <tr> <td><%#DataItem("تم")%></td> <td><%#DataItem("الحلول")%></td> <td><%#DataItem("المشكله")%></td> <td><%#DataItem("م")%></td> <td><%#DataItem("الرقم")%></td> </tr> </ItemTemplate> <FooterTemplate> </table> </FooterTemplate> </asp:Repeater>
  11. السلام عليكم, من اجل نشر الموقع الخاص بك يجب عليك اختيار استضافة للموقع اولا من اجل رفع الموقع الخاص بك عليها وجعلها متاح للجميع علي شبكة الانترنت مع مراعاة اختيار المساحة المناسبة التي تريد شراءها وتكون هذا المساحة بناء علي طريقة عمل موقعك ومساحة الملفات التي سيقوم بتخزينها.
  12. نعم يوجد مكتبات لذلك , بالنسبة الي التحقق من التشابه في المحتوي يمكنك استخدام مكتبة pdftotext وايضا يجب عليك تطبيق خوارزميات للتحقق من التشابه مثل , Jaccard similarity, او cosine similarity , اما بالنسبة لاضافة العلامة المائية فيوجد مكتبات مثل FPDF و وTCPDF وايضا ادوات مثلGhostscript يمكنك استخدامهم من اجل عمل العلامة الخاصة بك واضافتها.
  13. السلام عليكم من اجل ان تقوم الداله LoadFile بتحميل الملف كما تريد يجب عليك تعدليها للاتي بحيث تقوم باستدعاء الدالة sht للحصول على أسماء الأوراق وتحديث قيم OptionMenu بأسماء الأوراق هذه. import customtkinter from tkinter import filedialog from pathlib import Path import pandas as pd class Frame1(customtkinter.CTkFrame): def __init__(self, master): super().__init__(master) self.AS = None def LoadFile(): filepath = filedialog.askopenfilename(initialdir="C:\\Users\\Cakow\\PycharmProjects\\Main", title="Open file okay?", filetypes=(("text files", "*.xlsx"), ("all files", "*.*"))) filepathA = Path(filepath) self.AS = pd.ExcelFile(filepathA) AD = self.sht() self.optionmenu1.values = AD def sht(): if self.AS: AD = self.AS.sheet_names return AD else: return [] self.button1 = customtkinter.CTkButton(self, text="إختيار ملف", font=customtkinter.CTkFont(family="Calibri", size=12, weight="bold"), command=LoadFile) self.button1.grid(row=0, column=1, padx=3, pady=(3, 0), sticky="we") self.optionmenu1 = customtkinter.CTkOptionMenu(self) self.optionmenu1.grid(row=0, column=0, padx=3, pady=(3, 0), sticky="we") class Frame2(customtkinter.CTkFrame): def __init__(self, master): super().__init__(master) self.checkbox_1 = customtkinter.CTkCheckBox(self, text="checkbox 1") self.checkbox_1.grid(row=0, column=0, padx=3, pady=(3, 0), sticky="w") class Frame3(customtkinter.CTkFrame): def __init__(self, master): super().__init__(master) def button_event(): print("خروج") self.button2 = customtkinter.CTkButton(self, text="خروج", state="disabled", font=customtkinter.CTkFont(family="Calibri", size=12, weight="bold"), command=button_event) self.button2.grid(row=0, column=0, padx=3, pady=(3, 0), sticky="w") class App(customtkinter.CTk): def __init__(self): super().__init__() self.title("my app") self.geometry("400x180") self.grid_columnconfigure(0, weight=1) self.grid_rowconfigure(0, weight=1) customtkinter.set_appearance_mode("dark") customtkinter.set_default_color_theme("dark-blue") self.Frame_A = Frame1(self) self.Frame_A.grid(row=0, column=0, padx=1, pady=(1, 0), sticky="nswe") self.Frame_B = Frame2(self) self.Frame_B.grid(row=0, column=1, padx=1, pady=(1, 0), sticky="nswe") self.Frame_C = Frame3(self) self.Frame_C.grid(row=1, column=0, padx=1, pady=(1, 10), sticky="nswe") app = App() app.mainloop()
  14. ببساطة شديدة انك اخطأت خطأ بسيط باضافة حرف ال s الي كلمة number فانت داخل حلقة التكرار قمت بتعريف كل رقم على انه المتغير number داخل الحلقة فقط فعند كتابة numbers انت تقوم بمقارنة القائمة كلها مع رقم واحد وهذه خطأ ولكن عند كتابة number ستقوم بمقارنة كل رقم ف القائمة منفرد مع الرقم 30 باختصار قم بازالة حرف ال s من كلمة numbers من السطر التالي و سيختفي الخطأ : if numbers <30:
  15. لدينا مجموعة من المتغيرات اولهم list تمسى numbers وهي تقوم بتخزين مجموعة من الارقام بها المكرر و الفريد ثم لدينا dictionary يسمى seen فارغ ولكنه سيساعدنا لمعرفة الارقام المكررة و الفريدة ثم لدينا list تمسى dups نخزن بها الارقام المتكررة ثم لدينا حلقة تكرار وهي for loop تقوم بالمرور علي الارقام رقم رقم داخل ال list التي تسمى numbers وبداخل حلقة التكرار هناك دالة if الشرطية لتتحقق اذا كان الرقم ليس بالقاموس seen ملحوظة :- مهمة القاموس لديها قسمان value , key ال value هي القيمة و في حالتنا هنا الرقم و ال key في حالتنا هنا هو عدد تكرار الرقم اذا كان الرقم غير موجود بداخل seen سيتم اضافته و انه تكرر مرة واحدة في ال list واذا كان موجود سندخل القسم الثاني من الدالة الشرطية وهو else اذا كان الرقم تكراره يساوي واحد سيتم اضافته داخل dups ولكن اذا كان تكراره يساوي اثنان او اكثر هذا يعني انه تم اضافته لان في نهاية else هناك سطر يزيد واحد على رقم التكرار ثم طباعة قائمة dups
  16. انت هنا تحاول استخدام طريقة f-string بطريقة غير صحيحة يمكنك اضافة حرف ال f قبل علامة التنصيص (') كالتالي print (f" name : {name} ") وهكذا او يمكنك استخدام طريقة ربط النصوص باستخدام علامة (+)كالتالي : print (" name : " + name + " age : " + str(age) + " weight : " + str(weight) )
  17. قاعدة البيانات لا تدعم ادراج مصفوفة في حقل JSON عليك اولا تحويلها الي JSON ثم ادراجها عليك تغير السطر : $data["phones"] = $data["phone"] ? json_encode(array($data["phone"])) : "[]"; الي : $data["phones"] = json_encode($data["phones"]) و مع ذلك يمكنك استخدام الكود التالي لتحويل المصفوفة الي سلسلة JSON اثناء التشغيل public function storeVerify(array $data): SmsMessageRequest { $data["app_id"] = $app_id = request()->header('app_id'); $data["phones"] = $data["phone"] ? array($data["phone"]) : []; $data["priority"] = "high"; $data["type"] = "verify"; $data["message"] = $data["template"]; $data["phones"] = json_encode($data["phones"]); $item = new SmsMessageRequest($data); $item->save(); return $item; }
  18. يظهر هذا الخطأ لان الاسم ليس لديه قيمة افتراضية فعند عدم اخال اسم لا يوجد شئ وانت في user model مفعل الاسم required يمكنك تغيرها الي sometimes كالتالي public function validationRules(){ return [ 'name' => 'sometimes', 'email' => 'required|email|unique:users,email', 'password' => 'required|min:6', ]; } او وضع قيمة افتراضية لها
  19. بالنسبة الي كيفية استخدامك لdatetimepicker , فيمكنك فعل ذلك عن طريق الCDN كالتالي : <script src="https://code.jquery.com/jquery-3.6.4.min.js"></script> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css"> <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datetimepicker/4.17.47/css/bootstrap-datetimepicker.min.css"> <script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datetimepicker/4.17.47/js/bootstrap-datetimepicker.min.js"></script> <script> $(document).ready(function(){ $('#start').datetimepicker({ format: 'YYYY-MM-DD HH:mm:ss', }); }); </script> المهم ان تتأكد من وضع jquery, Bootstrap, DateTimePicker كما ارسلت لك في ال head . اما بالنسبة للفرق فطبعا المكتبات الخاصه ب DateTimePicker التي تدعم ال Bootstrap فهي دائما تكون افضل من حيث التصميم والتكامل الخاص بالموقع عن تلك التي لا تدعم Bootstrap .
  20. تعني سرعة التحويل سهولة فهم العميل للصفحة مع سهولة التعامل مع الصفحات للوصول الي ما يريد ومن اجل تحقيق هذا يجب عليك الاهتمام بالتالي : 1-تصميم بسيط وجذاب , 2-تحسين سرعة التحميل عن طريق تقليل حجم الصور والملفات , 3-استخدام تصميم يتوافق مع جميع الاجهزة سواء الكمبيوتر ام المحمولة.
  21. تحدث هذه المشكلة بسبب استخدامك لasp.net web forms دون استدعاء ال jquery المطلوب , فقط يمكنك اضافة هذا وان شاء الله سيعمل الكود , <asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server"> <script src="https://code.jquery.com/jquery-3.6.4.min.js" integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1ZlGn5/2KxI5thuv/kWindM1JPn9WO1" crossorigin="anonymous"></script> </asp:Content>
  22. يضمن ملف package-lock.json تثبيت الإصدارات الدقيقة ويفضل العمل به عن العمل ب npm لتحقيق الاتساق عبر عمليات التثبيت والبيئات المختلفة, حيث انه يضمن ذلك اما بالنسبة لnpm فهي لا تحقق هذا , بالنسبة ل ^ و ~ اللذان يتم اضافتهم تلقائيا فكل منهم وظيفته تحديد نطاق الإصدارات للحزم , مثال ~4.16.4 تعني انه يمكن العمل بأي حزمة تتوافق مع هذا الإصدار بشرط ان لا تتعدي اصدار 4.17 .
  23. يمكنك انشاء ملف بداخل مجلد باستخدام open كالتالي :- with open(os.path.join('foldername', 'filename.txt'), 'w') ويمكنك اضافة كودك الخاص اذا كنت تريد القراءة او الكتابة علي الملف و هناك طريقة اخرى اذا كنت غير ملزم باستخدام open وهي :- استخدام دالة ()pathlib.Path ويمكنك كتابة الكود كالتالي pathlib.Path('foldername/filename.txt') واذا كنت تريد الكتابة عليه مثلا فستكمل الكود كالتالي :- pathlib.Path('foldername/filename.txt').write_text('اكتب ما تريد') وهكذا لديك الطريقتين استخدم ايهما افضل لك
  24. المشكلة هنا انك تريد استخادم دالة input في ال command line و دالة input هي دالة في البايثون لذلك عليك توجيه الي البايثون عن طريقة كتابة python فقط و اذا كنت تريد التعامل او تعلم لغة البايثون فأنصحك باستخدام برامج تسهل عليك تنسيق كودك و فهمه مثل :- 1- visual studio code و اضافة امتداد البايثون عليه 2- pycharm وهو برنامج مخصص لكتابة اكواد بايثون 3- Jupyter Notebook هذه البرامج سوف تسهل كثيرا من كتابة الكود و التعامل معه و خصوصا عند كتابة مشاريع كبيرة
  25. هناك طرق كثيرة لحل هذه المشكلة ولكن اسهلهم هي التغير قليلا في ال queries لديك $query->when($filters['search'] ?? false, fn($query, $search) => $query->where(fn($query) => $query->where('term', 'like', '%' . str_slug($search) . '%') ->orWhere('ar_meaning', 'like', '%' . str_slug($search) . '%') ) ); هكذا سيقوم بتجاهل الحركات و التشكيل و يبحث عن الكلمة نفسها
×
×
  • أضف...