[resolved] Per user screen options overwrite per site custom meta boxes (16 posts)

  1. Jennifer M. Dodd
    Posted 4 years ago #

    I'm having some issues with screen options on a multisite installation. Some plugins add custom meta boxes to the Post editing page, but in this install, these plugins are not active on all blogs. Screen options for one blog are overwritten when a user sets preferences on another blog.

    I'd like to know if this could be considered a bug, since the function add_meta_box is provided, and ms-installations do not require that the same plugins be active on all sites.

  2. It's likely a bug with those particular plugins.

  3. Jennifer M. Dodd
    Posted 4 years ago #

    These users want different Write Post configurations based on what they're using the blogs for, and that's not possible because the settings for screen options are stored in per user options closedpostboxes_post, metaboxhidden_post, meta-box-order_post, and screen_layout_post instead of per user, per blog options, like dashboard_quick_press_last_post_id and capabilities.

    Plugins are incidental to the problem; I can set up screen options for one blog the way I want them, and then have those screen options overwritten if I set things up differently for a different blog. They only brought the issue to light because users were resetting their screen options every time a plugin-generated meta box was moved on the Write Post page to make it more convenient. If the blog did not use other plugins installed on the system, those screen options would be lost for other blogs when they reconfigured their current screen options.

  4. You could activate the plugin per the blogs that need it?

  5. Jennifer M. Dodd
    Posted 4 years ago #

    I'm talking about the Write Post AJAX ability to drag meta boxes around the page for the users' convenience. Each plugin is only active on the blogs that need it, and this situation also arises when a user wants each blog to have its own Write Post appearance. (Slug under the title, slug in the sidebar, etc.)

    With plugins specifically, there's a lot of this: Blog A, Blog B, Plugin X, Plugin Y. Blog A uses Plugin X, Blog B uses Plugin Y. A user moves the metabox from Plugin X to a different column on the screen. If she moves the metabox for Plugin X (on Blog A), she loses the screen options location for Plugin Y on Blog B.

    I can filter get_user_option() but there is no equivalent filter for update_user_option(). Tracing back, update_metadata() is the soonest I can apply a filter to create a shadow system of per-user-per-blog preferences. I would like to know if this is an intentional behavior, a feature request, or an unintended consequence of having global screen options.

  6. Oh. Okay, coffee kicked in.

    I'm going to go with "unintended consequence of having global screen options" alas :/ It may have been intentional (that is - the setup you want when you edit posts should be the same for ALL posts) by the assumption that you want your edit screens to always look the same for your own sanity.

  7. Jennifer M. Dodd
    Posted 4 years ago #

    I get the global thing for sanity's sake, I do. But the behavior here--users with access to many blogs, different sets of plugins on each blog--was dismissed by my users as just "weird unexplainable boxes moving and opening and closing" behavior, when it wasn't. It makes sense when all blogs are running the same plugins, but in a multisite environment, that's not a guarantee.

    I'm following the procedures for Before You Report a Bug to figure out if this is a bug or something I need to code around. I'd bet, however, that this is not a unique circumstance and other users just haven't identified why their Write Post setup changes between blogs.

  8. And your reasoning for why it's ... mmm ... wrong? makes sense too. Not the best word choice, but you get what I mean.

    The only problem is I suspect your use-case, that is the number of people who see this as a problem, is going to be pretty small. Most people don't change their Write Post setup per blog, so it never changes for them.

  9. Jennifer M. Dodd
    Posted 4 years ago #

    I know I have power-users who are all about customizing their stuff for ease of use, and that most people don't even touch their Write Post setup. Thing is, with plugins adding meta boxes, this issue is going to come up again, albeit rarely. Most users who add a custom meta box are going to want to use it frequently, which means putting it where it is most useful on the page. Having it move back to a default position when the screen options are overwritten by a different blog is the exact opposite of a customizable interface.

    I would be happy to move this to wp-hackers or #wordpress if you think it is more appropriate there.

  10. I think posting in trac is a right place. wp-hackers would also be a good place, as they may have ideas :)

  11. doh, caffeine kicked in here too... hey, I know you... :D

    My best gues is to see if it's reproducible over at wordpress.com, which of course does not have that plugin. But I think (?) we're talking about user settings, which are global across the network. things like user settings on a particular *site* should not be global, so that makes me lean back towards that plugin not doing any multisite checks. A lot don't and this is what we see.

  12. Jennifer M. Dodd
    Posted 4 years ago #

    @Andrea_r This is about configuring the Write Post page using WordPress's own AJAX to move the meta boxes around. Some plugins add custom meta boxes, but the issue isn't confined to plugins.

    I can rearrange a Write Post page by dragging the meta boxes and setting Screen Options on one blog. If I do this on a different blog, my first blog's settings are overwritten, as the Screen Options and meta box configuration are global per user, not per site per user.

  13. Andrea - I know from experience that if I change the layout of a dashboard for myself on Site1, it will be the SAME changed layout on Site2. If I change it on Site2, Site1 is changed. Etc. etc. ad naseum.

    I thought it was default (expected, if annoying) behavior.

    ETA: That said, I know I can set Site1 to use visual editor, and site2 to use HTML, and THAT never gets overwritten....

  14. Jennifer M. Dodd
    Posted 4 years ago #

    I'd argue that the Dashboard and Posts listing page appearance should also have a default behavior but be customizable on a per user, per blog basis because meta boxes (from plugins) can be added to the Dashboard and custom columns to the Posts listing page.

  15. *light bulb goes on*

    I definitely think it should be something up for discussion. #wp-dev would be the place to ask if it's trac worthy, kinda like the pre-discussion stage for tickets.

  16. Jennifer M. Dodd
    Posted 4 years ago #

Topic Closed

This topic has been closed to new replies.

About this Topic