Uploaded image for project: 'eZ Publish / Platform'
  1. eZ Publish / Platform
  2. EZP-29825

As a dev, I want to be able to override content edit form fields for specific Content Types

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: High High
    • Resolution: Fixed
    • Affects Version/s: 2.3.2
    • Fix Version/s: 2.4.0-beta1
    • Component/s: None
    • Labels:

      Description

      Hello,

      Customer is asking how to customize some edit form fields when editing a Content of a specific ContentType (let's say article for example).
      In legacy this was done by something like:

      [edit_article_title]
      Source=content/datatype/edit/ezstring.tpl
      MatchFile=content/datatype/edit/article_title.tpl
      Match[class_identifier]=article
      Match[attribute_identifier]=title
      

      According to me (but I'm maybe missing something here), this could be easily done using the ViewProvider on the content_edit_view with a specific `form_templates` parameter. This form_templates parameter is an array of templates' paths and will be used to define the form_theme with the `default_form_templates`. This is done here : https://github.com/ezsystems/ezplatform-admin-ui/blob/master/src/bundle/Resources/views/content/content_edit/content_edit_base.html.twig#L4

      So to give a concrete example I would have something like this to override some edit form fields for 'Article' Contents :

      system:
          admin_group:
                  content_edit_view:
                      full:
                          ezplatform_admin_ui_article:
                              template: '@ezdesign/content/content_edit/content_edit.html.twig'
                              match:
                                  Identifier\ContentType: [article]
                              params:
                                  viewbaseLayout: '@ezdesign/layout.html.twig'
                                  form_templates: ["@ezdesign/content/content_edit/article_form_fields.html.twig"]
                          ezplatform_admin_ui:
                          template: '@ezdesign/content/content_edit/content_edit.html.twig'
                          match: true
                          params:
                              viewbaseLayout: '@ezdesign/layout.html.twig'
      
      

      with 'article_form_fields.html.twig' having some specific form fragments to use (pure symfony here, no need to be exposed).

      Untill here evrything is ok.

      The issue I'm having here is that `form_templates` (here containing 'article_form_fields.html.twig' path) will be merged with the default_form_templates ( see github repo link above ) in a way that custom form templates can't override default form templates :

      Actual version :

      form_templates|merge(default_form_templates)

      (so default_form_templates will be added AFTER form_template in the new array)

      Needed version :

      default_form_templates|merge(form_templates)

      Here our custom form templates will be able to override the standard form templates in the `form_theme` because default form_templates will be BEFORE in the merged array.

      And from my understanding and manual tests done, this is not giving side effects on other parts of the admin.

      Long story for short fix...

        Issue Links

          Activity

          Show
          Michał Szołtysek added a comment - PR: https://github.com/ezsystems/ezplatform-admin-ui/pull/720
          Hide
          Michał Szołtysek added a comment -

          QA Approved.

          Show
          Michał Szołtysek added a comment - QA Approved.
          Show
          Michał Szołtysek added a comment - Merged to master: https://github.com/ezsystems/ezplatform-admin-ui/commit/554ddf2b6ccb49091dd04451038dfafc62399ad6

            People

            • Assignee:
              Unassigned
              Reporter:
              Stéphane Diot
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: