ContributionsMost RecentMost LikesSolutionsWhere are the Dev Docs? When I click on "Developer Docs" in the nav i get to an API endpoint JSON page: Re: Remove unused data from lia-scripts-body-min.js? Well, of course it's an issue in terms of load times, but there's also nothing you can really do about it because that file simply contains all out of the box javascript Khoros could ever use on all of it's pages, it's an "oldschool" bundle that combines all various javascript libraries, plugins etc. into one file and over the years it grew to it's monstrous size... and "unused" bytes is also a bit tricky, they might be unused on the particular page you analyzed, but on otherpages other parts might be used... Re: How to Setup Git repository for deployments in Khoros Classic Short answer: You can't. Slightly longer answer: The only way to get even something "versionable" is to use the SDK and do a plugin export, there are 3: core-plugin, plugin (you'll only have that if Khoros PS did work for your community, you can't create that yourself) and studio-plugin, you'll be most interested in the studio plugin as it basically contains what you can edit in Studio. This is a folder with files that can be tracked via a git repo, but you can't (at least as far as I know) do any kind of deployment (especially not to production) with the SDK. The SDK exports stuff and then uploads/imports modified stuff onto your stage instance. Even though the entire deployment process Khoros uses (Studio Publish) is a git workflow behind the scenes, you do not have any control over that yourself other than using the Versions/Publishing sections within Studio and Admin (Prod) respectively. Re: permissions for the user biography based on user roles Hm, afaik it's not possible for a single profile field do restrict that via permissions/Roles, e.g. it would need some form of customization which certainly can be done. Either the "unsafe"/easy way via Javascript/CSS or if it should also prevent someone who knows how to manipulate code with the browser inspector, it would be a bit more involved. Re: Add anonymous functionality to creating posts or comments Could you please let me know how difficult it would be to implement the functionality to create an anonymous user and allow posts to be published on their behalf? A "global" Anon user can simply be created via Admin > Users > Create User, that user then has a login, e.g. "Anonymous" or whatever, give it the permission to switch users, then you can use API v1 in the endpoint you'd send the anon post to: https://devdocportal.khoros.com/t5/Community-API-v1-Reference/bd-p/restv1docs?section=commv1&leaf-id=AuthenticationManager.sessions.login#AuthenticationManager.sessions.login to get a session token for that anon user which you post with. Then use either API v1 or v2 to create that anon post: https://devdocportal.khoros.com/t5/Community-API-v1-Reference/bd-p/restv1docs?section=commv1&leaf-id=Board.messages.post#Board.messages.post or https://developer.khoros.com/khoroscommunitydevdocs/reference/create-a-message considering tricky stuff like images and attachments as well... as Akenefick said, that's problematic because those files are uploaded on the post page BEFORE the content is posted and are therefore already linked to the original user (technically) and if you want to be really serious about the anon stuff, those should be re-uploaded to the anon user's account, which can't be done in freemarker...e.g. you can't download a file in FreeMarker...afaik. So you'd have to figure out if you can somehow intercept those uploads and do them to the Anon-account instead, which might also be a problem because depending on where that anon-switch is on the post page, the user might not have activated that yet, so the post page wouldn't even know that it should intercept those uploads until it's already too late, e.g. if the files are uploaded first when creating the post and THEN the user activates the "Post anonymously" switch, it won't work properly... (if it can then even be done 😉)...I'd estimate at least 3-5 days of work (finger in the wind...). We do not need deep anonymity; simply hiding the author's email and nickname will suffice. Well, noone can see the author's email if they are not an admin anyways, and if just the username/nickname in the frontend/UI should be "Anonymous" instead of the actual username, that would certainly be much easier, but as I wrote above, anyone remotely familiar with the API could simply find the original author by asking the API for the specific post in question and the API would just spit out the original author's public data... but also with this there would be things to consider: Like activity feeds on the profile page which would also need to be "anonymized" on the UI side and probably many more places you are not thinking about now that will then accidentally show the real username instead of the Anonymous one... Where can I find an example of the default functionality for publishing a post at the endpoint, or does it need to be developed using the API? yes that definitely requires custom posting via the API Considering all of this and the issues mentioned by Akenefick above, it might even be reasonable to try and completely replace the forum post page with a custom form that always posts to a custom endpoint and creates posts via the API...but that's a whole other rabbit hole to go down! Re: Add anonymous functionality to creating posts or comments AbhishekIlindra well, yes, there is the option to post without having to register or log in, but that is not the same as the feature that is requested here. E.g. being registered and logged in but post "as anonymous" (which also in the case of facebook is kinda misleading, the user posting "as anonymous" is hopefully aware that he/she is not anonymous at all, at least not to facebook 😉). But in short: No, there is no such feature OOB in Khoros, but it could probably be done through some customization, the question would be how "deep" the fake "anonymity" should go, should it simply be something that is "displayed" in the UI or should it go futher including API requests etc. In the latter case it would get quite tricky as there is simply always a user id associated with any post (the author)... If it should really go that deep the only way I could imagine right now would be to basically intercept (or rather [re]direct) the post form in case that checkbox/switch is active and send the data to a custom endpoint which would then post the content on behalf of the user as a global/system wide Anonymous user which you would create separately, e.g. all posts from any registered user that activates this anon-switch would be posted from a single global user which would not really allow any "linking" to the original user once it's done. But that comes of course with a bunch of "issues" you might want to consider: - No notifications for the original author - No gamification impact (e.g. kudos, metrics etc.) for the original author - No editing of the post once it's made - Images and attachments are problematic too as they are uploaded before the post is actually sent/saved. - You would also have to consider how to exclude that global Anon-user from leaderboards etc. as it would probably skew those as it's collectively getting Kudos/Solutions etc. for all it's "proxied" posts... - and probably a bunch more I'm not thinking of right now... Re: Add anonymous functionality to creating posts or comments Can you elaborate what you mean by "anonymous for registered users"? That doesn't make any sense to me... Either a user is registered or not (e.g. anonymous). Khoros can allow posting anonymously, e.g. without logging in or registering, but I would definitely not recommend that as you will get flooded with spam. If you mean that regular users that are registered and logged in should be able to post without their "user" attached to what they post: No, that is not easily possible at all and will need major customization, especially if there should really be no way of tracking the user "behind" the anonymous post... e.g. I would not recommend using Khoros for some kind of company internal whistleblower forum or something like that... Re: subscriptions count at article level As far as I'm aware the v2 API subscriptions are internally scoped to the currently authenticated user, which is not very helpful if you want to get subscriptions for anything else but the current or another specific user. I think there might be a way with API v1, but I have to dig in some dusty code, will get back to you if I find it! The API v1 call I had in mind was this (docs here) /restapi/v1/<boards|blogs|groups>/id/<board|blog|group.id>/subscribers/email/board/count?page_size=1000&restapi.response_format=json checked the v1 API reference again to see if we can get subscribers for a specific thread/article because I couldn't get it to work playing around with the calls, but it doesn't seem like there is such a query... also checked if I could construct a similar query for categories (because there are category subscriptions), but it doesn't work either... EDIT: I knew there was something else, but it's a bit more cryptic... So technically for what you are specifically asking you can do this: /restapi/v1/threads/id/<thread.id>/subscriptions/global/type/email?page_size=1000&restapi.response_format=json problem is, there is no /count, at least I get an error if i do this: /restapi/v1/threads/id/<thread.id>/subscriptions/global/type/email/count?page_size=1000&restapi.response_format=json so you'd have to basically page through potentially 1000's of user objects just to get a count, which is not ideal to put it nicely... for categories (and other nodes I assume, didn't do deep testing), the /count seems to work though with a similar query path: /restapi/v1/categories/id/<category.id>/subscriptions/global/email/category/count?page_size=100&restapi.response_format=json there might also be some obscure way to get label subscriptions with something like: /restapi/v1/subscriptions/global/email/textLabel?page_size=100&restapi.response_format=json although I have no example community to play around with where that would be used afaik. The question would be how to scope that call to a specific label text, which I couldn't get to not throw an error... Technically I guess something like this would work for all labels in a specific board: /restapi/v1/boards/id/<board.id>/subscriptions/global/email/textLabel?page_size=100&restapi.response_format=json but I can't confirm... See related docs here and here Re: Access Token expiry time I'm not aware of a setting in Admin to change the expiration time, but maybe I'm not looking in the right place either. I would file a support case with your question! Re: Access Token expiry time Could you elaborate what kind of access token you are talking about?