Endpoint: External api gives in correct json data
Hi, I am able to retrieve user location using bing api. Environment: staging Issue here is: When I try to call bing api with Ajax, it gives me correct user location. When I call same api using endpoint + http.client.request, api gives me in-correct solution. Are there any proxy settings blocking endpoint to provide correct location in Khoros staging?Solved210Views0likes4CommentsBest Practices for adding a 2nd Font-Face?
Similar to previous post, but a bit more vague in case that helps with answer-ability. I mean, I can add: @import url('https://fonts.googleapis.com/css2?family=Roboto&display=swap'); and font-family: 'Roboto', sans-serif; But, are there any caching/performance mechanisms I should be leveraging? Does anyone else use 2 fonts w/ no consequences?Solved119Views0likes2CommentsCustomizing the My Settings page
Hi, I am trying to figure out how to customize the elements that are part of the My Settings page such as My Bookmarks and My Subscriptions. However there is no pages in the Studio Page-editor for those. All I see is a component called tabs. Please let me know what I am missing.Solved163Views0likes4CommentsGrouphubs: How to remove Role using api
Hi, I would like to remove/add group hub roles(owner/member) to a user on clicking of a button. But V1 api mentioned in docs isn't working, can anyone guide the mistake in below request: https://community.lithium.com/restapi/vc/groups/id/grouphubID/roles/name/rolename(owner/member)/users/remove?role.user=/users/login/usernameSolved211Views0likes3CommentsHow to refer editor(post page) in custom page
Hi, I am trying to add post page editor in custom page. I tired to render below component in custom page and didn't work. <component id=''editor" /> Before developing custom editor component, I would like to check if we have any other options available in Khoros studio.189Views0likes3CommentsJoin node/group 301 API error
Hi, I was able to implement Leave node successfully using membership API(Javascript). But Join node API is returning 301 error and I don't see error details, can we see actual error details to find the issue? Code: I am calling below function on button click. function joinNode() { const options = { method: 'POST', headers: {Accept: 'application/json', 'Content-Type': 'application/json'} }; console.log(options); fetch('https://lithium.com/api/2.0/nodes/grouphub:'+groupID + '/membership_requests', options) .then(response => response.json()) .then(response => console.log(response)) .catch(err => console.error(err)); } Error details from console: POST https://lithium.com/api/2.0/nodes/grouphub:MexicoPowerApps/membership_requests 500 {status:'error',message:'An unexpected error occurred.',data:{…},metadata:{…}}data:code:301 developer_message:"" more_info:"" type:"error_data" [[Prototype]]:Object message:"An unexpected error occurred." metadata:{} status:"error" [[Prototype]]:ObjectSolved113Views0likes2CommentsDescrepancy between Top Accepted Solutions and Kudos Leaderboards
Dare I say I'm getting tired of spending my sleeping hours tweaking Khoros UX - it's outside my job responsibilities but drives me bananas. Example from staging: Kudos Leaderboard looks like this: Top Accepted Solutions leaderboard looks like this. I'll admit, there is a chance I've modified some sort of .lia-panel property that inadvertently broke this page....but, tracking down the CSS quickly becomes a sore subject b/c as a 16-year programmer, the Studio CSS editor is becoming the last straw. Aside from applying a bunch of CSS to try to match things up, is there an easy way to get the Solutions Leaderboard page to use the same transform/parser that the Kudos Leaderboard uses?Solved140Views0likes2CommentsQuilt Problem: Adding Row of 3 Columns Below Row Main (but keep max 1200px)
I added a row "row-main-lower" to the quilt & put 3 columns in there, but the 3 columns stacked on top of each other. If I put them in row-main-bottom, they go side-by-side (but extend all the way across the page) I see in the CSS, row-main is getting some magic treatment: While I can start applying those props to my new row (row-main-lower), I assume there's a bunch of other responsive stuff to consider. Core Question: What I'm really trying to do with that 1200px max area is: row-main: 2 columns row-main-bottom: 3 columns How would you go about putting 3 columns below the 2 columns?91Views0likes1CommentHow to identify SSO ID for Digital Adoption Platform?
<script> window.Appcues.identify( "<<< USER_ID >>>", // unique, required { // recommended (optional) properties createdAt: 1566932390, // Unix timestamp of user signup date purchasedAd: 1566932395, // Unix timestamp of account purchase date (leave null if empty) planTier: "Standard", // Current user’s plan tier role: "Admin", // Current user’s role or permissions accountId: "1234", // Current user's account ID firstName: "John", // current user's first name // additional suggestions companyName: "Acme Corp", // Current user’s company name email: "john.doe@example.com", // Current user's email location: "90210", // a zipcode, state, or country enables location-based targeting version: "2.0", // users on different versions may need to see different content language: "spanish", // for multi-language applications renewalDate: 1577880288 // to remind users to renew } ); </script> I'm looking to add a Digital Engagement Platform via JavaScript on to my community. In order to track users we need to provide a unique identifier for each user. I've copied the sample script from their website and they identify what is supposed to be swapped out. However I'm having trouble identifying what should be used for the SSO ID value in the sample code above in place of"<<< USER_ID >>>" After the correct syntax is determined I also need to ensure it is being placed in the right place in Stuido > Community Style > Wrapper > Custom Skin. Any other information on how I can identify other fields would be helpful as well. For example we might like to do the following. Trigger at number of visits Trigger # of days after account creation date Trigger at specific Rank Trigger with specific Roles Trigger for sponsor status Trigger for certain companies Trigger if custom date is Today Trigger for certain languages From Page Hitbox I'm seeing: standard fields: <#assign khorosUserID = user.id /> <#assign communityUsername = user.login /> <#assign emailAddress = user.email /> We also have some custom fields <#assign quitDate = user.get("profile.quitDate")!"No quit date selected" /> <#assign payerInfo = user.get("profile.company.name")!"" /> <#assign eligibleForNRT = user.get("profile.nrt")!"false" /> <#assign personID = restadmin("/users/id/${user.id}/sso_id").value!"" /> <#assign sponsoredStatus = user.get("profile.sponsored.status")!"" /> <#assign language = user.get("profile.language")!"" /> I do also see in the hitbox personID = '${personID}'; Hopefully someone can point me in the right direction so I can learn this a little better and expand upon it. TIASolved194Views0likes4CommentsSimple redirect to "my profile" page
Here's how you can create a simple redirect to land your users on their profile page via an easy to share URL. Create an endpoint called myprofileredirect with the following content: <#if user.anonymous > ${http.response.setRedirectUrl(webUi.getUserLoginPageUrl("/plugins/custom/YourID/YourID/myprofileredirect"))} <#else> ${http.response.setRedirectUrl("${user.webUi.url}")} </#if> (If you don't know the ID to use in the anonymous redirect, just save it and you'll see a link to "open the endpoint" where you can get the URL path). Ask support to create two new vanity URLs, both pointing to the endpoint. /myprofile /me Seriously, it's that easy (once published, of course). The user.webUi.url FreeMarker object returns the user's profile ID and if a user isn't logged in, they'll be taken to the login page first, by way of webUi.getUserLoginPageUrl. Enjoy!89Views7likes0CommentsHow to retrieve all the users data using LiQL/API with email/SSO_id filter?
Hi All, New to Khoros and I am trying to figure out how to retrieve and as well as update the bulk users data. How can I retrieve all the users data using LIQL/ API calls? I need toretrieve all the users to update the email of bulk users (replacing invalid emails with valid emails). How can I query all the users in our community? also how to use SSO_ID or email with LIKE or MATCH in LiQL to query users that has email/SSO_ID with certain pattern (query all user with email or sso ends with "@company.com"). It seems like email cannot be user in where and SSO_Id cannot be used with LIKE, are there any other ways to apply filter for these two columns? I do see that API 2.0 results in only 25 records when I execute with below API https://community.mycompany.com//api/2.0/search?q=select+*+from+users. Appreciate any direction128Views0likes2CommentsError while installing lithium-sdk on Windows 10
Running into 'Failed at the node-sass@3.13.1 postinstall script' error while trying to install lithium-sdk on Windows using -npm install -global lithium-sdk Error: ' This is a bug in `node-gyp`.' I have the prerequisites installed: windows-build-tools gulp Node is set to 11.15.0 via NVM(Running into the same error with 8.3.0, of which the ss is) Build tools is set to 2017 using - npm config set msvs_version 2017 Any help would be appreciated!Solved186Views0likes2CommentsHow to re-use component with different content for each grouphub page
I have created a hero component which has headline, paragraph and background image. Now I would like to re-use same here component for different grouphub pages but WITH DIFFERENT CONTENT. I wasn't able to find out any approach in Khoros docs, what would be the best approach to implement re-usability of components?Solved182Views0likes5CommentsEvents Add to Calendar Button: How We Built It
Before we get into this, a couple disclaimers: I'm self-taught and a one-man-band on our team for Khoros dev. I'm still learning best practices and Khoros dev in general, so if something is done poorly or wrong, please let me know and I'll fix it and update this post. Also, I'm sharing this with no guarantees that it'll make all your dreams come true or work the way you're hoping. I'm not responsible for broken communities (or broken dreams). And finally, this depends on the amazing open source https://github.com/add2cal/add-to-calendar-buttonproject, which I have no affiliation with and can make no guarantees about. It's working for us but might not meet the requirements of your project/community. Now, on to the good stuff! We're always looking for ways to promote our live events/webinars and improve the community event experience. One thing we've heard a lot is that ICS files are not a great experience and some of our users have no idea what to do with them. After scouring the internets for solutions, I stumbled across the afore-mentioned Add to Calendar Button open source project. Perfect! I stuck a bit of FreeMarker code into it and here we go, a huge upgrade to the Add to Calendar functionality in Events boards. Check out the Github repository for full details on customization, but there's a lot you can do with this tool. I'll walk you through my basic code (again, I'm a n00b, so please forgive any inefficiencies or bad practices) The first bit, we need to load the custom CSS and JS needed to make the button work and look nice. I've downloaded these and put them in our assets folder as I was having issues getting the CDN to work properly. Load them however works best for you. Putting them in assets also let me customize the CSS and swap out a few icons. Then I have a query to pull in some event data from the message being viewed (using env.context.message.uniqueId to get the current message ID) Then a quick if statement to check if the user is logged in. If they are, I grab their timezone from their profile. If not, I set a default timezone. <!--Load the Add to Calendar Button stylesheet and JS--> <link rel="stylesheet" href="${asset.get("/html/assets/atcb.min.css")}"> <script src="${asset.get("/html/assets/atcb.min.js")}" async defer></script> <!--Query to get event data for the current event page--> <#assign eventsQry=rest("2.0","/search?q=" + " SELECT subject, body, occasion_data FROM messages WHERE id='${env.context.message.uniqueId}'"?url).data.items /> <!--Check if the user is logged in, if they are get their timezone set in their profile. If not, set a default timezone--> <#if user.anonymous==false> <#assign userTimeZone = rest("/users/login/${user.login}/settings/name/config.timezone").value /> <#else> <#assign userTimeZone='US/Mountain' /> </#if> Next, I list out the event data from the query. A bit of timezone conversion and date/time formatting, and we have variables with separate dates and times in the user's timezone for our event. These must be formatted this way to work with the ATCB code. <#list eventsQry as eventPosts> <!--Do some date/time conversion for the user's timezone and give us separate date variables and time variables formatted properly for the ATCB requirements--> <#assign eventDateStartOld=eventPosts.occasion_data.start_time?datetime /> <#assign eventDateStart=eventDateStartOld?iso("${userTimeZone}")?datetime("yyyy-MM-dd'T'HH:mm:ss")?string("yyyy-MM-dd") /> <#assign eventTimeStart=eventDateStartOld?iso("${userTimeZone}")?datetime("yyyy-MM-dd'T'HH:mm:ss")?string("HH:mm") /> <#assign eventDateEndOld=eventPosts.occasion_data.end_time?datetime /> <#assign eventDateEnd=eventDateEndOld?iso("${userTimeZone}")?datetime("yyyy-MM-dd'T'HH:mm:ss")?string("yyyy-MM-dd") /> <#assign eventTimeEnd=eventDateEndOld?iso("${userTimeZone}")?datetime("yyyy-MM-dd'T'HH:mm:ss")?string("HH:mm") /> After that, we have everything we need to build the button. Just need to stick everything in the right place. You can customize any of the data, but the formatting must remain the same or things will break. I recommend customizing the iCalFileName since you probably don't want downloaded events called "Instructure Live". Also, the ?no_esc on the event body text is important so any HTML content in the event doesn't break stuff. <!--The ATCB div that contains the data and creates the button. See https://github.com/add2cal/add-to-calendar-button to customize options. Using FreeMarker variables to fill in the event data.--> <div class="atcb" style="display:none;"> { "name":"${eventPosts.subject}", "description":"${eventPosts.body?no_esc}", "startDate":"${eventDateStart}", "endDate":"${eventDateEnd}", "startTime":"${eventTimeStart}", "endTime":"${eventTimeEnd}", "location":"${eventPosts.occasion_data.location}", "label":"Add to Calendar", "options":[ "Apple", "Google", "iCal", "Microsoft365", "MicrosoftTeams", "Outlook.com", "Yahoo" ], "timeZone":"${userTimeZone}", "trigger":"click", "iCalFileName":"Instructure Live: ${eventPosts.subject}" } </div> </#list> And that's it! Now you should have an awesome Add to Calendar button that gives users way more options and a much better experience. Here's the full code for an easy copy/paste. Again, if anything is wrong or bad, please let me know and I'll fix it (and learn something new in the process). <!--Load the Add to Calendar Button stylesheet and JS--> <link rel="stylesheet" href="${asset.get("/html/assets/atcb.min.css")}"> <script src="${asset.get("/html/assets/atcb.min.js")}" async defer></script> <!--Query to get event data for the current event page--> <#assign eventsQry=rest("2.0","/search?q=" + " SELECT subject, body, occasion_data FROM messages WHERE id='${env.context.message.uniqueId}'"?url).data.items /> <!--Check if the user is logged in, if they are get their timezone set in their profile. If not, set a default timezone--> <#if user.anonymous==false> <#assign userTimeZone = rest("/users/login/${user.login}/settings/name/config.timezone").value /> <#else> <#assign userTimeZone='US/Mountain' /> </#if> <!--List the event data--> <#list eventsQry as eventPosts> <!--Do some date/time conversion for the user's timezone and give us separate date variables and time variables formatted properly for the ATCB requirements--> <#assign eventDateStartOld=eventPosts.occasion_data.start_time?datetime /> <#assign eventDateStart=eventDateStartOld?iso("${userTimeZone}")?datetime("yyyy-MM-dd'T'HH:mm:ss")?string("yyyy-MM-dd") /> <#assign eventTimeStart=eventDateStartOld?iso("${userTimeZone}")?datetime("yyyy-MM-dd'T'HH:mm:ss")?string("HH:mm") /> <#assign eventDateEndOld=eventPosts.occasion_data.end_time?datetime /> <#assign eventDateEnd=eventDateEndOld?iso("${userTimeZone}")?datetime("yyyy-MM-dd'T'HH:mm:ss")?string("yyyy-MM-dd") /> <#assign eventTimeEnd=eventDateEndOld?iso("${userTimeZone}")?datetime("yyyy-MM-dd'T'HH:mm:ss")?string("HH:mm") /> <!--The ATCB div that contains the data and creates the button. See https://github.com/add2cal/add-to-calendar-button to customize options. Using FreeMarker variables to fill in the event data.--> <div class="atcb" style="display:none;"> { "name":"${eventPosts.subject}", "description":"${eventPosts.body?no_esc}", "startDate":"${eventDateStart}", "endDate":"${eventDateEnd}", "startTime":"${eventTimeStart}", "endTime":"${eventTimeEnd}", "location":"${eventPosts.occasion_data.location}", "label":"Add to Calendar", "options":[ "Apple", "Google", "iCal", "Microsoft365", "MicrosoftTeams", "Outlook.com", "Yahoo" ], "timeZone":"${userTimeZone}", "trigger":"click", "iCalFileName":"Instructure Live: ${eventPosts.subject}" } </div> </#list> Add that code to a custom component and put it wherever you'd like in the Occasion Message View quilt.122Views1like1CommentChanging Font for Message Body - Difficulty? Best practices?
Corporate branding font is Montserrat. Developers have noted it's obnoxious for the body of posts, and I agree. Branding approved changing message body to Roboto. What sort of effort is this? - to change the font for the Editor AND the content displayed on message posts? I'm very comfortable w/ CSS but don't want to doofus around with fonts.Solved95Views0likes1CommentHow do I get the 'haven't been read by a moderator' status of Message using API?
In the "message-list" component, topics containing messages unread by moderator are flagged with an "RM" icon. This appears to be different than themoderation_statusprovided by the Messages API. Can someone provide insight and an example of how to retrieve the "This topic contains messages that haven't been readby moderator" status for a message?Solveddustin3 years agoExpert288Views0likes5Comments"YOU accepted a reply..." (duh...) ...👈 can I turn this off?
I'd like to turn this off for my Atlas account AND our community. Users WANT to receive a notification whensomebody elsemarks a specific post as "solved" on their topic. But c'mon... why interrupt the user to tell them they themselves accepted a solution? ...Imagine if the donut lady constantly pokes you on your way out the door and says "you just bought a donut." Or, if the gas station attendant flagrantly jumps in front of your car on the way out of the lot, knocks on your window until you roll it down, and says "Sir, you just filled up your car with gas." This is unnatural human behavior and should result in a curriculum change at Kindergartens globally. Likewise, I do not want our users to be interrupted by this. Is there any way to turn it off, while leaving "somebody else marked a reply as a solution" turned on?117Views2likes4CommentsSubscribe button not working for users
Hi, I have added subscribe options button to category page. <component id="community.widget.page-options"/> Admin login: Subscribe button is clickable and working as expected. User login(Role as visitor): Subscribe button is not clickable hence can't see the pop up modal. Can anyone suggest the fix?Solved101Views0likes2CommentsJAVA SDK for calling Khoros Rest APIS
Hi Team, We need to read/update Khoros Messages programmatically. Using Khoros Rest APIS we can do that. But we are looking for JAVA SDK , to call Khoros rest APIS. Does Khoros provides any Java SDK to call Khoros Rest APIS. Could you please guide me on this. Thanks & Regards, PrasadSolved212Views0likes4CommentsBest way to handle staging site basic auth?
Hi ya'll! In working with developers who are attempting to integrate 3rd party systems with our Khoros Community platform, one of the first things we encounter is the fact that our Khoros staging site has http basic auth (the popup that appears on the browser when you attempt to access our staging URL) in addition to the Khoros user auth. I typically recommend that they get through the basic auth in their scripts / Postman via using a staging URL of the format https://basicAuthUsername:basicAuthPassword@[staging-url] Is this the best way to do it? Whatever the recommended method is, it would be great if it was added to the Khoros API documentation as it's a very common stumbling block. Thanks!!Solved208Views0likes6CommentsCan messages be created/updated via API without triggering update notification emails?
Is there a way to create/update messages via the Khoros Communities API without triggering notification emails about the updates to be sent to everybody who has subscribed? The background to this question is that we are looking to create messages on TKB boards using the API (HTTP POST or PUT/api/2.0/messages). In some situations, the number of updates being made is likely to be significant (although minor in nature), and we want to avoid spamming subscribers with many update notification emails.cgrinton3 years agoExpert912Views1like9CommentsBest practice for Visitor Landing Page? (hiding components for anonymous users)
We're all logging on through SSO. But, we'd like the pre-SSO-sign-on landing page to be simple w/ a message like "hey, sign on using SSO to get started..." How can I hide a bunch of components on the Community Page for anonymous users?Solved155Views0likes2CommentsNotification Bell - How to change to SVG?
The default notification bell is a little bold for our branding. I see it's using a custom icon set - is there a way to change that icon set to include images from our branding people? Or, what's the least-hackish way to change the bell to a SVG I have on hand?Solved134Views1like2CommentsHermes skin - Where is this button controlled?
Hi, On our Home Page is a big button that says Start a conversation that is displayed after you login. It sit beneath the search banner on the Hero banner. We would like to change the button to do a different action so more than just changing the text key but also changing the destination when clicked. Anyone using Hermes who knows anything about what component this is controlled under. I can't find it referenced in a component (custom or otherwise) or in the page or in the layout for the page. It's like a mystery button that we have no control over.Solvedelbranscomb3 years agoExecutive232Views1like4CommentsHow to pull topic count per node by author? GROUP BY anyone?
Hi, I would like to programmatically generate a list of authors on an idea board and their number of idea submissions using LiQL. In generic SQL I would simply GROUP BY author.id while pulling the board's messages. Unfortunately no such grouping seems to exist for LiQL. I was also looking at the boards collection, but no functionality seems to allow me to group message count by authors. Worst case I would have to pull all messages on the board and count authors. Does anyone have a solution for pulling message count per node by author?85Views1like1CommentHiding the option to change email privacy
Has anyone found a way to customize what appears on this page under My Settings. /user/myprofilepage/tab/user-preferences:privacy Basically, we want to hide the option for a user to change their email address privacy to anything other than No-one. Currently it looks like this: I want to remove the row from the form for Show Email address to. However cannot figure out exactly what element this is when adding this into the page css to reference the correct element. Inspecting the element gives me this: lia-form-row lia-form-profile-privacy-email-entry However, this is part of a tab component on the MyProfilePage and this seems to require some additional detail I can't find in inspecting the page.Solvedelbranscomb3 years agoExecutive98Views0likes2Commentswhat is the best way of using "query-multiple-collections" REST API ?
I am trying to use the"query-multiple-collections" REST API for pulling all messages from the Khoros community. https://developer.khoros.com/khoroscommunitydevdocs/reference/query-multiple-collections 1. is there any parameter to differentiate the message types (like Questions, Blogs, Articles, etc)? 2. I would like to get all questions that are created/updated in the last 6 hours. how can I achieve this? this updated means: if someone posted a reply or accepted a solution or title modified etc. Thanks, Srikanth72Views0likes1CommentBulk Data API - new user questions
Hi, we have just started using the Bulk Data API to get data from production and our team have a couple of questions that hopefully are simple to answer. We can't find the answers in the docs or here so sorry if these are covered somewhere else. 1.fromDate and toDate is what we’re using to fetch the data. Just not entirely sure if it maps to the timestamp of event.time.ms or if it’s another timestamp (i.e. when event was processed, when event was made available for export, etc). 2.Does this endpoint paginate results in any way or is it always one giant dump? Thanks!Solvedelbranscomb3 years agoExecutive343Views0likes7CommentsPagination instead of 'View more'
Hi, Recently the awesome design team of Khoros delivered our new communities. Now I am trying to getting to find my may around all the custom stuff. In this case I want to enable pagination instead of a'view more' button below the comments in a thread. (This actually was included in the design specs we delivered, so in theory we could raise a ticket to get it fixed. However I need to understand the mechanics of it first). For instance on our blog pages we do have pagination: https://community.ziggo.nl/t5/Tips-van-Ziggo/Ziggo-verbetert-de-programma-informatie-in-de-TV-Gids/ba-p/727466 On our forum page we do not (instead an orange button 'Meer reacties laden'): https://community.ziggo.nl/t5/De-Community/Feedback-over-de-nieuwe-Community-deel-je-hier/td-p/720745 I cannot find a setting in Admin or Atudio. Searching around here on Atlas I get the impression pagination cannot be set. So I dug around the forum page, and components XML a bit. In Forum Topic Page there is a componentmessage-list-detail-with-inline-editors which I think is the default one containing replies and the pagination section. This component cannot be edited. In Forum Page (this seems to be the board page? confusing terminology)there is a componentcustom.message-list. This component can be edited, i can see this inside the component: <#-- pagination --> <#if showPaging == "true"> <#assign pagingQry = basePagingQry + whereClause /> <#assign topicCnt = commonUtils.executeLiQLQuery(pagingQry, true) /> <#assign pageableItem = webuisupport.paging.pageableItem.setCurrentPageNumber(pageNum).setItemsPerPage(pageSize?number).setTotalItems(topicCnt).setPagingMode("enumerated").build /> <@component id="common.widget.pager" pageableItem=pageableItem /> </#if> <#--/pagination --> This suggests there is a global pagination setting. Now I am lost. Please help with the next step to get pagination om my forum pages.SolvedHoekstra_VFZ3 years agoAdvisor1.3KViews1like5CommentsMissing categories in Hamburger/Mobile menu
We have missing categories in Hamburger/Mobile menu. It seems like the categories on community structure which do not have any children categories/boards are not being displayed in the Khoros OOB Hamburger menu. Is this a known issue which has a fix? If not, then is overriding the current menu is the best option or creating a new custom menu itself?589Views0likes6CommentsIs there way to create new status for ideas via API?
Hi, I am trying to update the idea statuses of the Idea Boards for my community via API REST Call. There are about 11 idea exchange boards, and 7 custom idea statuses per board, so it is pretty tedious to update the idea statuses per board manually through the UI. Is there a way to perform this operation via API instead? I found this:https://devdocportal.khoros.com/t5/Community-API-v1-Reference/bd-p/restv1docs?section=commv1&leaf-id=Board.message_statuses#Board.message_statuses.available.add But, I can't get this to work with the query params either. Any help is appreciated /Akash302Views0likes8CommentsCustomize Error Page for a URL the user cannot access
I have a custom error page with a custom component that I've implemented in my community to display a particular error message when certain content is accessed that they do not have access to. This works for the most part, but on some parts of the community that are completely inaccessible to the user (e.g. due to permissions), it is not possible to determine what page the user tried to connect to. I would still like to customize the error message for this URL. In the custom component, I have tried the following in Freemarker: coreNode.id, which always returns my top-level community ID, even though the URL clearly indicates it's not at the top-level webuisupport.path.parameters.name.get("gh-p","") which always returns null even though the URL contains this Is there some way to programmatically determine what URL the user entered?phoneboy3 years agoDirector373Views0likes2CommentsSelect labels along with messages in one query
I query messages with SELECT id, subject, search_snippet, body, cover_image.view_href, teaser, view_href, author, conversation.last_post_time, replies.count(*), metrics.views FROM messages WHERE category.id = 'DE' AND conversation.style = 'tkb' AND body MATCHES 'mykeyword' AND depth = 0 ORDER BY post_time DESC LIMIT 10 To get the labels of each message i currently do an additional labels query for each message. Is there a way to get the labels along with the messages in one query?Solved308Views0likes8CommentsTKB Hierarchy - Possible? Like, pages / subpages? Maybe custom navigation?
I'd like to create a Volunteer/Dev area for our community. Maybe it's a group hub. Maybe it's just a category. How would I implement a structured set of pages similar to how we have it in Monday.com?(obviously if it was in the community the list would be a bit different):53Views0likes0CommentsSelect Kudos with message query
I am doing a LIQL query for messages SELECT id, subject, search_snippet, body, cover_image.view_href, teaser, view_href, author, conversation.last_post_time, replies.count(*), metrics.views, kudos FROM messages WHERE category.id = 'DE' AND conversation.style = 'tkb' AND body MATCHES 'mykeyword' AND depth = 0 ORDER BY post_time DESC LIMIT 10 Can I also retrieve the kudos count with one query. ? Something like: SELECT id, subject, search_snippet, body, cover_image.view_href, teaser, view_href, author, conversation.last_post_time, replies.count(*), metrics.views, kudos.count(*) FROM messages WHERE category.id = 'DE' AND conversation.style = 'tkb' AND body MATCHES 'mykeyword' AND depth = 0 ORDER BY post_time DESC LIMIT 10Solved116Views0likes2CommentsHERO - Where the junk is this "Welcome to our Community" hero defined? (when logged out)
When the user is logged out, they see this Hero page. 2 things: I'd like to change the text, but don't see it in Text Editor. I'd like this to be the header for logged in users as well (and will stash the user stats elsewhere) Any advice would be hugely appreciated.114Views0likes2CommentsWhere on earth are the User Statistics and Your Latest Nofitification bits (in Hero) coming from?
I'm pretty new, but (think) have a fairly good understanding of the layouts & components. However, I'm struggling to find these boogers: Objective: I want to remove them. Rather, I'd like to have a smaller Hero w/ just the Search & Welcome Any tips would be appreciated!66Views0likes1CommentHome Page Styling issue
Does anyone know why I can't get rid of a max-width: 1200px; .lia-content>.lia-top-quilt>.lia-quilt-row-main, .lia-content>.lia-top-quilt>.lia-quilt-row:not(.lia-quilt-row-header):not(.lia-quilt-row-main):not(.lia-quilt-row-main-bottom):not(.lia-quilt-row-footer)>.lia-quilt-column That is the class that has that max-width and when ever I try and override that it doesn't do anything it keeps that max-width and then adds my override as a separateclass.Solved577Views0likes9CommentsCan You Get Author Roles From A Messages Subquery
Hello I'm building my own top solution author component and would like to exclude anyone with the employee role. I'm using the following JSON with a subquery. [ { "messages":{ "fields":[ "author.view_href", "author.avatar", "author.login", "author.solutions_authored.count(*)", "author.kudos_received.sum(weight)", "author.messages.count(*)", "author.roles" ], "constraints":[ { "board.id":"PTCMathcad", "is_solution":true } ], "limit": 50, "subQueries":{ "roles":{ "fields":[ "name" ], "limit":50 } } } } ] I get the following error: "developer_message": "no field definition found for the field 'roles' (in the object 'message'" I've also tried replacing roles with author.roles in the subquery but get the same error. Is this possible without making a separate API call for each author? Thanks162Views0likes2Comments