Social Collaboration in WCM

Social Collaboration provides unification of all social networking and collaboration applications within WEM:

Amongst other things, these allow users to generate content (user generated content), which require:

Blogs

A blog (or weblog to use the full name) is a website that provides commentary or information on a particular subject or company, while also letting readers interact by:

  • leaving comments about the individual entries
  • subscribing to feeds
  • setting trackbacks

The blog template provides a quick and easy mechanism for setting up a complete blog, including:

  • creating a new blog
  • entering individual entries; you can specify whether these are displayed:
    • in the timeline; shown in reverse chronological order in the main body of the blog overview
    • under the heading Pages in the sidebar
  • quick reference links sorted by various criteria:
    • Archives - Allows quick reference to blog entries according to their dates of entry.
    • Authors - Overview of participating authors.
    • Categories - Allows quick reference to blog entries according to their categories (tags).
    • Pages - Overview of individual pages.
    • Search - A search box that allows the user to search all blog entries.
    • Tag Cloud - Displays tags; either from the entire website or the current page.
  • embedding another blog

An example might look as follows:

file

Blogs have a predetermined structure in the Content Repository. The root (or overview) page is at the head of the structure:

file

Under this the pages are sorted according to:

  • Timeline, the page structure reflects the date of the individual blog entries
  • Sidebar, all such pages are grouped together in one folder structure

Creating a New Blog

To create a new blog:

  1. Open the Websites console.

  2. Select the location where you want to create your blog, then click on New... to create a new page.

  3. Enter a Title for your new page and the Name if you do not want the default.

  4. Select the Blog Template.

  5. Click Create to create the new blog page. A completely new blog page looks as follows:

    file

Adding Quick Reference Links

Quick reference links provide additional navigation aids for your visitors. To add such links to your blog overview page:

  1. Open the blog overview page.

  2. From the sidekick you can add various quick reference components to the right column:

    file

Posting a new blog entry

To post a new entry to your blog:

  1. Open your blog page.

  2. Click Add Entry to open the dialog:

    file

    Here you can enter a heading and body text. Assigning categories (tags) to this entry means that it will be listed under the appropriate category.

    Click on Timeline or Sidebar to specify where the entry should be displayed:

    • Timeline, the entry will be shown in the main body of the blog overview page; this is the default.
    • Sidebar, the entry will only be shown under Pages in the right sidebar.
  3. Click Submit Entry to save the blog entry. It appears as follows:

    file
  4. A paragraph system is now available for this blog entry. Here you can add further instances of the components (from various sections of sidekick); including Image, DownloadText, and Read More.

  5. The overview page will also reflect the new entry, with the Timeline and Sidebar being updated as appropriate:

    file

Importing Other Blogs by using Feeds

You can import content into your blog by using the feed importer.

This can be useful for:

  • importing an existing blog; for example, from a legacy platform
  • creating a community with blog feeds from several people
  • using aggregated content from a remote source (might also require changes to your template)

To import blogs from other websites into your blog:

  1. Navigate to the Tools window.

  2. In the Tools window, expand the Importers folder and double-click the Feed Importer:

    file
  3. Click Add to open the New Importer Configuration dialog:

    file
    • Type
      The type of feed. Select from RSS, Atom, Calendar, IMAP, IMAP (over SSL), POP3 and POP3 (over SSL).
    • Feed URL
      The source URL for the blog data.
    • Import to Path
      Add the path where the imported blog should be stored.
    • Update Interval in Seconds
      Enter a time in seconds. The minimum is 300 seconds. The first import of blog information happens after the time you specify (you do not see content import until after the specified time period has elapsed). Using the OSGi interface the minimum can be reduced, but this should only be considered for testing purposes.
  4. Click OK. Your import configuration is stored.

    file
  5. Navigate to your blog. After the specified interval, imported data appears on the blog.

Forums

Internet forums provide an area for your site users to discuss issues and ask questions. Individual comments (or posts) are added to conversations (or threads) related to specific topics. This in itself is a valuable source of content.

The forum functionality included in WEM provides:

In the following sections Geometrixx is used an an example to illustrate the features available.

Forum Overview

A typical forum page will list all topics, for example the Geometrixx Community page:

file

Add the Forum component to your own page to create a new forum. Using the dialog of this component, you can also make your forum available as a feed.

Creating a New Forum Topic

Users can create new topics using the field provided at the head of the forum:

file

Clicking in this field will expand the function, so that visitors can enter a subject and message; if required they can also select to be notified of any changes to "their" thread before submitting the new topic.

file

Posting to a Forum Topic

Clicking on a link to an individual topic will drill down to give an overview of that topic and all the replies.

file

From here, visitors can post their replies to the topic.

Note

The URL for an individual topic is built up from the forum page and the topic (stored as user-generated content); for example:
    .../community.topic.html/forum-why_won_t_anybodyhe.html

Closing a Topic Forum

When appropriate the topic can be closed, this prevents further replies being posted.

file

You can close a topic by:

  1. Double-clicking on the forum to open the dialog of the Forum Topic.
  2. Use the Settings tab in the dialog to select Closed.
  3. Click OK to save.

Pinned Topics

Pinned topics appear at the top of the list shown in the Forum overview. They can be used to highlight specific topics.

They are sorted by the date of the last reponse and also highlighted.

file

Pin an individual a topic by:

  1. Double-clicking on the forum to open the dialog of the Forum Topic.
  2. Use the Settings tab in the dialog to select Pinned.
  3. Click OK to save.

Moderating Forums

You can moderate your forums using the Community console or workflows.

Notifications

After a user creates a topic with the Notify me of changes checkbox active when posting, they are automatically notified of changes to the topic (new posts).

Other visitors to the topic can also subscribe to notifications using the Subscribe button, which toggles to Unsubscribe as appropriate. Subscription starts a workflow, this creates a subscription for the topic and sends the user a confirmation email. Notification emails are sent when new posts are added to the topic.

Note

The default Subscribe workflow is Forum Topic Subscription.

The default Unsubscribe workflow is Forum Topic Unsubscription.

In a standard Geometrixx installation notifications are sent when a new post is added to the topic; i.e. linked to the forum event PostAdded. With further development this could be extended to other events (such as modifications) or the notifications could be sent to the Workflow Inbox if required.

Texts for the subscribe and unsubscribe emails can be configured to your requirements:

  • /etc/workflow/forum/email/topicsubscribe.txt
  • /etc/workflow/forum/email/topicsubscribe.txt

Caution

A few settings need to be configured in order to be notified by email. It is also possible to customize the email template or to add an email template for a new language. Please refer to Configuring Email Notification to configure email notifications.

Tagging

Tags in the Forum namespace can be assigned to a topic or post. Tags added to a topic will be shown in the header.

file

These tags can be managed using the Tagging console.

file

Search within your Forum

The standard Forum component includes a Search function, which should be configured to link to a Forum Search component on a separate Search Result Page; for example:

http://localhost:4503/content/geometrixx/en/community/search.html

This offers the visitors options for configuring their search:

file

Forum Structure in CRX

The forum posts are saved in CRX, under:
    /content/usergenerated

file

Forum Components

Various standard components are available as a basis for building your forum.

Forum

This provides the basis of an entire forum.

Note

The forum component is stored on the page itself, whereas the topics and individual posts are stored in the appropriate location under:
   /content/usergenerated/...

file

Various settings can be configured:

  • Topics Per Page
    You can specify the number of topics or posts shown on a page. Excess of this will be displayed on separate pages.
  • Moderated
    If checked, user generated forum entries must be moderated before they are displayed on the publish instance; for example, using the Community console or a workflow for moderation.
  • Closed
    After a forum has been closed, no new posts can be made.
  • Feed Enabled
    When selected, the forum will be made available as an RSS feed.

You can also customize various texts that are shown in specific scenarios:

file

In Design Mode you can also configure the search box:

file
  • Search Result Page
    The path to the page that will display the search results. This page must then contain the Forum Search component.
  • Empty Text
    Your customized text to show in the empty search field; the text disappears as soon as the user clicks in the field.

A skeleton forum provides:

  • Search (search box)
  • a mechanism for creating a new topic
file

Adding a new topic, then posts for this forum, will automatically generate the appropriate components required to give an overview and access to the new topics and posts.

Forum Search

The Forum Search component is designed to be used on the Search Result Page as defined for the Forum component (in Design Mode).

The forum search component can be configured by the author, then the visitor can select the required option:

file
  • Forum Paths
    Restrict the paths to be searched. If empty, all forums are searched.
  • Results Per Page
    Specify the number of results to be shown on each page.

Again, a range of texts can be customized:

file

The forum search component provides the site visitors with more selection options:

file

Forum Topic

Note

Usually this component is only available when the Forum component has been instanced.

When a new topic is created the Forum Topic component is implemented.

file

This also has a dialog, though often you do not need to edit this directly as a lot of the actions can also be managed over the Community console.

Note

Topics and individual posts are stored in the appropriate location under:
   /content/usergenerated/...

file
  • Subject
    The subject is used:
    • in the topic list, for the link to the individual topic
    • as the title on the individual topic page
    • for searching, when selected
  • Message
    The message body can be viewed and edited if necessary.
  • Approved by moderator
    This is active if:
    • the forum is not moderated; i.e. all topics and posts are automatically approved
    • the message has been explicitly approved by a moderator; for example, from the Community console or using a moderation workflow.
  • Mark as spam
    This can be set either directly in the dialog or from the Community console.
  • Tags
    Tags from the Forum namespace can be selected here. They will be shown in the topic header.
file
  • Topics Per Page
    Sets the number of posts to be shown, before the list is paginated.
  • Pinned
    Pinned topics appear at the top of the list; sorted by the date of the last response and also highlighted.
  • Moderated
    If checked, user generated forum topics must be moderated before they are displayed on the publish instance; for example, using the Community console or a workflow for moderation.
  • Closed
    When closed no new posts can be added to the forum.
file

When available, the Name, E-mail Address and Website will be filled in from the users profile or information given when registering the post. When necessary they can be viewed and edited.

Forum Post

Note

Usually this component is only available when the Forum component has been instanced.

The post component is used when a visitor replies to a topic.

file

This also has a dialog, though again you do not often need to edit it directly as it can also be managed over the Community Console.

file
  • Subject
    A subject can be added, this is used for searching.
  • Message
    The message body can be viewed and edited if necessary.
  • Approved by moderator
    This is active if:
    • the forum is not moderated; i.e. the post is automatically approved
    • the post has been explicitly approved by a moderator; for example, from the Community console or using a moderation workflow.
  • Mark as spam
    This can be set either directly in the dialog or from the Community console.
  • Tags
    Tags from the Forum namespace can be set here.
file

When available, the Name, E-mail Address and Website will be filled in from the users profile or information given when registering the post. When necessary they can be viewed and edited.

Subscribe / Unsubscribe (User State Toggle Button)

The Subscribe button is not forum specific, but a definition of a user state toggle button that can be used to define a generic user state.

Wiki

A wiki is a web site where any users with access can collaborate and edit the web site directly using a simplified markup language. You create and modify wiki topics in a simple markup language within a web browser.

In WEM, a single wiki page is called a topic and a collection of topics is called a wiki space. You can create multiple wiki spaces. Permissions determine who can read or change the content of the wiki space. You can search across a wiki space as well as create topics on the fly. In addition, you can add attachments to wiki topics.

This section describes wiki concepts and describes how to use the provided wiki functionality.

Creating a wiki space

To add a wiki to your website, simply go to the Website Console and copy the Wiki Content (/content/wiki) to the location in your site structure where you want to start the new wiki space.

  1. Open the Websites Console.
  2. Copy the Wiki Content structure from /content/wiki to where you want to create a wiki.
  3. Rename the newly created wiki space by changing its title as appropriate.
  4. Open the main page of the newly created wiki. 
file

Modifying wiki topics

After you create a wiki space you can edit the main topic (or any new topics you may have created).

To modify a wiki topic:

  1. In the Websites Console, navigate to the page where you have started your wiki.
  2. Click the Edit tab and edit the wiki page, using the wiki syntax for simple formatting.
    • You can switch between Wysiwyg and Wiki text edit mode by clicking Convert to Wysiwyg/WIKI-text in Advanced Operations. Both edit modes provide formatting shortcuts.
    • Optionally, in the topic title field you can enter a new name for the topic. If you do not type a name, the title will automatically be used as topic name for this wiki page.
  3. Click Save to persist your changes or, to save the page without notifying subscribed users of the change, click Quiet Save. Click Preview to see what your page looks like before saving (all changes are saved in the wiki page's history).
file

Creating wiki topics

After you create a wiki space you can also create new topics by either:

Deleting wiki topics

You can delete wiki topics and spaces by either entirely removing them from the system or archiving them in the attic.

To delete a wiki topic or space:

  1. Navigate to the wiki topic that you want to delete.
  2. Click the Edit tab.
  3. Below the textarea, under Advanced Operations, click Delete. WEM requests confirmation that you want to delete and recommends that you archive the topic in the attic.
  4. To move the topic to the attic, click Delete. To delete the page entirely, clear the Attic check box and click Delete. You can also click Cancel to keep the topic.

Renaming and/or moving wiki topics

To rename or move a wiki topic:

  1. Navigate to the wiki topic that you want to rename or move.
  2. Click the Edit tab.
  3. Below the textarea, under Advanced Operations, click Move/Rename.
  4. To change the name of the topic, type a new name in the New Name field.
  5. To move a topic, select a new parent from the New Topic Parent list. To move subtopics with the main topic, select the Move subtopics check box.
  6. Click Rename to make the change. If you make a mistake, you can click Reset to revert to current settings or click Cancel to close the Rename page.

Modifying topic properties

To modify topic properties:

  1. Navigate to the wiki topic that you want to modify properties for.
  2. Click the Edit tab.
  3. Below the textarea, under Advanced Operations, click Edit topic properties.
  4. Make changes to the topic properties and click Apply to save them or Cancel to ignore them. See Environment Variables for information on how to use and include environment variables in topic pages.

Adding attachments to topics

To add an attachment to a topic:

  1. Navigate to the wiki topic that you want to attach files to.
  2. Click the Attachments tab.
  3. Click Browse to upload a local file.
    • If you want the attachments to be listed on the topic page, select the check box in Display Options.
    • If you want to create a link to the attached file, select the check box in the Attach new file.
  4. Click Upload to upload the attachment.
file

Viewing topic history

To view changes made to a particular wiki topic:

  1. Navigate to the wiki topic that you want to view the history for.
  2. Click the History tab. WEM displays any changes that were made to the topic and saved.
file

Subscribing to and unsubscribing from topics

To subscribe to a topic whenever changes are made:

  1. Navigate to the wiki topic you want to subscribe to.
  2. Click the History tab.
  3. Click the subscribe to this topic link. If you are subscribed to a topic, the link changes to unsubscribe from this topic. Click the link to unsubscribe.

Calendars and Events

The Calendar and Event components provide the following functionality:

An example Calendar can be seen on the Events page of Geometrixx; for example, http://localhost:4502/content/geometrixx/en/events.html.

Creating a New Calendar

To add a new calendar you can add an instance of the Calendar component to your existing page (ensure that the calendar component has been enabled in Design mode; it will appear under Calendar in the sidekick, from here you can drag it to create an instance at the required position).

Creating an Event in a Calendar

When creating an event in a calendar you specify the start and finish days; and optionally, the specific times too.

To create an event:

  1. In the Month view click on a specific date to open the Create event dialog:

    file
    • In the Summary field, enter a descriptive name for the event. 
    • Set the appropriate start and end dates with the From and To fields.
      Deactivate the All day check box to add specific times if required. The drop down list provides times at 15 minute intervals, but you can type in any time.
    • If you select a period for Repeats, copies of the event will be automatically generated at the required interval. 
    • Optionally, add a DescriptionTags and a Link.
  2. Click Save. The event appears on your calendar:

    file

Modifying Events

To modify an event:

  1. In the calendar, click on the event you want to modify. The Edit event window opens.

  2. Make your changes and click Save.

    If you are editing an event that has been set to repeat at intervals you will be asked to confirm whether you want to update all occurrences, or just the current instance:

Deleting Events

To delete an event you also use the Edit event dialog:

  1. In the calendar, click on the event you want to delete. The Edit event window opens.

  2. Click Delete.
    You will be asked to confirm the deletion, and in the case of a recurring event you will be asked whether you want to delete the series or only the current instance.

Navigating Dates

To navigate through the calendar month by month, click the left and right arrows above the calendar. To move directly to today, click the Today link.

file

Changing the Calendar View

CQ Calendars provide views to determine how you, and the visitors to your website, see the calendars and events presented.

The Month and Agenda views are activated and available on the calendar when using CQ out of the box.

Clicking Month displays the month view:

file
file

If there are too many events to be shown for a single day, then this will be indicated:

file

Clicking Agenda displays the agenda view:

file
file

Defining Default Settings for Your Calendar

You can select the timezone, date and time formats and also the day you want as the start of the week:

  1. Open the calendar page.

  2. Click Edit.

    file
  3. In the General tab you can define formats and the day to use for start of week.

    file
    • Date format: Select from Locale dependent, 25.09.2009, 09/25/2009 or 2009-09-25
      Locale dependent uses the locale/language setting of the user currently logged in (translations include date/time format strings). This setting makes sense for intranet-based usage on author instances only (since a login is normal there). When publishing the calendar, a fixed format setting that is used for all website users is often used.
    • Time format: Select from Locale dependent, 1 pm or 13:00.
    • Start of week: Select from Locale dependent or any day of the week.
    • Time Zone: Select the required time zone (according to area/location) from the drop down list; type a substring of the required the location to select a sublist, e.g. typing Euro will limit the list to those entries containing that string.
      If left empty the locale value locale of the server will be taken (this is the locale of the server JVM).
  4. Click OK to save.

Note

Changing the time zone will refresh the view of any existing events.

Note

The time zones listed are taken from the zoneinfo database (also known as Olson database). Each time zone uses the standard naming of <area>/<location>; for example, Europe/London or Atlantic/Faroe amongst many others. 

Daylight saving changes are made automatically, based on information in the database.

Customizing the Appearance of a Calendar

At any time after you have created a calendar, you can customize certain aspects of the appearance:

  1. Click Edit on the calendar.

  2. Select the Appearance tab to set:

    • Calendar lens height
    • Show querybuilder
    • Event view popup size
    • Event edit dialog size
    • Default lens
    file
  3. Click OK to save.

Defining where Events on the Calendar can be edited

To define when events on the calendar can be edited:

  1. Click Edit on the calendar.

  2. Select the Edit tab to specify:

    file
    • Allow editing:
      • Permission sensitive
        Visitors to the publish environment can add/edit events, when logged in with an account that has the appropriate permissions.
      • Only on authoring instance
        Events can only be added or edited on the author environment.
      • Never

      See Selecting an Event Form for other settings.

  3. Click OK to save the changes.

Filtering Events

You can filter events to see only those events containing a specific string. The filter will be enforced when you navigate through the months.

For example, to see only those items that have the word "Staff" in them:

  1. In the Search box, type the term you want to filter with (i.e. the keyword that CQ will look for in the calendar events).

    file
  2. Click the magnifiying glass to apply the filter. Only events containing this term are shown, all other calendar events are hidden.

    file
  3. Remove the keyword in the Search box (either manually or use the x button) and click the magnifying glass to remove the filter. All events are displayed again.

Note

After applying the filter the view stays on the current month. You might have to navigate to another month/week/day to see any filtered events.

Using the Query Builder

The Query Builder can be used (once activated for the calendar) for more detailed searches than are possible with the filter.

For more information see the Dam Asset Share.

Importing an ICS File

You can import an ics file to include events from another calendar (this is a one-off action, see Importing an External Calendar for full integration).

For example, to import an event with the following details:

file
  1. Click Edit on the calendar and select the Subscriptions / Import tab:

    file
  2. Click the Upload ICS file button to open a dialog allowing you to either enter the file name, or browse your local file system:

    file
  3. After specifying the file, use the Upload button to initiate the action. CQ will confirm the success with a message box.

  4. Click OK to save. The new event will be shown:

    file

Exporting Your Calendar

Calendar Export Link

The Calendar Export Link component can be selected from sidekick and allows you to create a link to the entire content of a calendar component - both the calendar's own and any subscribed content.

There are two types of link:

  • ICS file download
    This can be used for a one-time download; for example, when importing content into Outlook or iCal.
  • Webcal link
    This is recognized by most browsers and opens the default calendar application (for example, Outlook or iCal) for subscription. Typically, the calendar application can be configured to regularly check the CQ calendar for updates.

Note

A webcal link requires anonymous read rights on the calendar page, component and all events displayed. There is no way for the calendar application to use credentials when checking the subscription, so they will always access the link as an anonymous web user; this is default on publish, but might require configuration if required on author.

file
  • Link Title
    Specify the text you want used for the link.
    If empty the text Export Calendar is used for the link.
  • Link Type
    You can choose from:
    • Download ICS file (http://)
    • Webcal subscription (webcal://)
  • Calendar component
    Specify the path to the page holding the required calendar component; this is typically a
        page path + /jcr:content/par/calendar
    if the calendar lies in the paragraph system "par" on that page.
    Or leave empty to use the calendar on the current page (in the same paragraph system).

There are two examples of such links on the Geometrixx page, http://localhost:4502/cf#/content/geometrixx/en/events.feed:

  • Subscribe to calendar
  • Download Calendar as ICS

Feeds

As with all CQ pages a calendar page is available as feeds that can be subscribed to. For example, the Geometrixx page, can be accessed as either:

  • Atom feed
    http://localhost:4503/content/geometrixx/en/events.feed
  • RSS feed
    http://localhost:4503/content/geometrixx/en/events.feed.rss.xml

For example, the Atom Feed:

file

Creating a Content Page for a Single Event

As well as creating events within a calendar you can create a single event directly on a page. A calendar can then subscribe to the page (or to the subtree holding this, and other, events). The event(s) will then be automatically shown in the calendar. 

This allows you to link pages holding detailed information about events with a calendar providing the overview.

  1. Open the required page.

  2. Select the Event component from the Calendar section of sidekick. Drag it onto the page.

  3. You can enter the event details by opening the dialog with the Edit event button (right side of the component instance). Details will then be shown on the page, you can also add other content related to the event, for example:

    file

    Note

    Double-clicking on the component area (but not on the Edit event button) opens the Edit Component dialog for editing details about the event form and dialog - if required.

  4. From your (overview) calendar subscribe to this page (or tree, it will detect all single events on the child pages) for the event to be shown.

    For example, creating a selection of pages, each holding a single event (as above):

    file

    Will provide you with a calendar containing an overview of all single events:

Event Forms

The Edit event dialog is based on a CQ Form (cq:Form).

A standard event form is provided out-of-the-box, but if required you can copy this to create a form customized to your own specifications.

Warning

You should never edit the standard event form (located at /libs/collab/calendar/content/eventform.html).

Always create your own event form before editing.

Selecting an Event Form

To select the form to use when creating or viewing events:

  1. Click Edit on the calendar.

  2. Select the Edit or View tab as appropriate to specify:

    file
    • Details specific to either:
      • Allow editing:
        (See Defining where Events on the Calendar can be edited for more details on these settings.)
        • Permission sensitive
        • Only on authoring instance
        • Never
      • Event display:
        • Embed view form in popup
        • Embed view pattern in popup
        • Link to URL in event (using pattern as fallback)
        • Link to view pattern
    • Event form:
      • Leave blank to use the default form (eventeditor).
      • Specify a form of your choice.
    • Event pattern
      • Specify the URL pattern. Select from the placeholders available.
  3. Click OK to save the changes.

Note

Day recommends that you create event forms for a specific calendar underneath the page holding the calendar. For example, ../mycontent/mycalendar.html would use ../mycontent/mycalendar/myeventform.html.

Customizing Your New Event Form

Open the required form with either the Event edit form or Event view form links as appropriate:

file

Caution

To avoid the event form page being shown in any navigation use the Page tab of sidekick to access Page Properties... and activate Hide in Navigation.

Here you can add, move or delete the Event Form components:

Event Basics

This component adds the basic fields that are always required for any event. These fields ensure that an event contains the minimum information required for ICS export.

file

Warning

Do not delete the instance of Event Basics from your form. This information is needed by every event form.

Event ICS Link

This component provides the link for downloading a single event as ICS. By editing this component you can add the link Title

This component can be used on a event form (only visible on an existing event that has been saved).

Link

Although available under the Form section of sidekick (as opposed to the Event Form section), this component is often used with events.

You can configure various parameters for an instance of this component (double-click), but you must set the Element Name to ./url.

Event Organizer

This component allows you to input information about the person organizing the event:

file

Note

This information is not compulsory.

Event Push Workflow

This component allows the user to place the event into a "Push" Workflow:

file

A "Push" workflow is used when a calendar has an event that should appear in a separate calendar, but does not have write access to the that calendar.

As there is not write access to the other calendar, a workflow is used to send a request for the event to be accepted into the other calendar. After the event is accepted any changes will be automatically synchronized.

For example, a university might have one main calendar holding all common events, with each department having their own individual calendars holding both department specific events and common events (by subscribing to the main calendar). If a "common" event is created in a department calendar the workflow can be used to request that it be accepted by the main calendar.

Double-click the component instance to configure:

  • Title, to appear on the event form
  • Button label, to appear on the event form; leave empty to use the default title "Start Workflow"
  • Workflow Model, specify a workflow model (that has a subscription process step)
  • Target Calendars, specify the target calendars

You can create workflows for processing events; an example is the Calendar Event Promotion workflow:

file

Event Recurrence

This component provides the fields necessary to define events that repeat at regular intervals:

file

The individual fields are dependent on the period selected by the author.

Subscribing to/from Other Calendars

Subscribing to a CQ Calendar or Event

Subscribing will automatically show the target content in the current calendar. You can subscribe to:

  • another CQ calendar
  • a CQ event
  • a subtree; any calendars or events within the tree will be included

To configure the subscriptions:

  1. Click Edit on the calendar.

  2. Select the Subscriptions / Import tab and use the Subscribed calendars/events field to specify the target location; this can be a single page, or the root page of a subtree.

    file

    You can use the + button to add more subscriptions.

  3. Click OK to save and activate the subscription.

Subscribing to an External Calendar

You can connect to the feed provided by an external calendar so that events are regularly imported into your CQ WCM calendar. This uses the CQ Feed Importer, which polls the external calendar at regular intervals.

Calendar URLs are generally available within a calendar's settings. Check the documentation for your calendar application for more information. You can import either a public calendar or a private calendar. If you want to import a private calendar, you need access to the private ics URL. 

To import events from another calendar:

  1. Open the Tools console.

  2. Expand the Importers folder and double-click the Feed Importer.

  3. Click Add to open the New Importer Configuration dialog to define:

    file

    • Type
      The type of feed. Select Calendar (RSS, Atom, IMAP, IMAP (over SSL), POP3 and POP3 (over SSL) are also available if necessary).
    • Feed URL
      The source URL for the calendar data.
    • Import to Path
      Add the path where the imported calendar should be stored.
      In the Import to Path field navigate to the calendar you created and then navigate to /jcr:content/calendar/calendars/default. You can also paste the path into the field. For example, for a page created in /content/calendar.html the import path is /content/calendar/jcr:content/calendar/calendars/default.

    file

    • Update Interval in Seconds
      Enter a time in seconds. The minimum is 300 seconds. The first import of calendar information happens after the time you specify (you do not see content import until after the specified time period has elapsed). Using the OSGi interface the minimum can be reduced, but this should only be considered for testing purposes.

  4. Click OK. Your import configuration is stored.

  5. Open, or refresh, your calendar page. After the specified interval, imported data appears on the calendar.

Using an Event Push Workflow

You can customize your event form to include the Event Push Workflow field. This allows you to "push" the event in question into another calendar by means of a workflow.

For example, a university might have one main calendar holding all common events, with each department having their own individual calendars holding both department specific events and common events (by subscribing to the main calendar). If a "common" event is created in a department calendar the workflow can be used to request that it be accepted by the main calendar.

To configure your calendar for use with a workflow:

  1. Create a new page and create a Calendar there.
  2. Edit the calendar and subscribe to a second calendar; for example the Geometrixx page Events (/content/geometrixx/en/events.html).
  3. Edit the calendar and create a new events form. Ensure that this event form is assigned to your calendar.
  4. Edit this form and add the Event Push Workflow field. 
  5. Configure the Event Push Workflow field:
    • Title, assign your own title.
    • Button label, assign your own label.
    • Workflow Model, select the workflow that can be used for this event form. For example, the Calendar Event Promotion workflow.
    • Target Calendar, assign the calendar to which the event will be sent.
  6. Save all changes.

To use a workflow with your calendar (for example, the default workflow):

  1. Create an event in the calendar configured above.
  2. After inputting the event details, select the required workflow in the Event Push Workflow field. 
  3. Click Start Workflow. A message will confirm that the event has been placed in the workflow for processing..
  4. Click OK to save.
    The appropriate person will now be assigned the Moderation step in the workflow.

User Generated Comments and Ratings

Comments and ratings are a standard method of collecting feedback from your customers about how they value specific products and services.

Comments

The Comments component allows visitors to leave comments about the current page or paragraph.

You can configure:

file
  • Default Message
    Enter a message to encourage the visitor to leave a comment and possibly indicate what sort of information you are hoping for; this message will disappear as soon as the visitor clicks in the comment field.
  • Allow Replies
    Allows visitors to reply to existing comments.
  • Display as tree
    Indicates whether replies are to be displayed as a tree.
  • Moderated
    If checked, user generated comments must be moderated before they are displayed on the publish instance; for example, using the Community console or a workflow for moderation.
  • Closed
    When checked the comments are closed; so no new comments can be added.

In the Date Format tab you can also configure the date format to be used when displaying the comments:

file

The visitor will then be able to leave a comment; basic details about themselves can also be entered if they are not currently logged on:

file

Comment Post

When viewed on the author environment the individual comment posts also have a dialog that you can use for configuration if necessary:

file
  • The Message Text
    You can edit the text of the comment.
  • Moderate
    You can moderate the post to set Approve, Deny or Pending.
  • Mark as spam
    You can mark an individual message as spam, or not.

Note

It is recommended to use the Community Console for moderation purposes.

file

This dialog shows information that the author has supplied: Name, E-mail Address and Website.

Enabling User Generated Comments

To enable comments on a page:

  1. On your author instance, add the Comments component (in the Collaboration tab of the Sidekick) to the page.

  2. Configure your instance of Comments as required using the dialogs.

  3. Activate the page.

  4. On the publish instance: open the corresponding page.

  5. Post a comment. It appears on the page (unless Moderated was activated).

  6. On the author instance: refresh the page to display the comment on that page too.

Comments look as follows on a page:

file

Ratings

The Ratings component allows the visitor to rate the current page or paragraph. It is very closely related to Comments.

file
  • Allow comments
    Enable or disable comments from the visitor. This controls whether the Comment field is displayed within the rating.
  • Default Message
    This field is relevant when Allow Comments has been selected. Enter a message to encourage the visitor to leave a comment and possibly indicate what sort of information you are hoping for. This message will disappear as soon as the visitor clicks in the comment field.
  • Moderate ratings
    If checked, user generated ratings must be moderated before they are displayed on the publish instance; for example, using the Community console or a workflow for moderation.
  • Date format
    You can also configure the date format to be used when displaying the ratings.

The visitor will then be able to click the required number of stars to leave their rating, if comments have been enabled there will also be a field for their comment. Basic details about themselves can also be entered if they are not currently logged on:

file

Ratings Post

As with the individual Comment Posts, the individual rating posts have a dialog for configuration if necessary.

Enabling User Generated Ratings

To enable ratings on a page:

  1. On your author instance, add the Ratings component (in the Collaboration tab of the Sidekick) to the page.

  2. Configure your instance of Ratings as required using the dialogs.

  3. Activate the page.

  4. On the publish instance: open the corresponding page.

  5. Post a rating. It appears on the page (unless Moderate ratings was activated).

  6. On the author instance: refresh the page to display the rating on that page too.

Ratings (with Comments) look as follows on a page:

file

Moderating Social Collaboration Sites

As a site owner you have total control over the content that is published. You can decide to either:

  • Display all user generated content.
  • Moderate it by disabling (or enabling) the content.
  • Modify some of the user generated data.
  • Delete it.

To achieve this you can use:

Community Console

The Community console can be used to moderate user generated content. This is content entered by your community of users by means of comments (including those within ratings) and forum posts.

  • Any changes made with the Community console on the author environment will be automatically, and immediately, replicated to the publish environment.
  • Any changes made by members of the community to comments and posts on the publish environment will be reverse replicated to author and shown there.

The messages are nested according to page, then indented by thread; the following shows the Geometrixx Community (forum) page as an example:

file

Clicking the Context for an individual post will open the appropriate page.

Alternatively, a range of actions are available in either the toolbar, or the context menu (usually the right mouse button). You can apply the following actions to a specific post:

  • View
    Specify the type of messages to be viewed in the console. Choose from All, Spam, Not Spam, Pending, Approved or Denied. The view selected will be sticky.
  • Approve
    An approved message is listed as OK in the Status column. This action is used to approve a message; for example if set with another status, such as denied, pending or spam.
    After approval it will be shown on the publish environment.
  • Deny
    This action means that a post is not displayed on the publish environment, for example if it does not comply with your guidelines for forum usage. On the author environment it is marked as denied.
  • Pending
    When a social collaboration feature has been defined as moderated, any new post is set with the status Pending until it has been explicitly approved or denied. While pending the post is not shown on the publish environment and on the page of the author environment it is marked as needing moderation.
    After approval or denial, the Pending action can be used to return a message to the pending status.
  • Reply
    This allows you to reply to a comment directly from the community console. The page will be updated on both author and publish.
  • Spam
    Setting a message as spam means that it will not be visible on the publish environment. In the author environment it will be marked as spam.
  • Not Spam
    This removes the spam markers and returns the message to a normal status.
  • Delete
    This will delete the topic or post.

Note

Certain actions can also be applied to the individual components on the actual pages in the author environment.

See the edit dialogs, and/or context menus, of the appropriate components; such changes will also be automatically replicated to the publish environment when appropriate.

Note

If a forum, comment or rating component has been configured as Moderated then any new posts must be approved by a moderator before they are shown on the publish environment.

Using Workflows for Moderation

Moderation can involve setting up a Workflow with launcher task to fetch user generated content so that a person can be assigned to:

  • Monitor the user input.
  • Adjudicate on the quality of content; for example remove obscene entries.
  • Provide further feedback if necessary.

The Comment Moderation Workflow

As an example the Comment moderation workflow is provided in a standard CQ installation to illustrate moderating comments:

  1. On the author instance, open the page holding your instance of the Comments component. 

  2. Open the Edit dialog of the Comments component and check to activate Moderate comments.

  3. Activate the page.

  4. On the publish instance, open the corresponding page.

  5. Post a comment.

  6. On the author instance, check your Inbox:

    file
  7. Right-click the Approve comment item and select Complete to approve the comment.

  8. The following dialog will open. Select the required action as Next Step:

    file
    • Approve Comment
      The comment is displayed on both the authored and the published page.
    • Delete Comment
      The comment is removed from both the authored and the published page.
    • Ignore Comment
      The comment is displayed on the authored page and removed from the published page.

    You can also add a comment to the step if required.

  9. Click OK. The action selected will be carried out.

    For example, if Approve Comment is selected the comment is displayed on the publish instance, after a page refresh.

    file

Note

This workflow can also be used for moderating rating comments, forum entries and blog posts.

Replication Mechanisms

Social Collaboration depends on user generated content, which can come from blog entries, comments, ratings or forum posts.

Although the content that has been generated by a user on the publish instance and the content that has been generated by an author on the author instance are seamlessly displayed on a page, they are originated in differing environments and therefore different repositories. 

Both in the author and in the publish instances, the user generated content is persisted in a special folder in the repository:

/content/usergenerated 

  • Every time there is a change in this folder on the publish instance, it is copied from the publish instance to the author environment; this process is called reverse replication (publish to author).
  • When an author modifies the content on the author instance, the changes are persisted in the /content/usergenerated folder of the author instance. By activating the content, it is replicated from /content/usergenerated in the author instance to /content/usergenerated in the publish instance. This process is called replication (author to publish).

See Replication Agents for more information on how to set up the replication and reverse replication agents.

Security Mechanisms

Various mechanisms are available within CQ:

  • CQ can be configured to automatically detect if a user generated entry is a spam message and block it from being displayed. This can be done by Setting an Akismet Key.
  • CQ also protects your application against malicious injection of client-side script within a user generated comment, a vulnerability called cross-site scripting (XSS). See the Security Checklist for more details.

Setting an Akismet Key

Automattic Kismet (Akismet) is a spam filtering service for user generated feedback that combines information about spam captured on participating pages with rules and checks to block future spam.

To view your current settings for the Akismet key:

  1. Open the configuration in the Felix console by navigating to <cq URL>/system/console/configMgr.

  2. In the Configuration list, select Day CQ Antispam.

    file

    This shows the fields of information needed for configuration:

    • API key
      The API key.
    • Registered URL
      The registered URL.
    • Provider
      Define select the provider where you registered your key; for example Akismet.

To ensure that your configuration is safe for upgrade (or re-installation during testing) it is recommended that you make the actual configuration in the repository.

Identity Management and Profiles

Individual visitors to your website can only be identified when you allow them to log in. There are various reasons why you may want to provide a login capability:

  • Social Collaboration
    When communicating, the visitors need to be able identify each other.
  • Closed User Groups
    You may need to limit access to your website (or sections of it) to specific visitors.
  • Personalization
    Allowing visitors to configure certains aspects of how they access your website.

Log in (and out) functionality is provided by an account with a Profile, which holds additional information about the registered visitor (user). The actual processes for registration and authorization may differ:

  • Self-registration from the website
    For social collaboration you might allow visitors to register without authorizing each individual profile.
  • Request for registration from the website
    For a closed user group you might allow visitors to request registration, but enforce authorization by means of a workflow.
  • Register each account from the author environment
    If you have a small number of profiles, which will need authorization anyway, you may decide to register each directly.

To allow visitors to register, a series of components and forms can be used to collect the required identification information, then the additional (often optional) profile information. After they have registered, they should also be able to check and update, the details that they have submitted.

Additional functionality can be configured or developed:

  • Configure any reverse replication that is required.
  • Allow a user to remove their profile, by developing a form together with a workflow.

Note

The information specified in the profile can also be used to provide the user with targeted content via Segments and Campaigns.

Registration Forms

A form can be used to collect the registration information, then generate the new account and profile.

For example, users can request a new profile, using the Geometrixx page
    http://localhost:4502/content/geometrixx/en/toolbar/account/accountrequest.html

file

Submitting the request will take the user to a Thank You page, after which they will receive an email.

file

The email contains a link to the page for confirming the request by registering details for the new profile; for example, using the Geometrixx page
    http://localhost:4502/content/geometrixx/en/toolbar/account/register.html

file

Completion of the registration will be confirmed:

file

The new account is also visible in the Users console.

Login

The login component can be used to collect the login information, then activate the login process.

This provides the visitor with the standard fields of Username and Password, with a Login button to activate the login process when the data has been supplied.

For example, users can either log in, or create a new account, using the Sign In option on the Geometrixx toolbar, which uses the page:

    http://localhost:4502/content/geometrixx/en/toolbar/account/login.html

file

Logging Out

As there is a login mechanism, a logout mechanism is also required. This is available as the Sign Out option in Geometrixx.

Viewing and Updating a Profile

Depending on your registration form the visitor may have registered information in their profile. They should be able to view and/or update this at a later stage. This can be done with a similar form; for example, in Geometrixx:
    http://localhost:4502/content/geometrixx/en/toolbar/profiles/view.html

To see the details of your profile click on My Profile in the top right corner of any page; for example with the admin account:
    http://localhost:4502/home/users/a/admin/profile.form.html/content/geometrixx/en/toolbar/profiles/view.html

You can view another profile using the clickstream cloud (on the author environment and with sufficient privileges):

  1. Open a page; for example the Geometrixx page:
        http://localhost:4502/cf#/content/geometrixx/en.html

  2. Click My Profile in the top right corner. You will see the profile of your current account; for example the administrator.

  3. Press control-alt-C to open the clickstream cloud.

  4. In top right corner of the clickstream cloud, click Load.

  5. Select another profile from the drop down list in the dialog window; for example, Alison Parker.

  6. Click OK.

  7. Click again on My Profile. The form will be updated with Alison's details.

    file
  8. You can now use Edit Profile or Change Password to update the details.

Adding Fields to the Profile Definition

You can add fields to the profile definition. For example to add a "Favorite Color" field to the Geometrixx profile:

  1. From the Websites console navigate to Geometrixx Demo Site, English, Toolbar, Profiles.

  2. Double-click on the View Profile page to open it for editing.

  3. In the Components tab of sidekick expand the Form section.

  4. Drag a Text Field from sidekick to the form, just below the About me field.

  5. Double-click the Text Field component to open the dialog for configuration and enter:

    • Element Name - favoriteColor
    • Title - Favorite Color
    • Only show value - click to activate

    Click OK to save.

  6. Close the page and return to the Websites console.

  7. Double-click on the Edit Profile page to open it for editing.

  8. From the Form section of sidekick drag a Dropdown List to just below the About Me field (the same position as before).

  9. Double-click the Dropdown List component to open the dialog for configuration and enter:

    • Element Name - favoriteColor
    • Title - Favorite Color
    • Items - add a selection of colors for selection

    Click OK to save.

    Note

    The Element Name must match that used on the View Profile page.

  10. Close the page.

    Next time you view or edit a profile you will be able to select, and then view, a favorite color:

    file

    The field will be saved under the profile section of the relevant user account:

    file

Profile States

There are a number of use cases that require knowing whether a user (or rather their profile) is in a specific state or not. 

This involves defining an appropriate property in the user profile in a way that:

  • is visible and accessible to the user
  • defines two states for each property
  • allows toggling between the two states defined

This is done with:

Multiple states can be defined; for example in Geometrixx these include:

  • subscribing (or unsubscribing) to notifications on newsletters or comment threads
  • adding and removing a connection to a friend

State Providers

A state provider manages the current state of the property in question, together with the transitions between the two possible states.

State providers are implemented as components, so can be customized for your project. In Geomerixx these include:

  • Un-/Subscribe Forum Topic
  • Add/Remove Friend

Workflows

State providers manage a profile property and its states.

A workflow is needed to implement the actions related to the states. For example, when subscribing for notifications, the workflow will handle the actual subscription action; when unsubscribing from notifications, the workflow will handle removing the user from the subscription list.

User State Toggle Button

The user state toggle button can be found in the Collaboration section of the sidekick and can be used for a variety of Profile States. This component links a State Provider (each of which provides two states for a specific property) to the two workflows used to move between the two states.

Note

The user state toggle button is only visible if the user is logged in; i.e. when a profile is available.

In the Geometrixx forum (Community) this button is used for subscribing and unsubscribing to notification emails, sent when a new post is added.

file

From the Settings tab you can define and select:

  • Toggle State Provider
    The state provider that manages the required property and the state transitions.
    From the drop down list you can select from the available State Providers. In Geomerixx these include:
    • Un-/Subscribe Forum Topic
    • Add/Remove Friend
  • Toggle Workflow Model
    The workflow to be used when toggling from the default state to the other state.
  • Untoggle Workflow model
    The workflow used to toggle back to the default state.

From the Texts & Labels tab you can define:

  • Button Label Toggled
    The label shown after the state has been toggled.
    For example, when the user has already subscribed to a forum the label will show Unsubscribe.
  • Button Label Untoggled
    The label shown after the state has been untoggled.
    For example, when a user has not yet subscribed to a forum the label will be Subscribe.
  • Button Label Transition
    This label is shown while the transition between the two states is actually taking place. Although usually this will not be seen, it may be necessary when the transition takes a longer period of time.
  • Toggled Confirmation Message
    The message to confirm that the toggle action has suceeded.
    For example, to confirm the subscribe action.
  • Untoggled Confirmation Message
    The message to confirm that the untoggle action has succeeded.
    For example, to confirm the unsubscribe action.

Profile Components

A range of profile components are also available for defining the profile requirements for your site.

Profiles and User Accounts

Profiles are stored in the Content Repository as part of the the user account.

The profile can be found (for example, with CRXDE) under /home/users:

file

On a standard installation (author or publish) everyone has read access to the entire profile information of all users. everyone is a "Built-in group automatically containing all existing users and groups. The list of members cannot be edited".

These access rights are defined by the following wildcard ACL:

/home    everyone    allow    jcr:read    rep:glob = */profile*

That allows:

  • forum, comments or blog posts to display information (such as icon or full name) from the appropriate profile
  • links to geometrixx profile pages

If such access is not appropriate for your installation you can change these default settings.

This can be done using the Access Control Editor (Security menu) dialog:

file