0

I recently updated EE to 5.1.3, and am running MSM. Since the update, when I add a new field group or channel field to one site, it publishes across all sites (and recognizes already existing ones). It is recognizing the {short_name} from the other sites and preventing me from creating the same in any new site. Is there a known way to isolate new groups and fields to each site?

0

Proceed with caution and at your own risk

So, I've been actually been experimenting with doing the opposite.

I have a site with a lot of MSM sites, and before (EE2.x, EE3.x), we'd have one field and it's implementation recreated over and over in the different sites so content editors would have a uniform field for this particular component. This was always a pain point, as it is a complex Matrix field and having to recreate it for each site has basically sucked.

Now, since we've upgraded to the latest EE4, new fields are available across sites. So what we'd like to do is take this one version of this field we repeat across sites, and make it cross site available. We have one site where the field is used a lot, and all the other sites use the field in basically one channel and one template, so for all the other MSM sites, reusing the field and copying over data for just a few channel entries per site is not a big deal.

I haven't implemented this solution, as it's just in the testing phase, and a bit of a side project to some other stuff.

What I did was take the field we want to share across sites, and modify it's row in the exp_channel_fields table. Each row is part of a field record, and has a site_id column. In EE4, when you create a new field, the site_id is set to 0, which shares it across all sites. So I changed our (old field) field we want to re-use across sites to have 0 in that column, and boom, the field became available for all sites. I was able to add it to another site, and it accepted and saved data, and outputted in a template.

Now, it's possible that you may be able to do the opposite; you might be able to take your field and modify it's channel_id to match the site you want to contain it to. My first thought is that if you have assigned this field to two different MSM sites, messing with this value will break things. The other thing I can't tell you is if this will actually solve your problem.

Ultimately, this might be a bug in EE now that it shares fields across sites, and it seems you've stumbled on a situation where fields can have the same short_name value now, were as previously I don't think you could do that.

I suggest spinning up a local or dev installation of your site, and give it a try. If you do, let us know if it works. You might want to also ask on the EE Slack as you can actually get the ear of a member of EE dev team there.

  • This is a very intriguing possibility. I will give this a go tomorrow in the dev environment and post back my results. Your comment, @jrothafer, on the site_id in EE4 would explain my surprise, since I jumped from 3.5 to 5, bypassing EE4. – J. Petreikis Feb 6 at 3:29
  • Apologies for the delay in getting back on this. Altering the site_id in the exp_channel_fields worked like a charm. Additionally, I needed to do the same for the exp_field_groups. So far, I have not noticed any negative issues. It is a bit of a convoluted fix, but it is working. Hopefully EE will add some flexibility to site selection in the MSM when creating new fields. – J. Petreikis Feb 12 at 16:31

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.