-
Notifications
You must be signed in to change notification settings - Fork 26
[7629] Update old ICE macros to support XB #775
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: develop
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| @@ -1,14 +1,24 @@ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <#macro toolSupport> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <#if modePreview> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <script src="/studio/static-assets/libs/requirejs/require.js" data-main="/studio/overlayhook?.js"></script> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| </#if> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <@initExperienceBuilder props=xbProps /> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <script> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| console.warn('Deprecated macros detected. Please refer to the documentation to migrate to the new macros: https://craftercms.com/docs/4.2/by-role/developer/upgrade/upgrading-in-context-editing.html#upgrading-in-context-editing'); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| const deprecatedIceGroupCount = document.querySelectorAll('[data-craftercms-deprecated-ice-group]').length; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| if (deprecatedIceGroupCount > 0) { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| console.warn('\'iceGroup\' parameter is not supported anymore. Please refer to the documentation to migrate to the new macros: https://craftercms.com/docs/4.2/by-role/developer/upgrade/upgrading-in-context-editing.html#upgrading-in-context-editing'); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Comment on lines
+5
to
+8
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Only mark deprecated Line 77 emits Proposed fix- data-craftercms-deprecated-ice-group="${iceGroup}"
+ <#if iceGroup?has_content>
+ data-craftercms-deprecated-ice-group="${iceGroup}"
+ </#if>Also applies to: 77-77 🤖 Prompt for AI Agents |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| </script> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| </#macro> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <#macro cstudioOverlaySupport> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <@toolSupport /> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| </#macro> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <#-- Macro for component attributes --> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <#-- Macro for component attributes - Sets the attribute to register a component under a dropZone | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| path: Used to retrieve the item from the siteItemService (if no 'component' is provided) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| component: Model object to use for the component attributes | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ice: Not used | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| iceGroup: Not supported | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| --> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <#macro componentAttr path="" ice=false iceGroup="" component={}> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <#if !modePreview> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <#return> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
@@ -18,34 +28,39 @@ | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <#else> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <#assign item = component/> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| </#if> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| data-studio-component="${item.storeUrl}" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| data-studio-component-path="${item.storeUrl}" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <#if ice> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <@iceAttr component=item iceGroup=iceGroup/> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| </#if> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <#if !ice && !item.dom?has_content > | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| data-studio-embedded-item-id="${item.objectId}" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| </#if> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| data-craftercms-model-id="${item.objectId!"__ID_NOT_FOUND__"}" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| data-craftercms-model-path="${item.storeUrl!"__PATH_NOT_FOUND__"}" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| </#macro> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <#-- Macro for drop zone attributes --> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <#-- Macro for drop zone attributes - Sets the attributes to enable an element as a drop-zone | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| target: the fieldId of the dropZone | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| objectId: The objectId of the model | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| component: The model object to use for the drop-zone attributes | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| --> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <#macro componentContainerAttr target objectId="" component={}> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <#if !modePreview> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <#return> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| </#if> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| data-studio-components-target="${target}" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <#local $model = component!contentModel> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <#if component?has_content> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <#-- Use the component object --> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| data-studio-components-objectId="${component.objectId}" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| data-studio-zone-content-type="${component['content-type']}" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <#local $collection = component[target]!{}> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <#else> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <#-- Use objectId for backwards compatibility --> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| data-studio-components-objectId="${objectId}" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| data-studio-zone-content-type="${contentModel['content-type']}" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <#local $collection = contentModel[target]!{}> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| </#if> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| data-craftercms-type="collection" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| data-craftercms-model-path="${$model.storeUrl!"__PATH_NOT_FOUND__"}" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| data-craftercms-model-id="${$model.objectId!"__ID_NOT_FOUND__"}" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Comment on lines
+44
to
+53
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🧩 Analysis chain🏁 Script executed: #!/bin/bash
# Description: Find componentContainerAttr usages that omit component=.
# Expected: Any matches are impacted by the empty-hash fallback issue.
rg -n -C2 --pcre2 '<@componentContainerAttr\b(?![^>]*\bcomponent\s*=)'Repository: craftercms/engine Length of output: 43 🏁 Script executed: #!/bin/bash
# Find the macro definition for componentContainerAttr
rg -n "macro componentContainerAttr" -A 10Repository: craftercms/engine Length of output: 1131 🏁 Script executed: #!/bin/bash
# Find all usages of componentContainerAttr with flexible pattern
rg -n "componentContainerAttr" -B 2 -A 2Repository: craftercms/engine Length of output: 582 🏁 Script executed: #!/bin/bash
# Search for the file itself to verify it exists and check its content
find . -name "cstudio-support.ftl" -type fRepository: craftercms/engine Length of output: 130 🏁 Script executed: #!/bin/bash
# Search for all `@componentContainerAttr` calls to see argument patterns
rg -n "@componentContainerAttr" -B 1 -A 5Repository: craftercms/engine Length of output: 43 🏁 Script executed: #!/bin/bash
# Search for componentContainerAttr in any context
rg -i "componentcontainerattr" -nRepository: craftercms/engine Length of output: 195 🏁 Script executed: #!/bin/bash
# Find files that include or import cstudio-support.ftl
rg -n "cstudio-support" --type ftlRepository: craftercms/engine Length of output: 88 🏁 Script executed: #!/bin/bash
# Find files that include/import cstudio-support.ftl
rg -n "cstudio-support" --glob="*.ftl"Repository: craftercms/engine Length of output: 43 🏁 Script executed: #!/bin/bash
# Search for any componentContainerAttr macro calls with flexible pattern
rg -n "componentContainerAttr\s*\("Repository: craftercms/engine Length of output: 43 🏁 Script executed: #!/bin/bash
# Search all file types for any reference to cstudio-support
rg -n "cstudio-support"Repository: craftercms/engine Length of output: 43 🏁 Script executed: #!/bin/bash
# Look at other macros in the same file to understand invocation patterns
cat src/main/webapp/WEB-INF/templates/system/common/cstudio-support.ftlRepository: craftercms/engine Length of output: 4855 Fix empty-hash fallback bug in The elvis operator on line 44 returns the empty-hash default Move the Proposed fix- <#local $model = component!contentModel>
<#if component?has_content>
+ <#local $model = component>
<#local $collection = component[target]!{}>
<#else>
+ <#local $model = contentModel>
<#local $collection = contentModel[target]!{}>
</#if>📝 Committable suggestion
Suggested change
🤖 Prompt for AI Agents |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <#if target?has_content> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <#---->data-craftercms-field-id="${target}" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| </#if> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| </#macro> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <#-- Macro for ICE attributes --> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <#-- Macro for ICE attributes - Set the attributes to enable ICE on an element | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| iceGroup: If set, opens the form with the fields set on the group | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| path: Used to retrieve the item from the siteItemService (if no 'component' is provided) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| component: Model object to use for the ICE attributes | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| --> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <#macro iceAttr iceGroup="" path="" label="" component={} > | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <#if !modePreview> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <#return> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
@@ -59,41 +74,38 @@ | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <#else> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <#assign item = component/> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| </#if> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <#-- Figure out the label to use --> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <#if label?has_content > | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <#assign actualLabel = label /> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <#elseif iceGroup?has_content > | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <#assign actualLabel = iceGroup /> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <#else> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <#assign actualLabel = item["internal-name"]!"" /> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| </#if> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| data-studio-ice="${iceGroup}" data-studio-ice-label="${actualLabel}" data-studio-ice-path="${item.storeUrl}" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <#-- If the given component has a parent --> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <#if !item.dom?has_content > | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| data-studio-embedded-item-id="${item.objectId}" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| </#if> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| data-craftercms-deprecated-ice-group="${iceGroup}" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| data-craftercms-model-id="${item.objectId!"__ID_NOT_FOUND__"}" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| data-craftercms-model-path="${item.storeUrl!"__PATH_NOT_FOUND__"}" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| </#macro> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <#macro ice id="" component="" componentPath=""> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <script> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| console.warn('Non-working macro \'ice\'. Please refer to the documentation to migrate to the new macros: https://craftercms.com/docs/4.2/by-role/developer/upgrade/upgrading-in-context-editing.html#upgrading-in-context-editing'); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| </script> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Comment on lines
+83
to
+85
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Keep deprecation warning scripts out of delivery mode. These inline scripts are emitted before any Proposed fix <#macro ice id="" component="" componentPath="">
- <script>
- console.warn('Non-working macro \'ice\'. Please refer to the documentation to migrate to the new macros: https://craftercms.com/docs/4.2/by-role/developer/upgrade/upgrading-in-context-editing.html#upgrading-in-context-editing');
- </script>
<#if modePreview>
+ <script>
+ console.warn('Non-working macro \'ice\'. Please refer to the documentation to migrate to the new macros: https://craftercms.com/docs/4.2/by-role/developer/upgrade/upgrading-in-context-editing.html#upgrading-in-context-editing');
+ </script>
<div data-studio-ice="${id}"></div>
</#if>
</#macro>
<#macro draggableComponent id="" component="" componentPath="">
- <script>
- console.warn('Non-working macro \'draggableComponent\'. Please refer to the documentation to migrate to the new macros: https://craftercms.com/docs/4.2/by-role/developer/upgrade/upgrading-in-context-editing.html#upgrading-in-context-editing');
- </script>
<#if modePreview>
+ <script>
+ console.warn('Non-working macro \'draggableComponent\'. Please refer to the documentation to migrate to the new macros: https://craftercms.com/docs/4.2/by-role/developer/upgrade/upgrading-in-context-editing.html#upgrading-in-context-editing');
+ </script>
<#if id != "" && component == "" && componentPath == ""> <#macro componentZone id="">
- <script>
- console.warn('Non-working macro \'componentZone\'. Please refer to the documentation to migrate to the new macros: https://craftercms.com/docs/4.2/by-role/developer/upgrade/upgrading-in-context-editing.html#upgrading-in-context-editing');
- </script>
+ <#if modePreview>
+ <script>
+ console.warn('Non-working macro \'componentZone\'. Please refer to the documentation to migrate to the new macros: https://craftercms.com/docs/4.2/by-role/developer/upgrade/upgrading-in-context-editing.html#upgrading-in-context-editing');
+ </script>
+ </#if>
<div class="cstudio-component-zone" id="zone-${id}">Also applies to: 92-94, 117-119 🤖 Prompt for AI Agents |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <#if modePreview> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <div data-studio-ice="${id}"></div> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| </#if> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| </#macro> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <#macro draggableComponent id="" component="" componentPath=""> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <script> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| console.warn('Non-working macro \'draggableComponent\'. Please refer to the documentation to migrate to the new macros: https://craftercms.com/docs/4.2/by-role/developer/upgrade/upgrading-in-context-editing.html#upgrading-in-context-editing'); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| </script> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <#if modePreview> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <#if id != "" && component == "" && componentPath == ""> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <@ice id=id> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <div id='${id}' class='cstudio-draggable-component'><#nested></div> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| </@ice> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <#elseif id == "" && componentPath == ""> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <@ice component=component> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <div id="cstudio-component-${component.key}" class='cstudio-draggable-component'><#nested></div> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <div id="cstudio-component-${component.key}" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| class='cstudio-draggable-component'><#nested></div> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| </@ice> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <#elseif id == "" && component == ""> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <@ice componentPath=componentPath> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <div id="cstudio-component-${componentPath}" class='cstudio-draggable-component'><#nested></div> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <div id="cstudio-component-${componentPath}" | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| class='cstudio-draggable-component'><#nested></div> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| </@ice> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| </#if> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <#else> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
@@ -102,6 +114,9 @@ | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| </#macro> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <#macro componentZone id=""> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <script> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| console.warn('Non-working macro \'componentZone\'. Please refer to the documentation to migrate to the new macros: https://craftercms.com/docs/4.2/by-role/developer/upgrade/upgrading-in-context-editing.html#upgrading-in-context-editing'); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| </script> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <div class="cstudio-component-zone" id="zone-${id}"> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <@ice id=id> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| <#nested> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧩 Analysis chain
🏁 Script executed:
Repository: craftercms/engine
Length of output: 2455
🏁 Script executed:
Repository: craftercms/engine
Length of output: 88
🏁 Script executed:
Repository: craftercms/engine
Length of output: 88
🏁 Script executed:
Repository: craftercms/engine
Length of output: 88
🏁 Script executed:
Repository: craftercms/engine
Length of output: 107
🏁 Script executed:
Repository: craftercms/engine
Length of output: 107
🏁 Script executed:
Repository: craftercms/engine
Length of output: 107
🏁 Script executed:
Repository: craftercms/engine
Length of output: 149
🏁 Script executed:
Repository: craftercms/engine
Length of output: 408
🏁 Script executed:
Repository: craftercms/engine
Length of output: 43
🏁 Script executed:
Repository: craftercms/engine
Length of output: 162
🏁 Script executed:
Repository: craftercms/engine
Length of output: 43
🏁 Script executed:
Repository: craftercms/engine
Length of output: 1596
🏁 Script executed:
Repository: craftercms/engine
Length of output: 43
🏁 Script executed:
Repository: craftercms/engine
Length of output: 450
🏁 Script executed:
Repository: craftercms/engine
Length of output: 1315
🏁 Script executed:
Repository: craftercms/engine
Length of output: 209
🏁 Script executed:
Repository: craftercms/engine
Length of output: 1161
🏁 Script executed:
Repository: craftercms/engine
Length of output: 43
🏁 Script executed:
Repository: craftercms/engine
Length of output: 6442
🏁 Script executed:
Repository: craftercms/engine
Length of output: 43
🏁 Script executed:
Repository: craftercms/engine
Length of output: 77
🏁 Script executed:
Repository: craftercms/engine
Length of output: 110
Guard optional
xbPropsbefore invoking Experience Builder in deprecated macros.Line 2 references
xbPropswithout defining it as a macro parameter or providing a fallback default. AlthoughtoolSupportandcstudioOverlaySupportappear to be unused legacy code (not called from any templates or Java code), applying a defensive default is appropriate if these deprecated macros are ever invoked from external code.Proposed fix
📝 Committable suggestion
🤖 Prompt for AI Agents