Fixed an issue querying address field from non-primary site #414
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Problem
Location queries using the map field fail on non-primary sites in multi-site Craft CMS installations. This is due to a strict
JOINcondition that matcheselements_sites.siteIdtoownerSiteId, preventing access to map data saved on different sites.Root Cause
In
MapService::modifyElementsQuery(), theJOINcondition includes:This breaks location queries when:
ownerSiteId = 1)siteId = 2)→ No results are returned since
1 ≠ 2.Solution
JOINcondition.[[elements.id]] = [[alias.ownerId]][[alias.fieldId]] = field->idFiles Changed
src/services/MapService.php: Modified theJOINcondition inmodifyElementsQuery()Impact
This fix eliminates the need for complex workarounds in multi-site templates and makes the plugin's location query functionality work as expected across all sites in a Craft CMS multi-site setup.