نتائج البحث

اذهب إلى التنقل اذهب إلى البحث

تثبيت وضبط واستخدام Sass

يمكن استخدام Sass بثلاث طرائق هي: كأداة سطر أوامر، أو كوحدةٍ مستقلة لروبي، أو كمُلحقة في أيّ بيئة عمل تدعم Rack، بما في ذلك Ruby on Rails و Merb. تثبيت Sass الخطوة الأولى لاستخدام Sass هي تثبيت الجوهرة (gem)‏ Sass: gem install sass إن كنت تستخدم نظام ويندوز، فقد تحتاج إلى تثبيت روبي أولاً. لتشغيل Sass من سطر الأوامر، يكفي أن تكتب الأمر الآتي: sass input.scss output.css يمكنك أيضًا إخبار Sass بمراقبة الملف وتحديث ملف CSS الناتج عند كلِّ تغيُّرٍ في ملف ...

التوجيه من الخارج إلى الداخل في ريلز

يغطي هذا الدليل الميزات التي يواجهها المستخدم في عمليات التوجيه في ريلز. بعد قراءة هذا الدليل، ستعرف: كيفية تفسير الشيفرة في config/routes.rb. كيفية بناء المسارات الخاصة بك باستخدام إما أسلوب الحيلة (resourceful style) المفضل أو طريقة المطابقة (match method). كيفية الإعلان عن معاملات المسار الموجه، والتي تمرر إلى إجراءات وحدة التحكم (controller actions). كيفية إنشاء المسارات وعناوين URL تلقائيًا باستخدام مساعدي المسار الموجه. التقنيات المتقدمة مثل إنشاء قيود وتثبيت نقاط نهاية Rack. الغرض من توجيه المسارات في ريلز يتعرف جهاز ...

تنقيح تطبيقات ريلز

يقدّم هذا الدليل التقنيات اللازمة لتنقيح تطبيقات ريلز. بعد قراءة هذا الدليل، ستتعلّم: الغرض من التنقيح. كيفة تتبّع العلل والأخطاء التي لا تتعرّف عليها الاختبارات في تطبيقك. طرقًا مختلفة للتنقيح. كيفيّة تحليل أثر المكدس. مساعدي العرض للتنقيح احدى المهام الشائعة في التنقيح هي فحص محتويات متغيّر معيّن، لذا يوفر ريلز ثلاثة طرائق لفعل ذلك: Debug To_yaml Inspect debug سيعيد المساعد debug الوسم <pre> الذي يصدّر الكائن باستخدام تنسيق YAML، وسيؤدي هذا إلى توليد بيانات يمكن للإنسان قراءتها من أي كائن. ...

المعدلات في رابط الكائنات بالعلاقات Eloquent

مقدمة تمكّنك المعدّلات والموصّلات من تنسيق قيم خاصيّات Eloquent عند استردادها أو تعيينها على كائنات النماذج. مثلًا، يمكنك استخدام مشفّر Laravel لتشفير قيمة ما أثناء تخزينها بقاعدة لًا، ومن ثمّ فك تشفيرها تلقائيًّا عند استردادها من نموذج Eloquent. إضافةً إلى المعدلات والموصلات الافتراضية، يمكّنك Eloquent من التحويل التلقائي للخاصيات الزمنية إلى كائنات من الصنف Carbon أو حتى تحويل الخاصيات النصية إلى كائنات JSON. المعدلات والموصلات تعريف الموصل لتعريف موصل ما، عرف التابع getFooAttribute على صنف نموذجك حيث Foo هو اسم ...

المجموعات في رابط الكائنات بالعلاقات Eloquent

مقدمة إنّ جميع مجموعات النتائج المتعددة المعادة من Eloquent هي كائنات من الصنف Illuminate\Database\Eloquent\Collection، بما فيها النتائج المستردة من التابع get أو من العلاقات. يرث صنف مجموعة Eloquent من الصنف الأساسي لمجموعة Laravel، وبالتالي ترث هذه المجموعات الكثير من التوابع التي تساعد بالعمل مع المصفوفات المستخدمة مع نماذج Eloquent. بالطبع، تعمل جميع المجموعات كمكررات، مما يمكّنك من المرور على عناصرها وكأنها مصفوفات عادية: $users = App\User::where('active', 1)->get(); foreach ($users as $user) {    echo $user->name; } لكنّ المجموعات أقوى بكثير من المصفوفات، إذ تزود الكثير ...

ضبط تطبيقات ريلز

يغطي هذا الدليل ميزات الضبط والتهيئة المتاحة لتطبيقات ريلز. بعد قراءة هذا الدليل، ستتعلم: كيفية ضبط سلوك تطبيقات ريلز. كيفية إضافة شيفرة مصدريّة إضافية لتنفيذها وقت بدء تشغيل التطبيق. مواقع شيفرة التهيئة والضبط يوفر ريلز أربعة مواضع رئيسيّة لوضع الشيفرة المصدريّة للتهيئة: config/application.rb ملفات الضبط (configuration) الخاصة بالبيئة المهيآت (Initializers) ما بعد المهيآت (After-initializers) تشغيل شيفرة برمجية قبل ريلز في أحيان نادرة، يحتاج تطبيقك لتشغيل بعض الشيفرات البرمجية قبل تحميل ريلز نفسه، ذا ضعها آنذاك قبل استدعاء require 'rails/all'‎ في ...

مساعدو الاستمارة في وحدة العرض في ريلز

تعتبر الاستمارات (forms) في تطبيقات الويب واجهة أساسية للتفاعل مع المستخدم وجلب بيانات منه. ومع ذلك، يمكن أن تصبح عملية إنشاء استمارةٍ وصيانتها عمليةً مملةً بسبب الحاجة إلى التحكم بالتسميات وبخاصياتها الكثيرة. تخلَّص ريلز من هذا التعقيد بتوفير مساعدين للعرض لإنشاء الاستمارات بسهولة. ومع ذلك، بما أن للمساعدين حالات استخدام مختلفة، يحتاج المطورون إلى معرفة الاختلافات بين توابع كل مساعد قبل استخدامها. بعد قراءة هذا الدليل، ستتعلم: كيفية إنشاء استمارات للبحث ونوع مماثل من الاستمارات العامة التي لا تمثل أي ...

مقدمة إلى رابط الكائنات بالعلاقات Eloquent

مقدمة يزود رابط الكائنات بالعلاقات Eloquent ORM المضمّن في Laravel تنفيذًا بسيطًا من أجل قواعد البيانات التي تتعامل مع الـ ActiveRecord. كل جدول في قاعدة البيانات يقابله نموذج (Model) يُستخدم للتفاعل مع هذا الجدول. تمكّنك النماذج من تنفيذ الاستعلامات على البيانات الموجودة في الجداول، إضافةً إلى إضافة البيانات الجديدة. قبل البدء، تأكد من تهيئة اتصال قاعدة البيانات في الملف config/database.php. للمزيد من المعلومات حول تهيئة قاعدة البيانات، تفقّد التوثيق المناسب. تعريف النماذج للبدء، لننشئ نموذج Eloquent. تتواجد النماذج افتراضيًّا في ...

Document.createAttribute()‎

يُنشئُ التّابع Document.createAttribute()‎ عقدةَ خاصيّة (attribute node) جديدةً ويُعيدها. الكائن المُنشأ يُعدّ عقدةً تُطبّق الواجهة Attr. لا يُلزِم DOM نوع الخصائص التّي يُمكن إضافتها بهذه الطّريقة. لاحِظ أنّ السلسلة النّصيّة المُعطاة كمعامِل تُحوّل إلى أحرفٍ صغيرة (lowercase). البنية العامة attribute = document.createAttribute(name) المعاملات name سلسلةٌ نصيّة تحتوي اسم الخاصيّة. القيمة المعادة عقدة من النّوع Attr. الاستثناءات استثناء INVALID_CHARACTER_ERR في حالة احتوى المُعامل محارف غير صالحة لخصائص XML. مثال var node = document.getElementById("div1"); var a = document.createAttribute("my_attrib"); a.value = "newVal"; node.setAttributeNode(a); console.log(node.getAttribute("my_attrib")); // "newVal" دعم ...

السلسلة في رابط الكائنات بالعلاقات Eloquent

مقدمة عند بناء واجهات JSON APIs، تحتاج معظم الأوقات إلى تحويل نماذجك وعلاقاتها إلى مصفوفات أو كائنات JSON. يزود Eloquent بمجموعة من التوابع المساعدة لهذه التحويلات، إضافةً إلى التحكم بالحقول التي يجب تضمينها في التحويلات. سلسلة النماذج والمجموعات السلسلة لمصفوفات لتحويل نموذج وعلاقاته المحمّلة لمصفوفة، يمكنك استخدام التابع toArray. إن هذا التابع تعاودي، لذلك ستُحوّل كل الحقول وكل العلاقات (وعلاقات العلاقات) إلى مصفوفات: $user = App\User::with('roles')->first(); return $user->toArray(); يمكنك أيضًا تحويل مجموعة كاملة من النماذج إلى مصفوفة: $users = App\User::all(); return $users->toArray(); السلسلة ...

أساسيات Active Job في ريلز

يوفّر لك هذا الدليل كل ما تحتاج إليه للبدء في إنشاء وظائف خلفية (background jobs) وإدراجها بطوابير الانتظار وتنفيذها. بعد قراءة هذا الدليل، ستتعلم: كيفيّة إنشاء وظائف. كيفيّة إدراج الوظائف بالطوابير. كيفيّة تشغيل الوظائف في الخلفية. كيفيّة إرسال رسائل البريد الإلكتروني من التطبيق الخاص بك بشكل غير متزامن. مقدّمة Active Job هي إطار عمل للتصريح عن الوظائف وجعلها تعمل على مجموعة متنوعة من نظم الطوابير الخلفية (queuing backends). يمكن أن تكون هذه الوظائف أي شيء بدءًا من التنظيف المنتظم إلى ...

Document.createTextNode()‎

يُنشئ التّابع Document.createTextNode()‎ عقدةً نصيّةً جديدة. البنية العامة var text = document.createTextNode(data); text عقدةٌ نصيّة. data سلسلةٌ نصيّة تحتوي على البيانات المرغوب إضافتها إلى العقدة النّصيّة. أمثلة <!DOCTYPE html> <html lang="en"> <head> <title>createTextNode example</title> <script> function addTextNode(text) { var newtext = document.createTextNode(text), p1 = document.getElementById("p1"); p1.appendChild(newtext); } </script> </head> <body> <button onclick="addTextNode('نعم ');">YES!</button> <button onclick="addTextNode('لا ');">NO!</button> <button onclick="addTextNode('نستطيع ');">WE CAN!</button> <hr /> <p id="p1">أول سطرٍ من الفقرة</p> </body> </html> دعم المتصفحات الميزة Chrome Internet Explorer Firefox Opera Safari الدعم ...

خط أنابيب الأصول في ريلز

يغطّي هذا الدليل أنبوب الأصول. ستتعلم بعد قراءة هذا الدليل: ماهيّة أنبوب الأصول وماذا يفعل. كيفيّة تنظيم أصول تطبيقك بشكل صحيح. فوائد أنبوب الأصول. كيفيّة إضافة معالج مسبق (pre-processor) إلى الأنبوب. كيفيّة وضع الأصول مع جوهرة في حزمة. ما هو أنبوب الأصول؟ يوفّر أنبوب الأصول إطارًا لسَلسَلة وتصغير أو ضغط أصول JavaScript و CSS. كما أنه يضيف القدرة على كتابة هذه الأصول بلغات أخرى ومعالجات مسبقة مثل CoffeeScript و Sass و ERB. يسمح للأصول في تطبيقك أن تُدمج تلقائيًّا مع ...

المعامل in في JavaScript

المعامل in يُعيد القيمة true إذا كانت الخاصية المُحدَّدة موجودةً في الكائن أو في سلسلة prototype الخاصة به. البنية العامة prop in object prop سلسلة نصية أو رمز يُمثِّل اسم الخاصية أو فهرس المصفوفة. object الكائن الذي سنتحقق من وجود الخاصية فيه أو في سلسلة prototype الخاصة به. الوصف يوضِّح المثال الآتي بعض حالات استخدام المعامل in: // المصفوفات var trees = ['redwood', 'bay', 'cedar', 'oak', 'maple']; 0 in trees // true 3 in trees ...

Document.doctype

تُعيد تعريف نوع المُستند (DTD) المُرتبط بالمُستند الحاليّ. الكائن المُعاد يُطبّق الواجهة DocumentType. استعمل DOMImplementation.createDocumentType()‎ لإنشاء الواجهة DocumentType. البنية العامّة doctype = document.doctype; doctype خاصيّة قابلة للقراءة فقط. مثال var doctypeObj = document.doctype; console.log( "doctypeObj.name: " + doctypeObj.name + "\n" + "doctypeObj.internalSubset: " + doctypeObj.internalSubset + "\n" + "doctypeObj.publicId: " ...

Laravel Scout

مقدمة يوفر Scout حلًا بسيطًا يستند على برنامج تشغيل (Driver) لإضافة البحث عن نص كامل في نماذج Eloquent. باستخدام مراقبي النموذج (model observers)، سيحافظ Scout بشكل تلقائي على مزامنة فهارس البحث مع سجلات Eloquent الخاصة بك. في الوقت الحالي، يأتي Scout مع برنامج التشغيل Algolia، ومع ذلك، فإن كتابة برامج تشغيل مخصصة بسيطة ولديك الحريّة في توسيع Scout مع تطبيقات البحث الخاصة بك. التثبيت ثبت أولًا Scout عن طريق مدير حزم Composer: composer require laravel/scout بعد تثبيت Scout، يجب عليك ...

Laravel Scout

مقدمة يوفر Scout حلًا بسيطًا يستند على برنامج تشغيل (Driver) لإضافة البحث عن نص كامل في نماذج Eloquent. باستخدام مراقبي النموذج (model observers)، سيحافظ Scout بشكل تلقائي على مزامنة فهارس البحث مع سجلات Eloquent الخاصة بك. في الوقت الحالي، يأتي Scout مع برنامج التشغيل Algolia، ومع ذلك، فإن كتابة برامج تشغيل مخصصة بسيطة ولديك الحريّة في توسيع Scout مع تطبيقات البحث الخاصة بك. التثبيت ثبت أولًا Scout عن طريق مدير حزم Composer: composer require laravel/scout بعد تثبيت Scout، يجب عليك ...

تحديد مجال أو عدد محدّد من القيم في SQL

معامل IN يستخدم لتحديد عددٍ معيّنٍ من القيم المحتملة لأحد حقول البيانات. مثال إن كان الجدولان الآتيان موجوديَن في قاعدة البيانات: الجدول الأول: جدول السيارات cars Colour Price Year Company Model CarID White 22,500 2018 KIA Optima 05081 Red 25,995 2017 KIA Optima Hybrid 05082 Red 31,900 2018 KIA Stinger 05083 Black 31,990 2017 KIA Cadenza 05084 Blue 23,240 2018 KIA Niro 05085 Grey 14,200 2018 KIA Rio 5-Door 05086 Blue 18,200 2018 KIA Forte5 05087 الجدول الثاني: جدول الزبائن ...

Document.body

تعيد هذه الخاصية عُقدة العنصر <body> أو <frameset> الخاصّة بالمُستند الحالي، أو تعيد null إن لم يتواجد أي عنصر من هذا القبيل. البنية العامة var objRef = document.body; document.body = objRef; مثال // نضع في ملفّ HTML: // <body id="oldBodyElement"></body> alert(document.body.id); // "oldBodyElement" var aNewBodyElement = document.createElement("body"); aNewBodyElement.id = "newBodyElement"; document.body = aNewBodyElement; alert(document.body.id); // "newBodyElement" ملاحظات document.body يمثِّل العنصر الذي يحتوي على مُحتوى المُستند. في مُستندات ذات مُحتويات <body>، يُعاد العنصر <body>، أمّا في مُستندات <frameset>، فسيُعاد العنصر <frameset> الخارجي. ورغم أنّك تستطيع تعيين قيمة ...

العلاقات في رابط الكائنات بالعلاقات Eloquent

مقدمة في معظم الأحيان، تكون جداول قواعد البيانات مرتبطة ببعضها البعض. على سبيل المثال، قد يكون لمقالة ما الكثير من التعليقات، أو قد تكون الطلبيّة مرتبطة بالمستخدم الذي قام بها. يجعل Eloquent العمل مع هذه العلاقات أمرًا سهلًا، ويدعم عدة أنواع من العلاقات المختلفة: واحد إلى واحد (One To One) واحد إلى كثير (One To Many) كثير إلى كثير (Many To Many) الكثير ضمن (Has Many Through) العلاقات متعددة الأشكال (Polymorphic Relationships) علاقات الكثير إلى كثير متعددة الأشكال (Many To ...

الاستعلامات الفرعية Subqueries في SQL

الاستعلام الفرعي هو استعلام واقعٌ ضمن استعلام آخر بهدف استخدام البيانات الناتجة عنه في الاستعلام الرئيسي الذي يحتويه، وغالبًا ما يكون الاستعلام الفرعي عبارة عن استعلام SELECT، ويمكن استخدامه مع أي من استعلامات SELECT أو INSERT أو UPDATE أو DELETE. استخدام الاستعلام الفرعي في استعلام SELECT تحديد الاستعلام الفرعي كأحد الأعمدة يُمكن تحديد أحد الأعمدة التي ستظهر بتنفيذ استعلام SELECT من خلال الاستعلام الفرعي الذي يعيد قيمة وحيدة لكل سجل. مثال إن كانت الجداول الآتية موجودة في قاعدة البيانات: الجدول ...

نظرة عامة على وحدة العرض في ريلز

بعد قراءة هذا الدليل، ستعرف: ما هو Action View وكيفية استخدامه مع ريلز. أفضل طريقة لاستخدام القوالب والجزئيات (partials) والتخطيطات. ما الذي يقدمه المساعدون عن طريق Action View. كيفية استخدام العروض المحلية. ما هو Action View؟ في ريلز، تُعَالَج طلبات الويب من خلال Action Controller و Action View. عادةً ما يقع على عاتق وحدة التحكم التواصل مع قاعدة البيانات وتنفيذ الإجراءات CRUD عند الضرورة؛ بعد ذلك، يكون Action View مسؤولًا عن تفسير (compiling) الاستجابة. تُكتَب قوالب Action View باستخدام روبي ...

Document.getElementById()‎

يُعيد التّابع Document.getElementById()‎ كائنًا من النّوع Element يُمثّل العنصر ذو المُعرّف (id) الذي يُوافق السلسلة النّصيّة المُحدّدة. ولأنّ مُعرّفات العناصر لا بدّ لها أن تكون فريدة عند إنشائها، فهي مُفيدة للوصول إلى عنصرٍ مُعيّنٍ بسرعة. إن أردت الوصول إلى عنصر لا يملك مُعرّفًا، يُمكنك استعمال التّابع querySelector()‎ للوصول إلى العنصر بأيّ مُحدِّدٍ كيفما كان. البنية العامة var element = document.getElementById(id); element‎ كائنٌ من النّوع Element يُمثّل عنصر DOM الذي يوافق مُعرّفه المُعرّف المُعطى، أو القيمة null‎ في حالة لم يوجد ...

المعامل new في JavaScript

المعامل new يُنشِئ نسخةً من كائن مُعرَّف من المستخدم أو نسخةً من أحد أنواع الكائنات المُضمّنة في لغة JavaScript والتي تملك دالةً بانيةً. البنية العامة new constructor[([arguments])] constructor صنف (class) أو دالة (function) التي تُحدِّد نوع نسخة الكائن (object instance). arguments قائمة بالقيم التي ستُمرَّر إلى الدالة البانية constructor. الوصف إنشاء كائن مُعرَّف من المستخدم يتطلب خطوتين: تعريف نوع الكائن بكتابة دالة، إنشاء نسخة من الكائن عبر المعامل new. لتعريف نوع الكائن، فيجب إنشاء دالة تُحدِّد اسمه وخاصياته، ويمكن أن ...

المعاملات المنطقية في SQL

غالبًا ما تستخدم المعاملات المنطقية (AND و OR و NOT) في عبارة WHERE للربط ما بين الشروط أو نفيها، إذ يستخدم المعامل AND للربط ما بين الشروط للتأكد من تحققها جميعًا، أما معامل OR فيستخدم للربط ما بين الشروط للتأكد من تحقّق شرطٍ أو أكثر من بينها، أما NOT فيستخدم بغرض النفي، وتكون قيمة التعبير النهائية منطقية (Boolean) إما TRUE أو FALSE. ويُضاف لها معامل XOR في محرك MySQL والذي يتحقق من تحقّق شرطٍ واحدٍ فقط دون الشروط الأخرى. مثال ...

عمليات التحقق من Active Record في ريلز

يعلِّمك هذا الدليل كيفية التحقق من حالة الكائنات قبل إرسالها إلى قاعدة البيانات باستعمال ميزة التحققات من الصحة (validations) التي يوفرها Active Record. بعد قراءة هذا الدليل، ستتعرَّف على: كيفية استعمال مساعدي التحقق من الصحة (validation helpers) لـ Active Record المدمجين. كيفية إنشاء توابع مخصصة للتحقق من الصحة. كيفية العمل مع رسالة الخطأ المولدة عبر عملية التحقق. نظرة عامة على عمليات التحقق الشيفرة التالية تظهر مثالًا عن تحقق بسيط جدًا: class Person < ApplicationRecord validates :name, presence: true end Person.create(name: ...

Document.links

تُعيد الخاصية document.links مجموعةً تحتوي على جميع عناصر و<area> الموجودة في المُستند مع قيمة للخاصيّة href. البنية العامة nodeList = document.links; مثال var links = document.links; for(var i = 0; i < links.length; i++) { var linkHref = document.createTextNode(links[i].href); var lineBreak = document.createElement("br"); document.body.appendChild(linkHref); document.body.appendChild(lineBreak); } دعم المتصفحات الميزة Chrome Edge Firefox Opera Safari الدعم الأساسي نعم نعم نعم نعم نعم مصادر ومواصفات مواصفة HTML Living Standard مواصفة Document Object Model (DOM) Level 2 HTML Specification

Document.documentURI

تُعيد الخاصيّة documentURI الخاصّة بالواجهة Document مكان المستند على شكل سلسلة نصية. هذه الخاصّية قابلة للقراءة فقط في معيار DOM المُعاصر. البنية العامّة var string = document.documentURI; ملاحظات مستندات HTML تمتلك خاصيّة document.URL التي تُعيد نفس القيمة. الفرق بينهما هو أنّ documentURI مُتاحة على جميع أنواع المستندات. دعم المتصفحات الميزة Chrome Firefox Internet Explorer Opera Safari قابليّة القراءة والكتابة نعم نعم نعم ؟ نعم قابلية القراءة فقط 43 نعم لا ؟ لا مصادر ومواصفات مواصفة DOM. مواصفة Document Object Model ...

Document.URL

خاصيّة document.URL قابلة للقراءة فقط تُعيد مكان المُستند (أي عنوان URL) في سلسلةٍ نصيّة. البنية العامة var string = document.URL مثال في الجزء الخاصّ بلغة JavaScript، نضع: document.getElementById("url").textContent = document.URL; جزء HTML: <p id="urlText"> URL:<br/> <span id="url">مكان المُستند سيظهرُ هنا</span> </p> دعم المتصفحات الميزة Chrome Internet Explorer Firefox Opera Safari الدعم الأساسي نعم نعم نعم نعم نعم مصادر ومواصفات مواصفة HTML Living Standard حدّدت هذه المُواصفة أنّ الخاصيّة سلسلة نصيّة من النّوع USVString عوضا عن DOMString. مواصفة Document Object ...

Document.scrollingElement

تُعيد الخاصيّة Document.scrollingElement القابلة للقراءة فقط مرجعًا للعنصر Element الذي يُمرِّر (scroll) المُستند. والذي يُمثّل العنصر الجذر في وضع المعايير (standards mode)، أي العنصر document.documentElement. وفي وضع التجاوزات (quirks mode)، ستُعيد الخاصيّة scrollingElement العنصر body أو القيمة null في حالة لم يكن موجودًا. البنية العامة var element = document.scrollingElement; مثال var scrollElm = document.scrollingElement; scrollElm.scrollTop = 0; دعم المتصفحات الميزة Chrome Firefox Internet Explorer Opera Safari الدعم الأساسي 44 48 لا دعم 33 9.0 مصادر ومواصفات مواصفة CSS Object Model (CSSOM) ...

أدوات Active Support في ريلز

Active Support هو جزء من نواة ريلز التي توفر ملحقات للغة روبي والأدوات المساعدة وغيرها من الأشياء. أحد الأشياء التي يتضمنها هو واجهة برمجية لأدوات قياس (instrumentation API) يمكن استخدامها داخل تطبيق لقياس إجراءات معينة تحدث داخل شيفرة روبي، مثل تلك الموجودة داخل تطبيق ريلز أو إطار العمل نفسه، إذ لا يقتصر ذلك على ريلز فقط. يمكن استخدامها بشكل مستقل في شيفرات روبي البرمجية الأخرى إذا كان ذلك مطلوبًا. في هذا الدليل، ستتعلم كيفية استخدام الواجهة البرمجية لأدوات القياس (instrumentation API) ...

Document.forms

تُعيد الخاصّية forms مجموعة من النّوع HTMLCollection تحتوي على جميع عناصِر <form> في المُستند. ملاحظة: يُمكنك كذلك استعمال الخاصيّة HTMLFormElement.elements للحصول على قائمةٍ بعناصِر نماذج الإدخال بشكلٍ مُشابه. البنية العامة collection = document.forms; القيمة كائنٌ من النّوع HTMLCollection يُمثّل قائمةً بجميع النّماذج في المُستند. كلّ عنصر من المجموعة يُعدّ من النّوع HTMLFormElement ويُمثّل عنصر <form> وحيد. إن لم يوجد أي نموذج في المُستند، فالمجموعة المُعادة ستكون فارغة بطولٍ يُساوي صفرًا. أمثلة الحصول على معلومات نموذج مُعيّن: <!DOCTYPE html> <html lang="en"> ...

استعمال ريلز لإنشاء تطبيقات ذات واجهة برمجية فقط

في هذا الدليل ستتعلم: ما تقدمه ريلز للتطبيقات ذات الواجهة البرمجية فقط. كيفية ضبط ريلز للبدء دون أي ميزات للمتصفح. كيفية تحديد البرامج الوسيطة (middleware) التي تريد تضمينها. كيفية تحديد الوحدات لاستخدامها في وحدة التحكم الخاصة بك. ما الذي يعنيه «تطبيق ذو واجهة برمجية فقط»؟ تقليديًا، عندما قال الناس أنهم استخدموا ريلز كـ "واجهة برمجية"، فقد كان يعني توفير واجهة برمجية يمكن الوصول إليها برمجيًا جنبًا إلى جنب مع تطبيق الويب الخاص بهم. على سبيل المثال، يوفر GitHub واجهة برمجية ...

الخيوط وتنفيذ الشيفرة في ريلز

بعد قراءة هذا الدليل، ستتلعم: ما هي شيفرة ريلز التي ستُنفَّذ تلقائيا في وقت واحد. كيفية دمج التزامن اليدوي مع أجزاء ريلز الداخلية. كيفية تغليف كل شيفرة التطبيق. كيف التأثير على عملية إعادة تحميل التطبيق. التزامن التلقائي تسمح ريلز تلقائيًا بإجراء عمليات مختلفة في نفس الوقت. عند استخدام خادم ويب ذي خيوط، مثل الخادم Puma الافتراضي، ستُخدَّم طلبات HTTP متعددة في وقت واحد؛ تقدم مع كل طلب نسخة لوحدة التحكم الخاص به. محولات Active Job التي تدعم تعدد الخيوط، تتضمن ...

تخطيط الصفحات والتصيير في ريلز

يغطي هذا الدليل ميزات التخطيط الأساسية لوحدتي التحكم والعرض. بعد قراءة هذا الدليل، ستتعلم: كيفية استخدام توابع التصيير المختلفة المضمنة ‎في ريلز. كيفية إنشاء تخطيطات (layouts) تحتوي على أقسام محتوى متعددة. كيفية استخدام الأجزاء مع واجهات العرض. كيفية استخدام تخطيطات متداخلة (قوالب فرعية). نظرة عامة: كيف تتراكب قطع الأحجية معًا يركز هذا الدليل على التفاعل بين المتحكم والعرض في نمط التصميم Model-View-Controller. كما تعلم، فإنَّ المتحكم مسؤول عن تنظيم العملية الكاملة للتعامل مع الطلب في ريلز، على الرغم من أنه ...

Document.images

تُعيد الخاصيّة Document.images مجموعة الصور الموجودة في مُستند HTML الحاليّ. البنية العامة var imageCollection = document.images; القيمة مجموعةٌ من النّوع HTMLCollection تحتوي على قائمة بجميع الصّور الموجودة في المُستند الحالي. كلّ عنصر في المجموعة يُعدّ من النّوع HTMLImageElement ويُمثّل عنصر صورة واحد. ملاحظات حول استعمال الخاصية يُمكنك استعمال إمّا طريقة المصفوفات أو التّابع item‎‎‎‎()‎ على المجموعة المُعادة للوصول إلى عناصر المجموعة. المثالان التّاليّان لهما نفس التّأثير: firstImage = imageCollection(0); firstImage = imageCollection[0]; مُلاحظة: الخاصيّة Document.images مُتاحة في مُستندات HTML فقط. مثال ...

المعامل instanceof في JavaScript

المعامل instanceof يختبر إذا كانت الخاصية prototype لدالة بانية تظهر في أيّ مكان في سلسلة prototype لأحد الكائنات. البنية العامة object instanceof constructor object الكائن الذي نريد معرفة إن كانت خاصية prototype للدالة البانية constructor ستظهر في أي مكان في سلسلة prototype الخاصة به. constructor الدالة البانية التي سنختبر الكائن بها. الوصف يختبر المعامل instanceof وجود الخاصية constructor.prototype في سلسلة prototype للكائن object. // تعريف الدوال البانية function C() {} function D() {} var o = new C(); // true: Object.getPrototypeOf(o) === C.prototype o instanceof ...

ارتباطات Active Record في ريلز

يغطي هذا الدليل مزايا الارتباطات Active Record. بعد قراءة هذا الدليل، ستتعلم: كيفية التصريح عن الارتباطات بين نماذج Active Record. الأنواع المختلفة للارتباطات في Active Record. كيفية استعمال التوابع المضافة إلى نماذجك عبر إنشاء الارتباطات. لمَ نستخدم الارتباطات؟ في ريلز، يعدّ الارتباط اتصالًا بين نموذجين من Active Record. لمَ نحتاج إلى الارتباطات بين النماذج؟ لأنها تجعل العمليات الشائعة سهلة وبسيطة في تطبيقك. مثلًا، لنفرض أن لدينا تطبيق ريلز بسيط يحوي نموذجًا للكتّاب ونموذجًا للكتب؛ كل كاتب يملك العديد من الكتب. ...

ردود نداء Active Record في ريلز

ستتعلم في هذا الدليل كل ما يتعلَّق بدورة حياة كائنات Active Record. بعد قراءة هذا الدليل، ستتعرَّف على: دورة حياة كائنات Active Record. كيفية إنشاء توابع ردود النداء التي تستجيب إلى الأحداث في دورة حياة الكائن. كيفية إنشاء أصناف خاصة تُغلِّف سلوكًا مشتركًا من أجل ردود النداء الخاصة بك. دورة حياة الكائن خلال عملية عادية في تطبيق ريلز، يمكن للكائنات أن تُنشأ، تُحدّث، أو تُدمّر. يزوّدك Active Record بنقاط الوصول اللازمة في دورة حياة الكائن حتى تتمكن من التحكم بتطبيقك ...

أساسيات Action Mailer في ريلز

يوفّر لك هذا الدليل كل ما تحتاجه للبدء في إرسال واستقبال رسائل البريد الإلكتروني من وإلى تطبيقك، والعديد من عمليّات Action Mailer الداخليّة. كما يغطي كيفية اختبار مُرسلي بريدك (mailers). ستتعلم بعد قراءة هذا الدليل: كيفيّة إرسال واستقبال البريد الإلكتروني داخل تطبيق ريلز. كيفيّة إنشاء وتعديل صنف Action Mailer والعرض المرتبط به. كيفيّة إعداد Action Mailer لبيئتك. كيفيّة اختبار أصنافك لـ Action Mailer. مقدمة يسمح لك Action Mailer بإرسال رسائل البريد الإلكتروني من تطبيقك باستخدام الأصناف mailer والعروض المرتبطة بها ...

Document.getElementsByName()‎

يُعيد التّابع Document.getElementsByName‎()‎ قائمة العقد ذات الخاصيّة name المعطاة في مستند ‎HTML‎. البنية العامة elements = document.getElementsByName(name) elements كائن حيّ من النّوع NodeList يُمثّل مجموعة العناصر التي وُجدت. name قيمة الخاصيّة name الخاصّة بالعنصر. مثال <!DOCTYPE html> <html lang="en"> <head> ... </head> <body> <form name="up"><input type="text"></form> <div name="down"><input type="text"></div> <script> var up_forms = document.getElementsByName("up"); console.log(up_forms[0].tagName); // "FORM" </script> </body> </html> ملاحظات الخاصيّة name تعمل فقط على مستندات HTML و XHTML. يُعيد التّابع كائنًا حيًّا من النّوع NodeList يحتوي مجموعة العناصر ذات الاسم الذي يوافق المعامل المعطى، مثل عناصر <meta> و <object> أو ...

الوحدة os في Node.js

مؤشر الاستقرار: 2 - مستقر توفر وحدة نظام التشغيل os عددًا من توابع الأدوات المساعدة المتعلقة بنظام التشغيل. ويمكن الوصول إليها باستخدام: const os = require('os'); os.EOL أُضيف مع الإصدار: v0.7.8. من النوع <string> وهو ثابت من النوع سلسلة نصية ويحدد علامة نهاية السطر الخاصة بنظام التشغيل: ‎\n في POSIX. ‎\r\n في Windows. os.arch()‎ أُضيف مع الإصدار: v0.5.0. القيمة المُعادة: من النوع <string>. يعيد التابع os.arch()‎ سلسلة نصية تحدد بنية وحدة المعالجة المركزية لنظام التشغيل التي تُرجِمت إليها ثنائية Node.js. ...

تثبيت روبي على مختلف المنصات

توجد عدة طرق لتنزيل وتثبيت روبي على كل منصة وهي: في لينكس (والأنظمة الشبيه بيونكس)، تستطيع استعمال نظام مدير الحزم لتوزيعتك (الطريقة الأسهل) أو أية أداة من طرف ثالث (مثل rbenv و RVM). على أي حال، إصدار روبي المثبت عن طريق نظام مدير الحزم قد لا يكون هو الإصدار الأحدث، لذا انتبه لهذا الأمر. في macOS، يمكنك استعمال مدير الحزم أو أداة من طرف ثالث (مثل rbenv و RVM). في ويندوز، تستطيع استخدام RubyInstaller. يمكنك باستعمال المثبِّت هذا تثبيت إصدار ...

Document.open()‎

يفتح التّابع Document.open‎()‎ المستند للكتابة عليه بالتّابع Document.write‎()‎. البنية العامة document.open(); مثال // تُعاد كتابة محتويات المستند لأنّ المستند يُهيّئ من جديد من طرف التّابع // open(). document.write("<html><p>احذفني</p></html>"); document.open(); // المستند فارغ ملاحظات إن كان المستند موجودًا في الهدف، فسيحذف هذا التّابع محتوياته (انظر المثال أعلاه). ويُستدعى التّابع Document.open‎()‎ تلقائيًّا عند استدعاء التّابع Document.write‎()‎ بعد أن تُحمَّل الصّفحة، لكنّ هذا الأمر غير مُعرّفٍ في مواصفة W3C. لا تخلط بين هذا التّابع والتّابع window.open‎()‎، فالتّابع Document.open‎()‎ يسمح لك بالكتابة فوق المستند الحالي ...

الخاصية padding-right

الخاصية padding-right في CSS تضبط الحاشية (padding) في الطرف الأيمن للعنصر؛ وعلى نقيض الهوامش margin، لا يجوز استخدام استخدام القيم السالبة للحواشي. ويمكن استخدام الخاصية المختصرة padding لضبط جميع الحواشي على الأطراف الأربعة لأحد العناصر في قاعدة واحدة. بطاقة الخاصية القيمة الابتدائية 0 تُطبَّق على جميع العناصر، ما عدا عناصر الجداول التي لا تساوي فيها قيمة الخاصية display إحدى الكلمات المحجوزة table-caption و table و inline-table. قابلة للوراثة لا قابلة للتحريك نعم القيمة المحسوبة نسبة مئوية أو طول مطلق. /* ...

الخاصية padding-bottom

الخاصية padding-bottom في CSS تضبط الحاشية (padding) في الطرف السفلي للعنصر؛ وعلى نقيض الهوامش margin، لا يجوز استخدام القيم السالبة للحواشي. ويمكن استخدام الخاصية المختصرة padding لضبط جميع الحواشي على الأطراف الأربعة لأحد العناصر في قاعدة واحدة. بطاقة الخاصية القيمة الابتدائية 0 تُطبَّق على جميع العناصر، ما عدا عناصر الجداول التي لا تساوي فيها قيمة الخاصية display إحدى الكلمات المحجوزة table-caption و table و inline-table. قابلة للوراثة لا قابلة للتحريك نعم القيمة المحسوبة نسبة مئوية أو طول مطلق. /* <length> ...

الخاصية padding-left

الخاصية padding-left في CSS تضبط الحاشية (padding) في الطرف الأيسر للعنصر؛ وعلى نقيض الهوامش margin، لا يجوز استخدام استخدام القيم السالبة للحواشي. ويمكن استخدام الخاصية المختصرة padding لضبط جميع الحواشي على الأطراف الأربعة لأحد العناصر في قاعدة واحدة. بطاقة الخاصية القيمة الابتدائية 0 تُطبَّق على جميع العناصر، ما عدا عناصر الجداول التي لا تساوي فيها قيمة الخاصية display إحدى الكلمات المحجوزة table-caption و table و inline-table. قابلة للوراثة لا قابلة للتحريك نعم القيمة المحسوبة نسبة مئوية أو طول مطلق. /* ...

الخاصية padding-top

الخاصية padding-top في CSS تضبط الحاشية (padding) في الطرف العلوي للعنصر؛ وعلى نقيض الهوامش margin، لا يجوز استخدام استخدام القيم السالبة للحواشي. ويمكن استخدام الخاصية المختصرة padding لضبط جميع الحواشي على الأطراف الأربعة لأحد العناصر في قاعدة واحدة. بطاقة الخاصية القيمة الابتدائية 0 تُطبَّق على جميع العناصر، ما عدا عناصر الجداول التي لا تساوي فيها قيمة الخاصية display إحدى الكلمات المحجوزة table-caption و table و inline-table. قابلة للوراثة لا قابلة للتحريك نعم القيمة المحسوبة نسبة مئوية أو طول مطلق. /* ...

الواجهات الساكنة (Facades) في Laravel

مقدمة تُوفِّر الواجهات الساكنة واجهة "ساكنة" (static) للأصناف المتوافرة في حاوي خدمات تطبيقك. يأتي Laravel مع عدة واجهات تمكنك من استخدام كل خاصيات Laravel تقريبًا. تمثل واجهات Laravel الساكنة "وسطاء ساكنات" (static proxies) للأصناف الأساسية بحاوي الخدمات مما يوفر كل فوائد الصِّيغ (syntax) المقتضبة والمُعبِّرة مع الحفاظ على قابلية الاختبار ومرونة أكبر من الدالات الساكنة التقليدية. كل واجهات Laravel الساكنة مُعرَّفةٌ في مجال الأسماء Illuminate\Support\Facades. يمكننا الوصول لواجهة ساكنة بهذه الطريقة: use Illuminate\Support\Facades\Cache; Route::get('/cache', function () { return ...

اختبارات قواعد البيانات في Laravel

مقدمة يزوّدك Laravel بمجموعة من الأدوات المفيدة لتسهيل اختبار تطبيقاتك المقادة بواسطة قواعد البيانات. أولاً، يمكنك استخدام التابع المساعد assertDatabaseHas للتأكد من أن البيانات موجودة ضمن قاعدة البيانات ضمن مجموعة الشروط المعطاة. على سبيل المثال، إن أردت التأكد من أن سجلًا ما موجود ضمن جدول users ببريد مطابق لـ sally@example.com، يمكنك فعل التالي: public function testDatabase() { // القيام بمناداة التطبيق... $this->assertDatabaseHas('users', [ 'email' => 'sally@example.com' ...

بعض الدوال المساعدة في SQL

الدوال الرياضية الدالة مهمتها COUNT(*)‎ تعيد عدد السجلات الموجودة في الجدول MAX(col_name)‎ تعيد القيمة الأكبر في حقل col_name في سجلات الجدول MIN(col_name)‎ تعيد القيمة الأصغر في حقل col_name في سجلات الجدول AVG(col_name)‎ تعيد قيمة المتوسط الحسابي لقيم الحقل col_name في سجلات الجدول SUM(col_name)‎ تعيد قيمة مجموع قيم الحقل col_name في سجلات الجدول SQRT(m)‎ تعيد قيمة الجذر التربيعي للقيمة m (قد تكون قيمة أحد الحقول) RAND()‎ تعيد قيمة عشوائية مُولّدة واقعة في المجال ما بين القيمة 0 والقيمة 1 MOD(N,M)‎ تعيد ...

القيم المنطقية في بايثون

القيمتان المنطقيتان (البوليانيتان، Boolean) اللتان تدعمهما بايثون هما True و False وهما كائنان ثابتان (Constant objects) يعبران عن صحّة تعبير ما، فإمّا أن يكون صحيحًا True أو خطأً False. تعدّ القيم المنطقية نوعًا فرعيًا (subtype) من الأعداد الصحيحة، وتسلك القيمتان False و True سلوك القيمتين 0 و 1 على التوالي في معظم السياقات تقريبًا، ويستثنى من ذلك تحويل القيم المنطقية إلى سلاسل نصية، فتعاد حينئذ السلسلتان النصيتان "False" و "True" على التوالي. 1 >>> foo = True 2 >>> bar ...

القيم المنطقية في بايثون

القيمتان المنطقيتان (البوليانيتان، Boolean) اللتان تدعمهما بايثون هما True و False وهما كائنان ثابتان (Constant objects) يعبران عن صحّة تعبير ما، فإمّا أن يكون صحيحًا True أو خطأً False. تعدّ القيم المنطقية نوعًا فرعيًا (subtype) من الأعداد الصحيحة، وتسلك القيمتان False و True سلوك القيمتين 0 و 1 على التوالي في معظم السياقات تقريبًا، ويستثنى من ذلك تحويل القيم المنطقية إلى سلاسل نصية، فتعاد حينئذ السلسلتان النصيتان "False" و "True" على التوالي. 1 >>> foo = True 2 >>> bar ...

الخاصية overflow-y

الخاصية overflow-y في CSS تُحدِّد إن كان سيتم اقتصاص (clip) المحتوى، أو سيُعرَض شريط تمرير (scroll bar)، أو سيُعرَض ما يزيد من محتوى العنصر الكتلي فوقه أو تحته. بطاقة الخاصية القيمة الابتدائية visible تُطبَّق على عناصر block-level و inline-block غير المُستبدَلة (non-replaced). قابلة للوراثة لا قابلة للتحريك لا القيمة المحسوبة كما حُدِّدَت. /* لن يتم اقتصاص المحتوى */ overflow-y: visible; /* سيتم اقتصاص المحتوى دون عرض شريط تمرير */ overflow-y: hidden; /* سيتم اقتصاص المحتوى مع عرض شريط تمرير */ overflow-y: scroll; /* ترك الأمر بيد ...

تحديد عدد السجلات في استعلامات SQL

يمكن تحديد عدد السجلات التي ستُجلب من الجدول ضمن استعلام SELECT أو التي ستُحذف من الجدول ضمن استعلام DELETE أو ستُحدَّث قيمها ضمن استعلام UPDATE، ولكن تختلف محركات قواعد البيانات فيما بينها بالصياغة العامة للاستعلام، وسيُذكر ذلك تباعًا. تحديد عدد سجلات النتائج يكون للاستعلام البنية العامة الآتية في محرك SQL Server، والتي تعتمد على الكلمة المفتاحية TOP: SELECT TOP number | percent col_name(s) FROM tbl_name WHERE condition; إذ يُعبّر المتحول number عن عدد السجلات المطلوبة، وتُعبّر الكلمة المفتاحية percent عن نسبة السجلات المئوية ...

الخاصية height

الخاصية height في CSS تُحدِّد ارتفاع أحد العناصر، وتستخدم هذه الخاصية افتراضيًا لتحديد ارتفاع منطقة المحتوى، لكن إن كانت الخاصية box-sizing مضبوطة إلى border-box فستُحدِّد ارتفاع العنصر بدءًا من الحافة الخارجية للإطار. بطاقة الخاصية القيمة الابتدائية auto تُطبَّق على جميع العناصر، ما عدا العناصر السطرية غير المُستبدَلة (non-replaced inline elements)، وأعمدة الجداول، ومجموعات الأعمدة. قابلة للوراثة لا قابلة للتحريك نعم القيمة المحسوبة نسبة مئوية أو طول مطلق أو الكلمة المحجوزة auto. /* كلمة محجوزة */ height: auto; /* <length> أطوال */ height: 120px; height: ...

نظرة سريعة على التخزين المؤقت في ريلز

هذا الدليل عبارة عن مدخل يطلعك على كيفية تسريع تطبيق ريلز عبر التخزين المؤقت. يعني التخزين المؤقت تخزين المحتوى الذي أُنشِئ أثناء دورة الاستجابة للطلب وإعادة استخدامه عند الاستجابة لطلبات مشابهة. غالبًا ما يكون التخزين المؤقت الطريقة الأكثر فاعلية لتعزيز أداء التطبيق. من خلال التخزين المؤقت، يمكن لمواقع الويب التي تعمل على خادم واحد مع قاعدة بيانات واحدة الحفاظ على تحميل الآلاف من المستخدمين المتزامنين. يوفر ريلز مجموعة مميزة من ميزات التخزين المؤقت. سوف يعلمك هذا الدليل نطاق وغرض كل ...

Document.importNode()‎

يُنشئ التّابع Document.importNode()‎ نسخةً جديدةً من العقدة Node أو قطعة المُستند DocumentFragment المُحدّدة من مستندٍ آخر ليُمكِنَ إدخالها إلى المستند الحاليّ. لكنّها لا تُدخل إلى شجرة المُستند، لفعل ذلك، عليك استدعاء تابع مثل Node.appendChild()‎ أو Node.insertBefore()‎. البنية العامة var node = document.importNode(externalNode, deep); externalNode‎ الكائن الجديد من النّوع Node أو DocumentFragment المرغوب استيراده إلى المستند الحالي. قيمة الخاصيّة parentNode الخاصّة بالعقدة الجديدة تكون null لأنّ العقدة لم تُدخَل بعدُ إلى شجرة المستند. deep‎ قيمةٌ منطقيّة من النّوع Boolean تُشير إلى ...

الخاصية margin-top

الخاصية margin-top في CSS تضبط الهامش في الطرف العلوي من العنصر، والقيم الموجبة ستؤدي إلى إبعاد العنصر عمّا جاوره، والقيم السالبة ستقربه منها. بطاقة الخاصية القيمة الابتدائية 0 تُطبَّق على جميع العناصر، ما عدا عناصر الجداول التي لا تساوي فيها قيمة الخاصية display إحدى الكلمات المحجوزة table-caption و table و inline-table. قابلة للوراثة لا قابلة للتحريك نعم القيمة المحسوبة نسبة مئوية أو طول مطلق. /* <length> أطوال */ margin-top: 10px; /* طول مطلق */ margin-top: 1em; /* طول نسبي ...

الخاصية width

الخاصية width في CSS تُحدِّد عرض أحد العناصر، وتستخدم هذه الخاصية افتراضيًا لتحديد عرض منطقة المحتوى (content area)، لكن إن كانت الخاصية box-sizing مضبوطة إلى border-box فستُحدِّد عرض العنصر بدءًا من الحافة الخارجية للإطار. بطاقة الخاصية القيمة الابتدائية auto تُطبَّق على جميع العناصر، ما عدا العناصر السطرية غير المُستبدَلة (non-replaced inline elements)، وأعمدة الجداول، ومجموعات الأعمدة. قابلة للوراثة لا قابلة للتحريك نعم القيمة المحسوبة نسبة مئوية أو طول مطلق أو الكلمة المحجوزة auto. /* كلمة محجوزة */ width: auto; /* <length> أطوال ...

الخاصية overflow-x

الخاصية overflow-x في CSS تُحدِّد إن كان سيتم اقتصاص (clip) المحتوى، أو سيُعرَض شريط تمرير (scroll bar)، أو سيُعرَض ما يزيد من محتوى العنصر الكتلي على يمينه أو يساره. بطاقة الخاصية القيمة الابتدائية visible تُطبَّق على عناصر block-level و inline-block غير المُستبدَلة (non-replaced). قابلة للوراثة لا قابلة للتحريك لا القيمة المحسوبة كما حُدِّدَت. /* لن يتم اقتصاص المحتوى */ overflow-x: visible; /* سيتم اقتصاص المحتوى دون عرض شريط تمرير */ overflow-x: hidden; /* سيتم اقتصاص المحتوى مع عرض شريط تمرير */ overflow-x: scroll; /* ترك الأمر ...

الترخيص (Authorization) في Laravel

مقدمة بالإضافة إلى توفير خدمات الاستيثاق المضمنة بإطار العمل Laravel، يوفر Laravel أيضًا طريقة بسيطة لترخيص عمليات المستخدم على مورد معين. مثلما هو الحال مع الاستيثاق، فإن أسلوب Laravel للترخيص بسيط، وهناك طريقتان أساسيتان لترخيص العمليات: البوابات والسياسات (gates and policies). فكر في البوابات والسياسات مثل المسارات ووحدات التحكم. توفر البوابات أسلوبًا بسيطًا يعتمد على الإغلاق للترخيص، بينما تقوم السياسات، مثل وحدات التحكم، بتجميع منطقها حول نموذج معين أو مورد. سنستكشف البوابات أولاً ثم نفحص السياسات. لست بحاجة إلى الاختيار ...

Document.createTreeWalker()‎

يُنشئ التّابع Document.createTreeWalker()‎ كائنًا جديدًا من النّوع TreeWalker ويُعيده. البنية العامة treeWalker = document.createTreeWalker(root, whatToShow, filter, entityReferenceExpansion); المعاملات root العقدة Node الجذر لمرور الكائن TreeWalker. عادةً ما يكون عنصرًا مملوكًا من طرف المُستند. whatToShow قيمة اختياريّةٌ من النّوع unsigned long تُمثّل قيمة bitmask تُنشأُ عبر دمج الخاصيّات الثّابتة الخاصّة بالكائن NodeFilter. وهي طريقة جيّدة لترشيح بعض أنواع العقد. القيمة الافتراضيّة هي 0xFFFFFFFF وتُمثّل الثّابتة SHOW_ALL. الثّابتة القيمة الرّقميّة الوصف NodeFilter.SHOW_ALL ‎-1 (وهي القيمة القصوى للنّوع unsigned long) اعرض جميع العقد. ...

استخدام لغة Kotlin في نطاق JavaScript

تتيح لغة Kotlin إمكانيّة استهداف لغة JavaScript من خلال تحويل (transpiling) شيفرات Kotlin إلى ما يماثلها في JavaScript ؛ إذ تستهدف بالوقت الحاليّ معيارECMAScript 5.1، ومن المُخطَّط له أيضًا التوافق مع معيار ECMAScript 2015 لاحقًا. عند استخدام لغة Kotlin بهدف كتابة شيفرات JavaScript فستُحوَّل الشيفرات المكتوبة بلغة Kotlin (بعدِّها جزءًا من المشروع والمكتبة القياسيّة في Kotlin) إلى شيفرة JavaScript، ولكنّ هذا لا يشمل أيًّا ممّا يتعلَّق ببيئة JDK أو JVM أو Java أو أيّ من منصّاتها أو مكتباتها المُستخدَمة، ويُستبعَد ...

الخاصية margin-bottom

الخاصية margin-bottom في CSS تضبط الهامش في الطرف السفلي من العنصر، والقيم الموجبة ستؤدي إلى إبعاد العنصر عمّا جاوره، والقيم السالبة ستقربه منها. بطاقة الخاصية القيمة الابتدائية 0 تُطبَّق على جميع العناصر، ما عدا عناصر الجداول التي لا تساوي فيها قيمة الخاصية display إحدى الكلمات المحجوزة table-caption و table و inline-table. قابلة للوراثة لا قابلة للتحريك نعم القيمة المحسوبة نسبة مئوية أو طول مطلق. /* <length> أطوال */ margin-bottom: 10px; /* طول مطلق */ margin-bottom: 1em; /* طول نسبي ...

التوجيه (Routing) في Laravel

التوجيه الأساسي تقبل أغلب مسارات Laravel الأساسيّة مُتغّيرين: رابط URI  و نطاق مغلق Closure مما يُوفّر طريقة بسيطة ومعبّرة جدّا لتعريف المسارات (routes): Route::get('foo', function () { return 'Hello World'; }); ملفات المسار الإفتراضيّة كل مسارات Laravel مُعرّفة في ملفات مساراتك الموجودة في المجلّد routes. يُحمّل إطار العمل كل هذه الملفّات تلقائيًا. يعرّف الملف routes/web.php كل المسارات المُخصّصة لواجهة الويب. مجموعة البرمجيّات الوسيطة web معيّنة على كل المسارات وتوفّر خاصيّات مثل حالة الجلسة (session state) والحماية CSRF. المسارات ...

نظرة خاطفة على وحدة التحكم في ريلز

ستتعرف في هذا الدليل على كيفية عمل وحدات التحكم (Controller) وكيفية ملاءمتها مع دورة الطلب (request cycle) في التطبيق الخاص بك. بعد قراءة هذا الدليل، ستتعلم: كيفية اتباع تدفق الطلب من خلال وحدة تحكم. كيفية تقييد المعاملات التي مُرّرت إلى وحدة التحكم الخاصة بك. كيف ولماذا تخزَّن البيانات في الجلسة (session) أو ملفات تعريف الارتباط (cookies). كيفية العمل مع المرشحات (filters) لتنفيذ التعليمات البرمجية أثناء معالجة الطلب. كيفية استخدام استيثاق HTTP المضمن في وحدة التحكم. كيفية تدفق البيانات مباشرة إلى ...

الخاصية outline

الخاصية outline في CSS هي خاصية مختصرة تُستخدَم لضبط خاصية أو أكثر من الخاصيات outline-style و outline-width و outline-color في آنٍ واحد. بطاقة الخاصية القيمة الابتدائية لكل خاصية مختصرة: outline-color: currentColor outline-style: none outline-width: medium تُطبَّق على جميع العناصر. قابلة للوراثة لا قابلة للحركة نعم القيمة المحسوبة لكل خاصية مختصرة: outline-color: قيمة لونية outline-style: كما حُدِّدَت. outline-width: طول مطلق، إلا إذا حُدِّدَت الكلمة المحجوزة none فستكون القيمة المحسوبة 0. /* width | style | color */ outline: 1px solid white; /* القيم العامة */ outline: inherit; outline: initial; outline: unset; حدود العنصر ...

الخاصية visibility

الخاصية visibility في CSS تسمح بإظهار أو إخفاء عنصر دون التأثير بتخطيط المستند، أي أنَّ المساحة ستُحجَز للعناصر سواءً كانت مرئيةً أو لا، ويمكن استخدام هذه الخاصية أيضًا لإخفاء أو إظهار الأعمدة في جدول <table>. بطاقة الخاصية القيمة الابتدائية visible تُطبَّق على جميع العناصر. قابلة للوراثة لا قابلة للحركة نعم القيمة المحسوبة كما حُدِّدَت. /* الكلمات المحجوزة */ visibility: visible; visibility: hidden; visibility: collapse; /* القيم العامة */ visibility: inherit; visibility: initial; visibility: unset; ملاحظة: إذا أردتَ إخفاء العنصر وإزالته من تخطيط المستند معًا، فاضبط الخاصية display إلى ...

التابع ‎‎jQuery.param()‎‎ في jQuery

jQuery.param( obj )‎ القيم المعادة يعيد سلسلةً نصيةً (Array). الوصف يرمِّز (serialize) هذا التابع محتويات مصفوفة، أو كائن مجرَّد، أو كائن jQuery ويضعها في سلسلة نصيَّة لتصبح ملائمة لاستعمالها في سلسلة الاستعلام النصية لعنوان URL أو لإرسالها في طلبات Ajax. في حال تمرير كائن jQuery، فيجب أن يحوي هذا الكائن عناصر إدخال <input> لها خاصِّيَّات بالشكل اسم/قيمة. jQuery.param( obj )‎ أُضيف مع الإصدار: 1.2. obj مصفوفة، أو كائن مجرَّد (Object)، أو كائن jQuery التي يراد ترميزها. jQuery.param( obj, traditional )‎ ...

التابع ‎‎jQuery.param()‎‎ في jQuery

jQuery.param( obj )‎ القيم المعادة يعيد سلسلةً نصيةً (Array). الوصف يرمِّز (serialize) هذا التابع محتويات مصفوفة، أو كائن مجرَّد، أو كائن jQuery ويضعها في سلسلة نصيَّة لتصبح ملائمة لاستعمالها في سلسلة الاستعلام النصية لعنوان URL أو لإرسالها في طلبات Ajax. في حال تمرير كائن jQuery، فيجب أن يحوي هذا الكائن عناصر إدخال <input> لها خاصِّيَّات بالشكل اسم/قيمة. jQuery.param( obj )‎ أُضيف مع الإصدار: 1.2. obj مصفوفة، أو كائن مجرَّد (Object)، أو كائن jQuery التي يراد ترميزها. jQuery.param( obj, traditional )‎ ...

الخاصية overflow

الخاصية overflow في CSS تُحدِّد إن كان سيتم اقتصاص (clip) المحتوى، أو سيُعرَض شريط تمرير (scroll bar)، أو سيُعرَض ما يزيد من محتوى العنصر الكتلي عند تجاوزه أبعاد الحاوية الكتلية التي هو فيها. بطاقة الخاصية القيمة الابتدائية visible تُطبَّق على عناصر block-level و inline-block غير المُستبدَلة (non-replaced). قابلة للوراثة لا قابلة للتحريك لا القيمة المحسوبة كما حُدِّدَت. /* لن يتم اقتصاص المحتوى */ overflow: visible; /* سيتم اقتصاص المحتوى دون عرض شريط تمرير */ overflow: hidden; /* سيتم اقتصاص المحتوى مع عرض شريط تمرير ...

الخاصية padding

الخاصية padding المختصرة في CSS تضبط الحاشية (padding) في الأطراف الأربعة للعنصر، ويمكن استخدام هذه الخاصية بدلًا من ضبط الحواشي فرادى باستخدام padding-top و padding-right و padding-bottom و padding-left. بطاقة الخاصية القيمة الابتدائية لكل خاصية مختصرة: padding-bottom: 0 padding-left: 0 padding-right: 0 padding-top: 0 تُطبَّق على جميع العناصر، ما عدا عناصر الجداول التي لا تساوي فيها قيمة الخاصية display إحدى الكلمات المحجوزة table-caption و table و inline-table. قابلة للوراثة لا قابلة للتحريك نعم القيمة المحسوبة نسبة مئوية أو طول مطلق. /* تطبيق الحواشي على ...

نظرة عامة على Active Storage في ريلز

يغطّي هذا الدليل كيفيّة إرفاق ملفات بنماذج Active Record. ستتعلم بعد قراءة هذا الدليل: كيفية إرفاق ملف أو عدّة ملفّات بسجل (record). كيفيّة حذف ملف مُرفق. كيفيّة الربط بملف مُرفق. كيفيّة استخدام المتغيّرات (variants) لتحويل الصور. كيفيّة إنشاء تمثيل صُوَري (image representation) لملف غير صُوَري، مثل ملف PDF أو فيديو. كيفيّة إرسال تحميلات الملفّات مباشرةً من المتصفّحات إلى خدمة تخزين، دون المرور على خوادم تطبيقك. كيفيّة تنظيف الملفّات المخزّنة أثناء الاختبار. كيفيّة تعريف استخدام (implement) الدعم لخدمات تخزين إضافيّة. ما ...

الخاصية margin-right

الخاصية margin في CSS تضبط الهامش في الطرف الأيمن من العنصر، والقيم الموجبة ستؤدي إلى إبعاد العنصر عمّا جاوره، والقيم السالبة ستقربه منها. بطاقة الخاصية القيمة الابتدائية 0 تُطبَّق على جميع العناصر، ما عدا عناصر الجداول التي لا تساوي فيها قيمة الخاصية display إحدى الكلمات المحجوزة table-caption و table و inline-table. قابلة للوراثة لا قابلة للتحريك نعم القيمة المحسوبة نسبة مئوية أو طول مطلق. /* <length> أطوال */ margin-right: 10px; /* طول مطلق */ margin-right: 1em; /* طول نسبي ...

الخاصية margin-left

الخاصية margin-left في CSS تضبط الهامش في الطرف الأيسر من العنصر، والقيم الموجبة ستؤدي إلى إبعاد العنصر عمّا جاوره، والقيم السالبة ستقربه منها. بطاقة الخاصية القيمة الابتدائية 0 تُطبَّق على جميع العناصر، ما عدا عناصر الجداول التي لا تساوي فيها قيمة الخاصية display إحدى الكلمات المحجوزة table-caption و table و inline-table. قابلة للوراثة لا قابلة للتحريك نعم القيمة المحسوبة نسبة مئوية أو طول مطلق. /* <length> أطوال */ margin-left: 10px; /* طول مطلق */ margin-left: 1em; /* طول نسبي ...

الخاصية float

الخاصية float في CSS تُحدِّد أنَّ العنصر يجب أن يوضع على يسار أو يمين الحاوية التي ينتمي إليها، مما يسمح للنص والعناصر السطرية بالالتفاف حول العنصر، وسيُزال هذا العنصر من الهيكل التنظيمي (flow) العادي للصفحة، لكنه سوف يبقى جزءًا منه (على عكس العناصر ذات الموضع المطلق [absolute]). بطاقة الخاصية القيمة الابتدائية none تُطبَّق على جميع العناصر، لكن لن يكون لهذه الخاصية أثر إن كانت قيمة الخاصية display تساوي none. قابلة للوراثة لا قابلة للتحريك لا القيمة المحسوبة كما حُدِّدَت. ولمّا ...

بنية المجلدات في Laravel

مقدمة تهدف هيكلية تطبيق Laravel الافتراضية إلى توفير نقطة بداية رائعة لكل من التطبيقات الكبيرة والصغيرة. بالطبع، أنت حر في تنظيم تطبيقك كما تشاء. لا يفرض Laravel أي قيود تقريبًا على مكان وجود أي صنف من أصناف مشروعك، طالما أن Composer يمكنه تحميل الصنف تلقائيًا. أين هو مجلّد النماذج؟ عند عملية البدء مع Laravel، يشوشّ العديد من المطورين بسبب عدم وجود المجلّد models. ومع ذلك، فإن عدم وجود مثل هذا المجلّد هو متعمد. نجد كلمة "نماذج" غامضة لأنها تعني الكثير ...

الخاصية margin

الخاصية margin المختصرة في CSS تضبط الهوامش في الأطراف الأربعة للعنصر، ويمكن استخدام هذه الخاصية بدلًا من ضبط الهوامش فرادى باستخدام margin-top و margin-right و margin-bottom و margin-left. بطاقة الخاصية القيمة الابتدائية لكل خاصية مختصرة: margin-bottom: 0 margin-left: 0 margin-right: 0 margin-top: 0 تُطبَّق على جميع العناصر، ما عدا عناصر الجداول التي لا تساوي فيها قيمة الخاصية display إحدى الكلمات المحجوزة table-caption و table و inline-table. قابلة للوراثة لا قابلة للتحريك نعم القيمة المحسوبة نسبة مئوية أو طول مطلق. /* تطبيق الهوامش على الأطراف ...

Laravel Cashier

مقدمة يقدم Laravel Cashier واجهة قويّة لاشتراكات خدمات الفواتير Stripe و Braintree، وهي تعالج تقريبًا كل شيفرات boilerplate الخاصة باشتراك الفواتير التي تخشى من كتابتها، وبالإضافة إلى إدارة الاشتراكات الأساسية، يستطيع Cashier التعامل مع القسائم (coupons)، ومبادلة الاشتراكات وكميّات الاشتراكات وفترات السماح بالإلغاء وحتى إنشاء ملفات PDF للفواتير. تنبيه: إذا كنت تضع رسوم لمرة واحدةً فقط ولا توفّر الاشتراكات، فيجب عليك أن لا تستخدم Cashier، وبدلًا من ذلك، يجب عليك استخدام حزمة برمجيات التطوير (SDK) الخاصة بـ Braintree و Stripe ...

Laravel Cashier

مقدمة يقدم Laravel Cashier واجهة قويّة لاشتراكات خدمات الفواتير Stripe و Braintree، وهي تعالج تقريبًا كل شيفرات boilerplate الخاصة باشتراك الفواتير التي تخشى من كتابتها، وبالإضافة إلى إدارة الاشتراكات الأساسية، يستطيع Cashier التعامل مع القسائم (coupons)، ومبادلة الاشتراكات وكميّات الاشتراكات وفترات السماح بالإلغاء وحتى إنشاء ملفات PDF للفواتير. تنبيه: إذا كنت تضع رسوم لمرة واحدةً فقط ولا توفّر الاشتراكات، فيجب عليك أن لا تستخدم Cashier، وبدلًا من ذلك، يجب عليك استخدام حزمة برمجيات التطوير (SDK) الخاصة بـ Braintree و Stripe ...

Document.evaluate()‎

يُنشئ التّابع Document.evaluate()‎ كائنًا من النّوع XPathResult مبني على تعبير XPath ومعاملات معطاة أخرى. البنية العامة var xpathResult = document.evaluate( xpathExpression, contextNode, namespaceResolver, resultType, result ); xpathExpression‎ سلسة نصيّة تُمثّل تعبير XPath المرغوب تقديره (evaluate). contextNode‎ يُحدّد عقدة السّياق للاستعلام (انظر مواصفة XPath). من الشّائع تمرير كائن المستند document‎ كعقدة سياق. namespaceResolver‎ دالّة تُمرَّر لها سابقات مجالات الأسماء (namespace prefixes) لتُعيد سلسلةً نصيّة تُمثّل عنوان URI مجال الأسماء المرتبط بالسّابقة المُمرَّرة. ستُستعمل لحلّ السّابقات داخل تعبير XPath ...

نظرة عامة على Action Cable في ريلز

ستتعرف في هذا الدليل على كيفية عمل Action Cable وكيفية استخدام WebSockets لدمج ميزات الوقت الفعلي في تطبيق ريلز. بعد قراءة هذا الدليل، ستتلعم: ماهية Action Cable وكيفية دمج الواجهة الخلفية والأمامية الخاصة به. كيفية إعداد Action Cable. كيفية إعداد القنوات. النشر وإعداد المعمارية لتشغيل Action Cable. المقدمة يدمج Action Cable مقابس الويب WebSockets مع باقي تطبيق ريلز بسلاسة. يسمح ذلك بكتابة الميزات في الوقت الحقيقي في روبي بنفس الأسلوب والشكل كبقية تطبيقات ريلز، مع الاستمرار في الأداء وقابلية التطوير. ...

وحدات التحكّم (Controllers) في Laravel

مقدمة بدلًا من تعريف كامل منطق معالجة طلباتك (request handling logic) على أنّها نطاقات مغلقة (‎(Closures في ملفّات المسارات، قد ترغب في تنظيم هذا السلوك (behavior) باستخدام أصناف ووحدات التحكّم. تستطيع وحدات التحكّم جمع منطق معالجة الطلبات ذي الصلة في صنف واحد. تخزّن وحدات التحكّم في المجلّد app/Http/Controllers. وحدات التحكّم الأساسية تعريف وحدات التحكّم تجد أدناه مثالًا عن وحدة تحكّم بسيطة. لاحظ أن وحدة التحكّم تُوسّع صنف وحدة التحكّم الأساسية المُحتواة في Laravel. يوفّر الصنف الأساسي عددًا من التوابع المفيدة ...

تأمين تطبيقات ريلز

يصف هذا الدليل مشاكل الأمان الشائعة في تطبيقات الويب وكيفية تجنبها باستخدام ريلز. بعد قراءة هذا الدليل، ستتلعم: جميع التدابير المضادة التي سيسلط الضوء عليها. مفهوم الجلسات (sessions) في ريلز، و ما يُنفذ في وجود وسائل الهجوم المعروفة. كيف يمكن أن يكون مجرد زيارة أحد المواقع مشكلة أمنية (مع CSRF). ما عليك الانتباه عند العمل مع الملفات أو توفير واجهة إدارة. كيفية إدارة المستخدمين: تسجيل الدخول والخروج وهجمات الطرق على جميع الطبقات. أكثر الطرق المعروفة لهجوم الحقن. المقدمة تعمل إطارات ...

المكتبة Active Job في ريلز

إن Active Job هو إطار عمل مخصص للتصريح عن الوظائف وتنفيذها على مختلف أنواع الطوابير الخلفية (queuing backend). يمكن أن تكون هذه الوظائف أي شيء بدءًا من عمليات التنظيف المجدولة بشكل منتظم وحتى قيم الفواتير وإرسال رسائل البريد. بعبارة أخرى، يمكن أن تكون هذه الوظائف أي شيء يمكن تجزئته إلى وحدات صغيرة وتنفيذها سويةً على التوازي. يمكن استعمال هذا الإطار أيضًا كواجهة خلفية لوظيفة تسليم البريد الإلكتروني عبر التابع deliver_later الذي يخص Action Mailer مما يسهِّل عدُّ أي عملية إرسال ...

المكتبة Action Mailer في ريلز

إنَّ Action Mailer هو إطار عمل لتصميم طبقات خدمة البريد الإلكتروني. تُستخدَم هذه الطبقات لإنشاء شيفرة تعمل على إرسال البريد الإلكتروني المتعلق بكلمات المرور المنسية، ورسائل الترحيب بالعضو الجديد، والفواتير الواجب دفعها، وأية حالة أخرى تتطلب إرسال تنبيه مكتوب إمَّا إلى الشخص نفسه أو إلى نظام آخر. يعدُّ Action Mailer مغلفًا حول Action Controller والجوهرة Mail، إذ يوفر وسيلةً لإنشاء رسائل البريد الإلكتروني عبر قوالبٍ مُستعمِلًا الطريقة نفسها التي يصير بها Action Controller واجهات العرض المستندة إلى قوالب جاهزة. أضف ...

المكتبة Action Pack في ريلز

إن Action Pack هو إطار عمل لمعالجة والرد على طلبيات الويب. يوفر هذا الإطار آليةً للتوجيه (تعيين طلبيات العناوين URL إلى الإجراءات)، ويعرِّف المتحكمات التي تُنفِّذ الإجراءات، ويولد الردود غبر تصيير واجهات العرض (التي هي قوالب مصممة مسبقًا). باختصار، يوفر Action Pack طبقتي العرض والتحكم في النمط MVC (أي الحرفين V من أجل View و C من أجل Controller). يتألف هذا الإطار عدة وحدات: Action Dispatch: يحلل معلومات الطلبية، ويتعامل مع التوجيه بالشكل المُعرَّف من طرف المستخدم، ويجري معالجة متقدمة ...

المكتبة Active Support في ريلز

يعدُّ Active Support مجموعة من أصناف الأدوات (utility classes) وملحقات المكتبة القياسية التي وجد أنها مفيدة للاستعمال مع ريلز. توجد هذه الإضافات في هذه الحزمة، لذا يمكن تحميلها عند الحاجة في مشاريع روبي أي خارج إطار ريلز. يمكنك قراءة المزيد حول الملحقات في دليل ملحقات Active Support الأساسية. التنزيل والتثبيت يمكنك تثبيت أحدث إصدار من Active Support مع RubyGems: $ gem install activesupport ويمكنك أيضًا تنزيل الشيفرة المصدرية كجزء من مشروع ريلز في GitHub. مصادر صفحة Active Suppot من مشروع ريلز ...

المكتبة Action Mailbox في ريلز

المكتبة Action Mailbox توجه رسائل البريد الواردة إلى صندوق بريد شبيه بمتحكم لمعالجتها في ريلز. تأتي هذه المكتبة مع mazon SES، و Mailgun، و Mandrill، و Postmark، و SendGrid. يمكنك أيضًا التعامل مع الرسائل الواردة عبر Exim، و Postfix، و Qmail المضمَّنة. تحول الرسائل الواردة إلى السجلات InboundEmail باستعمال Active Record وميزة تتبع دورة الحياة، ويُخزَّن البريد الأصلي في مخزن سحابي عبر Active Storage، وتعالج البيانات المطلوبة على أنها نفايات يراد التخلص منها (incineration). تُوجَّه رسائل البريد الواردة بشكل غير ...

المكتبة Action View في ريلز

إن Action View هو إطار عمل وظيفته هي البحث عن قوالب العروض وتصييرها، وتوفير مساعدي العروض التي تساعد على بناء نماذج HTML (أي HTML forms)، وتغذية Atom وغيرها من الوظائف. تنسيق القوالب الذي يستطيع Action View التعامل معه هو ERB (يستخدم هذا التنسيق عادةً لتضمين شيفرات روبي داخل شيفرة HTML)، و XML Builder. يمكنك قراءة المزيد حول Action View في دليل نظرة عامة على وحدة العرض. التنزيل والتثبيت يمكن تثبيت أحدث إصدار من Action View مع RubyGems: $ gem install ...

المكتبة Action Text في ريلز

يوفر Action Text محتوًى نصيًّا غنيًّا والتعديل في ريلز. يحوي على المحرر Trix الذي يعالج كل شيء بدءًا من التنسيق وحتى روابط الاقتباسات والقوائم والصور المضمَّنة ومعارض الصور. يُحفَظ المحتوى النصي المُولَّد عبر المحرر Trix في الوحدة RichText الخاصة به والمرتبطة مع أي وحدة Active Record موجودة في التطبيق. تُخزَّن أية صور (أو مرفقات أخرى) تلقائيًّا باستعمال Active Storage وتُربَط مع الوحدة RichText المضمنة. يمكنك قراءة المزيد حول Action Text في دليل أساسيات Action Text. مصادر صفحة Action Text من ...

معلومات إضافية عن روبي

هل تساءلت يومًا لماذا روبي مشهورة إلى هذا الحد؟ يقول المعجبون بها أنَّها لغة جميلة وذات بنية متقنة. ويقولون أيضًا أنَّها لغة عملية وسهلة الاستعمال. فماذا تعطي وبماذا تتمتع؟ مثالية منشئ لغة روبي حققت لغة روبي توازنًا دقيقًا بين لغات البرمجة. عمل منشئ هذا اللغة - الياباني Yukihiro “Matz” Matsumoto - على دمج أجزاءٍ من لغات البرمجة المفضلة لديه (Perl، و Smalltalk، و Eiffel، و Ada، و Lisp) لإنشاء لغة جديدة تحقق التوازن بين البرمجة الوظيفية (functional programming) والبرمجة الأمرية ...

الكائن Array في JavaScript

الكائن Array يُستخدَم في إنشاء المصفوفات، والتي هي قوائم شبيهة بالكائنات. إنشاء مصفوفة var fruits = ['Apple', 'Banana']; console.log(fruits.length); // 2 الوصول إلى عنصر من عناصر المصفوفة var first = fruits[0]; // Apple var last = fruits[fruits.length - 1]; // Banana المرور على عناصر المصفوفة بحلقة تكرار fruits.forEach(function(item, index, array) { console.log(item, index); }); // Apple 0 // Banana 1 إضافة عنصر في نهاية المصفوفة var newLength = fruits.push('Orange'); // ["Apple", "Banana", "Orange"] إزالة عنصر من نهاية المصفوفة var last = fruits.pop(); // إزالة Orange (من النهاية) // ["Apple", ...

الخاصية box-sizing

الخاصية box-sizing في CSS تُستخدم لتعديل النموذج الصندوقي الافتراضي في CSS (أي CSS box model) المستخدم لحساب عرض وارتفاع العناصر. بطاقة الخاصية القيمة الابتدائية content-box تُطبَّق على جميع العناصر التي يمكن تحديد قيمة للخاصية width و height فيها. قابلة للوراثة لا قابلة للتحريك لا القيمة المحسوبة كما حُدِّدَت. /* الكلمات المحجوزة */ box-sizing: content-box; box-sizing: border-box; /* القيم العامة */ box-sizing: inherit; box-sizing: initial; box-sizing: unset; يُطبَّق العرض والارتفاع -افتراضيًا- على صندوق المحتوى (content box) التابع للعنصر، وإذا كان للعنصر إطار (border) أو حاشية (padding) فستُضاف إلى ...

JSON.stringify()‎

الدالة JSON.stringify()‎ تحوِّل قيمةً في JavaScript إلى سلسلة نصية بصيغة JSON، وتستطيع -اختياريًّا- استبدال القيم إذا حُدِّدَت دالة استبدال (replacer)، أو تضمين خاصيات مُعيّنة إذا حُدِّدة مصفوفة استبدال (replacer). البنية العامة JSON.stringify(value[, replacer[, space]]) value القيمة التي نريد تحويلها إلى صيغة JSON. replacer الدالة التي ستُغيّر من سلوك عملية التحويل، أو مصفوفة من كائنات String و Number التي تعمل كقائمة بالخاصيات المسموحُ تضمينها في الكائن؛ إذا كانت هذه القيمة null أو لم تضبَط فستضمَّن جميع الخاصيات. space كائن من النوع ...

الخاصية max-width

الخاصية max-width في CSS تضبط العرض الأقصى للعنصر، وهي تمنع القيمة المستخدمة (used value) للخاصية width من أن تتجاوز القيمة المُحدَّدة في الخاصية max-width. بطاقة الخاصية القيمة الابتدائية none تُطبَّق على جميع العناصر، ما عدا العناصر السطرية غير المُستبدَلة (non-replaced inline elements)، وأعمدة الجداول، ومجموعات الأعمدة. قابلة للوراثة لا قابلة للتحريك نعم القيمة المحسوبة نسبة مئوية أو طول مطلق أو الكلمة المحجوزة none. /* <length> أطوال */ max-width: 3.5em; /* <percentage> نسب مئوية */ max-width: 75%; /* كلمات محجوزة */ max-width: none; /* قيم عامة */ max-width: ...

الخاصية min-height

الخاصية min-height في CSS تضبط الارتفاع الأدنى للعنصر، وهي تمنع القيمة المستخدمة (used value) للخاصية height من أن تقل عن القيمة المُحدَّدة في الخاصية min-height. بطاقة الخاصية القيمة الابتدائية 0 تُطبَّق على جميع العناصر، ما عدا العناصر السطرية غير المُستبدَلة (non-replaced inline elements)، وأعمدة الجداول، ومجموعات الأعمدة. قابلة للوراثة لا قابلة للتحريك نعم القيمة المحسوبة نسبة مئوية أو طول مطلق أو الكلمة المحجوزة auto. /* <length> أطوال */ min-height: 3.5em; /* <percentage> نسب مئوية */ min-height: 75%; /* كلمات محجوزة */ min-height: none; /* قيم عامة ...

الخاصية max-height

الخاصية max-height في CSS تضبط الارتفاع الأقصى للعنصر، وهي تمنع القيمة المستخدمة (used value) للخاصية height من أن تتجاوز القيمة المُحدَّدة في الخاصية max-height. بطاقة الخاصية القيمة الابتدائية none تُطبَّق على جميع العناصر، ما عدا العناصر السطرية غير المُستبدَلة (non-replaced inline elements)، وأعمدة الجداول، ومجموعات الأعمدة. قابلة للوراثة لا قابلة للتحريك نعم القيمة المحسوبة نسبة مئوية أو طول مطلق أو الكلمة المحجوزة none. /* <length> أطوال */ max-height: 3.5em; /* <percentage> نسب مئوية */ max-height: 75%; /* كلمات محجوزة */ max-height: none; /* قيم عامة */ max-height: ...

الخاصية min-width

الخاصية min-width في CSS تضبط العرض الأدنى للعنصر، وهي تمنع القيمة المستخدمة (used value) للخاصية width من أن تقل عن القيمة المُحدَّدة في الخاصية min-width. بطاقة الخاصية القيمة الابتدائية 0 تُطبَّق على جميع العناصر، ما عدا العناصر السطرية غير المُستبدَلة (non-replaced inline elements)، وأعمدة الجداول، ومجموعات الأعمدة. قابلة للوراثة لا قابلة للتحريك نعم القيمة المحسوبة نسبة مئوية أو طول مطلق أو الكلمة المحجوزة auto. /* <length> أطوال */ min-width: 3.5em; /* <percentage> نسب مئوية */ min-width: 75%; /* كلمات محجوزة */ min-width: none; /* قيم عامة ...

عرض (250 السابقة | 250 التالية) (20 | 50 | 100 | 250 | 500).