Lithium SDK and Apple Silicon Support
Any news on updating the Lithium SDK to support newer versions of NodeJS? It's stuck at version 8.3.x currently and Apple Silicon Macs are only supported by NodeJS 16.x and newer. Couple that with the SDK not officially being supported on Windows and it's looking bleak for the current SDK workflow going forwards. I know Aurora is in the works but that's not likely to address this issue before it becomes a problem for people, our company is looking to transition the Mac estate over to Apple Silicon machines in the next 12 months and we don't have confirmed plans to shift to Aurora in that timeframe for our community.662Views7likes6CommentsAutomate Endpoint
I'm trying to run an endpoint automatically to assign roles to users in community by communicating with salesforce through Rest API. It uses the users community email to fetch appropriate roles from salesforce for assignment. I had a few questions 1)Can we automate endpoint on server end (Fetches all users through lithium api and update user role in batches). 2)I recently came across sign in event in community, I thought to add all calls to salesforce on Page Init script for assigning roles (Individual user data update on event trigger). But I was worried that the user can check "Keep me signed in" which bypass the sign in event. Please let me know if there is any way I can achieve this functionality.863Views0likes5CommentsRemove highlight class from messages.search_snippet
Hello all, We have a custom homepage component built that is showing a few latest threads from our Announcement board. Simple stuff. The problem is that the 'search_snippet' is highlighting the text if it's the same as the search query. In our case, the Announcement board is called 'news' and if it finds a word 'news' inside the 'search_snippet', it will be highlighted with the 'lia-search-match-lithium' class. For now, I'm considering removing it manually with the $('.lia-search-match-lithium').removeClass(); As far as I saw, the 'search_snippet' will always return highlighted text. Is there any way around this? Thank you!Solved2.3KViews0likes2CommentsREST API to retrieve all the posts which are escalated
Hi, As part ofQ&A moderation, I need to get all the Posts which are Rejected and not Escalated. I can get all the rejected messages using the below REST API. http://community.lithium.com/community-name/restapi/vc/boards/id/<id>/posts/recent?restapi.format_detail=full_list_element&moderation.scope=unmoderated&visibility.scope=moderator But i need only those are not escalated. What is the REST API, which can give me all the posts which are Rejected in Lithium and escalated?abytino4 years agoContributor192Views1like3CommentsFreemarker and LITHIUM.CommunityJsonObject
For instance: this works but is less flexible: <#if coreNode.id != "xx1" && coreNode.id != "xx2" && coreNode.id != "xx3" > ... </#if> This doesn't work, but would be great as future boards within this node will be applied automaically: <#if nodeContainer.id != "xxALL" > ... </#if> For the component I am building using the nodeContainer.id would be more robust and flexible, instead of declaring all de coreNode.id's within that container. I think the answer must be intheLithosphere Knowledge Base. or in this. I don't have access to these resources yet. Question: Is there a way (API?) to make use of nodeContainer.id? Question: Can someone give me access to Lithosphere and point me to a current list wich Lithium Objects are available.461Views0likes0CommentsCan i pass a pageableItem to common.widget.pager component using jquery
Currently working on creating a page with horizontal nav bar ( ul list ) and a content area. Based on the selected list item, paginated results should show up in the content area. I'm trying to use the pagination component and passing a pageableItem to it. Not sure how to reload the content area and also pass a new item to pagination component upon "click" on the above horizontal nav bar. Thoughts ?!475Views0likes0CommentsHow to escape dashes in component parameter names?
I am trying to include the Khoros masonry componentat a certain location in my own custom component and pass some parameters to support infite scroll like this: <@component id="media.widget.masonry-grid" li-infinite-scroll="true" li-pagination="false"/> Unfortunately, this results in the dashes of the component's parameters triggering the following ParseException:Syntax error in template "preview" in line 802, column 50: Encountered "-", but was expecting: "=" Is there any way to escape these component parameter names to prevent this? I already was browsing the Freemarker documentation in vain for any hints of that😐646Views0likes4CommentsAPI for board information per time period
We are trying to pull some data about specific boards through the API, and we also want to be able to specify a time period. Is there a way to do the following? Total Posts by Board per defined time period Total Members accessing the Board per defined time period Top Solution Authors by Board per defined time period I did find info hereGet message counts (khoros.com)that works to get total threads for a board, but I can't figure out how to put time constraints on that. I also found info hereGet top-kudoed authors (khoros.com)but I want top solution authors instead of kudoed. Is there a way to do that? ThanksSolvedAkenefick4 years agoGenius2.1KViews0likes2CommentsWhere to get started on Freemaker?
Hello everyone, Hope to find you well! I'm currently taking a course on HTML, CSS, API and so on. However, there's no module for Freemaker that is what we mostly use in the community and components. I would like to learn more so I could code components and further understand how to use studio. Do you have any tips? Documents that could help?521Views0likes4CommentsHow to query the pre-defined labels for a given board?
The API documentation is quite obtuse on something that the admin UI shows me quite easily: the labels that are pre-defined in a specific community. You know: the ones that show here: According to the developer documentation for the v2 API:https://developer.khoros.com/khoroscommunitydevdocs/reference/boards-1 you can only specify the pre-defined labels when you create the community. Oddly, the documentation doesn't list a way to just query the parameters of an existing board, but if I do a GET againsthttps://community-domain/api/2.0/boards/board-id, it provides most of the parameters but NOT the pre-defined labels. When I check the v1 API, I can see that boards/id/my-board-id/labels will actually list the labels. Which works great...if some message in that board actually uses the label. So...how do you query the API to return this list of pre-defined labels?phoneboy4 years agoDirector494Views0likes1Commenthow to get #visits & #unique visitors thru API ?
Hello I want to get these web traffic metrics thanks to an API call. I know I can get these using Bulk API, but it requires to get all day per day, and mine this data... not easy. So I wonder if this can be done direcly by using retapi, ou search, passing a date period and a forum name ? Thanks230Views1like0CommentsTrying to retrieve community URL with context object
I am using the following in a custom component: ${community.urls.communityPrefix} It adds /sejnu66972 to the URL and the link doesn't work. I'm not sure what that is. I can use the actual URL but I would like it to work in both stage and production. Any help would be appreciated.SolvedAkenefick4 years agoGenius2.2KViews0likes3CommentsAdding freemarker to head from within a component
I have some custom components that need external javascript libraries. For performance reasons, I want to start downloading the library when <head> tag renders, but the component that needs the js library is deep down in the component hierarchy. At this time I have to resort to putting <script> or <link preload> or <link preconnect> tags in the head and then execute the javascript in the component. Ideally I would want the component to contain all the code that is required for it to work including download/preloading/preconnecting scripts. Is that at all possible? Note: Using javascript in the component to dynamically add the <script> tag in the <head> doesn't solve the problem because it will start download only when parsing html body. Placing it early in the download queue results in a performance boost, but the only way to achieve that is to have the <script><preload><preconnect> tags in the <head> come from the server side. (as far as I know). Khoros Communities522Views0likes2CommentsBulk API request using python failing
I have tried both the examples recommended for python and both are failing with different errors. access_token = "<my api token>" # Place the "Bulk API access token" from Community Analytics here client_id = "my client id" # Place the "Client ID" from Community Analytics here response = requests.get( 'https://api.lithium.com/lsi-data/v1/data/export/community/communityid', params={'fromDate': '20210630', # Set the start date in YYYYMMDD format 'toDate': '20210707'}, # Set the end date in YYYYMMDD format auth=(access_token, ''), headers={'client-id': client_id, 'Accept': 'application/json' } data = response.json() print(data) Output: SSLError: HTTPSConnectionPool(host='api.lithium.com', port=443): Max retries exceeded with url: /lsi-data/v1/data/export/community/communityid?fromDate=20210630&toDate=20210707 (Caused by SSLError(SSLError(9, '[X509] PEM lib (_ssl.c:4109)'))) request = urllib2.Request("https://api.lithium.com/lsi-data/v1/data/export/community/communityid?fromDate=20210701&toDate=20210707") base64string = base64.b64encode(('%s:' % access_token).encode('utf-8')) request.add_header("Authorization", "Basic %s" % base64string) request.add_header("client-id", client_id) request.add_header("Accept", "application/json") response = urllib2.urlopen(request) print(response.read()) Output: ---> 10 response = urllib2.urlopen(request) HTTPError: HTTP Error 500: Internal Server Errornaveen_raam4 years agoContributor457Views0likes1CommentDifference between page and env
What is the difference between page and env objects given the code below? I cannot find an explanation why sometimes `page` is blank. What are best practices for getting a uniqueId for a message on all pages, including Print. #if env.context.message?? #assign msg_id = env.context.message.uniqueId #else #assign msg_id = page.context.message.uniqueId #if Thank you,301Views1like0CommentsBulk data API - Category nodes
Question for the greater community as we've gone back and forth with Support/PS teams who don't seem to 'get' what we are asking, or we are horrendously bad at explaining this. When utilizing the bulk data API, can you truly retrieve details for 'Category' nodes? As we pull back data on our end, we get it for all nodes such as TKB, Blog, Forum, Ideas, etc, but we are not seeing anything come across for Category specific nodes nor the Community Homepage. They keep telling us to look at the ancestor path, but we don't want the path/node the article lives in, we want to literally see the visits to category pages since they make up a large portion of traffic. Does the Bulk data API actually provide results for Category nodes and/or the Community homepage itself? Edit: See image for example of data we're pulling - "Board_title" pulls back all 'board' nodes, while everything "blank" in board_title is things like member entrances, not anything to do with views/visits. Similarly, under the "community_app" field, there is no "category" option, just board options, while the 'blanks' option provides nothing of value to show us "Category" or "Community Homepage" on the site. x xx434Views3likes0CommentsRole remove API call
https://community/vc/roles/name/Analytics/users/remove?role.user=id/1286 I've checked the user I'm logged in as as have permission to add/remove roles, but when I copy/paste this into the brower nav bar the action is not performed. Background We are apply a role to new users to restrict from adding a signature/DM without first acheiving a high role of activity (to cut down on spam). The mod team wants the ability to remove the role on a case by case basis. The role of the mod team does allow read/write of API calls. Ask I would like the mod team to be able on a case by case basis locate the Id of the impacted users and remove the role through the browser using this call. What other settings am I missing to now allow this call to complete in my testing? Is there an extensionon Chrome/Firefox I should be using to make POST calls? Appreciate the clarification.397Views0likes0CommentsCSS performance enhancement vs dark mode
Just wanted to share an incompatibility I encountered between the Khoros Community CSS performance improvements and using theprefers-color-scheme: dark CSS media querywhich you might want to use for shipping a dark community theme. So I tried to enable our dark theme by adding to the header wrapper the following: <link rel="stylesheet" href="/html/assets/dark.css" media="(prefers-color-scheme: dark)"> ...but the result was that even for non dark mode browser some elements of this dark.css got included in Khoros' CSS performance improvement inline CSS. The result was that some elements showed styling of dark theme, resulting in low contrast / white text on white background: It looks like the CSS performance enhancement script looks for any styling and whether it applies to the current page. My workaround was restricting the dark theme to only registered users as the script is loading the page anonymously: <#if user.registered> <link rel="stylesheet" href="/html/assets/dark.css" media="(prefers-color-scheme: dark)"> </#if> Hope this helps anyone running into the same problem and ideally Khoros can add prefers-color-scheme for the CSS enhancements going forward.391Views0likes0CommentsAdding Report Abuse Button to Forum Message Page
I am trying to add an abuse report button to the Forum Message Page. I created a custom component using this existing component. <@component id="forums.action.report-abuse"/> It works great when added to the header or footer, however when I try adding it to "Main Right" it breaks. It is no longer a clickable link. Is thatforums.action.report-abuse component just not usable in that part of the page? Is there an alternative way of doing this? It looks like I could just use this link instead. [MyCommunity].com/t5/notifications/notifymoderatorpage/message-uid/[uid] But I don't know how to get the message uid. Can I use that in my component and would it work in the "Main" section of the page? If so could someone explain how to get the message uid keeping in mind that I am still new at this. Thanks.Akenefick4 years agoGenius311Views0likes1CommentCreate a user session through API in Community
Is there any API in community, where we can create a user session in community on behalf of the user. I have created a common user in community and when a anonymous users hits a specific page, I want to login as that common user on anonymous user's behalf. Is the above possible?429Views0likes3CommentsCreate better looking links for sharing on social media
Hi all, Maybe some of you would like to know how to get a nice preview image when sharing a Community link on social media. First create an image with size1200 x 630, smaller then 300kb (WhatsApp won't generate an image if larger). Leave plenty of safe area round the edges. Upload the image here in Studio: Then we added the following lines to 'Page Head Bottom Content' of the Wrapper: <!-- Social Sharing Image Meta Tags --> <meta property="og:image" content="${asset.get('/html/assets/og_vodafone-1.jpg')}"> <meta name="twitter:image" content="${asset.get('/html/assets/og_vodafone-1.jpg')}"> That's it! After publishing check outhttps://www.opengraph.xyz/if all is looking good: The main advantage setting it this way instead of node by node is ease of maintenance. Just replace the asset if you need a new image for all your pages.Hoekstra_VFZ4 years agoAdvisor360Views1like0CommentsSecurity risk? Our search bar is being tested periodically for vulnerabilities
Hi All, Not sure if this is in the right board, however here I think most tech sevvy members will see this post here fasted. In our Community Analytics board we see that on weekends our search functionalities on both our Communities (community.ziggo.nl andcommunity.vodafone.nl) are being tested by some kind of robot (scan for fulnerabilities?) with search terms containing "1". Do you guys experience the same thing on your Communities? If yes, is this a security risk Khoros needs to fix in your opinion?Hoekstra_VFZ4 years agoAdvisor439Views1like3CommentsAPI v2 - accessing permissioned categories and boards
Does anyone know if there is a limitation when using API v2.0 that it won't return results from areas of the community that are permissioned by a specific role? We have an area of the site for internal innovation ideas that is only available to staff with a specific role. Even though the same role has been applied to the API user account that is performing the query no results are being returned.elbranscomb4 years agoExecutive356Views0likes0CommentsHow to add a detailed description to a board
Been trying to add a detailed description to a board called our Ideas section. Just wanting to lay out how the section of the community will work for better understanding. I've attempted to do this by going to Community Structure > Board name, and edit properties > detailed description. I've put in our description copy and saved it but not seeing it show up anywhere.Kameron294 years agoContributor432Views0likes1CommentRegEx replace hyperlink
I wonder if someone can help me with this one, since I'm having limited success. I'm trying to turn this <a class="cust-a" title="linktitle" href="http://thisismyurl.com" alt="alt here" >link text</a> into this [link text|http://thisismyurl.com] This gets me the link text, but apart from that I'm stuck. And I'd really like to do both of them in one replace, if possible. str?replace("(?i)<a([^>]+)>(.+?)<\\/a>","$2","rgmi")636Views0likes3CommentsHelp, I can't make signposting
Hello, Hope to find you well. The past weeks I've been reading and testing the signposting in our stage community and last week I finally started working on the component. Yesterday, with help of support, I tried to put it in our wrapper but it keeps giving a sort of "error" (as you can see in attachment). And, not only that, but it appears in the community landing page when it should only appear in the ID of the category I put. This is what I put on the component with help of support: <#assign public =""/> <if(coreNode.hasAncestor{"category"}) == true || (coreNode.id) == "UBW" || ... > <span class="public_logo_link" title="This content is publicly available"> Public </span> </if> I've been really trying to put the signposting working correctly. Do you have any tips?adriana4u4 years agoMaven600Views0likes2CommentsLimited options for customing Events pages
Doesn't seem there is a way to have a custom layout for a specific Events space: Also, there doesn't appear to be a way to force a specific view in the standard components (default to calendar view versus list view). Any ideas on this one?Solvedphoneboy4 years agoDirector2.8KViews0likes2CommentsAPI request
Hello, We want to be able to bring the consolidated data from the three main sections (Traffic, Members and Content) but we could not find adirect API call that could give us this consolidated information that a "user report" direct download would do. Therefore and presently, the only way we found out how to solve this are either bringing each sub-section separately, (Blogs, Ideas Exchange, etc.) or build a single JSON per Board ID but with everything. Nonetheless, while the first potential solution is not practical (there are too many subsections to bring to eventually generate the consolidated view), the second solution assumes that the source data remains "static" and thus can represent a potential thread to data load sustainability if source data changes from a "pivot" point of view. In summary, while the first approach (bringing every subsection through the BulkAPI) conveys creating multiple (a lot!) modules in our internal Data Hubs and it is not efficient at all, the second approach (JSON files and Board ID) involves keeping the source data "static" forever (subsections) to eventually be able to create the consolidated (main section) aggregates from Khoros.Consequently, we want to ask if there is a way to get exposure via an API to the consolidated data in each of the 3 main sections (Traffic, Members and Content). Additionally, while trying to bring all the data from the Users (details such as name, type, login, rank, etc) and other metrics (kudos given / received, articles published, messages/comments given etc.), we encountered the following issue: The users data from Khoros API does not yield all these numbers directly. For example, for every user its metrics column will have a unique query attached to it. So, in order to get number of X or Y or Z metric, we need to execute a query for each user for each of these columns back to Khoros API, making it unpractical. To put some numbers, if we had 100K users in our Community, we would need to call the respective queries 100K times per column. Impossible. Since we have a user report section in the Community Admin section that allows us to get all these users' numbers and metrics, I am assuming that Khoros might have a simpler way of getting all these records without running so many API calls.Is this possible? In a way, the request is very similar to the one from the previous question. Thanks for any help provided!724Views2likes1CommentHow to create a 'subscribe to board' button
I have found thisinfo on Create an email subscription to a board ...but I don't understand how to make use of it. I wish to add a button to certain boards that will allow users to subscribe to the board. I plan to create a custom component to place on the forum page with some conditional logic to display or not based on the board ID. This is (mostly) for private boards with small user numbers. I have also triedusing this from board.subscribe: <#assign boardID = coreNode.id /> <form action="/restapi/vc/boards/id/${boardID}/subscriptions/users/self/add/email" method="post"> <#if boardID == 'Private1'> <input type="submit">Subscribe to this board</input> </#if> </form> This is beyond me - I am still learning the intricacies of Lithium code! I cannot translate the technical advice into a working solution. Can anyone help please?SolvedPAULEM4 years agoAdvisor666Views0likes10CommentsWhat is the component for blog contributors?
We have a custom blog quilt and I need to add the contributors widget to it now that co-authors can be added to a blog post. https://community.khoros.com/t5/Tribal-Knowledge-Base/Manage-knowledge-base-links-and-contributors/ta-p/109283 What is the component for that on a blog page?SolvedInactive User4 years ago4KViews0likes2CommentsUnicode instead of left and right tags
Greetings, One of our admins is experiencing a weird issue in the custom content inside the Admin section. When they open custom content for changing a parameter of the <@component ... />, left and right tags convert into < and/> So, instead of <@component ... /> they get <@component .../> It happens with only tags around components. If we wrap a component into <div>, divs will be ok, but the component's tags will be switched to< and/> Example: <div> <@component id="..." /> </div> will become: <div> <component id="..." /> </div> Currently it happens with only one admin. We tested with them multiple times, always the same result. Do you know why this may happen?Solved501Views0likes5CommentsLike query in LiQL
Hi ! I am trying to fetch subject of all messages in particular board with certain keyword , formed this LiQL query SELECT id,subject FROM messages WHERE board.id = '4' and subject MATCHES 'Batch' The problem is , this "MATCHES" gives result of only those subject which have exact "Batch" as a word in them and won't give subject containing "BatchUpdate" as result . I want something which works similar to LIKE function in MYSQL for other database query languages. Can someone provide with some kind of input to achieve this.Solved635Views0likes15CommentsAPI --Issue in Getting the session key
Hello , I am try to call the API :https://[COMMUNITY DOMAIN]/restapi/vc/authentication/sessions/login to the get session key by providing the user name and password , I works fine with postman & able to get the key But trying the implement the same through java script ,receiving the error : <responsestatus="error"> <errorcode="302"> <message> Userauthenticationfailed. </message> </error> </response> Body parameters and headers have been set correctly , Any thoughts to resolve the issue ?VENUMASHETTY4 years agoHelper449Views0likes0CommentsMy community button redirectioning to the wrong link
Hello everyone, on our stage, we have a link that should redirect to the landing page in the stage platform. However, this link is now redirecting to the production instance, instead. Do you know how we can change that link and where? Thank you!adriana4u4 years agoMaven378Views0likes3CommentsChange A Users Profile Page Header Hero Image
Hello! I was wondering if I can change the Profile Page Header image. Playing around in Stage and Studio, I have the asset uploaded from the library In the studio. However, I am seeing that it pulls from the Homepage Header Hero image. Wondering if this is a custom component override to a user's profile? Or is there an easier way to uploading that Hero Image on a user's profile or all user's profile pages. Thanks!Solvedrnewell4 years agoMentor549Views0likes1CommentUnable to create group hub using API
Hi, I am trying to create a group hub using this document (https://developer.khoros.com/khoroscommunitydevdocs/docs/create-a-group-hub?_ga=2.117082309.2123355538.1619410972-1050991493.1615871887)I have given all the required fields but getting 500 status after API call. Post call :[COMMUNITY-DOMAIN]/api/2.0/grouphubs Requested body : { "grouphub":{ "id":"shutterbugs", "title":"Shutterbugs", "description" : "test", "parent":{ "type":"node", "id":"category:groupHubs", "href":"/nodes/category:testGroups" }, "membership_type":"open", "conversation_styles":[ "forum", "blog" ], "parent_category":{ "id":"testGroups" } } } Response : <html> <head> <title>null</title> <style> <!--H1 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:22px;} H2 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:16px;} H3 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:14px;} BODY {font-family:Tahoma,Arial,sans-serif;color:black;background-color:white;} B {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;} P {font-family:Tahoma,Arial,sans-serif;background:white;color:black;font-size:12px;}A {color : black;}A.name {color : black;}HR {color : #525D76;} --> </style> </head> <body> <h1>HTTP Status 500 – </h1> <HR size="1" noshade="noshade"> <p><b>type</b> Status Report</p> <p><b>Description</b> <u>http.500</u></p> </body> </html> Any help with this would be greatly appreciated. Thank you.Solvedsaikumarn4 years agoAdvisor3.3KViews0likes3CommentsWADL FILES FOR sessions/login & api/2.0/search
Dear Community Members , I am looking for WADL files for these API'S :https://[Domain]/restapi/vc/authentication/sessions/login https://www.myCommunity.com/api/2.0/search?q=select * from messages How can we get WADL Files / does khoros have these files any where ?VENUMASHETTY4 years agoHelper518Views1like0CommentsWho "owns" the Okta Khoros Community app?
Is it Khoros? Is It Okta? Is it us?! Been working for a while now to get the integration working and when I asked if Khoros can help on the Okta side they told me "unfortunately no, we rely on our partners to understand the specific technologies used by their organizations." So, if it's Okta, does anyone know how to ask them for help, or illustrate some finer SAML integration points?647Views0likes1CommentRemove contributor through API
I am trying to remove contributors using REST API and below is my code, it doesn't give me any error but its not working either, can someone please help me understand what I am doing wrong here? <#assign messagePostCall = restBuilder() .method("PUT") .path("/messages/${article}") .body({ "type": "message", "contributors": { "type": "user", "id": "${contributor}", "contribution_method": "explicit-remove" } }) .admin(true) /> <#assign resp = messagePostCall.call() />765Views0likes0CommentsHow can we retrieve the preview URL (or attachment-id) for PDF attachments?
I'm trying to set up a custom component that makes a more prominent button for users to know they can preview an attached PDF in articles, but I'm having a hard time finding where the URL (or even the associated attachment-id value) can be retrieved via the Community APIs. For example, I have created a TKB article with a PDF attachment, and there are two URLs associated with it: The title is hyperlinked with what I call the "preview URL" which looks something like this:https://community.example.com/t5/test-board/test-tkb-article/ta-p/33676?attachment-id=408 The "download URL" associated with the download icon looks something like this:https://community.rsa.com/tenantid/attachments/tenantid/test-board/29/1/My_Random_PDF_Doc.pdf I can retrieve the download URL just fine using a LiQL query such as:SELECT url FROM attachments WHERE message.id = '33676' However, I can't seem to figure out where theattachment-id=408 field and value live in the APIs so I can recreate the preview URL. Theid of the attachment from the LiQL query above is1 since it is attachment 1 of 1 in the message. The same is observed with the API v1 call against the following endpoint: /messages/id/33676/uploads/attachments If anyone has any thoughts or has come across this before then I'd love to get your suggestions. Thanks!Solved673Views0likes2CommentsComponent to preview attachments in lightbox
We customized our TKB Article Page quilt and placed attachments near the top. We fetch the details using the APIs. Looks like this: (See it in action here if you like.) The action when you click on the attachment willdownload in your browser, but I'm interested in offering a lightbox preview the same as the default attachment component. Is there a component I can use to wrap this feature in?cjdinger4 years agoLeader585Views3likes2Comments