Private settings not saving

hi, on my profile page i'm trying to change the privacy settings but it's not saving. I'v played about with the settings in admin (image below) but nothing works.

 

And i'v disabled some plugins i'v just added but it wasn't them ..... help to fix please :) 

 

 

so this when i change to 'private' then save goes back to 'public'

 

 

 

 

and i tested on off with this but still same :( 

 

 

 

 

thank you

  • OK. Last questions - which your PHP and MySQL version?

    profile/userme/edit

    vendor\elgg\elgg\views\default\resources\profile\edit.php

    But you need in our case:

    vendor\elgg\elgg\actions\profile\edit.php

    And as reminder, Don’t Modify Core

  • php version - 5.6 but i can change that upto 7 

     

    mysql is - MARIADB VERSION 10.2

     

    thank you, i haven't modified the core and i wont :) 

     
  • Just some clarifications:

    • Metadata access level is removed only on Elgg 3. On Elgg 2.x the metadata still has the access level attribute and this won't change in the Elgg 2 branch.
    • Elgg 3 still has access level settings for each profile field like on Elgg 2.x. It's just handled differently internally.
    • The site setting of default access level does not change any access level of any existing content. It just changes the pre-selected value (default value) used in any access level input field.
    • On Elgg 2.3.8 the privacy setting (or any change I make) for profile fields is correctly saved for me. I haven't tested on Elgg 2.3.9 yet but from the changelog I don't see anything that would indicate that there have any changes made in this release with regards of handling of access levels / profile fields privacy setting.

    I would suggest to test with ALL 3rd party plugins (any plugins you've added on your own in addition to the bundled plugins) temporarily disabled. It's not failproof to test only with one or a few plugins you might suspect causing the problem disabled. Test with all of them disabled to be sure. If you use cloudflare, test without it. First you have to find out if Elgg core works without issue or not. The problem could be caused by a 3rd party plugin either not compatible with Elgg 2 (if you use an outdated plugin) or it could be a bug in a plugin (specifically some issue with JS code or a race condition with loading of JS code/AMD modules). In consequence this could cause the save action on the profile edit page not finishing correctly or not getting called at all. You can also check the server error log and the browser console if you see any errors (already when loading the profile edit page and also when clicking the save button).

    Once you have solved the issue with the access level of the profile fields you could also give the Private Profiles plugin (https://elgg.org/plugins/1860995) a try. It allows to restrict the access to the profile page either to the user alone (plus admins) or friends of the user only without the need to change the access level of every field separately.

  • @iionly All you wrote is true. But this issue still has on all sites with Elgg 2.3.9 and it isn't related with third-party plugins, or any errors in the code.
    Perhaps, a reason is a server-side and/or database caching.
    I found this on all live sites with nginx.
    On the localhost with Apache a new installed Elgg works OK.

  • @learningbob  Use this plugin to fix the mentioned issue

  • @RvR thank you !! but it's not worked sorry, i cleared the cache and tested with a new profile but it's still the same.

     

     

  • Before making this simple plugin I found that earlier we used custom plugin for profile. This custom plugin rewrote all metadata for our users without this important function:

    register_metadata_as_independent('user');

    This is from the bundled 'Profile' plugin (look at /mod/profile/start.php).

    Be sure that you don't have any changes in the 'Profile' plugin, or Elgg core's files.

    If not, I'm surrendering.

    BTW,  we've restored all metadata with this plugin now ;)

  • @RvR

    hi

    I'm no quite understanding sorry, do you want me to change something in the start.php ? and is the plugin restored now you say ? i'v just installed it again but it's still not worked sorry. 

     

     

  • I tried to explain that you should check your 'Profile' plugin and Elgg core.

    If you had any changes there, then you need to fix it.

  • @learningbob what RvR was trying to say is that if you modified any file of Elgg core or a plugin (especially the profile plugin) on your own you should restore the original file and then test again. If you haven't modified any files you wouldn't have to take any changes back of course.

    @RvR so you have the problem only with Elgg 2.3.9 but not any older version of Elgg and possibly only with nginx? What does you plugin do exactly? What does it fix?

    I think if there's a problem with changing the access level of profile fields since Elgg 2.3.9 it might be best to open an issue (done now at https://github.com/Elgg/Elgg/issues/12317). Maybe a core dev can clarify that.

    I think I will also test it with Elgg 2.3.9 soon. For the time being I still think it worth to test with all 3rd party plugins temporarily disabled - and I really mean ALL at the same time - to see if it makes any difference. With different people having different plugins installed it's difficult to say definitely if it's a core issue or not if it works for some but not for others.