it-swarm.com.de

Verwendung von Unterformularen in verschachtelten Unterformularen

Ich möchte Showon in einer verschachtelten XML-Datei verwenden und auf den Feldnamen der ursprünglichen XML-Datei verweisen.

Ich habe gelesen, dass dies in Joomla nicht möglich ist! Unterformulare, denn wenn ich denselben Feldnamen im Unterformular erstellen würde, welches würde es wählen? (Ich persönlich würde für den nächsten stimmen, d. H. Den in der richtigen XML).

Wie auch immer, das ist nicht möglich. Gibt es einen anderen Weg?

Hier sind meine Dateien

Hauptunterformular

<?xml version="1.0" encoding="UTF-8"?>
<form>
  <fieldset name="image-fieldset">
    <field name="media_manager_or_url"
          type="list"
          label="MOD_KOU_BACKGROUND_IMAGE_WITH_TEXT_MEDIA_MANAGER_OR_URL_LABEL"
          description="MOD_KOU_BACKGROUND_IMAGE_WITH_TEXT_MEDIA_MANAGER_OR_URL_DESCRIPTION"
          default="0"
          >
            <option value="0">MOD_KOU_BACKGROUND_IMAGE_WITH_TEXT_MEDIA_MANAGER</option>
            <option value="1">URL</option>
    </field>
    <field name="images-subform"
            label= "MOD_KOU_BACKGROUND_IMAGE_WITH_IMAGES_SUBFORM_LABEL"             
            description= "MOD_KOU_BACKGROUND_IMAGE_WITH_IMAGES_SUBFORM_DESCRIPTION"
            type= "subform"
            min= "1"
            max= "1000"
            required= "true"
            formsource= "/modules/mod_kou_background_image_with_text/xml/media_manager_or_url.xml"
            multiple= "true"
            buttons= "add,remove"
            layout="joomla.form.field.subform.repeatable"
            groupByFieldset="false"
  />        
  </fieldset>
</form>

sekundäres Unterformular

<?xml version="1.0" encoding="UTF-8"?>
<form>
  <fieldset name="media-manager-or-url-fieldset">
    <field name="image"
          type="media"
          label="MOD_KOU_BACKGROUND_IMAGE_WITH_TEXT_IMAGE_LABEL"
          description="MOD_KOU_BACKGROUND_IMAGE_WITH_TEXT_IMAGE_DESCRIPTION"
          showon="media_manager_or_url:0"
          />       
    <field  name="url"
            type="url"
            label="MOD_KOU_BACKGROUND_IMAGE_WITH_TEXT_URL_LABEL"
            description="MOD_KOU_BACKGROUND_IMAGE_WITH_TEXT_URL_DESCRIPTION"
            showon="media_manager_or_url:1"            
    />
    <field  name="real-size"
            type="text"
            label="MOD_KOU_BACKGROUND_IMAGE_WITH_TEXT_REAL_SIZE_LABEL"
            description="MOD_KOU_BACKGROUND_IMAGE_WITH_TEXT_REAL_SIZE_DESCRIPTION"            
    />
    <field  name="size"
            type="text"
            label="MOD_KOU_BACKGROUND_IMAGE_WITH_TEXT_SIZE_LABEL"
            description="MOD_KOU_BACKGROUND_IMAGE_WITH_TEXT_SIZE_DESCRIPTION"            
    />               
  </fieldset>
</form>
2
Eoin

Durch Aufteilen der Dateien in mehrere Unterformulare können Sie showon verwenden. Hier ist, was ich am Ende hatte.

Hauptunterformular

<?xml version="1.0" encoding="UTF-8"?>
<form>
  <fieldset name="image-fieldset">
    <field name="media_manager_or_url"
          type="list"
          label="MOD_KOU_BACKGROUND_IMAGE_WITH_TEXT_MEDIA_MANAGER_OR_URL_LABEL"
          description="MOD_KOU_BACKGROUND_IMAGE_WITH_TEXT_MEDIA_MANAGER_OR_URL_DESCRIPTION"
          default="0"
          >
            <option value="0">MOD_KOU_BACKGROUND_IMAGE_WITH_TEXT_MEDIA_MANAGER</option>
            <option value="1">URL</option>
    </field>
    <field name="media-manager-images-subform"
            label= "MOD_KOU_BACKGROUND_IMAGE_WITH_IMAGES_SUBFORM_LABEL"             
            description= "MOD_KOU_BACKGROUND_IMAGE_WITH_IMAGES_SUBFORM_DESCRIPTION"
            type= "subform"
            min= "1"
            max= "1000"
            required= "true"
            formsource= "/modules/mod_kou_background_image_with_text/xml/media_manager_images_subform.xml"
            multiple= "true"
            buttons= "add,remove"
            layout="joomla.form.field.subform.repeatable"
            groupByFieldset="false"            
  />       
    <field name="url-images-subform"
            label= "MOD_KOU_BACKGROUND_IMAGE_WITH_IMAGES_SUBFORM_LABEL"             
            description= "MOD_KOU_BACKGROUND_IMAGE_WITH_IMAGES_SUBFORM_DESCRIPTION"
            type= "subform"
            min= "1"
            max= "1000"
            required= "true"
            formsource= "/modules/mod_kou_background_image_with_text/xml/url_images_subform.xml"
            multiple= "true"
            buttons= "add,remove"
            layout="joomla.form.field.subform.repeatable"
            groupByFieldset="false"
            showon="media_manager_or_url:1"
  />          
  </fieldset>
</form>

sekundäres Unterformular

<?xml version="1.0" encoding="UTF-8"?>
<form>
  <fieldset name="media-manager-or-url-fieldset">
    <field name="image"
          type="media"
          label="MOD_KOU_BACKGROUND_IMAGE_WITH_TEXT_IMAGE_LABEL"
          description="MOD_KOU_BACKGROUND_IMAGE_WITH_TEXT_IMAGE_DESCRIPTION"
          showon="media_manager_or_url:0"
          />       
    </field>
    <field  name="url"
            type="url"
            label="MOD_KOU_BACKGROUND_IMAGE_WITH_TEXT_URL_LABEL"
            description="MOD_KOU_BACKGROUND_IMAGE_WITH_TEXT_URL_DESCRIPTION"
            showon="media_manager_or_url:1"            
    />
    <field  name="real-size"
            type="text"
            label="MOD_KOU_BACKGROUND_IMAGE_WITH_TEXT_REAL_SIZE_LABEL"
            description="MOD_KOU_BACKGROUND_IMAGE_WITH_TEXT_REAL_SIZE_DESCRIPTION"            
    />
    <field  name="size"
            type="text"
            label="MOD_KOU_BACKGROUND_IMAGE_WITH_TEXT_SIZE_LABEL"
            description="MOD_KOU_BACKGROUND_IMAGE_WITH_TEXT_SIZE_DESCRIPTION"            
    />               
  </fieldset>
</form>

Durch Aufteilen des Formulars in Teilformulare, was nicht meine erste Logik war, konnte ich dieses Ergebnis ohne Verwendung von JavaScript erzielen.

Der leichte Nachteil war, dass ich anstelle von 1 Unterformular mit 4 Elementen zwei mit 3 Elementen verwenden musste. Für mich war dieser Kopier- und Einfügevorgang einfach genug und löste mein Problem nur mit Joomla! Ader.

3
Eoin