Blog Post

Release Notes
12 MIN READ

Lithium Community 18.12 Release Notes

JohnD's avatar
JohnD
Khoros Alumni (Retired)
6 years ago

New Features

Promoted Search

From time to time, you might want specific community content to display at the top of the search results list when users search for specific keywords or phrases. With Promoted Search, you can now associate specific searches to specific community URLs to “boost” specific pieces of content to the top of the search results list.

Here’s how promoted search results mapped to the keyword “mobile” might display:

Let's look at a few scenarios where Promoted Search might be useful. A community admin can use Promoted search to point end-users to official company information, such as the GDPR policy or some specific product documentation. An admin could also use Promoted Search to create awareness about company announcements, event campaigns, news items, or certain products. Consider an instance where one of your products is experiencing a service outage. You might create an article that describes the issue and possible workarounds. During the outage, you could promote this article to the top of search when a customer searches for the keyword outage. After the outage is resolved, you could delete the promoted search rule.

Note: To use Promoted Search, you must be on Search version 3.0 and or above. Learn more about Feature Versions.

Create Promoted Search rules

To create a Promoted Search rule:

  1. Sign in to the Community as an admin or a user who has permission to create promoted search rules
  2. Go to Content > Promoted Search.
  3. By default, all promoted search results display with the “Recommended” label in front of it. For example:



    To change the default label open the
    Promoted Search Indicator drop-down menu and choose the label you want. Or, select None.



  4. Click Add a Rule.


    Note: After you start adding rules, the Add a Rule button displays at the bottom of the rules list.

  5. Enter the keyword(s) or phrase and the content link (full URL) of the community content you want to promote.



    Note:
    Separate multiple keywords/phrases with commas. Multi-word phrases require an exact match.

  6. Click Add.
  7. Optionally, you can set the priority order of the rules you create. Sometimes, you might want to create multiple rules for the same keywords/phrases. Use the priority field to indicate the order in which content that maps to the same keywords appears in the search results list.
    Note: For any given search, a maximum of two promoted search results will be shown.

To edit or remove existing rules:

  1. Go to Content > Promoted Search.
  2. Find the rule in the list you want to edit.
  3. Click Edit.



  4. Edit the Priority, Keywords, and Content Link, as needed.


  5. Click Save.
  6. To delete a Promoted Search rule, click Remove next to the rule.


Turn Promoted Search rules on and off

From time to time you might want to temporarily turn off Promoted Search rules. For example, you might want to turn rules off while you add new rules, change existing rules, or change the ranking order of rules. Or, maybe the rules you’ve created promote certain content during specific times or a temporary event on your community.

Rather than deleting the rules or turning off Promoted Search, you can temporarily turn off the processing of these rules, effectively turning off Promoted Search. Just click Enabled or Disabled above the rules list.

This way, you don’t lose all the rules you’ve built when the feature is disabled. You can continue to manage the rules (add/edit/delete) in the disabled state.

Grant users permission to create promoted search rules

To create and edit promoted search rules, users must have the Create promoted search rules permission.

To grant someone the ability to create promoted search rules:

  1. Sign in to community as an Admin.
  2. Go to Users > Permissions.
  3. Click Edit Users tab and search for the user to whom you want to grant this permission. (Alternatively, you can go to the Roles tab and Edit the permissions for all users with a specific role.)
  4. Scroll down to the Search permissions and Grant the Create promoted search rules permission.

  5. Click Save.

Places included in search results

In addition to showing specific content in search results, search results now return community “places”. Places are boards, categories, or groups that include the search term in their name or description. For example, if you searched for “iWatch”, boards and categories with “iWatch” in their name or description will display in the Places search results area.

Up to 3 places are displayed in the Places search results area.


Note: To include places in search results, you must be on Search version 3.2. Places is enabled by default when you upgrade Search to version 3.2. If you want to disable the Places feature, you must file a ticket with Lithium Support. Learn more about Feature Versions.

In addition to Places being returned in the auto-suggest results, the Search Page  now includes a Places view:

If you see the Places tab, but the listing of Places does not appear, check to see whether your Search Page quilt includes the search.widget.node-search component:

  1. Open Studio > Pages.
  2. Click Change and select the Search > Search Page to open the Search Page quilt.
  3. Click Switch to XML View.
  4. Add <component id="search.widget.node-search" useTabVisibility="true" /> to the main-content section:
    <add to="main-content">
       <component id="search.widget.message-search" useTabVisibility="true"/>
       <component id="search.widget.user-search" useTabVisibility="true"/>
       <component id="search.widget.note-search" useTabVisibility="true"/>
       <component id="search.widget.node-search" useTabVisibility="true" />
    </add>

  5. Click Save.

SEO improvement: Rich Google search results for forum pages

Starting with the 18.12 Release, the markup for all community forum pages has been updated to support the latest Google Q&A Structured Data guidelines, described here.

Now, when someone searches on Google and a forum page from your community appears in the Google search results, a rich preview displays similar to this:

Note: Google will not start showing this rich preview for forum topics from your community immediately. The new markup will increase the likelihood that Google will use a rich search results format. Read more about Google's structured data policies here.

The search result listing highlights the solved answer (if it exists) and other answers in carousel format with the number of votes/kudos each has received.

Updates to the message editor

With the 18.12 release, we have updated to the 4.7.13 version of the TinyMCE message editor, which includes a number of fixed issues, listed on the TinyMCE site.

Note: We previously announced the availability of the updated message editor in the 18.9 release, but we put the upgrade on hold to investigate some potential issues with the upgrade. These issues have been addressed in the 18.12 Release.

All Community customers will be upgraded to TinyMCE 4.7.13 when they are upgraded to 18.12. We strongly recommend testing your message editor and TinyMCE features thoroughly on your stage environment after the state environment is upgraded before your production environment is upgraded to 18.12.

Real-time virus scanner for file attachments

Lithium’s real-time virus scanner service checks for viruses in files attached to posts to protect your community from becoming a distribution point for malicious software. Basically, this service:

  • Scans all attachments while they are being uploaded and removed any malicious attachments before getting posted to the community.
  • Keeps the service’s virus definitions up to date.
  • Periodically scans previously uploaded files to catch any malicious files based on latest virus definitions and updates. (Infected files are automatically removed, any references to the file are removed.)

By default, this service is disabled. To have it enabled, open a Support ticket.

As an Admin, you can define who should receive the Virus Scan results email, which is delivered as a daily digest. You can also set the time of day that the email is sent out the recipients.

Note: In addition to the daily digest email, real-time notifications are also displayed.

If malicious attachments are found, a CSV file is attached to the daily digest email that provides the following information for each attachment:

  • Community User ID of the person who attached the file
  • URL of the post to which the file was attached
  • Date when the attachment was added
  • File name of the attachment

To set the Virus Scan daily digest email distribution options:

  1. Sign in to Community as as Admin.
  2. Go to System > File Attachments.
  3. In the Send virus scan daily digest email to field, enter the email addresses (separated by commas) of the people who should receive the email.
  4. In the Run the virus scan daily digest at this time field, enter the time of day (PST) that the virus scan email should be sent out.
    Note: For the real-time virus scanner feature to work properly, you must enter values for both the Send virus scan daily digest email to and Run the virus scan daily digest at this time settings.


  5. Click Save.

Now, when an error is detected with an attachment, the file is removed and an error is displayed:

Email templates and notifications for virus detection emails

The Virus Scanner Service includes a new email template (Virus Scanner Digest Report), which is sent to the predefined list of people to report the results of the daily virus detection scan.

You can view the content of the Virus Scanner Digest Report in by going to Studio > Text Editor > Email Text and selecting the template from the email template drop-down list.

Like all community email templates, you can edit their content to meet your specific needs or company voice. Learn more about editing content of email templates.

Content mentions

We are announcing the Early Access release of a new feature called Content Mentions. Content Mentions enable users to call out specific posts within the body of a message. It's a way to quickly embed a link to other content in the community.

To get started with this new feature:

  • Open a ticket with Lithium Support to enable content mentions.
    Requirement: Content mentions is supported only on Responsive communities.
  • Set the Mentions feature to version 2 in Studio > Features. (You will not see the Mentions feature in Studio > Feature tab until Support has enabled it for you.)
  • Grant users the Mention content in posts permission in Community Admin.

Note: The Early Access release does not support email notifications when a user's message is mentioned in a post, and content keyword search supports only full word searches. Email notifications and prefix search will be included in the GA release.  You will see the new email template in Studio, but you will not able to set notification preferences at this time.

Content mentions are supported in all conversation styles in both topics and replies/comments.

Here’s how it works

Let’s say you're responding to a forum topic and you want to link to another post that includes some helpful information. Using the Rich Text editor, type the @ symbol. A default list of suggestions appears in a pop-up.

Note: When User Mentions are enabled on the community, users appear at the top of the suggestion list.

Type a few letters of a keyword in the subject or body of the message you want to link to. As you type, search results with messages matching that keyword organized by conversation style appear in the pop-up. You may enter multiple words in the mentions pop-up. When multiple words are entered, all words must be present in the subject and/or body.

When you select an item in the list, Community adds the subject of the post with a hyperlink in the body of your message.

Note: The content mention link does not currently work in Preview Mode.

Mentions UI update

Mentions v2 updates the look of the mention search pop-up UI. This same change will also affect the look of the Product Mentions search pop-up UI when Mentions v2 is enabled. With Mentions v1, the mention search looks like this:

With Mentions v2, the mention search looks like this:

Content Mentions documentation

To learn more about Content Mentions, see:

@Mention notification email template name change

We have changed the name of the @Mention notification email template in Community Admin to @Mention user notification to differentiate it from the new @Mention content notification email template. This change does not affect your code and customers will be unaware of the update. The @Mention user notification email template file name (email_content.template.mentions.text)  is unchanged.

Me Too metrics provided in LSI

Me too is a community feature provided in our Forum and Q&A discussion styles that enable users to indicate that they are experiencing the same issue or agree with another user’s comment. Prior to 18.12, this metric was reported only in Admin metrics; now this metric is included in LSI. The Me Too metric helps community moderators understand what the most important topics/issues are.

To view Me Too metrics in LSI:

  1. Sign in to LSI.
  2. Go to Content.
  3. Click Forums or Q&A.
  4. In the Top # table, open the Settings menu and click Manage Columns.
  5. Select Me Too.
  6. Click Save.

The Me Too metrics are displayed:

 

Improved REST API call reporting in Toolbox

We have improved the REST Usage tab in Toolbox to display the LiQL queries used in the page.

LiQL queries are used with the Community API v2 /search endpoint. Previously, we simply showed the /search endpoint in the REST Usage table.

When more than one LiQL query was made in a component, it was difficult to tell which query applied to the /search entry in the list.

Now we show the LiQL query in the table instead of the /search endpoint to help you better identify heavy LiQL queries.

In-app reference documentation for email template context objects

We have moved email template context object documentation into the Studio > Text Editor > Email Text tab. Because context objects are often specific to the template in which they are used, you will now find the definition of Velocity context objects and methods used in an email template below the email template editor a new Email Template API Reference section.

The Email Template API Reference section includes two subsections.

The Variables Used in the Template subsection lists the context objects used in the template along with their definitions.

Note: Variables used in logic like for loops do not appear in this list. This is because those variables are used specifically within that logic and are not able to be extracted programmatically. If you are familiar with the Velocity template language, the variables in these cases will be easy to decode.

The Email Template Context API subsection is for advanced users and developers customizing email templates. This section provides API reference documentation for the top-level, nested, and enum objects available for use in the template.

Improved badge assignment performance

We have made performance improvements to the Badges feature. Awarding badges to  2 million users now takes less than 2 minutes. Previously awarding badges to 100,000 users would take approximately nine minutes.

Update to the Vitality quilt

The out-of-the-box Vitality quilt (vitality.quilt.xml) used on the default Community Page includes the Community Metrics component (community.widget.metrics-display) to show the count of registered users.

The Community Metrics component currently has the li-metric-name parameter value, which dictates the metrics displayed by the component, set to completed_registrations. This metric includes fully-registered, partially-registered, and in some cases, deleted users.

We have updated the out-of-the-box Vitality quilt to use a new li-metric-name value (completed_registrations_computed) which displays the count of fully-registered users only.

To see this change, you must update the Community Home feature version to 3.1 in Studio > Features.

If you have customized the Vitality quilt

If you have customized the Vitality quilt and you want to use the new completed_registrations_computed metric in the Community Metrics component, you must make the following changes in your custom quilt.

In the quilt XML, change:

<component id="community.widget.metrics-display" li-metric-name="completed_registrations"/>

to

<component id="community.widget.metrics-display" li-metric-name="completed_registrations_computed"/>

Change the CSS class used by the quilt from:
lia-vitality-metrics-display-completed-registrations
to
lia-vitality-metrics-display-completed-registrations-computed

Update the text key used by the Community Metrics component. Take the value of the text key:
li.community.metrics-display.completed
and apply it to this text key:
li.community.metrics-display.completed-registrations-computed

Studio endpoint authentication error handling

We currently allow customers to authenticate Studio Endpoints using a Session Key. Starting in 18.12, Community will throw a 403, Forbidden HTTP response code along with an error response if the session key used has expired. The error response differs depending on the content type.

The following table outlines the error response format if the restapi.session_key is an invalid (i.e. expired) token.

content type

error response

text/html

Updated 6 months ago
Version 4.0
  • AndrewF's avatar
    AndrewF
    Khoros Oracle

    luk
    We see .now?long used a lot in production code, and I would recommend it over anything involving strings. I believe the docs are correct that it returns the same thing as Java's Date.getTime(), so it will already be milliseconds. Otherwise, dividing by 1000 should be better than truncating characters, converting types, etc.

    Re: splice, The first two cases are behaving as expected. This is from a JS console:

    let seq = [1,2,3,4,5,6]; seq.splice(5, 0, 7, 8); seq;
    [1, 2, 3, 4, 5, 7, 8, 6]

    seq = [1,2,3,4,5,6]; seq.splice(5, 1); seq;
    [1, 2, 3, 4, 5]

    For the other two, I would say behavior is undefined for those cases. The example code is not an exact match of JS's splice function (like the function it replaced) — it expects 0 <= start index < (sequence length - delete count), which I would consider the "normal case". If you choose to use the example function code and you expect out-of-bounds input like those, you could add either an extra validation step to reject the input or extra logic to handle those cases.

  • Hi ChetnaS 
    Regarding the places included in search; We need to be able to search for all categories within a country even though the user is on a lower level of the Community. We have many ERP and Payroll products where content is not relevant for each other. So having "All Community" as default search is not an option. But we need users to be able to find other relevant areas. Is that possible to configure now? 
  • AndrewF 

    regarding timestamps: alright, gonna adapt wherever I use datesupport with (.now?long/1000)?round , thanks!

    regarding .splice(): Yeah, of course exceptions could be added for the edge cases, was just playing around with it (a.k.a. trying to break it). What was surprising to me though is the behaviour around the end of the sequence/array, had to check myself in JS, and indeed^^...doing this for a while, but this is not what I'd call immediately intuitive, although logical...plus I'd use .push() (in JS) or simply concat (in the case of FreeMarker) to add items to the end of an array, not .splice() =), learned something!

    We would need seq.splice(seq?size, 0, [7.8]) to get the result I expected in the first example, e.g. length of the array = last index + 1.

    thanks for taking your time to get back to me!

  • ChetnaS's avatar
    ChetnaS
    Khoros Alumni (Retired)

    Hi HelgaMarieAuran 

    Places feature works today in tandem with your search-bar scope on the particular category page. That is,

     - if the search-bar is scoped (has a dropdown) to "all community" it will search all community

     - if search-bar scopes (has a dropdown) to the category where the search-bar is placed, then places will search in the same category

     

  • SohilM We are on 18.12 actually.

    We also got an issue reported that when clicking on a photo in a topic, to enlarge it, after closing the photo, you can no longer click on reply or navigate back to home or click the photo again as if the topic is frozen....

     

  • The node tree component should be fixed in the 'Board Selector' lightbox on the postpage as well (/t5/forums/postpage/choose-node/true?message-subject=undefined) apart from the Movemessage and Search pages mentioned in the release notes.

    JohnD  -  You may want to update the release notes to include the Postpage as well.

  • ChetnaS How do language nodes work with Places?

    e.g. if a user is on the German homepage and search term "Burger", if we have two matching category names for the search term, would both show up in Places?

    • English "Burger"
    • German "Burger"