Add a “Documents / Library” Page Independent from Spaces
Add a standalone Documents / Library page (not tied to a Space) where admins can upload and organize files like PDFs or guides — perfect for academies that need a clean central hub for learning materials.
https://community.wpmanageninja.com/fluentcommunity-roadmp/#/idea/1079/
Hello Ramsis Kasis , check this, just in case it covers your needs: https://community.wpmanageninja.com/portal/space/community-meta/post/new-cpt-for-community
It's been a while gathering votes (link to roadmap in the post), and I think it will cover also your use case.
An option for this would be to use a plugin such as the ones provided by that provide file management capabilities using Dropbox, Google Drive, OneDrive/SharePoint, or Box.
We've been using the Dropbox version for years on multiple sites and it works great. Add it to a regular WordPress page using the theme compatibility template and it works pretty well. Example screenshot:
Thomas Oates Wow!
This looks super nice Thomas!
How is security handled here? It's a public folder "embedded"?
This would be super interesting at a client-level (so as specific users can see their shared folder too).
__
Eg.: shared resources, consultancy, or even, their contracts with the company.
Jorge de los Reyes The plugins use the APIs of the various cloud storage providers to load the files/folders. Regarding security, there are a few ways to do it. The plugin supports 'user folders' that only the logged in person can access. It also supports setting read/write/upload/etc. access based on WordPress roles so admins could have upload/delete/etc. access while regular users could have only view access (any roles could be used).
What we've done for providing specific folders for groups of users (example: multiple people in group A should have access to folder A) is dynamically create the plugin shortcode using a custom shortcode that sets the base folder for the plugin based on business requirements. In some cases we have a large folder that contains many subfolders (like the folder A mentioned above). Using the custom shortcode to generate the plugin shortcode means we can publish just one WordPress page and it dynamically sets the base folder for the plugin based on who is logged in. It works pretty well. Bit of caution though...due to how the APIs work for the cloud providers, this only works with Dropbox since base folders in the plugin can be set by simply using the Dropbox path. The other cloud providers require an ID for each folder which would be a nightmare to maintain. Hopefully this makes sense....let me know if more info is needed.
Thomas Oates looks quite interesting! Our clients mostly use Google drive (yep, could be tricky to manage by folder ID 😅); do you have more info on your development (in case it’s publicly available of course!).
Jorge de los Reyes Recent versions of the plugins support using user meta data as part of the base folder structure. I haven't tried it yet but I think it would work with Google Drive (or OneDrive/Sharepoint) to do some of the same stuff (link to a base folder by selecting it in the plugin and then dynamically set the visible base folder based on some user or other value). We're thinking of switching from Dropbox to SharePoint if this works well since we use SharePoint for internal storage already.
The development I did is basically just a custom shortcode that reads certain user meta for the logged in user. The shortcode for the plugin has a path parameter so my custom shortcode just figures out the desired subfolder and calls do_shortcode to output the plugin's shortcode.
Here's a snippet from one of my custom shortcodes that shows how it works. 'outofthebox' is the shortcode provided by the cloud plugin. '/website/officers/assessments' is a folder in Dropbox.
$districtposition = strpos($AllPositions, 'President');
if ($districtposition !== false) {
$filesshortcode = '[outofthebox dir="/website/officers/assessments" mode="files" ';
$filesshortcode = $filesshortcode . ' roottext="Documents" upload="1" uploadrole="administrator|authenticated_users" maxfilesize="100 MB" overwrite="1" rename="1" move="1" delete="1" addfolder="1"]';
$output = do_shortcode($filesshortcode);
return $output;
}
I use BetterDocs for that. Just embed it in a page using the FluentCommunity template.