نوع حقل نموذج نموذج فرعي

From Joomla! Documentation

This page is a translated version of the page Subform form field type and the translation is 48% complete.

Outdated translations are marked like this.
Other languages:
العربية • ‎English • ‎español • ‎français • ‎Bahasa Indonesia • ‎Nederlands

إن نوع حقل نموذج "نموذج فرعي" يقدم طريقة لاستخدام نماذج XML داخل بعضها البعض أو اعادة استعمال نماذج موجودة داخل النموذج الحالي.

الحقل يسمح بتضمين نموذج موجود داخل النموذج الحالي. اذا كانت الحاصية multiple موضوعة على true عندها سيكون النموذج "'مكرر'".

يملك الحقل مخططين "محدد مسبقا" لاظهار النكوذج الفرعي كـ "'جدول"' أو كحاوية div ، وبالطبع يسمح باستخدام مخطط خاص بك.

مثال XML تعريف "حقل" لنمط "'وحيد'"

<field name="field-name" type="subform"
    formsource="path/to/exampleform.xml"
    label="Subform Field" description="Subform Field Description" />

مثال XML تعريف "حقل" لنمط "'متعدد'"

<field name="field-name" type="subform"
    formsource="path/to/exampleform.xml" multiple="true"
    label="Subform Field" description="Subform Field Description" />

مثال XML لـ exampleform.xml

<?xml version="1.0" encoding="UTF-8"?>
<form>
    <field name="example_text" type="text" label="Example Text" />
    <field name="example_textarea" type="textarea" label="Example Textarea" cols="40" rows="8" />
</form>

مثال XML لـ exampleform.xml مع "مجموعة حفول"

<?xml version="1.0" encoding="UTF-8"?>
<form>
    <fieldset name="section1" label="Section1">
        <field name="example_text" type="text" label="Example Text" />
        <field name="example_textarea" type="textarea" label="Example Textarea" cols="40" rows="8" />
    </fieldset>
    <fieldset name="section2" label="Section2">
        <field name="example_list" type="list" default="1" class="advancedSelect" label="Example List">
            <option value="1">JYES</option>
            <option value="0">JNO</option>
        </field>
    </fieldset>
</form>

The subform XML may also be specified inline as an alternative to placing the subform XML in a separate file. The following example illustrates this:

<?xml version="1.0" encoding="UTF-8"?>
<field
	name="field-name"
	type="subform"
	label="Subform Field"
	description="Subform Field Description"
	multiple="true"
	min="1"
	max="10"
	>
	<form>
		<field
			name="example_text"
			type="text"
			label="Example Text"
			/>
		<field
			name="example_textarea"
			type="textarea"
			label="Example Textarea"
			cols="40"
			rows="8"
			/>
	</form>
</field>

خصائص الحقل:

  • النوع (أساسي) يجب أن يكون subform.
  • الاسم (أساسي) iهذا هو الاسم الفريد للحقل.
  • التسمية (أساسي) (قابل للترجمة) وهو عنوان وصف للحقل.
  • الوصف (اختياري) (قابل للترجمة) هو النص الذي سيتم اظهاره كتلميح عندما يقوم المستخدم بتحريك الماوس فوق مربع القائمة المنسدلة.
  • مطلوب (اختياري) الحقل يجب أن يعبأ قبل رسال النموذج.
  • الرسالة (اختياري) رسالة الخطأ التي ستظهر بدل الرسالة الافتراضية.
  • الافتراضي (اختياري) وهو القيمة الافتراضية، JSON سلسلة.
  • مصدر النموذج (أساسي) النموذج المصدر الذي سيتضمن. المسار الى ملف xml أو اسم النموذج للبحث بواسطة JForm::getInstance().
  • متعدد (اختياري) الحالة المتعدد لحقل النموذج. إذا ما كان النموذج الفرعي متكرر أو لا.
  • الأدنى (اختياري) عدد الحد الأدنى للتكرار في النمط المتعدد. الافتراضي: "0"
  • الأعلى (اختياري) عدد الحد الأعلى للتكرار في النمط المتعدد. الافتراضي: "1000"
  • تجميع حسب مجموعة حقل (اختياري) تجميع حقول النموذج الفرعي حسب مجموعةالحقل الخاص به (true or false). الافتراضي: false.
  • الأزرار (اختياري) ماهي الأزرار التي ستعرض في نمط متعدد. الافتراضي: اضافة,اعادة حذف,نقل.
  • مخطط (اختياري) اسم المخطط لـ render ادخالات النموذج الفرعي .

المخططات المتاحة:

  • joomla.form.field.subform.default يجعل النموذج الفرعي في حاوية div , بدون دعم التكرار. افتراضي بالنسبة للنمط الوحيد.
  • joomla.form.field.subform.repeatable يجعل النموذج الفرعي في حاوية div , يستخدم للنمط المتعدد. يدعم تجميع حسب مجموعة الحقل.
  • joomla.form.field.subform.repeatable-tableيجعل النموذج الفرعي كجدول , يمكن استعماله لللنمط المتعدد. يدعم تجميع بواسطة مجموعة الحقل. By default render each field as the table بشكل افتراضي يجعل كل حقل كعمود جدول، ولكن إذا كان تجميع بواسطة مجموعة الحقل = "true عندها اجعل كل مجموعة حقل كعمود جدول

"كن حذرا"

إذا كان الحقل في النموذج الفرعي يملك منطق جافا سكريبت اضافي عندها ممكن أن لا يعمل في "النمط المتعدد"، لآنه لا يرى الحقول المضافة من حقل النموذج الفرعي بشكل ديناميكي. وعندما تحدث يجب عليك أن تختار الحقل الخاص بك ليدعمها.

المثال التالي يمكن أن يساعد

jQuery(document).ready(function(){
    ... here the code for setup your field as usual...

    jQuery(document).on('subform-row-add', function(event, row){
        ... here is the code to set up the fields in the new row ...
    })
});

بسبب هذا بعض حقول Joomla! الاضافية يمكن أن لا تعمل حالياً.

لا يقدم النموذج الفرعي التحقق أو التصفية .

Example

Problem

After adding new rows selects are not "chosen".

Solution

Here is an example how to reinit jQuery Chosen on newly added repeated rows:

jQuery(document).ready(function(){
    jQuery(document).on('subform-row-add', function(event, row){
        jQuery(row).find('select').chosen();
    })
});

Or a PHP snippet to be used in e.g. your plugin in **onBeforeCompileHead** method or in your component view.

$doc = JFactory::getDocument();
$js = '
	jQuery(document).on(\'subform-row-add\', function(event, row){
		jQuery(row).find(\'select\').chosen();
	})
';
$doc->addScriptDeclaration($js);

So newly added rows now are "chosen" now

شاهد أيضا