• Decrease Text SizeIncrease Text Size

Frequently Asked Questions?

Results 1 - 100 of 436
  • *Cut & Paste

    *Cut & Paste

    using System; using System.IO; using System.Collections.Generic; using System.Collections.Specialized; using System.Linq; using System.Web; using Centralpoint.Web.Cms.DataTransfer; using System.Data.SqlClient; using Centralpoint.Web.Cms; using Centralpoint.Web; using Centralpoint.Web.UI; using Centralpoint.Web.UI.Controls; using System.Data.OleDb; using DTMappingType = Centralpoint.Web.Cms.DataTransfer.MappingType; using System.Data; using System.Text; using System.Net.Mail; using ICSharpCode.SharpZipLib.Zip; using System.Xml.Linq; //Centralpoint.Master.Custom.CHS_DataTransfer.TransformMdStaff namespace Centralpoint.Master {{ namespace Custom.Maximus_DataTransfer {{ public class Maximus : DataTransferV.DataTableReader {{ protected DataTable _mainTable {{ get; set; }} public Maximus(DataTransfer dataTransfer) : base(dataTransfer) {{ }} protected override DataTable GetDataTable(bool includeData) {{ string sourceFile = this.DataTransfer.Attributes.Get("SourceCustomParameters"); HttpContext.Current.Trace.Warn("Trace_Warn", $"sourceFile: {{sourceFile}}"); if (String.IsNullOrWhiteSpace(sourceFile) || !File.Exists(sourceFile)) return new DataTable(); DataTable _mainTableName = new DataTable(); HttpContext.Current.Trace.Warn("Trace_Warn", $"2 {{ File.Exists(sourceFile)}}"); try {{ XDocument xml = XDocument.Load(sourceFile); var system = from systemData in xml.Elements()//Descendants("row/col") // select new {{ Row = from attrib in xml.Descendants("row") select new {{ Colum = from col in attrib.Descendants("col") select new {{ Name = col.Attribute("name").Value, Type = col.Attribute("type").Value, Value = col.Value }}, Category = from at in attrib.Elements("categories") select new {{ taxonomyCode = at.Element("category").Value }}, Attachments = from att in attrib.Elements("attachments").Elements("attmnt") select new {{ fileName = att.Element("file_name").Value }}, }} }}; foreach (var val in system) {{ foreach (var attrib in val.Row) {{ DataRow row = _mainTableName.NewRow(); StringBuilder attachments = new StringBuilder(); if (!_mainTableName.Columns.Contains("Attachments")) _mainTableName.Columns.Add("Attachments", typeof(String)); foreach (var att in attrib.Attachments) {{ if (attachments.Length > 0) attachments.Append(", "); // HttpContext.Current.Trace.Warn("attmnt", $"{{att.fileName}}"); attachments.Append(att.fileName); }} if (attachments.Length > 0) row["Attachments"] = attachments.ToString(); foreach (var cat in attrib.Category) {{ HttpContext.Current.Trace.Warn("cat.taxonomyCode", $"{{cat.taxonomyCode}}"); if (!_mainTableName.Columns.Contains("Category")) _mainTableName.Columns.Add("Category", typeof(String)); row["Category"] = cat.taxonomyCode; }} foreach (var column in attrib.Colum) {{ HttpContext.Current.Trace.Warn("column.Name", $"{{column.Name}}"); if (!_mainTableName.Columns.Contains(column.Name)) _mainTableName.Columns.Add(column.Name, typeof(String)); row[column.Name] = column.Value; }} _mainTableName.Rows.Add(row); }} }} }} catch (Exception ex) {{ HttpContext.Current.Trace.Warn("Maximus.GetDataTable", $"{{ex.Message}}. {{ex.StackTrace}}"); }} HttpContext.Current.Trace.Warn("Trace_Warn", $"3 . {{_mainTableName.Rows.Count}}"); return _mainTableName; }} }} }} public partial class DataTransferCpScripting {{ partial void ExecuteCustom(string key, NameValueCollection collection, ref string result, ref bool found) {{ switch (key) {{ case "max_unixtimestamptodatetime": result = this.max_UnixTimeStampToDateTime(collection); break; case "max_formatguid": result = this.max_FormatGuid(collection); break; default: return; }} found = true; }} public string max_UnixTimeStampToDateTime(NameValueCollection collection) {{ string value = Scripting.CollectionValue(collection, "Name"); if (String.IsNullOrEmpty(value)) return String.Empty; value = this.Column(value); double unixTimeStamp; if (!Double.TryParse(value, out unixTimeStamp)) unixTimeStamp = 0; return DataTransferCpScripting.UnixTimeStampToDateTime(unixTimeStamp).ToString(); }} public string max_FormatGuid(NameValueCollection collection) {{ string value = Scripting.CollectionValue(collection, "Name"); if (String.IsNullOrEmpty(value)) return String.Empty; value = this.Column(value); return new Guid(value).ToString(); }} public static DateTime UnixTimeStampToDateTime(double unixTimeStamp) {{ // Unix timestamp is seconds past epoch System.DateTime dtDateTime = new DateTime(1970, 1, 1, 0, 0, 0, 0, System.DateTimeKind.Utc); dtDateTime = dtDateTime.AddSeconds(unixTimeStamp).ToLocalTime(); return dtDateTime; }} }} }}

  • How can I create live reporting from Centralpoint?

    How can I create live reporting from Centralpoint?

    Mastering Centralpoint’s Data Source or Select Command Builder (Wizard) is critical to unlocking the platform’s full reporting and visualization power. This intuitive tool empowers users — even those without deep technical skills — to create live, real-time reporting grids, downloadable Excel files, and dynamic charts and graphs, all sourced directly from the underlying data. By using the builder to define select commands, users can filter, sort, group, and aggregate data on demand, making it easy to deliver actionable insights across the organization. Whether you need interactive dashboards, exportable reports, or visual analytics, the Data Source Wizard gives you the control to tailor your outputs without writing complex SQL queries. It transforms raw data into meaningful, accessible intelligence, putting self-service reporting and live operational insights at everyone’s fingertips.

  • New User? Take a Tour of Centralpoint

    New User? Take a Tour of Centralpoint

    Taking a tour of the Centralpoint platform is your first step toward taking back control of your organization's data and digital operations. This video introduces you to the essential foundations — Audiences, Design, Roles, Content Modules, and Navigation — showing how they come together to deliver a powerful, secure, and highly personalized experience for every user.

    Beyond the basics, you'll see how Centralpoint’s advanced Data Transformation routines help you conquer data chaos by automatically aggregating disparate sources into one unified, centralized source of truth. No more silos, no more guesswork — just clean, structured information delivered precisely to the right users, based on their roles. This tour is designed to open your eyes to what’s possible: a streamlined, intelligent digital environment where your organization leads with clarity, control, and confidence. Start here and take full command of your future with Centralpoint.

  • Account Settings

    Account Settings

    Changes to your email address or username will require you to log out and back in before the changes will be effective.  The system does not currently require you to change your password, but it is recommended that you change it periodically.
     
    Items in the Personalization section control your personal site settings. The list is created dynamically and may change from time to time.  Alterations to some personalization items may not be effective immediately.  To ensure that changes are effective you can log out and log back into the site.  Personalization item documentation is a growing project and can be found by clicking on or hovering over the attribute label.
     
    The My Account section is just a shortcut into the current users record in the Users module.  It was developed with the intention of allowing users who do not have administrative permissions the ability to change their own personal settings.  It is also an important feature in the new Centralpoint Digital Experience Platform security model.  It allows administrators the ability to create and manage users without having access to passwords.
     
    This is also the only place where a users Username or Email Address attributes can be modified.  When these fields are modified they are checked for uniqueness.  From this point forward they can only be modified by the user herself.

  • Activations (Isolated Installations)

    Activations (Isolated Installations)

    Delivery

    • Go to Uber > Admin > Activations and create a new Activation. The Name should identify the client/server and the Description should contain all possible notes about the installation including contact information.
    • Click 'Next' and review the activation settings. This tab allows you to deploy the isolated master with limited access, assign module groups, and set up an update notification email. The update notification email will contain a link to download updates so they can be installed manually.
    • Click 'Save' to generate the activation in Uber.
    • Reopen the Activation record and click Generate Files > 'Generate Activator'. This will generate a licensed activator file in the Centralpoint/Uber/Temp directory on the Uber server. A licensed activator is a copy of the installation package for the most recent version containing the license file for the current activation.
    • Deliver the Centralpoint.msi Installer, the licensed Centralpoint.zip Activator, and the corresonding product key Uber > Activations > Activation > Product Key to the client along with the installation instructions via email. Delete the Temp files from Uber and be cautious with this information. The combination of the licensed activator and the corresponding product key can be used by anyone to install Centralpoint without Oxcyon's knowledge.

    Installation

    • Create a new 'Centralpoint' directory at the root of the drive on which you wish to install then place the provided Centralpoint.msi installer and Centralpoint.zip activator inside.
    • Double click the Centralpoint.msi installer to begin the installation process. Read and review the instructions provided in the setup wizard. Be sure to select the directory created previously as the Installation Folder. The installer will generate a basic master console (in IIS) and open a browser pointing to that web site to begin the activaton process.
    • Enter the provided Product Key, complete the activation wizard, and click 'Save' to complete the installation/activation. This process will unpack multiple files, generate databases, and web sites in IIS. It may take several minutes to complete. Upon completion you will be redirected to your full featured Master console.
    • Login to the new Master console with the credentials you entered during the activation process. Visit the Site Tree in the left nav to review the sites and consoles created during this process. You may also visit the development site on the URL or IP entered during activation. The same credentials will work in the development site's client console.

    Updates

    • Master consoles without Uber access cannot automatically download updates. The Deployment > Updates module will display a link to download available updates on a device with general internet access: https://www.aranon.net/updatelist.aspx?v=8.7.21. If the server admin's email is added to the Uber > Activations > Activation > New Update Notification Email attribute they will also recieve an email when new updates are released including a link to download.
    • Once the server admin has downloaded the update(s) they can visit the Deployment > Updates module for installation instructions. They can either manually place the update package (ZIP) in the Centralpoint/Master/Temp directory on the server or use the File Upload button then click 'Move Uploads to Temp & Reload'.
    • Updates cannot be skipped or installed out of order. If more than one update is added to the Temp folder they will become available in sequential order. Updates will be automatically removed from the Temp folder after 30 days even if they have not been installed.

    Activation Changes & Deactivation

    • Changes to the attributes on the Details tab and Activations > New Update Notification Email do not require deployment. All other changes require that the client installs an updated license before the changes will take affect.
    • An updated license can be generated using Uber > Activations > Details > Generate Files > 'Generate License'. Make the changes necessary to the Activations tab, click 'Save', then re-open the record and click 'Generate License'. This will generate a new encrypted Centralpoint.lic file in the Centralpoint/Uber/Temp directory on the Uber server. The 'Generate XML' button can be used to generate an unencrypted version of the file for inspection and debugging.
    • The Centralpoint.lic file can be applied to an existing master manually by the client or delivered in an update package. It should be placed at Master/Root/App_Data/Centralpoint.lic and must correspond to the Admin > Settings > Product Key (also in the web.config) in the master and all web sites.
    • Deploying a deactivated license file will disable the sites and consoles upon installation, but rolling the site back to a backup made before the deactivation will reactivate the site. It would make more sense to schedule the deactivation so a rollback would cause data loss and wouldn't be associated with the installation of the update or license file.

    Private Labeling

    • Master consoles without Uber access utilize the default private labeling values located in Master/Root/Uploads/PrivateLabeling/Master/PrivateLabeling.xml. This file and the resources located in this directory can be modified manually to private label the isolated master console.
    • The customized Master/Root/PrivateLabeling/Master directory can be delievered to the client after activation and used to overwrite their local copy, or it can be embedded in the Centralpoint.zip Activator before it is delivered to the client.
    • Web site private labeling can be applied in the isolated master console in the same manner as it is in masters with Uber access.

    Articles & Help Files

    • Uber articles have been removed from console home pages using the Master & Web Site Private Labeling > General > RSS Feeds attributes when Uber access is not available. Accessible RSS feeds can be added to the private labels manually if desired.
    • Help files will not be accessible on the server without Uber access. The help file window will detect when Uber is not accessible and display the URL of the help file instead of the help file itself. To view the help file the provided URL must be loaded on a device with general internet access.

  • Ad Tracking Module (Banner Management)

    Ad Tracking Module (Banner Management)

                

    Ad Tracking Module

    Executive Summary

    The ad banner manager is a four-module suite that allows administrators to set up, track and manage advertisements and their advertisers in CentralPoint.

    The suite is located under the "Advertising" tab within CentralPoint's administrative console in the "Ad Tracking" folder. The four modules that comprise the suite are:

    Advertisers > Advertisers Ad Tracking > Banners Ad Tracking > Zones Ad Tracking > Announcers
    The Ad Tracking > Announcers module is a subset of the Admin > Users module, which will allow administrators to filter user-specific content to the advertising group, if they so choose. Administrators can create an advertiser record in either Advertising > Announcers and Admin > Users. An Announcer record can be related to multiple banner ads.

    Ad Tracking > Banners is the spot where administrators will upload their banner files -- .SWF, .PNG., .JPG, .GIF -- or create dynamic HTML that will display the advertisement. Administrators also associate their ad banners to zones, which they can manage and create in the "Zone Management" module.

    Managing and creating zones in the Ad Tracking > Zones module allows administrators to define the script that they will place in a qualified Rich Text Formatting (RTF) field, which will ultimately display their banner advertisements.

    The Advertisers module essentially places the zones in your sites via the "zone management" scripts. This module allows administrators to define where and under what conditions the ads display.

    Chapters

    Creating Zones Creating Banners Placing Zone Scripts

    Creating Zones

    The first step in the banner-management process is to produce one or more zones in the Ad Tracking > Zones module. The zones are essentially scripts that represent silos that allow administrators to display and rotate ads in specific parts of their sites.

    To create a zone, click to Ad Tracking > Zones, and click the "New" button in the upper left-hand corner of the module grid view.

    The system will display a blank form containing the following fields: Name, View Associated Banners, Description, CpScript, JavaScript, Display Status, Notes and Audit Trail. Additionally, there are buttons that allow you to perform certain operations on the record -- such as "save", "copy" or "cancel".

    The "Name" field is what you wish to call your zone. Best practices dictate that zones be named after the position and section of the site. For example, if you're creating a leaderboard ad that will display run-of-site, the name of your zone might be: "Run-of-site Leaderboard ad zone".

    At this point in the process -- the zone-creation steps -- you will not have any banners associated to your zone, so you can skip to the "Description" field.

    The "Description" field is strictly for internal use -- the content of this field does not display on the front end of the site. Administrators can use this field to provide some brief narrative about the zone's location and contents.

    The next two fields -- CpScript and JavaScript -- are fields that CentralPoint will populate after you have saved your zone. The contents of these fields drive the banner display, so it's important to get familiar with both where to place these and their respective attributes.

    The CpScript field, after saving, will contain a script that contains the following attributes:

    [...key='AdBannerManager' zoneid='[some 36-character ID]' rotation='[n]' effect='' plainContentHTML='']

    The key='' attribute tells CentralPoint from which module the script should display content.

    Zone-id is the unique identifier of the zone you create when you click the "save" button for the first time in the Zone Management record. The unique identifier is system-generated, and you do not have control over its value.

    The rotation='' attribute takes a number between 0 and 999, and defines in seconds how long ads associated to the zone will display before being rotated and/or refreshed. This attribute's value triggers CentralPoint to refresh the only the zone script, and therefore the ads associated to that zone. The page on which the zone displays will not be refreshed.

    The rotation attribute will not rotate ads that contain JavaScript or are Flash-based.

    plainContentHTML="true" - attribute will disable any type of effects or rotation and return plain content Html from content.

    The final attribute in the script -- effect='' -- controls whether or not your rotating ads exhibit visual effects that are in addition to effects that may appear in the ads themselves.

    The effect='' attribute can take one of fifteen values: blind, bounce, clip, drop, explode, fade, fold, highlight, puff, pulsate, scale, shake, size, slide, transfer. The syntax for each of these effects is as follows:

    effect='blind' effect='bounce' effect='clip' effect='drop' effect='explode' effect='fade' effect='fold' effect='highlight' effect='puff' effect='pulsate' effect='scale' effect='shake' effect='size' effect='slide' effect='transfer'

    One zone can exhibit only one effect, and the effects will not display on Flash-based ads or ads that contain JavaScript. Additionally, the effects syntax must match precisely what is displayed above; it is case-sensitive.

    To display zones and their associated banners, administrators will copy the CpScript and place it in any RTF field that supports cpscripting in order to display banner ads. Most RTF fields in CentralPoint support cpscripting.

    For RTF fields -- or other text fields -- that do not support cpscripting, administrators can use the contents of the JavaScript field to display banners. Like the CpScript field, administrators will copy the contents of the JavaScript field and paste it into a field that corresponds to the location of the ad banners.

    More on the placement of scripts later.

    The "Display Status" field determines whether or not a zone is actively displaying ads on the front end of the site. If the zone is on "Hold", it will not display ads. If it is "Released", the ads associated to that zone will display accordingly.

    The "Notes" field is for administrative use only. Administrators can share development notes here that will display in the audit trail field after a "save", a "save notes" or a "save draft" operation.

    The "Audit Trail" provides information about who among administrators did what, and when they did it. The field also displays notes associated with the "save", "save notes" or a "save draft" operation.

    Audience Filtration Enabled will apply Audience Filtration to the banners of that zone. Role Filtration Enabled will apply Role Filtration to the banners of that zone. Keyword Specific takes coma separated list of keywords and will filter banners those keywords.

    Creating Banners

    After you've created your zones, you can then create and manage your ads using the Ad Tracking > Banners module. To insert a new banner ad, click to the Ad Tracking > Banners module.

    Before clicking the "New" button in the upper left-hand corner, notice that the module grid view displays the number of ad impressions, click-thrus and the associated click-through rate (CTR). This is a useful snapshot of your advertising activity.

    Now, clicking the "New" button, you will see that the Ad Tracking module contains the following fields: Title, Publish Start Date, Publish End Date, URL, Target, Content, Weight, Zones, Advertiser, Clicks, Audiences and Display Status.

    The "Title" field is the name of the banner. It is a required field, and is used for administrative purposes only. That is, the title will not display on the front end of the site.

    You can set the range in which the banner is available for display on the front end by altering the "Publish Start Date" and "Publish End Date" fields. Take note, too, that you can begin and end the ad's display at a precise moment in time by using the hour, minute, second fields.

    To set the URL to which the ad should redirect, enter a fully qualified URL -- including http:// -- into the URL field. The "Target" field determines whether or not the fully qualified URL opens in a new browser window ("Blank") or the current browser window ("Self"). Most open in new windows.

    The "Content" field is a fully editable RTF field that serves your banner media. Currently supported media types are: text/HTML, JavaScript, images, Flash. Future enhancements will include support for cpscripting.

    To upload your media item -- be it an image or Flash item -- click the "Media" button on the RTF editor's control panel (paper with a paper clip icon). The system allows you to choose from an existing list of media items in your media store, or upload a new item.

    If you are serving an HTML or JavaScript ad, paste the code into the RTF editor using the "code view" <>).

    Next, insert the "Weight" you wish to give the ad -- a number from 1 to 9. A banner with a weight of 6 is six times more likely to appear than a banner with a weight of 1. Likewise, a banner with a weight of 8 is two and two-thirds times more likely to appear than a banner with a weight of 3.

    The "Zones" field is a multi-select that allows you to assign a banner to multiple zones. It is fully searchable (in the Title and Display Status fields") to allow for easier location of zones in lengthy lists. Administrators can click and unclick zones as needed. Those with check marks are the zone in which the ad will appear.

    Associating an advertiser to a particular banner is not required, but for reporting purposes you may want to choose the appropriate administrator from the "Advertiser" drop-down list.

    The "Clicks" field is a display-only field, meaning that administrators are unable to edit its contents. It displays the number of times users have clicked the banner.

    The "Audiences" multi-select allows you to filter where within your site structure your banner will appear. Maintaining the "all audiences" selection will ensure that, regardless of your zone's placement, the ad will appear. Choosing specific audiences will limit the banner's display to those audiences only.

    The "Display Status" field determines whether or not a banner actively displays on the front end of the site. If the ad is on "Hold", it will not display. If it is "Released", it will display accordingly.

    The "Notes" field is for administrative use only. Administrators can share development notes here that will display in the audit trail field after a "save", a "save notes" or a "save draft" operation.

    The "Audit Trail" provides information about who among administrators did what, and when they did it. The field also displays notes associated with the "save", "save notes" or a "save draft" operation.

    Placing Zone Scripts

    To place your ads on the front end of the site, click to the Ad Tracking > Zones module and choose the zone whose ads you wish to actively display.

    From the CpScript field, either highlight the entire script and hit Ctrl+C (Cmd+C on a Mac) or click the "copy" icon that is located to the right of the script's field. That will copy the script to allow for quick placement via pasting.

    Next, click to Advertisers -- the module that gives administrators the most control over where and when ads display.

    This module contains the following fields: System Title, Publish Start Date, Publish End Date, Content Type, Position, Text Alignment, Page Type, Navigation specific OR Keywords, Order, Audiences Roles, Display Status Notes and Audit Trail.

    The "System Title" field is the name of the advertiser area. It is for administrative use only.

    You can set the date range in which the advertiser is available for display on the front end by altering the "Publish Start Date" and "Publish End Date" fields. Take note, too, that you can begin and end the advertiser's display at a precise moment in time by using the hour, minute, second fields.

    The "Content Type" field determines what CentralPoint serves on the front end: HTML or plain text. If HTML, the RTF field remains. You can drop the zone cpscript here in either the RTF view or the HTML view.

    If you choose "Plain Text", the system will serve the plain text content. Typically, administrators use this field for JavaScript and HTML ads.

    The "Position" field determines where on the front end design your ad zone will appear. The choices and corresponding location are:

    Perimeter Top - above the site's Design > Styles > Top content Perimeter Right - to the right of the site's Design > Styles > Right content Perimeter Bottom - below of the site's Design > Styles > Bottom content, and below any "Bottom (Below Footer)" ads Perimeter Left - to the left of the site's Design > Styles > Left content Bottom (Above Footer) - above the site's Design > Styles > Bottom content Bottom (Below Footer) - below the site's Design > Styles > Bottom content Left (Above Navigation) - above the site's left-hand navigation Left (Below Navigation) - below the site's left-hand navigation Right (Above Content) - above the site's Design > Styles > Right content Right (Below Content) - below the site's Design > Styles > Right content Top (Above Header) - above the site's Design > Styles > Top content Top (Below Header) - below the site's Design > Styles > Top content
    "Text Alignment" defines whether your ad content or plain text will display aligned to the center, right or left.

    You can define where exactly you want your ad banners to display by setting the "Page Type" property.

    Clicking the "All Pages" option will display the content or plain text on all pages in the spot you defined in the "Position" field. Notice that when you click "All Pages", there is no multi-select or text box available to you.

    The "Navigation Specific" choice allows you to limit or target where your ads display, based on your site's navigation. Note that the "Navigation Items" multi-select is available when you choose "Navigation Specific". The navigation items whose checkboxes are checked are where your ad will display.

    Finally, the "Search Results" option allows you to target ads to specific keyword searches that users perform using the site search. Place a comma-separated list of the keywords you wish to target within the "Keywords" box (available after you choose the "Search Results" page type), and when a user's search matches any of those words, the ad will display.

    The "Order" field allows administrators to display, top to bottom or left to right, more than one ad or ad banner zone in a position. Fill in a number between 1 and 999 to determine where your ad will display relative to other ads associated to the same "Position". For instance, an ad tied to "Right (Above Content)" position with the order value of 1 will appear above an ad associated to the "Right (Above Content)" position with the order value of 2.

    Choosing Audiences allows administrators to further filter where the ad will appear within the site's structure. The Audience field is a multi-select that allows you to associate ads to one or more audiences. You can also associate the ad to all audiences, which will display the ad in its position and page type regardless of its audience.

    The concept of "Roles" allows you to further limit who among your users will see your ads. A role essentially relates to a group of users -- be they "Everyone", "Private"-access users (or members who are logged in), or just the "Public" users (users who are not logged in).

    Associating an ad to "Everyone" will display the ad, regardless of whether users are logged in. Tagging the ad "Private" will display it to users who are logged in only. Likewise, tying the ad to the "Public" role will display it to users who are not logged in only.

    The "Display Status" field determines whether or not a banner actively displays on the front end of the site. If the ad is on "Hold", it will not display. If it is "Released", it will display accordingly.

    The "Notes" field is for administrative use only. Administrators can share development notes here that will display in the audit trail field after a "save", a "save notes" or a "save draft" operation.

    The "Audit Trail" provides information about who among administrators did what, and when they did it. The field also displays notes associated with the "save", "save notes" or a "save draft" operation.

  • Administrators and Users

    Administrators and Users

    Administrators, Users & Authentication.

          

    How to set up Administrators or Users (Members) to your site. Please find a video below which explains this process (more instruction below this video):  

    You also cannot view a users password, but you may reset their password.  Resetting a users password will generate an email notifying the user of their new password.  You also cannot change other users Usernames or Email Addresses.  This is designed to prevent administrators from hijacking users accounts.  If you could change their email address you could change it to your email address, reset their password, then log in as that user.
    Items in the Personalization section control global site and console settings. They are created dynamically and may change from time to time.  If a new personalization item is added all existing users will automatically be assigned the default value of that item.  Personalization item documentation is a continuing project and can be found by clicking on or hovering over the attribute label.

    Properties are also available in web sites only.  They are intended to create a custom set of attributes for each web sites users module.  The web site property 'User Properties File' defines the location of the properties XML file.  This web site property value can be changed for a custom set of user attributes.  These attributes will also be accessible from the web sites CDA.

     
    These personalization features are more than just a dynamic way to add attributes to users.  The quick ability to add attributes combined with the data storage technique provide us with the ability to store different attribute sets within different users in a jagged pattern.  This means we can add attributes at will, and not all users are forced to have the same list of attributes.

    The web site consoles users module maintains a few attributes that are not in other consoles.  The first is Integration Id which is used to maintain a reference to external authentication containers.  The concept is that the external system will be used to authenticate the user and return a unique identifier (Integration Id) for that user.  If the users integration id does not exist in the users module a new record will be created with that integration id.  The user can then manage their account within Centralpoint Digital Experience Platform without the authentication credentials.

    Web site users also have a Reviewer attribute.  This is the web site or master user which will be notified when the users submits a document.  Reviewers may also have reviewers, so when a document is submitted, all ancestor reviewers will be notified.  In some cases, reviewed users may not have permission to release documents to the web site.  The Allow Release attribute is used to suppress the users ability to release documents by hiding the appropriate attribute and initializing its value.  It is important that you do not give a reviewed user access to the users module.  If you do this, the reviewed user will be able to create a new unreviewed user and bypass the review process.

    This module was developed with the intention of giving Centralpoint Digital Experience Platform administrators the highest level of control over users while maintaining security and client confidence in the system.  On top of the basic user details we are now tracking user information like the last date the password was changed, the last date the user logged in, and the number of failed password attempts.

    The Centralpoint Digital Experience Platform users module was also designed to be a tiered login.  This means that accounts created in one console do not have to be duplicated in child consoles.  You may simply grant that user access to the child console as needed.  However, if a user is given access to a child console from a parent console they will be given administrative privileges to the child console and all of its descendants.
    In order for force the User to reset password you need to change Locked Out = Yes and Configuration > Password Change Required = Yes. When user will try to login he will be forced to change his password.

    Quick Administrator Setup

    Role definitions

    Administrators: access to all modules/navigation within a given console, regardless of what might be selected in "Console Navigation". Can add, edit, release and delete content.

    Authors: access to only modules/navigation selected in the "Console Navigation" multi-select check box. Can add and edit content only. No delete or release privileges.

    Delete Data: access to only modules/navigation selected in the "Console Navigation" multi-select check box. Can delete content only. No add, edit or release privileges.

    Release Data: access to only modules/navigation selected in the "Console Navigation" multi-select check box. Can add, edit and release content only. No delete privileges.

    Review Data: Used in conjunction with one or more of the roles above. Adds the user to the "Notify Reviewers" multi-select check box list at the bottom of every content module, allowing users to send a system-generated email to that administrator informing him/her that content is ready to be reviewed.

    Change Users Password

    Please reference the directions on the screenshot to manually change a users password.

    Sending a user to this link, /audience-system-name/login.aspx?request=1 , will allow the user to receive a system generated / new password.

    Access Tokens

    When an administrator is in the Web API role an Access Tokens attribute will appear. Access tokens are used to secure methods created in Development > Web API. Clicking into the access tokens view provides an interface to generate and manage access tokens. These tokens are a security feature and should be treated as passwords. They should never be stored in plain text.


    Master Console Roles

    Below is a description of each role available to users created in a master console

    Admins

    Granted access to all Master console navigation items.

    Limited Administrators

    Granted access to all Master console navigation items except Users and Settings.

    Deployers

    Users who may add and remove web sites.

    Developers

    Provided additional access to development tools.

  • Advertisers

    Advertisers

              

    The Ancillary Content module allows the placement of secondary content around the web site's pages.  This content can be placed in on of many positions which are custom per Site Type.  The site type is selected in the master consoles update page for the given web site.  The Priority attribute is used to order the ancillary content items when more than one are displayed on the same page and in the same position.

    The Page Type attributes allows the ancillary content to be placed on the selected navigation items, only on search results pages when the search criteria matches the given keywords, or on taxonomy display pages when there is a match within the selected taxonomy.  When the Navigation Specific page type is selected you can also select 'Yes' to Include Children.  This will display the record on the selected navigation item and their children.  This does not include all descendants, only children.  The Nav Groups page type allows you to display the record on site map items (Navigation & Home Pages) with overlapping Nav Group selections.

    In Centralpoint Digital Experience Platform 7 the ancillary content data was stored in the Advertising::Advertisers and Advertising::Perimeter Ads modules.  The advertisers module was the source of the majority of the ancillary content attributes.  Some additional positions were added for perimeter ads module.  The Ad Script, Ad Banner, Ad Banner URL, and HTML attributes were all replaced by the Content attribute in ancillary content.  Display Option, Site Modules, and Section were all replaced by a single data list box referencing the Navigation module.  Ad Order was replaced by Priority and Ad Position was replaced with Position for uniformity.

    Many Centralpoint Digital Experience Platform 7 site properties have also been mapped to attributes in the new ancillary content module.  Bottom Ad Alignment, Left Bar Ad Banner Alignment, Right Bar Ad Banner Alignment, and Top Ad Alignment have all been replaced by the new Horizontal Alignment attribute.  Also, Left Advertisers Display Position has been replaced by additions to the available values in the Positions attribute.

  • AI-Generated SQL for Attribute Generator

    AI-Generated SQL for Attribute Generator

    SQL Query Requirements

    Important: Your SQL query must follow these rules:

    • The query must return a single scalar value (one column, one row)
    • The query will automatically receive @DataId as a parameter containing the DataId of the record being saved
    • Do NOT define the @DataId parameter in your query - it will be provided dynamically
    • The query should be efficient and not cause performance issues

    How to Use AI to Generate Your SQL

    Step-by-Step Process:

    1. Open your preferred AI tool (ChatGPT, Claude, etc.)
    2. Copy one of the prompt examples below that matches your needs
    3. Paste the prompt into the AI tool
    4. Review the generated SQL
    5. Copy the SQL into the Attribute Generator's SQL Query field
    6. Test the query to ensure it works as expected

    Understanding the Attributes XML Column

    The Attributes column in cpsys_DataCurrent is an XML column that contains all custom attribute values for a record. It follows the CpCollection.xsd schema structure with groups, properties, and control values.

    Key XML Structure:

    • /cpCollection/group - Contains attribute groups
    • /cpCollection/group/property - Individual attributes
    • /cpCollection/group/property/value - The attribute value
    • /cpCollection/group/property/@id - The attribute's system name

    When prompting AI to query the Attributes column, mention that it's an XML column following this structure.

    Tips for Creating Effective AI Prompts

    • Be specific about which tables and columns you want to query
    • Always mention that the query receives @DataId as a parameter and should not define it
    • Mention "scalar value" to ensure the AI returns a single value, not a result set
    • For XML queries, mention that Attributes follows the CpCollection XML rules
    • Request specific formatting if you need dates, numbers, or concatenated values in a particular format
    • Ask for error handling if you want the query to handle NULL values gracefully

    Advanced Scenarios: Complex Business Rules

    Sample Prompt Template

    General Template You Can Customize:

    Write a SQL query for CentralPoint that [describe what you want to accomplish]. Query the cpsys_DataCurrent table and return [describe the output you want] as a scalar string. The query will receive @DataId as a parameter containing the DataId of the current record (don't define this parameter in the query). [Add any special formatting or logic requirements].

    Testing Your Generated SQL

    Before using in production:

    1. Test the query with a sample @DataId value in the Report Builder
    2. Verify it returns exactly one value (not multiple rows or columns)
    3. Check that it handles NULL values appropriately
    4. Ensure it performs well (doesn't take too long to execute)
    5. Test with different record types to ensure consistency

    Need Help?

    If the AI-generated SQL doesn't work as expected:

    • Try rephrasing your prompt with more specific details
    • Ask the AI to explain what the query does
    • Request modifications to the generated SQL
    • Ask the AI to add comments explaining each part of the query
    • For complex scenarios, consider using the SQL Boilerplate template linked above

  • Aliasable Terms

    Aliasable Terms

    Centralpoint Digital Experience Platform developers maintain a list of terms which may be aliased by web sites in the uber consoles.  In master consoles local developers maintain a secondary list of terms which can be aliased in their modules.  Each web site contains a link to modify the web sites aliases.  When adding a new alias the user will be permitted to select the term to be aliased from the combined list of aliasable terms.

    These lists must be maintained by developers.  When developing a module any word may be aliased by adding the term to the aliasable terms module and retrieving the alias using the application based alias collection.  If the item has not been aliased by the site the original term will be returned.

    To add an alias:

    1. Login to your master management console.

    2. Click the "Web sites" link on the left-hand side.

    3. Locate the web site you are looking to manage this process on and click that link.

    4. The system will take you to a multi-tab screen. Locate the "Aliases" tab and click it.

    5. From the "Term" drop-down, choose the module you wish to alias.

    6. In the "Alias" field, type "ALIAS NAME" (no quotes) where ALIAS NAME is the name you wish to give the module. 

    7. Click the "Add Alias" button.

    8. Then click the "Save" button. You can now log out of the master management console.

    9. Next, go to the console of the site you are adding this process to: domain.com/console.

    10. Click the Site Architecture link on the left-hand side.

    11. Click the "Audiences" link.

    12. In the "Audiences" grid view, click the lone audience link.

    13. Adjacent to the "console navigation" multi-select box, click the green box that contains a checkmark on it. That will add all modules to the admin console.

    14. Click "save".

    15. Next, click on the "Content" link in the left-hand side of the console to display the modules available in the site.

  • Aliases

    Aliases

    Centralpoint Digital Experience Platform developers maintain a list of terms which may be aliased by web sites.  All navigation items within a web site are also added to the list of aliasable terms.  This list is provided to web site owners for aliasing.

    When a term is aliased its alias is displayed in all considered locations where the term would have been displayed.  A considered location is a location where the developer intended the word to be aliasable.  If the developer does not consider a location (intentionally or accidentally) the original term will be displayed in that location.

    Aliasing a term will not affect that term if it is entered as content into a web site.  This is a feature that is being considered for Scripting, but it would still require consideration on the part of the individual creating the content.

    When editing is available you may select a term from the drop down list and enter the replacement term in the alias text box.  The sync'd field is used to determine whether the alias should be sent to descendant web sites during the sync process.  The sync'd and delete checkboxes will be disabled if the alias was inherited from an ancestor web site.  The terms list contains a combined list of aliasable terms from the uber and master consoles.  It also contains the names of all accessible navigation items from in the current web site.  To prevent duplicate aliases the terms list only displays aliasable terms which have not yet been aliased.

    To add an alias:

    1. Login to your master management console.

    2. Click the "Web sites" link on the left-hand side.

    3. Locate the web site you are looking to manage this process on and click that link.

    4. The system will take you to a multi-tab screen. Locate the "Aliases" tab and click it.

    5. From the "Term" drop-down, choose the module you wish to alias.

    6. In the "Alias" field, type "ALIAS NAME" (no quotes) where ALIAS NAME is the name you wish to give the module. 

    7. Click the "Add Alias" button.

    8. Then click the "Save" button. You can now log out of the master management console.

    9. Next, go to the console of the site you are adding this process to: domain.com/console.

    10. Click the Site Architecture link on the left-hand side.

    11. Click the "Audiences" link.

    12. In the "Audiences" grid view, click the lone audience link.

    13. Adjacent to the "console navigation" multi-select box, click the green box that contains a checkmark on it. That will add all modules to the admin console.

    14. Click "save".

    15. Next, click on the "Content" link in the left-hand side of the console to display the modules available in the site.

  • Alternative Banners Display

    Alternative Banners Display


    Show Banners Alternative Banners Display

    [cp:scripting key='ShowBanners' id='ShowBanners' style='border: 1px solid red; padding: 1em;' /]
    Property Description
    zoneid The id of the form element. This property is required.
    Id The id of the form element. This required property allows form state to uniquely identify this element within the group.
    display The supported values are horizontally or vertically. Default Value is vertically.
    count This property will show X amount records. Default Value is 3.
    style The contents of the HTML style attribute. This property is optional.

  • Apose Migration 2016

    Apose Migration 2016

    Aspose Migration Paths

    Aspose.Cells Migration from 7.4.0 to 8.9.2

    Asspose.Pdf Migration from 8.5.0 to 11.9.0.0

    Asspose.Imaging Migration from 1.7.0 to 3.9.0

    Asspose.Slides Migration from 12.10.24 to 16.7.0.0

  • Application Trace Utility

    Application Trace Utility

    This tool, when enabled will track any page loaded on the front end of the site, including the application 'trace'. This tool, when enabled, will show the incremental page load steps, including times. It is typically used to isolate a problem within any page's load. As with page tracing generally, you can view trace information at the bottom of individual pages. Alternatively, you can use the trace viewer (Trace.axd) to view trace information collected and cached by ASP.NET when tracing is enabled. Be sure to turn off Application Trace, when you are completed diagnosing your site or webpage.

    More about this tool. This tool is really designed for highly skilled developers to help them better understand what is happening 'behind the scenes' during any individual page load.

  • Article Channels

    Article Channels

    Article Channels are used to create logical groups of Article Items. They are also used to display a public RSS feed of Article Items. The RSS feed URL of a channel can be found by viewing the page properties.

    The intention of this module is to create public RSS feeds for use in the various modules. For instance each console home page can be configured using Private Labeling to display different link groups in the content area. These link groups can contain things like company news or update details.
    Another use of these channels is to group Article Items that may never be used as an RSS feed and give that group a label. For instance, Articles are commonly used as help files for the various modules and features. These help files are arranged into channels to make it easier to locate and manage the help files, but the help file RSS feed may never be used. Also, by specifying the consuming site in the channel title, the Article Items may contain specific content and links within that site.
    Although some of these groups have specific purposes, they were developed to anticipate future needs. They produce standard RSS 2.0 XML so that they can be consumed by any RSS aggregator. We are also sure they will be used in new ways in Centralpoint Digital Experience Platform as time goes on.

  • Article Items

    Article Items

    Articles can be used for just about any global data. They can be referenced via an RSS feed using Article Channels or referenced individually. Individual public article URLs can be found by viewing the page properties. The Body attribute may contain Scripting tags. If the article is referenced via the properties URL all scripting tags are replaced with their default values. Lower level consoles provide custom URLs to execute local substitutions.

    This module was intended to be the catch all for generic article data within Centralpoint Digital Experience Platform. Articles can be consumed by any console or web site, even those not affiliated with Centralpoint Digital Experience Platform. The data is also provided as a remote procedure call via the Help web service. This web service takes the Article Id attribute from the properties section and returns an XML version of the document that can use to 'personalize' the content before displaying it to the end user. One of the primary uses of this feature is for each site to make custom Scripting substitutions.

  • Audience Domain Redirection

    Audience Domain Redirection

    The Microsoft URL Rewrite Module 2.0 for IIS 7 and above can be used to redirect to the desired domain based on the audience system name in the file path. This IIS module is not installed by default so you'll have to download and install it on the server before you begin: http://go.microsoft.com/?linkid=9722532.

    Once the module is installed it will be included as "URL Rewrite" in the IIS area of each site in IIS. Double click URL Rewrite to view your rules. To create an audience domain redirection rule click "Add Rule" and select the Blank Inbound rule template. Then configure the rule using the settings below replacing 'Main' with your audience's system name and 'dev.xodev00.com' with your domain. This can be repeated for each audience in the site which should only load in a specific domain.

  • Audience Sessions

    Audience Sessions

    The client console only allows a user to be logged into a single audience at a time. However, the new 'Audience Tree' feature located under the left hand navigation allows users to quickly and easily switch between accessible audiences. The audience tree provides a view of all audiences and prevents users from having to sign out to change audiences.

  • Audience Tree

    Audience Tree

    This module displays the audience tree including links to the details of each audience.  The current audience is highlighted and accessible audiences include the 'Select' link.  Clicking the select link will cause the current console to filter all data based on the selected audience.  The audiences are expanded to the current audience by default.

  • Audiences

    Audiences

    The Audiences module maintains a hierarchical list of audiences.  Audiences are intended to logically group web site data by the audience by which  it will be view.  By default all web sites have a Root or Main audience.  Descendants of the root audience can be created uniquely within each web site. Starting on July 16, 2018 new prices systems are now in effect for the Google Maps Platform. This is only in affect if you are using the GeoCodes attribute in this module. Please see the User Guide and view this option's billing here. In addition to the standard audience attributes the Audiences module also contains Properties.  They are intended to create a custom set of attributes for each Audiences module.  The web site property 'Audience Properties File' defines the location of the properties XML file.  This web site property value can be changed for a custom set of audience attributes.  These attributes will also be accessible from the web sites CDA.

    When logging into a console you are always logged in as a single audience.  You can then view the current audiences records and all descendant audience records.  You may change your current audience using the Audience Tree.  Module attributes are also appropriately filtered by the selected audience.  If a user is given access to an audience she is automatically given access to all descendant audiences.

    Audiences: Create a new Website via Audiences

    The instructions are for you to create a new website using CentralPoint's Audiences module. You can blend this into an existing design, or make it look like a completely different site all-together. The instructions below will assist you in the initial creation of a new audience/website.

    Audiences play a huge factor in back-end management. You can assign Administrators to individual Audiences, and they will only be able to view/edit records that are assigned to the same Audience as their Administrator record.

    1. Site Architecture > Audiences: Create your new audience using the console location in this step. Please note that your Audience system name will show in the URL bar within every page of that particular audience. I typically will keep them as short as possible, often using acronyms to abbreviate the system name.

      The "Main" audience is the root & default audience in every client console.

      Example: client-domain-here.com/main/navigation-system-name.aspx

      The bold piece of the example URL above is the audience system name. After creating your audience, this system name is set in stone. There is no way to change it, so please be certain this is desired from initially creating the audience.

      In this example, lets pretend we created an Audience with the system name being site1.

    2. Site Architecture > Homepages: To access your new audience using a front-end URL, you will need to assign it to a record in this Homepages module. You can share a homepage with another audience, or create a brand new one specific to site1.

      In this example, lets pretend we created a new Homepage record with the system name being site1-home.

      Your front-end URL would now be: client-domain-here.com/site1/site1-home.aspx

      Please note the following. You still will not be able to access the front-end until the next step is complete. Each audience should ONLY be assigned to ONE & ONLY ONE homepage record. Audiences assigned to multiple homepages could, and most likely will produce errors on the front-end website.

    3. Design > Styles: This is the final step before your new site/audience is ready for front-end viewing. You must either tag an existing Styles record to your new audience, or create a brand new one. Again, each audience should only be assigned to ONE & ONLY ONE record in Design > Styles. An audience assigned to multiple records in this section of the console could, and most likely will cause issues within your new audience/site.
    4. If you have followed these steps exactly as laid out, you will now be able to access the front-end of your website @: client-domain-here.com/site1/site1-home.aspx

    Audiences: Apply Unique Design

    1. To first begin applying a unique design per audience, please step through all steps outlined in Audiences: Create a new Website via Audiences
    2. You will want to assign this audience with a unique record in both Homepages & Design > Styles.
    3. Site Architecture > Module Designer: You will want to begin with creating 2 new records here. One if for the Homepage layout, and the other is to control the interior pages / all pages pulling from the Navigation module. This is done using the drop-down menu labeled Module after you click the "NEW" button.
    4. When inside these records it is best practice to set the field Use Navigation Content? to No.
    5. Insert this CpScript to pull the primary content from these modules:
    6. Go back to the Audience that you want to enable this new design for. Site Architecture > Audiences > (find / select audience)
    7. Click the tab labeled Company.
    8. Near the bottom of the record, there are two fields that you need to utilize to assign the newly created records built within Module Designer.
    9. Near the bottom of the record, there are two fields that you need to utilize to assign the newly created records built within Module Designer.
    10. Homepages Module Design (HomePagesModuleViews): Set this to new Homepages Module Designer record that you've just created.
    11. Navigation Module Design (NavigationModuleViews): Set this to new Navigation Module Designer record that you've just created.
    12. Now save the audience record, and refresh your new audience's URL. The homepage & navigation pages will be reading the design layout from these new Module Designer records.
    13. Please note: You may need to also create other new records in Module Designer to finish your site. For example: If you're utilizing News & Events modules, there is a good chance that you will need to create new versions of these to specifically match the look & feel of your new audience.

  • Authorizations

    Authorizations

    Microsoft Azure

    1. Create a new Azure App Registration if you don't already have one.
      • Name: Oxcyon Centralpoint
      • Supported account types: Accounts in any organizational directory (Any Azure AD directory - Multitenant)
      • Redirect URL: Empty
    2. Visit the authentication section and add the following Redirect URIs. First you may have to click Add a platform and select Web.
      • https://[WEBSITE_DOMAIN]/Integrations/Centralpoint/Authorization/OAuthCallback.aspx
      • https://[WEBSITE_DOMAIN]/Console/Integrations/Centralpoint/Authorization/OAuthCallback.aspx
      • https://[WEBSITE_DOMAIN]/Integrations/Centralpoint/Authorization/OneDrivePicker.aspx
      • https://[WEBSITE_DOMAIN]/Console/Integrations/Centralpoint/Authorization/OneDrivePicker.aspx
      • https://[MASTER_DOMAIN]/Integrations/Centralpoint/Authorization/OAuthCallback.aspx
      • https://[MASTER_DOMAIN]/Integrations/Centralpoint/Authorization/OneDrivePicker.aspx
    3. Also in the authentication section select "Access tokens" and "ID tokens" under "Select the tokens you would like to be issued by the authorization endpoint."
    4. The Owners section of the App registration can be used to grant others access to your app registration.
    5. Open API Permissions and add the following permissions under Microsoft Graph > Delegated permissions.
      • email
      • offline_access
      • openid
      • profile
      • Files.Read
      • Files.Read.All
      • Files.ReadWrite
      • Files.ReadWrite.All
      • Sites.Read.All
      • Sites.ReadWriteAll
      • Mail.Read
      • Mail.Read.Shared
      • Mail.ReadBasic
      • Mail.ReadWrite
      • Mail.ReadWrite.Shared
      • Mail.Send
      • Mail.Send.Shared
    6. Create a record in the Admin > Authorizations module using the information in your app registration.
      • System Title: Microsoft Azure
      • Type: Microsoft Azure
      • Tenant ID: A GUID found on the Overview of the app registration under the header "Directory (tenant) ID".
      • Client ID: A GUID found on the Overview of the app registration under the header "Application (client) ID".
      • Client Secret: In the Certificates & Secrets of your app registration you can create a Client Secret. Remember to update this value when it expires.
      • Redirect URL: This attribute is typically left empty.
      • Administration URL & Information: Paste in a link to the App registration for future reference.

    OAuth 2.0

    This option is designed for developers only. It can be used to configure custom OAuth authorizations in some cases.

    Microsoft Azure (Single-Tenant Alternative)

    If your organization's security policies require a single-tenant Azure App Registration instead of the multi-tenant configuration described above, you can use the OAuth 2.0 type with tenant-specific endpoints.

    Note: The standard multi-tenant configuration is recommended as it simplifies setup and is the standard approach for SaaS applications. The multi-tenant setting only allows your app to authenticate users from different Azure AD tenants - it does not give other organizations access to your data.

    To configure a single-tenant Microsoft Azure integration:

    1. Create a new Azure App Registration following the same steps as above, but select:
      • Supported account types: Accounts in this organizational directory only (Single tenant)
    2. Complete steps 2-5 from the Microsoft Azure section above (Redirect URIs, tokens, owners, and API permissions).
    3. Create a record in the Admin > Authorizations module using the information from your app registration:
      • System Title: Microsoft Azure
      • Type: OAuth 2.0
      • Flow: Authorization Code
      • Authorize URL: https://login.microsoftonline.com/[TENANT_ID]/oauth2/v2.0/authorize
      • Token URL: https://login.microsoftonline.com/[TENANT_ID]/oauth2/v2.0/token
      • Client ID: A GUID found on the Overview of the app registration under the header "Application (client) ID".
      • Client Secret: In the Certificates & Secrets of your app registration you can create a Client Secret. Remember to update this value when it expires.
      • Redirect URL: This attribute is typically left empty.
      • Administration URL & Information: Paste in a link to the App registration for future reference.

    Important: Replace [TENANT_ID] in the Authorize URL and Token URL with your actual Directory (tenant) ID GUID from the Azure App Registration Overview page.

  • Backup Web Site Utility

    Backup Web Site Utility

    This tool will provide a full backup of your site's database (within SQL), and will also back up all related site files used within your site. To adjust the 'Maximum Backups', you must go to the Centralpoint Master Management Console. If you do not have access to your Master Management console, kindly contact your hosting or network administrator.

    Note: This is highly used tool, by anyone and is typically a good idea to run this prior to any major work you do to your website (massive data imports, or any type of major enhancements to the site). In this way, all work has been properly saved, should you ever need to 'Restore' that backup.

  • Bin Folder & My Modules

    Bin Folder & My Modules

    The easiest way to add your own assemblies to the Bin folder is to add them to the Development site and prefix the .dll files names with "my_". This way they behave like all My Module files, and are not removed by the Centralpoint update installation.  Admin > Properties > Sync Exclusions is another option the .dll file is only used in the web site's root folder.  Adding a file to this attribute will prevent it's deletion when the site is sync'd.  However, we are aware that there are times when you cannot control the name of the .dll file or exclude it from the sync so we have outlined some alternatives below.

    If you cannot rename the .dll file you can place it in a folder that is prefixed with "my_", like "Bin/my_Bin/YourAssembly.dll". This folder will behave like any other My Module code during the sync and update process, but your assembly will not automatically be recognized by ASP.NET. Next, you must add a configuration/runtime/assemblyBinding/probing element to the web.config file of each site that contains the my_Bin folder as follows.

    <runtime>
    	<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    		<probing privatePath="bin;bin\my_Bin" />
    	</assemblyBinding>
    </runtime>
    
    Alternatively, custom assemblies can also be installed in the Global Assembly Cache (GAC). The assemblies installed in the GAC will be accessible to all applications on the computer. In this case, the computer is the web server, and the assemblies will be accessible to all web sites on the computer. These assemblies will not be removed by Centralpoint because the GAC is not affected by the sync or update processes.

    Finally, you need to register your assembly so that it is recognized by the ASP.NET application. This can be done in the individual ASPX/ASCX files (<%@ assembly name="YourAssembly" %>) or within the configuration/system.web/compilation/assemblies element of the web.config file of each web site that will utilize the assembly (<add assembly="YourAssembly" />). These files will not be overwritten by the Centralpoint because custom ASPX/ASCX files should be development within My Modules protecting them from the update/sync process, and web.config files are excluded from the sync.

  • Blogs

    Blogs

    The steps below describe how to set up and begin managing a blog.

    1. Go to Site Architecture > Module Designer and create a new module designer record by clicking the "New" button.

    2. Insert "Blogs" into the "Name" field, and choose the "Topics" module from the "module drop-down". Click "Save."

    3. The system will generate the module and kick you back to the module designer record that you created. Click "Save" again.

    4. Go to Site Architecture > Navigation and create a new page by clicking the "New" button.

    5. Insert "Blogs" in the "Title" and "Browser Title" fields. In the "Page Type" option selector, choose "Module".

    6. A module drop-down menu will appear. Choose "Blogs" from that module drop-down menu.

    7. On the "Visible" option, click "No". On the "Include in Site Search" option, click "No." You'll likely want to change these values after getting your blog set up, but for the time being it's best to keep the page out of the public eye. Click "Save".

    8. Once you have your blogs module set up in the console, you can now begin inserting members, bloggers and topics. If the new blogger does not yet have a member profile, you must create one. Go to Members, and click "New".

    9. Insert the appropriate username and password for the new blogger, and be sure to tie this user to the "Blogger" role. They should not have console access, so make sure that you choose only the "Blogger" role, nothing in "Console Navigation" and you check only the left-hand check boxes in the "Accessible Audiences" multi-select. Click "Save". Repeat as necessary for the number of bloggers you need to add.

    Note: If the user who is a blogger already exists as a member or administrator, please be sure to edit his or her member or administrator record by tagging them to the "Blogger" role.

    10. Once your blogger member profiles are set up, you can begin creating bloggers in the Blogs > Bloggers module by clicking the "New" button. Be sure to fill out the Blogger form as completely as possible, most importantly tagging the appropriate member profile to the blogger you're creating in the Bloggers > User Account field. Be sure to cliock "Save". Repeat as necessary.

    11. After you've set up your bloggers, you can then begin adding blog topics to the Blogs > Topics module by clicking the "New" button. The "Title" field is the title of you blog. The "Body Copy" is the full text of your blog post. You can add "Citation/Byline" info, as necessary, upload attachments, but most importantly please ensure that you tag the topic to the appropriate blogger in the Topics > Blogger field. Remember to click "Save". Repeat as necessary.

    12. Once you've completed a number of Topics entries, you can check your work at http://yourdomainhere.com/main/blogs.aspx .

    13. To allow a blogger to log in and edit his or her blog items, the url will be: http://yourdomainhere.com/main/blogs.aspx?form=y .

    14. To edit the design or content of the blogs module, you can utilize scripting and html to change the module designer created in step 2. For information on scripting and module design records can be found in these help files: Scripting and Module Designer.

    Adding Comments

    If you wish to set up a comments module configuration for a blog, go to Comments > Configuration in the web site console and click the "New" button.

    The system will spin up a new configuration record. You can implement the features you wish to display on your comments area within the Form and Thread tabs in the Configuration module. For more on these, please turn to the Comments help file.

    Once the configuration is complete, click the "Save" record. The system will generate a cp:script in the Configuration > Default (tab) > CpScript field. Copy that script and paste it on a Notepad document for future use.

    Next, within the Site Architecture > Module Designer module, locate the Blogs module designer that will be used to display the blog records. Click into that record.

    Click the Topic Details tab, and locate the Footer Content field. Paste the cp:script copied to the Notepad document into the Footer Content field. Then click "Save".

    The comments configuration you created is now part of the blogs view.

    Form Field Types Reference

    Centralpoint Forms support 13 different field types. Here's a quick reference for the most commonly used types:

    Field Type Purpose Key Parameter
    FormTextBox Single-line or multi-line text TextMode='MultiLine', Rows='4'
    ExtDatePicker Date picker with calendar sourceFieldId (requires 3 components)
    FormListBox Dropdown selection AddListItems (XML format)
    FormUpload File upload control defaultValue stores file path
    FormSignature Digital signature capture Width, Height (auto-creates 4 metadata fields)
    FormEditor Rich text WYSIWYG editor Width='980'

    Key Point: All form fields require a group attribute that must be identical across all form components (HTML, Field Map XML, email templates). Mismatched group names cause silent failures.

    Module Field Types: Standard vs XQuery

    Understanding which fields are standard (direct SQL columns) versus XQuery fields (stored in Attributes XML) is critical for module development.

    Core Standard Fields (Always Available)

    These fields exist in ALL Centralpoint modules:

    • Title, DataId, IsEnabled, Priority
    • StartDate, EndDate (publish dates)
    • CreatedBy, ModifiedBy, CreatedDate, ModifiedDate
    • Summary, Keywords
    • Taxonomy, Audiences, Roles

    GenericEnhanced Standard Fields

    • TextBox1-5 (single-line text)
    • RTFEditor1-3 (rich text)
    • FileUpload1-5 (file paths)
    • YesNo1-10 (boolean 0/1)

    XQuery Fields: Any field NOT in the standard lists above is an XQuery field stored in Attributes XML. These require special syntax: name='cpsys_Attributes:FieldName' in CpScript tags.

  • Blurbs

    Blurbs

  • CAD Files

    CAD Files

    cad-file

    The CAD Files Module Suite is a collection of two modules, Files, and Projects. When creating a File in the Files Module, please make sure that there is at least one Project that you can tag it to. These files are supported currently:

    • .skp
    • .sldasm
    • .sldprt
    • .stp
    • .dwg
    • .gp4
    • .nwd
    • .cgr
    • .obj
    Note: If you need more files to be supported, please contact your production staff member. There are 2 file 'Types', 2d and 3d. .dwg and .gp4 are considered 2d Types and will open with a different viewer than the all the other file types.

     

    CpScripts for this Module Suite

    Results View

    Results Link To Viewer This DataBind shows a link to the CAD Viewer depending on what type it is on the Results View.

    [cp:databind key='ResultsLinkToViewer(Container.DataItem, "View CAD File", "", "")' /]
    Property Description
    Container.DataItem This property must stay as Container.DataItem.
    LinkTitle Text which will be displayed as title of href.
    Roles Optional. When this property is set to a comma separated list of role system names the script will return the empty string unless the current user belongs to one of the included roles.
    Format Place a {{0}} where you want the link to be populated.
    Details View

    Details Link To Viewer This DataBind shows a link to the CAD Viewer depending on what type it is on the Details View.

    [cp:databind key='DetailsLinkToViewer("View CAD File", "", "")' /]
    Property Description
    LinkTitle Text which will be displayed as title of href.
    Roles Optional. When this property is set to a comma separated list of role system names the script will return the empty string unless the current user belongs to one of the included roles.
    Format Place a {{0}} where you want the link to be populated.

  • Centralpoint Agent

    Centralpoint Agent

    The Centralpoint Agent is a windows service that is automatically started when the server is started.  When the master is installed on the server it is installed, initialized and started.  It communicates with the master console using a web service at /WebServices/ScheduledTasks.asmx.

    The fully qualified URL to the master web service is stored in the windows service app.config file during installation and must be manually modified if the master's URL is changed.  This app.config file also maintains the scheduler frequency (number of minutes between scheduler executions) which has a default value of 30.  It is highly recommended that this setting contain a value between 1 and 1440 (24 hours).  

    The scheduler frequency is the rate at which the scheduler will check for scheduled tasks in which the next run time has passed.  It is directly tied to the accuracy of the scheduler and will initially run tasks within the 30 minutes of their scheduled time.  Server restarts cause the timer to begin counting again.  This may cause problems if the frequency is greater than the time between server restarts.  For instance, if a server is restarted every 4 hours and the scheduler frequency is 241 (4 hours 1 minute), the scheduler will never execute because the timer will restart every 240 minutes never reaching the 241 minute execution mark.

    Modify Centerpoint Agent run time frequency: In \\ServerIp\centralpoint\Agent open CentralpointAgent.exe.config in notepad. In appSettings find Interval_Minutes and set desired value(in minutes). Save File. Start > Run > services.msc In open Services window find 'Centralpoint Agent' right click and select restart.

  • Centralpoint Forms Management

    Centralpoint Forms Management

    Understanding Centralpoint's Forms Management is essential to unlocking a whole new level of automation and efficiency across your organization. This narrated video walks you through Forms, the Forms Wizard, Workflow Management, and Reporting — showing how easy it is to create, manage, and route forms dynamically based on user input. Centralpoint Forms aren't just simple data collectors; they drive powerful, role-based workflows that can automate reviews, approvals, assignments, and even the dynamic generation of documentation — all tailored to the data users provide.

    By mastering Forms and Workflow, you can transform static, manual processes into intelligent, automated routines. Imagine building proposals, contracts, compliance documents, or internal reports automatically, based entirely on how a user completes a form — without duplicative work or delays. This video will show you how Centralpoint empowers you to streamline operations, improve data quality, enforce governance policies, and deliver a highly personalized, efficient experience to both users and administrators alike.

    How Centralpoint Forms Work

    A complete Centralpoint form consists of four components working together:

    Component Purpose Location
    Form HTML User-facing input fields using ff-container markup Forms → Page1 tab
    Field Map XML Maps form values to module fields for data storage Forms → Processing tab
    Email Templates Notification content for submitter and approvers Forms → Email tab
    Document Templates Word template with placeholders for PDF generation Forms → Properties

    Building Your First Form: Complete Example

    Let's build an Employee Request form with five fields: Employee Name, Department, Request Date, Description, and Signature. This example shows you everything you need in a real working form.

    Understanding the ff-container Pattern

    Every form field in Centralpoint uses the ff-container pattern. This wraps each field with its label and ensures consistent styling and behavior.

    <div class="ff-container">
      <div class="ff-label">
        <label for="cpsys_FormItem_employeerequest_EmployeeName">Employee Name</label>
        <span class="required">*</span>
      </div>
      
    </div>

    Key Point: The group attribute (in this example: employeerequest) MUST be identical in every field, Field Map reference, and email template. If it doesn't match, the form will fail silently.

    Complete Form HTML

    Here's the complete HTML for all five fields. Notice how each field follows the same ff-container pattern, and all use the same group name.

    <!-- Employee Name Field -->
    <div class="ff-container">
      <div class="ff-label">
        <label for="cpsys_FormItem_employeerequest_EmployeeName">Employee Name</label>
        <span class="required">*</span>
      </div>
      
    </div>
    
    <!-- Department Field (Taxonomy Dropdown) -->
    <div class="ff-container">
      <div class="ff-label">
        <label for="cpsys_FormItem_employeerequest_Department">Department</label>
        <span class="required">*</span>
      </div>
      
    </div> <!-- Request Date Field (3 Components Required) --> <div class="ff-container"> <div class="ff-label"> <label for="cpsys_FormItem_employeerequest_RequestDate">Request Date</label> <span class="required">*</span> </div> </div> <!-- Description Field (Multi-line Text) --> <div class="ff-container"> <div class="ff-label"> <label for="cpsys_FormItem_employeerequest_Description">Description</label> </div> </div> <!-- Signature Field --> <div class="ff-container"> <div class="ff-label"> <label for="cpsys_FormItem_employeerequest_Signature">Signature</label> <span class="required">*</span> </div>
    </div> <!-- Hidden Fields for Context -->

    Important: Date fields require THREE components: ExtDatePicker (the calendar widget), FormTextBox (hidden field that stores the value), and FormRegularExpressionValidator (ensures proper date format). All three must be present or the date field won't work.

    Signature Fields Auto-Generate Hidden Fields: When you use FormSignature, Centralpoint automatically creates four hidden fields: Signature_UserId, Signature_UserName, Signature_SignDate, and Signature_IpAddress. You MUST map all four in your Field Map XML (shown below).

    Connecting Forms to Modules: Field Map XML

    The Field Map XML tells Centralpoint where to save the form data. It maps each form field ID to a module attribute. This goes in the Processing tab of your form.

    <navigation systemName="EmployeeRequests">
      <!-- Combines Employee Name + Date as the record Title -->
      <attribute systemName="Title"><![CDATA[
        cpsys_Null - 
        cpsys_Null
      ]]></attribute>
      
      <!-- Map each form field to its corresponding module attribute -->
      <attribute systemName="EmployeeName"><![CDATA[
        cpsys_Null
      ]]></attribute>
      
      <attribute systemName="Department"><![CDATA[
        cpsys_Null
      ]]></attribute>
      
      <attribute systemName="RequestDate"><![CDATA[
        cpsys_Null
      ]]></attribute>
      
      <attribute systemName="Description"><![CDATA[
        cpsys_Null
      ]]></attribute>
      
      <!-- Main signature image -->
      <attribute systemName="Signature"><![CDATA[
        cpsys_Null
      ]]></attribute>
      
      <!-- Four auto-generated signature metadata fields (REQUIRED) -->
      <attribute systemName="Signature_UserId"><![CDATA[
        cpsys_Null
      ]]></attribute>
      
      <attribute systemName="Signature_UserName"><![CDATA[
        cpsys_Null
      ]]></attribute>
      
      <attribute systemName="Signature_SignDate"><![CDATA[
        cpsys_Null
      ]]></attribute>
      
      <attribute systemName="User_Id"><![CDATA[
        cpsys_Null
      ]]></attribute>
      
      <!-- Path for generated PDF document -->
      <attribute systemName="Document_Record_Resource"><![CDATA[
        /Uploads/Forms/{{FORM_GUID}}/cpsys_Null.pdf
      ]]></attribute>
    </navigation>

    CDATA Wrapping: All FormState values in Field Map XML must be wrapped in <![CDATA[...]]> tags. This prevents XML parsing errors when form data contains special characters.

    Complete Form Field Types Reference

    Centralpoint Forms support 13 different field types. Each uses the ff-container pattern and requires the group attribute.

    Field Type Purpose Key Parameters
    FormTextBox Single-line or multi-line text input TextMode='MultiLine', Rows='4', RequiredFieldErrorMessage
    ExtDatePicker Date selection with calendar picker (requires 3 components) sourceFieldId, displayDateTimePicker='no'
    FormListBox Dropdown selection list PleaseSelect, AddListItems (XML format)
    FormRadioButtonList Radio buttons or checkboxes SelectionMode='Multiple' (for checkboxes), AddListItems
    FormUpload File upload control defaultValue (stores file path)
    FormTaxonomy Taxonomy category selection rootValue (taxonomy GUID)
    FormAudience Audience/user selection rootValue (audience root GUID)
    FormEditor Rich text editor (WYSIWYG) Width='980' (pixel width)
    FormSignature Digital signature capture Width, Height (auto-generates 4 hidden fields)
    FormCaptcha CAPTCHA verification styles (CSS styling)
    FormHiddenField Hidden metadata fields defaultValue (use cpsys_Constant:UserInfo for user context)
    FormButton Submit or action button text (button label)
    FormRegularExpressionValidator Field validation with regex itemToValidate, pattern (regex pattern)

    Visual Reference: What Field Types Look Like

    Here's how each field type appears to users when they fill out a form. This visual guide shows the actual rendered controls including text boxes, date pickers, dropdowns, checkboxes, file uploads, taxonomy selectors, audience selectors, captcha, rich text editor, and signature capture.

    Example of Available Form Field Types

    Visual reference showing all available form field types as they appear to end users

    Critical Rules to Remember

    1. Group Consistency: The group attribute MUST be identical across all form fields, Field Map references, and email templates. If the group name doesn't match, form submission will fail silently.

    2. CDATA Wrapping: All FormState values in Field Map XML must be wrapped in <![CDATA[...]]>. This prevents XML parsing errors when form data contains special characters like <, >, or &.

    3. Signature Fields: FormSignature auto-creates four hidden fields (UserId, UserName, SignDate, IpAddress). You MUST map all four in your Field Map XML or the signature data won't be saved.

    4. Date Field Triad: Date fields require three components: ExtDatePicker (calendar widget), FormTextBox (value storage), and FormRegularExpressionValidator (format validation). All three are required.

    5. Label ID Format: Label for attributes must follow this exact format: cpsys_FormItem_{{groupname}}_{{FieldId}}. For example: cpsys_FormItem_employeerequest_EmployeeName

  • Centralpoint's NLS (Natural Language Search)

    Centralpoint's NLS (Natural Language Search)

    Normal module submissions should be reflected in the remote index within 15 minutes, but larger updates like data transfers occur overnight using the scheduled task. For this to occur you must schedule the Natural Language Search job in your master console to run after transfers and before high traffic hours.

    Algolia

    Before beginning you must create an Algolia account and configure the Application ID and App Keys in the Natural Language Search module properties.

    Amazon Kendra

    Before beginning you must create an AWS account and configure the Amazon Kendra Access Key, Amazon Kendra Secret Key, Amazon Kendra Account Id, and Amazon Kendra Role in the Natural Language Search module properties. Create the index using the Centralpoint "Initialize" option in the "Execute" selection array. Do not create the index within Amazon Kendra's toolset.

    By default, Amazon Kendra limits string lists to 10 values per attribute. This can affect system filters and we recommend you contact AWS support once your index is set up and ask for this value to be increased to 200. Once this change is made you can inform Centralpoint using the Amazon Kendra Maximum String List Size Per Attribute module property.

    Amazon Kendra does not support the creation of facets via the API, so you must create them manually. Once the index has finished creating, go to the Data Management > Facet definition view in the Amazon Kendra console. Manually create the following facet exactly as listed:

    • AncestorAudienceIds: String list, Facetable
    • Anchor: String, Displayable
    • AudienceIds: String list, Facetable, Displayable
    • AutoNumber: Long, Displayable
    • AverageRating: Long, Displayable
    • CommentCount: Long, Displayable
    • CpNlsSplitMatchText: String, Displayable
    • DataCurrentLookupIds: String list, Facetable, Displayable
    • DataCurrentTitles: String list, Searchable
    • DataId: String, Facetable, Displayable
    • EndDate: Date, Facetable, Displayable
    • IndexDataId: String, Facetable, Displayable
    • IntegrationId: String, Displayable
    • IsEcommerce: String, Displayable
    • IsEnabled: String, Facetable, Displayable
    • ModuleId: String, Facetable, Displayable
    • ParentAudienceIds: String list, Facetable
    • RoleSystemNames: String list, Facetable, Displayable
    • SplitOn: String, Facetable, Displayable
    • StartDate: Date, Facetable, Displayable
    • Summary: String, Searchable, Displayable
    • Target: String, Displayable
    • TaxonomyIds: String list, Facetable, Displayable
    • TaxonomyNames: String list, Searchable
    • Title: String, Facetable, Searchable, Sortable
    • [SystemName]: String, Displayable Add this for each attribute in Attributes (attribute in the NLS module).

     

    Please do not execute the Rebuild option with Amazon Kendra. If you wish to dump and repopulate the index you can use the Refresh option instead.

    An attribute called DocumentExcerpt (cpsys_Attributes:DocumentExcerpt) is automatically initialized with the summary attribute if it exists and overwritten with the document excerpt returned by Amazon Kendra.

    Kendra can be very slow to reflect changes applied in the module. I would give it a ½ hour before judging the results.

    Setup

    It is intended that a module is only used in the same index only once. You may get unexpected results if you select the same module with the same Remote Index Name in two different records. If you to create two objects in the remote index for the same data id you should either use attribute splitting or add an anchor to at least one of the rows to generate unique object ids.

     

    Configuring Attributes

    Amazon Kendra requires that you manually add a facet for each included attribute.

    For the attribute to be accessible with a cpsys_Attributes: Column CpScript, the following steps must occur:

    • Within Kendra the facet created for the attribute must have Display checked.
    • Within the Centralpoint NLS record, the attribute model must have the Displayable property set to true

    It is highly recommended that you only include the attributes that include content that makes sense to search. Do not use the "_ALL" option with Amazon Kendra.

    [
        {{
            "SystemName": "_ALL",
            "StripHtml": true,
            "MaxLength": 4000,
            "Displayable": false
        }}
    ]
    
    Attribute Splitting

    Attribute splitting may be required if one attribute contains an extremely large amount of data. It allows you to split one attribute into multiple search results and configure the anchor and the title of each search results. If you want the rest of the attributes to be searchable, you should first create a separate record which contains allows the rest of the attributes to be searchable. Then, you can configure an attribute splitting record to split the large attribute as demonstrated below. The following example splits the large attribute on H elements using the contents of the H element in the title and linking directly to the H element when the search result is clicked. Now the 4000 character limit is applied to each H element instead of the entire attribute. This also improves search relevance by taking users directly to the content they're looking for. When CapatureIndex is -1, the the system will generate a query string variable that anchors to the index of the match instead of using a standard anchor.

    [
        {{
            "SystemName": "RTFEditor1",
            "StripHtml": true,
            "MaxLength": 4000,
            "Split": {{
                "RegexPattern": "<h[1-3]{{1}}.*?>(.*?)</h[1-3]{{1}}>",
                "AnchorCaptureIndex": -1,
                "TitleCaptureIndex": 1,
                "TitleFormatString": "{{1}} ({{0}})",
                "IsMatchRemovedFromValue": false
            }},
            "Displayable": false
        }}
    ]
    

    When records in Algolia are created from the Attribute Splitting model, the text matched from the RegEx Pattern will be stored in an attribute named CpNlsSplitMatchText. If the RegEx Pattern looks for HTML markup, the HTML is stripped. This will occur by default and does not require changes to the console configuration.

    • IsMatchRemovedFromValue - This boolean property is set to false by default. Setting this to true will remove the match found with the RegEx Pattern from the attributes.{{propName}} value stored in the Algolia record.

      For example, if a heading tag is matched, <h2>Hello World</h2><p>Lorem ipsum dolor</p>, only the content following match will be set in the Algolia property. In this example, the RTFEditor1 property will exclude the matched heading and contain the following: <p>Lorem ipsum dolor</p>

    Index Settings

    Rebuilding this index will override any changes made manually using the remote index web app. The Rebuild option is not supported by Amazon Kendra. All index settings must be made manually in the Amazon Kendra console.

    {{
        "SearchableAttributes": [
            "title",
            "taxonomy.Name",
            "attributes"
        ],
        "AttributesForFaceting": [
            "filterOnly(audiences.audienceId)",         "filterOnly(audiences.parentAudienceId)",         "filterOnly(audiences.ancestors.audienceId)",         "filterOnly(endDate)",         "filterOnly(indexDataId)",         "filterOnly(isEnabled)",         "filterOnly(moduleId)",         "filterOnly(roles.systemName)",         "filterOnly(startDate)",         "filterOnly(taxonomy.taxonomyId)",         "filterOnly(dataCurrent.lookupId)",         "filterOnly(dataId)"      ]
    }}
    
    Centralpoint

    Centralpoint's Contextual Search provides powerful, customizable search capabilities across your website content. This guide outlines how to set up and configure the three available search options:

    1. NLS Autocomplete
    2. Advanced Searches (Website Searches)
    3. Module Searches (Results Views)
    Step 1: Create an NLS Configuration Record

    First, set up a record in the NLS Configuration module to define your search behavior:

    1. Navigate to Admin > NLS Configuration (important: updating module properties must be done from Admin > NLS Configuration, not NLS & AI > NLS Configuration)
    2. Click Add New to create a new record
    3. Select "Centralpoint" as the Type
    4. Configure the following properties:
      • Search Behavior: Choose between Flexible (finds all relevant matches even if some query words are missing) or Strict (only returns results containing every query word)
      • Maximum Query Length: Sets character limit for search queries (default: 256)
      • Maximum Terms: Limits number of distinct search terms processed (default: 10)
      • Minimum Term Length: Sets minimum character length for search terms (default: 3)
      • Scoring Parameters: Configure how results are ranked:
        • Phrase Relevance
        • Prefix Scoring
        • Position Scoring
        • Freshness Scoring
        • Comment Count Scoring
        • Average Rating Scoring
        • Popularity Scoring
      • Synonym Generation: Enable/disable synonyms in search
      • Spelling Suggestion Generation: Enable/disable spelling corrections
      • Search Event Logging: Enable/disable tracking of search queries
      • Snippet Generation Type: Controls how content snippets are generated
      • Noise Words: Common words filtered out of search queries

    Note: The default scoring parameters have been carefully tuned for optimal performance. Disable any scoring features that you are not using (e.g., if comments aren't used, disabling comment count scoring will improve search performance).

    Note: Synonym generation uses the content in the NLS & AI > Synonyms module. Entering too many synonyms could cause a slowdown in performance.

    Step 2: Configure Your Desired Search Implementation
    Option 1: NLS Autocomplete

    To enable autocomplete search functionality:

    1. Navigate to the Script Generator module
    2. Click Add New to create a new record
    3. Set Type = "NLS Autocomplete"
    4. Configure these key properties:
      • Index: Select the NLS index to search against
      • Search Results Module: Select modules that use the specified index. Ensure these modules are included in your NLS Configuration, otherwise they won't show data.
      • Configure additional search display options as needed
    5. Save the record, copy the CpScript, and place it where you'd like it to render

    Note: The Search Results Sources attribute can be modified after submission, but may reset if the sources change via other attributes.

    Option 2: Advanced Searches (Website Searches)

    To configure site-wide search capabilities:

    1. Navigate to System Pages > Search
    2. Select Enabled under the Natural Language Search attribute
    3. Select your previously created NLS Configuration record
    4. Enter the attributes to highlight and snippet in search results
    5. Configure additional search display options as needed
    Option 3: Module Searches (Results Views)

    To implement search within specific modules:

    1. Navigate to the Module Designer module
    2. Select the desired module
    3. Go to the Results View (#2) tab
    4. Select Enabled under the Natural Language Search attribute
    5. Select your previously created NLS Configuration record
    6. Enter the attributes to highlight and snippet in search results
    Performance Considerations
    • Search Behavior: Flexible search typically performs faster but may return more varied results
    • Maximum Base Results: Affects initial query performance (default: 1000)
    • Count Cache Duration: Controls caching of count operations to reduce database load
    • Search Event Logging Delay: Sets minimum seconds between logging search events to prevent excessive database entries
    • Snippet Generation Type: Dynamic snippet generation could take up to 1/2 second per displayed record when content is very long
    Auto-linking and Post-click Highlighting

    Auto-linking and post-click highlighting features are only available when Snippet Generation Type is set to Dynamic. To enable these features:

    1. In the module designer (for Module Searches) or System Pages > Search (for Advanced Searches), locate the attribute you want to highlight/snippet
    2. Set InsertObjectIdElement='true' on the snippeted attribute
    3. For auto-linking to the first block containing search terms, ensure "Disable Auto Link to First Block" is set to "No" in your NLS Configuration
    4. For highlighting search terms on the destination page after clicking, ensure "Disable Post Click Highlighting" is set to "No" in your NLS Configuration
    5. Make sure the oid query string variable and #oid are included in your search result links
    Important Implementation Notes
    • You should turn off memory in the query string and use Snippetting and Highlighting instead on module/advanced searches using NLS.
    • Add Column: Object reference not set to an instance of an object. to the URL.
    • For snippetting jump links to work you must:
      • Make sure the descattr/snippet attribute is properly set up
      • Ensure OID is in the query string
      • Set up the snippeted attribute CpScript in the details view as follows:
    Advanced Configuration

    For detailed scoring adjustments and custom implementations, refer to the complete property documentation in the Contextual Search configuration.

    To maintain performance during periods of elevated user activity, we recommend the following manual adjustments to reduce system strain. These are listed in order of impact:

    Disable Spelling Suggestions and Synonyms These features perform computationally intensive linguistic analysis and are the most resource-heavy. Disabling them will immediately reduce query processing time. Reduce Maximum Search Results Lowering the result cap from 1,000 to 250 significantly reduces post-query sorting, scoring, and rendering times.

    Turn Off Engagement Scoring Disable features like comments, ratings, and popularity weighting. These rely on aggregated user behavior data and can delay result finalization.

    Switch Search Behavior Mode to “Flexible” "Strict" search behavior enforces exact matches, which increases computational overhead. "Flexible" mode maintains user experience while enabling faster results.

    Disable Position Scoring If enabled, position scoring analyzes the location of keywords within content. Disabling it removes another layer of scoring complexity.

    📊 Estimated Impact: These changes can improve search response times by 40–60% during peak load, without affecting the relevance of core search results.

  • Change Attributes Filter

    Change Attributes Filter

    Fields available in Data Current Table: DataId (uniqueidentifier) BatchId (uniqueidentifier) AutoNumber (int) IntegrationId (nvarchar(256)) Title (nvarchar(256)) Summary (nvarchar(512)) IsEnabled (bit) CreateDate (datetime) ModifyDate (datetime) StartDate (datetime) EndDate (datetime) Fields available in Attributes: will display after you select your module

    Filter Examples: Data Current Table: cpsys_DataCurrent.Title = 'Record Title' cpsys_DataCurrent.AutoNumber = 1 cpsys_DataCurrent.DataId= 'Record Guid' cpsys_DataCurrent.IsEnabled = 1 cpsys_DataCurrent.AutoNumber  BETWEEN 1 AND 1000

    Between Dates: DATEADD(dd, 0, DATEDIFF(dd, 0,cpsys_DataCurrent.StartDate)) >= '09/22/2009' AND DATEADD(dd, 0, DATEDIFF(dd, 0,cpsys_DataCurrent.EndDate))  <= '10/22/2009'

    Less or Equal then Now: cpsys_DataCurrent.StartDate <= GETDATE ()

    Greater or Equal then Now: cpsys_DataCurrent.StartDate >= GETDATE ()

    Data Current Attributes: cpsys_DataCurrent.Attributes.value('(/cpCollection/group/property[@id="Taxonomy"]/value)[1]', 'NVARCHAR(MAX)') LIKE '%Taxonomy Guid%' cpsys_DataCurrent.Attributes.value('(/cpCollection/group/property[@id="Audiences"]/value)[1]', 'NVARCHAR(MAX)') LIKE '%Taxonomy Guid%'  * cpsys_DataCurrent.Attributes.value('(/cpCollection/group/property[@id="Attributes_Name"]/value)[1]', 'NVARCHAR(256)') = ''

    * This will retrieve all records where specified attribute is empty.

  • Chrome SameSite Cookie Change

    Chrome SameSite Cookie Change

    SAML Global Logins use a cookie to maintain SAML session state in support of the SAML protocol. This cookie must have a SameSite mode of None. In earlier releases of Chrome, the SameSite mode defaulted to None. The update defaults the SameSite mode to Lax. Furthermore, if a SameSite mode of None is specified, Chrome requires the Secure attribute to be specified for the cookie.

    To repair or prevent issues caused by this change the ASP.NET session cookie must include a SameSite value of None and should be marked as secure.

    1. Update the application's web.config to specify the following.
      <sessionState cookieSameSite="None" />
      <httpCookies requireSSL="true" />
      
    2. If the previous step causes an unrecognized attribute configuration error.  Update the web server to the latest ASP.NET release (ie ASP.NET v4.8 or later) to pick up the runtime support for SameSite.  This will require a server restart.  Note that the application may continue to target an earlier version of the .NET framework. For example, your application's project may continue to target .NET framework v4.0 but you need to update the web server to ASP.NET v4.8.

    Some older browsers are incompatible with the SameSite mode of None. In particular, older releases of Safari, prior to OSX Catalina or iOS 13, will fail if presented with a SameSite mode of None. It's recommended that users upgrade to the latest OSX or iOS release. Of course, this may not be possible and the SAML for ASP.NET 4.0.0 and SAML Cookie HTTP Module both include code to detect these older browsers and not include the SameSite mode in the cookie. https://www.chromium.org/updates/same-site/incompatible-clients

  • CI Products

    CI Products

    Help file for channel intelligence products for Woodworkers.

  • Clean Up Website Utility

    Clean Up Website Utility

    This tool will clean your web site, file system and database. It will audit files no longer referenced in the database and delete them, it will also run complete database maintenance routines, restart any (saved items in) cache memory, and restart the entire website application.

    Note: This is a good tool to use, if there is ever some performance anomoly on your website, based on some spike in traffic, or if you feel like some activity on the site has slowed it down in some way.

  • Clean Upload Directory Utility

    Clean Upload Directory Utility

    This is rarely used tool, which irradicates all previously uploaded files into the directory (like images, documents, files). It would be a tool to use, when creating or setting up a new site, to ensure that no remaining files uploaded to the previous (or creator site) is present.

    The template file shows an example (only) of how you would name your media files (images or documents (pdf, doc, xls, ppt, jpg, png, etc.). By uploading this new excel file, ALL previous media files will be deleted and only these will remain. You will note that this tool requires a full back up be done prior, due to the breadth of this of type of change.

  • Clear Search Terms Utility

    Clear Search Terms Utility

    This tool will clean your web site, file system and database. It will audit files no longer referenced in the database and delete them, it will also run complete database maintenance routines, restart any (saved items in) cache memory, and restart the entire website application.

    Note: This is a good tool to use, if there is ever some performance anomoly on your website, based on some spike in traffic, or if you feel like some activity on the site has slowed it down in some way.

  • Clicks

    Clicks

    This module was designed to track clicks of any link the current site.  The link may point to a URL within the current site or to an external URL.  Change the HRef from "/Link.aspx" to "/Click.aspx?url=%2fLink.aspx" to track the clicks.  Point your link to "/Click.aspx?url=EncodedUrl" where EncodedUrl is the link destination encoded for use in the query string.  You can encode a URL for use in a query string using the Development > Utilities > URL Encoding tool.  Click.aspx records the click, if it is not a search crawler, and redirects to the URL included in the query string. Click.aspx also supports a few additional query string variables to enhance the reporting options.  The "mid" and "did" query string variables can be added to track a ModuleId and/or DataId along with the click and must contain a valid GUID.  These are often used by system modules that have been integrated with the Clicks module.  The "iid" query string variable can also be added to track an IntegrationId which is basically any string with 256 or fewer characters.  All of these query string variables can be populated manually or using CpScripting.

    Once you have the link on your site the clicks module will automatically begin tracking clicks.  By default the Stats > Clicks module displays the number of times each tracked URL has been clicked.  It stores these URLs uniquely and completely, but the results can be grouped for partial URL results.  For instance, you can use the Group By selector to display the counts of only the Local Path and Query portion of the URL if the same page is displayed on multiple domains (Hosts).  Clicking on a group will automatically redirect you to a filtered list of complete URLs within that group and the only way to return to the original view is by selecting "Nothing (URL)" from the Group By selector.  When you click on a complete URL you are taken to the Clicks Log for that URL.  This view itemizes each click including when it occurred, information about the request (user), and the additional query string information (ModuleId, DataId, IntegrationId).  This click information can also be reviewed by creating a custom report using the Reporting > Report Builder module.

  • Client Console SSO (beta)

    Client Console SSO (beta)

    If an error occurs, for any reason, while changing this property you must make sure that the property value and Console/web.config match their previous setting. A copy of the Console/Web.config file is made in Backups directory when before the web.config is updated. You should change the property setting back, save the properties, and restore the web.config file from it's backup manually.

    Changing Admin > Properties > Client Console SSO from Enabled to Disabled or Disabled to Enabled and clicking Save will log you out of the client console. You must ensure that when this occurs you will be able to log in again. If you are enabling SSO you must make sure that the account you log into the front end of the web site has console access. If you are disabling SSO you must make sure that you have a Centralpoint account to use to log back into the client console.

    You should have no problem enabling SSO if you will be logging into web site with the same Centralpoint user that you use to log into the console. If you will be logging into the web site with a user configured via Global Login you may have to take additional steps to ensure that you maintain access. You have 3 options to make sure you maintain access: Ancestor Admin Login, Global Login Field Map, or Global Login Protect Users. You may also set up a combination of settings from these options.

    Ancestor Admin Login Configuration

    This requires you to have an Ancestor Admin account (Master > Admin > Users) and set up a standard Centralpoint login (back door) somewhere on the web site. The Centralpoint login must be excluded from Global Login SSO if configured. Logging in using an ancestor admin and using the standard Centralpoint login will ensure that you gain access to the client console as an admin.

    Global Login Field Map

    This requires you to use a Global Login source with a Field Map attribute like SAML 2.0 (Symantec, Okta, Ping Identity) > SAML Attribute Field Map. You must then configure the Audiences, Roles, and ConsoleNavigation elements in the field map to ensure the appropriate external users gain client console access to the appropriate audiences, roles, and console navigation. The following elements will make all external users client console admins. Note the second ":1" in the Audiences attribute which grants client console access to that audience.

    <attribute systemName="Roles"><![CDATA[Admin]]></attribute>
    <attribute systemName="Audiences"><![CDATA[bf7bb52f-eae7-4d5a-bd20-6849d0260c80:1:1]]></attribute>
    <attribute systemName="ConsoleNavigation">ALL</attribute>

     

    Global Login Protect Users

    This requires that you know the Global Login Users > Integration Id of the external users to which you wish to grant console access. If they have never logged into the front end of the site they won't exist in the module. In this case, you can either have them log in to generate the record, or you can create the record in advance. Once you've found the appropriate records you can assigned their Roles, Console Navigation, and Accessible Audiences values like any other user. Then go to their related Global Login record and set Protect Users to Yes to ensure that these attributes are not ovewritten during their next authentication. These 3 attributes are protected by default when Protect Users is enabled, but you can configure the protected fields and properties as you see fit.

    Debugging & Troubleshooting

    You may need to close all browsers and reopen them after enabling/disabling this feature. If you're having trouble getting it to work, try in Incognito mode to ensure your problem isn't related to your browser. You may also have to clear your web site cookies and restart the site to ensure your previous session and cache are clear. If you are logged into the web site via a global login user then you must make sure the user has accessible audiences, roles, and console navigation selected. The following queries may be useful if you need to debug console access for a particular user.

    DECLARE @UserId UNIQUEIDENTIFIER;
    SET @UserID = 'e28b16df-7cc1-4e87-bcdd-16a71ebd99ad';
    SELECT * FROM cpsys_Users WHERE UserId = @UserId;
    SELECT * FROM cpsys_Roles WHERE RoleId IN (SELECT RoleId FROM cpsys_UsersInRoles WHERE UserID = @UserId);
    SELECT * FROM cpsys_Audiences WHERE AudienceId IN (SELECT AudienceId FROM cpsys_UsersInAudiences WHERE UserID = @UserId AND IsConsole = 1);
    SELECT * FROM cpsys_NavigationItems WHERE NavigationItemId IN (SELECT NavigationItemId FROM cpsys_UsersInNavigationItems WHERE UserID = @UserId);

     

  • Comments

    Comments

    All standard modules are designed to collect end user comments related to the individual data documents. The comments are collected by adding the comments CpScript generated by the Comments > Configuration module to the Site Architecture > Module Designer > Details View (#3) layout of the module. The comments script is outlined in the module designer help file and can only be used on a details view because each comment must be related to a specific data document. Recent comments collected using this script can be viewed at the bottom of the data document’s details page in the client console. If you have access to the Comments > All Modules module, you can view all comments related to a document and edit specific comments using links on the details page.

    Comments > All Modules is a custom module used to collect comments related to data in all standard modules. The links on the details page of any standard module can be used to filter this list by a single data document. This module can be used to search and review comments on the site. An administrator can also manage the Approved and Display Status attributes from this module, effectively placing comments on the site or removing them from the site. When an administrator approves a comment, the Approve Date is automatically recorded as well as the Approver. The Origin attribute records the fully qualified URL used to post the comment, and is not guaranteed to be valid when the site structure changes.

    The Comments > Configuration module is used to configure the script used to collect and display comments on the front end of the site. Every site contains a locked record which is used by default in most modules. You can either update this record to affect all module defaults, or create a new record and copy the generated CpScript to the desired Site Architecture > Module Designer > Details View (#3) record. To avoid errors, be sure to remove all CpScript references from the module designer manually before attempting to delete a record from this module. The Form tab configures the user interface used to collect comments and what happens when the form is submitted. In addition to the settings in the module the form submit button text can be managed using Aliases. Member Comments allows you to enable and disable authenticated user commenting. When enabled it also allows you to select which roles are permitted to comment. Anonymous Comments controls comments from users that are not logged in, including what information you wish to require when anonymous comments are posted. When “Enabled” is selected for the Review attribute, comments will not be added to a site until they have been approved by an administrator. This administrator must have console access to Comments > All Modules. You can configure the email that is sent to the administrator using the attributes made available when review is enabled. The Thread tab allows you to configure the layout of the existing comments on the site.

    All comments are also available via an RSS feed which can be added to the site using the Design > Dynamic Feeds module. This feed is accessible in any site using the following URL: http://www.yoururlhere.com/Modules/Comments/Rss.aspx. By default, this feed returns the 10 newest comments from all modules. The title of the item is the title of the related document and the contents contain the comment itself. The link is generated using the Origin attribute and is only valid if the site structure has not changed. If you add the “top=N” query string parameter to the feed you can control the number of comments that are returned. You can also add a “did=DataId” query string parameter to filter the feed by a specific data document. When this feed is filtered by a specific data document a truncated version of the comment is used as the item title.

  • Console Navigation

    Console Navigation

    The Console Navigation module allows the creation, deletion and modification of additional items which will be displayed with the web site console navigation. They will relate to the current web site only and can be enabled, disabled, and filtered like any other navigation item. Unlike master Navigation Items, Console Navigation may only relate to a URL. This only displays and creates items which are considered data and therefore excluded from the sync. These items are filtered out of the master Navigation Items module and cannot be disabled in the master Web Sites module.

    When a new console navigation item is created it is automatically added to the root audience and the audience in which it was created. It must be manually added to other audiences like any other navigation item.

  • Content Audit

    Content Audit

    Crawls through an audience's content finding and reporting regular expression matches. It provides predefined audits as well as the ability to create a custom audit. Each match includes a link to the record in the client console as well as a link to the front end of the site. It only audits content that is currently set up to be displayed to the selected audience. If you add or enable content later you may have to execute the audit again. It crawls the selected audience in a similar manner to a search engine. This may cause the same result to appear more than once when it is accessible from more than one URL. Some web site links may note that they are are inaccessible. This occurs when the item should display in the selected audience, but the item's roles conflict with the roles of it's site map item or audience.

    When creating custom audits you can click on the ContentAudit.xml link to use the predefined audits as an example. The search section of this file is used to guide the module as it crawls through the content. It moves through each table from top to bottom and moves into nested table elements as they exist. Format strings and constants are replaced based on the parent element and current row. The indexes are zero based and relate to the fields clause used to retrieve the current row. Regex elements support two types: Warning and Table. Warning types simply report the match, but table types look for a nested table element. This table element is typically used to search another table given the results of that match. The format string in the match is used to index the zero based capture collection of the regular expression.

  • Continuing Education

    Continuing Education

    Online Education - Harmonize your user's learning and compliance online      

    This module suite is fundamentally made up of these modules below, found under the Education category within the Client Console. The core three modules are CONFIGURATION, COURSES and QUESTIONS. The REPORTS module is the receptacle in which all courses which have been taken are stored, or this is where all of the grades of each test are stored. There is an order to how these should be set up. The first you will want to set up is CONFIGURATION. This is module which identifies the teacher or administrator. This will route the results of each course to that administrator or teacher. Next come the COURSES. Courses typically are tagged to certain roles of users, and within certain audiences. This suggests that within your course catalog, there are some courses from some users, and others for different users. So, from your central course catalog, some will be available to certain users based upon their skills or requirements. Next come the questions, which relate to the COURSES. These questions can also be tagged to specific roles or audiences, suggesting that a singular COURSE could appear different for different user roles.....meaning one user may see 6 questions within a course, yet another user may see 9 questions for the same course. Why do we do this? So that you can manage one singular, centralized catalog of questions and RE-USE these against multiple courses (should the question appear more than once, within many courses). Finally are the REPORTS, or the results of well all users did. As the courses are taken, email notification can be routed to each ADMINISTRATOR, allowing them to see how well their students are doing (should you have multiple administrators). You could just as easily set up all courses to forward the results of all to only one administrator. Centralpoint Education is built for scale, and can support the smallest client, or the largest multi national client. 

    Configuration

    The Configuration module creates the set up for particular courses. After one is set up, courses can be linked to these.

    Attributes:

    1. Title: This is the Title for the Configuration record.
    2. Administrator Name: This the name of the Administrator for the courses.
    3. Administrator Email: This is the email for the Administrator. They will recieve an email with placeholders. This email is sent for every test taken.
    4. CC: This is the CC email. They will recieve an email with placeholders. This email is sent for every test taken.
    5. BCC: This is the BCC email. They will recieve an email with placeholders. This email is sent for every test taken.
    6. From Email: This will be the email address the that the email to the user will appear to have been sent from. 
    7. Administrator Email Body Header: This is the email header that is sent to the Administrator. It uses placeholders as described in the attribute to place specifics for each test taken.
    8. Grading Type: This is the type of grading system to use for the tests. It has two choices with attributes for each:
      • Automatic: The test will automicatically graded without the Administrator's approval.
        • Passed Message: The passes message is what is displayed after you take the test and pass.
        • Passed Email Subject Line: This is the passed email subject line for the test taker.
        • Passed Email Body: This is the passed email body for the test taker.
        • Failed Message: The failed message is what is displayed after you take the test and fail.
        • Failed Email Subject Line: This is the failed email subject line for the test taker.
        • Failed Email Body: This is the failed email body for the test taker.
      • Manual: The test will need to be graded by the adminsitrator before the test taker gets a reply.
        • Completed Message: This is the completed message the test taker will see.
        • Pending Email Subject Line: This is the pending subject for the email that the test taker will see.
        • Pending Email Body: This is the pending body for the email that the test taker will see.
        • This is the passed email subject line for the test taker.
        • Passed Email Body: This is the passed email body for the test taker.
        • Failed Message: The failed message is what is displayed after you take the test and fail.
        • Failed Email Subject Line: This is the failed email subject line for the test taker.
        • Failed Email Body: This is the failed email body for the test taker.
    9. Certificate: This is the certificate for a passed test. It supports placehoilders for specific information.
    10. Retake Amount: The maximum amount of times the user can take the test. Set this attribute to '0' for unlimited use. Set it to '1' to ensure the user can only take the test a single time.
    11. Retake Time Span: The amount of time until the user is able to retake the test once the 'Retake Limit' has been reached.

    Courses

    The Courses module creates the course. There are two tabs, General and Formatting. If you need to use a link directly to the test. Please save the record, and copy the CpScript attribute. This will link to the course's test.

    General:

    1. Title: This is the title for the course.
    2. View Associated Questions: This is a link that will show you the questions associated with the course.
    3. Credits: This is the number of credits the course is worth.
    4. Passing Percentage: This is the percentage of right answers needed to pass the course.
    5. Time Limit: This is the time limit for the test.
    6. Body Copy: This attribute has the information needed to take the test. Usually test material, such as a video is placed here.
    7. References: This can be reserved for the references for the test, such as links to documents, etc.
    8. Authors: This can be reserved for the authors for the tes.
    9. Configuration: This is the configuration record that the course belongs to.

    Formatting:

    1. Questions CSS Class: This is the CSS for the Questions.
    2. List Item Answers CSS Class: This is the CSS for the List Item Answers.
    3. Drop Down List CSS Class: This is the CSS for the Drop Down Lists.
    4. Text Box CSS Class: This is the CSS for the Text Boxes.
    5. Text Area CSS Class: This is the CSS for the Text Areas.

    Questions

    The Questions module creates the questions for course.

    1. Title: This is the title of the question.
    2. Course: This is the course the question belongs to.
    3. Question: This is the question.
    4. Number: This is the number of the question.
    5. Type: This is the type of the question, it has two values:
      • Gradable Answer: This type of question will be able to be graded immediately.
        • Control Type: This will show the answers as radio buttons or a drop down list.
          • Radio Buttons: This shows the answers as radio buttons
            • Columns: This is the columns for the list of answers.
            • Repeat Direction: This is the direction the for the list of answers.
            • Answer 1 - 20: These are the answers for the test.
            • Correct Answer: This is the correct answer for the test.
          • Radio Drop Down List: This shows the answers as a drop down list.
            • Columns: This is the columns for the list of answers.
            • Repeat Direction: This is the direction the for the list of answers.
            • Answer 1 - 20: These are the answers for the test.
            • Correct Answer: This is the correct answer for the test.
          • Ordering: This type requires the user to order the answers.
            • Answer 1 - 20: These are the answers for the test.
            • Correct Order Answer This takes a comma separated list of values for the correct order, for example 1,20,3,5.
          • Matching: This type requires the user to match terms and answers.
            • Term 1 - 20: These are the terms to match.
            • Term Correct Answer 1 - 20: These are the correct answer's match.
            • Answer 1 - 20: These are the answers for the test.
            • Correct Order Answer This takes a comma separated list of values for the correct order, for example 1,20,3,5.
          • Multi Select: This type requires the user to match terms and answers.
            • Answer 1 - 20: These are the answers for the test.
            • Answer This the correct answers. You can select more than one.
          • Connecting Lists: This type requires the user to match answers to terms. Users will drag the answers over to a list of terms defined in the question.
            • Term 1 - 20: Term attributes are not moved by the user and is where users connect the answer to.
            • Answer 1 - 20: Answer attributes are moved by the user and are draggable elements the user connects to a term.
            • Term Correct Answer 1 - 20: Correct Answer attributes allow multiple selections, but in most cases should only have a single selection. The ability to select multiple allows admins to create a question where a term is able to have multiple correct answers. For example, you could make "Term 1" and "Term 2" state "Shades of Blue". Then you could make "Term 3" and "Term 4" state "Shades of Red". The four answers might be "Navy", "Teal", "Maroon", "Burgandy". Each correct answer would contain the appropriate two options. When building a question with multiple answers, please be mindful that if one "Term" allows multiple answers, another term will also need to allow multiple answers. Otherwise you could create a question that never can be answered correctly.
          • Image Area: This type requires the user to click a portion of the image which identifies the correct answer
            • Image: The image presented to the user.
            • Image Area Coordinates This takes the the coords attribute value which determines the correct answer area on your image. These coordinates must be updated if you change the image. Please use an online tool to determine your coordinates. We find this online image map generator easy to use.
      • Essay Answer: This type of question will need to be read and reviewed as correct.
        • Control Type: This is the type of control to show.
          • Free Text (Single Line): This will be a single line Text Box.
          • Free Text (Multi Line): This will be a multi-line Text Box.
          • Check Boxes: This will show checkboxes for answers that can be multi-selected.
            • Columns: This is the columns for the list of answers.
            • Repeat Direction: This is the direction the for the list of answers.
            • Answer 1 - 20: These are the answers for the test.
          • Video Upload: User uploads a file video which will be manually graded by a website administrator.

    Reports

    The Reports module is report based on a test taken.

    1. Title: This is the course name.
    2. User: This is the user that took the course.
    3. Legacy User ID: This is the legacy user id of the user that took the course if they have one.
    4. Course: This is the course of the test taken.
    5. Configuration Record: This is the cconfiguration record for the test taken.
    6. Test Score: This is the test score.
    7. Test Completed Date:
    8. Time Taken To Complete Test:
    9. Credits:
    10. Certificate:
    11. Completed Test: This is all the questions and answers for the test.
    12. Result: This is the result of the test, either Pending (needs approval fron Administrator), Passed, or Failed.

    Questions In Reports

    The system contains a table named cpsys_CeQuestionsInReports. This table creates a relationship from report records to the questions the user answered when taking their test. This can be used to report against which questions were answered correctly, incorrectly, and/or see what questions were provided to users within their test

    To enable the data storage follow the directions below.

    Step 1: Education > Reports > Module Properties

    1. Go to the site’s Reports module in the client console @ /Console/Module.aspx?sn=CeReports
    2. Set “Questions In Reports Relation Enabled” to Yes
    3. There is an optional "QuestionData" column in this table. This column stores JSON with additional details of the question at the time the user took the test. It will provide details of the question type, question options, and how the user answered the question. There is no system functionality associated to this column. Its benefits are for debugging or for use within a custom project. Determine if there is a need to store this data and set it to "Yes" if so.
    4. Go to the Module Designer module in the client console @ /Console/ModuleViews.aspx?sn=Modules
    5. Locate the Education modules used in the site
    6. Open & Save the records. The cpsys_CeQuestionsInReports table will not begin recording data if the module is not resubmitted./li>

    Step 2: ReportQuestionsRelatedByTaxonomy CpScripts

    The only system functionality produced from this data is within the ReportQuestionsRelatedByTaxonomy CpScript. This is intended to be used within Education > Configuration records and show users related data to questions which they answered incorrectly.

    To render this UI follow the directions below.

    1. Go to the site’s Education > Configuration module in the client console @ /Console/Module.aspx?sn=CeConfiguration
    2. Place the ReportQuestionsRelatedByTaxonomy CpScript in locations where it is desired to show to the user. Common attributes where this would be inserted is the "Passed Message" and "Failed Message" so users will see the suggested/related records for their incorrect answers regardless if they passed or failed the test..
    3. This CpScript has many options. Please reference the Script Builder to change behavior and adjust settings.

    Step 3: Education > Questions

    1. Go to the site’s Education > Questions module in the client console @ /Console/Module.aspx?sn=CeQuestions
    2. Assign questions to taxonomy

    Step 4: Content Modules

    1. Go to the site’s content modules in the client console which are utilized by the ReportQuestionsRelatedByTaxonomy CpScript
    2. Assign content records to taxonomy that the question records are using

    Step 5: Quality Assurance

    1. Go to the front-end of the website and take a test that contains questions related to data in the ReportQuestionsRelatedByTaxonomy CpScript
    2. Intentionally select the wrong answers on those questions when taking the test to ensure expected related data is showing for the incorrect questions.

    Programs

    This module serves as a container for courses. So special certificates and emails can be sent out upon completion of all the courses inside of the program.

    Attributes:

    • Title – Title of the program decord
    • Program Description – description of the program which is viewable on the program details view.
    • Number of Courses – will determine how many courses make up the program (1-10).
    • CourseX – 1-10 You will be able to choose the course to make up the program. At least one course has to be present in a program.
    • Courses Must Be Taken in Order – this will ensure that users must take the course in the order that they appear in the program. For example if a user is attempting to take the third test of a program then they use first take the first and second tests. Please keep in mind that since a course can be a part of any program then one a course is complete it will be completed for all programs. Meaning that If Course A is the third course of program 1 and the first course of program 2 the use will be able to take the course because of their access to program 1.
    • Administrator Name – name of the person whom will be receiving the email
    • Administrator Email – email address of the admin whom should receive the email
    • Administrator CC – any additional people listed here will receive this email as a carbon copy
    • Administrator BCC – people listed here will receive the email as a blind carbon copy.
    • Administrator From – the email address that will appear to have sent the email
    • Administrator Subject – subject of the email to send out.
    • Administrator Body – body of the email that is being sent to the admin(s).
    • Completed CC – Email addresses of users whom will receive the same email as the user upon completion of the program as a carbon copy.
    • Completed BCCEmail addresses of users whom will receive the same email as the user upon completion of the program as a blind carbon copy.
    • Completed FromEmail addresses of the user whom sent the email to the user upon completion of the program
    • Completed Subject - subject line for email sent to user upon the completion of the program.
    • Completed Body - Email body to the user whom completed the program.
    • Certificate - Certificate used to give to the user upon completion of the program. Supports the placeholders CpScript for User Information.
    • Practical Assessment Required – will indicate that this program contains a practical assessment.
    • Needs Recertification - indicates if the user needs to be recertified via another program in order to maintain the program completion. Setting this to yes will display all the additional properties you need for this functionality
    • Recertification Cycle Time - Number in month for when recertification is required for this program.
    • Recertification Program – indicates which program a user must complete for recertification.  
    • Recertification CC – Email address of users to receive the same email as the user for recertification notices as carbon copies.
    • Recertification BCC – Email address of users to receive the same email as the user for recertification notices as blind carbon copies.
    • Recertification From – the email address that will appear to have sent the email
    • Recertification Subject – Subject line for recertification notification emails sent to the user.
    • Recertification Body – Email body for the recertification notification emails being sent to the user. You can use the Placeholders CpScript in order pull in any attribute from the Program record prefixing the attribute with pr. Likewise by prefixing the attribute name with rp you can retrive and attribute from the Report record. And finally you can reference any attribute from the Recertification Program by prefixing the attribute name with re.
    • Recertification Admin Name – name of the administrator whom is receiving a recertification notification for a user.
    • Recertification Admin Email – emailof the administrator whom is receiving a recertification notification for a user.
    • Recertification Admin CC - Email addresses of additional users whom will receive a recertification notification for a user as a carbon copy
    • Recertification Admin BCC - Email addresses of additional users whom will receive a recertification notification for a user as a blind carbon copy
    • Recertification Admin From – the email address that will appear to have sent the email
    • Recertification Admin Subject – Subject line for recertification notification emails sent to the administrator
    • Recertification Admin body - Email body for recertification notification emails sent to the administrator. You can use the Placeholders CpScript in order pull in any attribute from the Program record prefixing the attribute with pr. Likewise by prefixing the attribute name with rp you can retrive and attribute from the Report record. And finally you can reference any attribute from the Recertification Program by prefixing the attribute name with re.

     

    Recertification

    If a program is flagged as needing recertification, then you will have to fill out additional properties to get everything to work right. The Ce Re-Certification schedule task must be enabled and also filled out. The scheduled task will look for recertification programs records which are around their expiration time, send out notification emails about them as can be configured as well as changed the programs which needs recertification’s result from Passed to needs Recertificatication. Upon completion of the recertification program it will look up the program which needs recertification and if passed changes the Result from Needs Recertification to Passed again as well as calculates the recertification needed date based upon the Cycle Months properties. 

    Why Education is Important?


    CpScripts

    These are CpScriptsto be used within the Education Suite.


    Placeholder Displays the value by key.

    [cp:placeholders key='name' /]
  • cpsys_DataDiffs

    cpsys_DataDiffs

    cpsys_DataDiffs

    This table is designed to create a relationship from the content record to changed values of attributes within the record.

    The cpsys_DataDiffs table was released in Centralpoint version 8.11.51 and is supported against content residing in GenericEnhanced modules.

    Records are only inserted in this table when content is submitted with trigger execution. Difference recording is a moving forward feature. This means that if the tools below are applied to existing content, there is no means to determine the changes that occurred prior to this feature being enabled.

    Console Instructions

    1. Module Properties > Is Data Diffs Relation Enabled

      Go to this location within the desired module. Set the radio-button to Yes.

    2. Module Properties > Data Diffs Attributes

      This attribute is visible when the previous step is completed. Enter a comma-separated list of Attribute System Names. When a value in one of these defined attributes have changed, a record is recorded to cpsys_DataDiffs.

      *IMPORTANT*

      • Ensure the list of defined attributes which detect changes is a complete and final list before using this feature.
      • If new attributes are added after data begins recording, the original recorded diffs will not be able to render these attribute values.
      • These notes do not mean that an excessive list of attributes should be entered for the concern of possibly using them in the future. Doing this is likely to lead to other problems which may not be resolvable and require deleting the problem data out of cpsys_DataDiffs.
    3. Module Configuration This step is recommended if this feature is applied against existing content and one of the defined attributes is generating data from Word Document HTML. Go to the Module Configuration within the desired module. Add a custom attribute with a System Name of: IsCpMovingAsposeExtractedFiles. This should be a Yes/No attribute and the XML required is shown below. The purpose of this step is that differences in extracted files from the Word Document could not be tracked until this release. The files generated when using this feature are created with a SHA256 hash as the file name. The unique names applied to embedded files within the Word Document allow us to detect when changes occur within the embedded files. Previously, the file names were generic and overwritten each time a record using Word Document features was saved. This attribute will move the old files to the website's \Temp directory to free up disk-space.
      <property id="IsCpMovingAsposeExtractedFiles">
      	<value>1</value>
      	<attribute name="Is Moving Aspose Extracted Files?" isEnabled="false" isVisible="false" allowScripts="false">
      		<control id="CpKeywordRadioButtonList" type="Centralpoint.Web.UI.Controls.CpKeywordRadioButtonList">
      			<controlProperty name="RepeatColumns" value="0" />
      			<controlProperty name="RepeatDirection" value="Horizontal" />
      			<controlProperty name="KeywordListId" value="c52d9d0d-09f4-4547-96b0-0850f7fade47" />
      		</control>
      	</attribute>
      </property>
      
    4. Design > Script Generator > Script This step is where the DataDiffs UI is managed. Set this attribute to Data Diffs. A default UI is provided and the attributes contain instructions and allow for customization. Take the CpScript produced from this record and place it into a Details View of a module designer record that is tied to a content module where this feature is enabled.

  • Creating self-signed PFX for SAML SSO

    Creating self-signed PFX for SAML SSO

    Steps to Create a 24Bit SHA256 | 3 year | .PFX File

     

     

    Please find the steps below:

     

    1. Determine the URL: URLName.DomainName.Com
    2. Run PowerShell Run as an 'Administrator' and navigate to the following directory by entering the following command: cd documents
    3. Open MMC – Run as an ‘Administrator’ and Snap In ‘Certificates’ under Computer Account Graphical user interface, application
    Description automatically generated
    4. In PowerShell Run the following Command: New-SelfSignedCertificate -dnsname URLName.DomainName.Com -NotAfter (Get-Date).AddMonths(36) -CertStoreLocation cert:\LocalMachine\My FYI: The Certificate will now be in the MMC under Certifcate>Personal Text
    Description automatically generated
    5. Graphical user interface, application
    Description automatically generated with medium confidence
    6. Export the Following SSL ‘URLName.DomainName.Com from the MMC with the Private Key and Create a Password
    7. Screenshots Below to Export: Graphical user interface, text, application
    Description automatically generated Text
    Description automatically generated Graphical user interface, application, email
    Description automatically generated Graphical user interface, text, application
    Description automatically generated Graphical user interface, text, application
    Description automatically generated Graphical user interface, text, application, email
    Description automatically generated Graphical user interface, text, application
    Description automatically generated Graphical user interface, text, application
    Description automatically generated

     

    1. Navigate to the folder of: Documents and you will see your export of ‘URLNamedomainNameCom.pfx
    2. Navigate back to the MMC ‘URLName.DomainName.Com Right Click on the Certificate and Select ‘Delete’ and Yes to Confirm
    3. Navigate to PowerShell *Import the PFX file with the following command, this will now import the certificate created previously but now changing the CSP with the type 24 CSP required: Command Below: In PowerShell Run the following Command:

      certutil -p "YouNeedToCreateAPassword" -csp "Microsoft Enhanced RSA and AES Cryptographic Provider" -importpfx URLNamedomainNameCom.pfx

    4. To Confirm that it is SHA256.
    5. Back in the MMC Console in Personal>Certificate Right Click over your Certificate of URLName.DomainName.Com Select Open Graphical user interface, text, application
    Description automatically generated

     

  • Creating Visual Studio Solution

    Creating Visual Studio Solution

    Creating an empty solution

    1. On the File menu, click New and then click New Project.
    2. In the left pane, select Installed Templates, and select Other Project Types, then Visual Studio Solutions from the expanded list.
    3. In the middle pane, select Blank Solution.
    4. Set the Name (Centralpoint) and Location values for your solution, and then click OK.

    Add projects to Centralpoint solution

    1. In the right pane right click on Centralpoint and select Add >New Solution Folder. Set folder to the name of your project. Example: DevWebsite
    2. In the right pane right click on DevWebsite and select Add > Existing WebsiteThen, navigate to Centralpoint directory on your web server (for easier access you may want to map the drive)
    3. Pick your \\WebServer\Centralpoint\WebSites\cpweb_Development\Root folder and click Open.
    4. Click save All.Repeat step 1 true 4 for any other solutions.

    Other Possible Solutions Example: Master: \\WebServer\Centralpoint\Master\Root Console: \\WebServer\Centralpoint\WebSites\cpweb_Development\Console

    Downloadable Video avalible here.

    * You can’t make any changes to any of the files unless they prefix my_ or code in inside of Uploads Folder.

  • Cryptographic Features of Centralpoint

    Cryptographic Features of Centralpoint

    Symmetric Encryption

    • Type
      • RijndaelManaged encryption with a 256 bit key.
      • The Key is generated from a base64 string stored in the Admin > Settings module. The maximum key size supported is 256 bit. Changing this key will invalidate any encrypted values already stored in the system.
    • Use Cases
      • Passing configuration data in web requests (query strings, form fields, or JSON).
      • Credentials stored in scheduled tasks like Data Update.
      • Credentials stored in modules like Retention Policies, Email Access, Global Login, Forms, Ecommerce.
      • User authentication token cookies used for the Web API and Word Add-In.
      • PDF Passwords stored in session state for file output.
      • FormState CpScripts can be used to encrypt data passed into the system using Forms Management.
      • Credit card information stored in Ecommerce Billing when enabled.

    Password Hashing

    • Type
      • Passwords entered in version 8.9.14 or later are hashed using Rfc2898DeriveBytes. This implements password-based key derivation functionality, PBKDF2, using a pseudo-random number generated based on HMACSHA1. The hash is generated using a 32 character salt and 10,000 iterations.
      • Passwords entered prior to version 8.9.14 may still exist and were combined with a 10 character random salt and hashed using the SHA1CryptoServiceProvider. This computes the SHA1 hash for the password and salt using the managed library. These passwords will be updated the next time the user logs in.
    • Use Cases
      • Master > Admin > Users
      • Site Architecture > Administrators
      • Members
      • Master & Client Console Logins
      • Web site authentication via Site Architecture > Administrators or Members. This does not apply to front end authentication non-Centralpoint global logins.
      • Verify that values passed to the system were not modified during transmission.

    Machine Keys

    • Type
      • Defaults to HMACSHA256.
      • Managed in the Admin > Settings module.
    • Use Cases
      • Message Authentication Code (MAC) Operations
      • View State Validation
      • Session State Isolation

    Data Transmission (HTTPS)

    • All sites and consoles support HTTPS.
    • Consoles can require HTTPS using Admin > Properties > Console Requires Secure Channel.
    • Web sites can force HTTPS using Admin > Friendly URLs.
    • SSL or TLS security must be configured manually in IIS.
    • HTTPS can be added to all web service communication using Admin > Settings.

    Transparent Data Encryption (TDE)

    • SQL Server TDE can be used to encrypt data in the database at rest.
    • This must be configured manually at the database level.

  • Culture

    Culture

    Centralpoint Digital Experience Platform stores all dates and times using the English (United States) culture.  Many UI elements of the site will utilize the selected culture when they are displayed.

    The culture used on the front end of the web site can be set in Admin > Properties > Globalization or Site Architecture > Audiences > Globalization.  Audience overrides will take precedence over site overrides. 

  • Current Issue link for Publishing > Articles

    Current Issue link for Publishing > Articles

    Current Issue link for Publishing > Articles

    /Modules/PubArticles/CurrentIssue.aspx?AudienceSystemName=Main&RoleSystemName=Public&SiteMapSystemName=Articles

    The link to the issue page that is the most current issue available for the audience and role that you place within the link. Use this for links to the current issue page within the Publishing > Articles module.

    Insert the audience system name, role system name and navigation system name as appropriate to link to the desired current issue. The navigation system name is the name of the Site Architecture > Navigation item that links to the Publishing > Articles module.

  • Custom Attributes

    Custom Attributes

    Custom Attributes

    Executive Summary

    The custom attributes functionality -- available to ancestor administrators within the Module Configuration file of all CentralPoint modules -- allows administrators to insert new fields or re-arrange current module layout within the console without requiring a synch process. The changes effectively occur real-time, after administrators upload their new custom attributes XML file. The process to produce these changes is outlined here, as is the structure of the document required to affect these changes.

    The custom attributes functionality supports only Centralpoint-specific XML attributes, which allow administrators to add and manipulate form elements, data types and console user interface. Those controls -- and their functionalities -- are listed here.

    Chapters

    Document Structure Control functionality and examples Uploading custom controls

    Document Structure

    The XML attributes document that controls module layout within the console -- and allows administrators to add fields to their modules -- is comprised by six major XML nodes: group, property, value, attribute, control and validator.

    A group functions as a separate tab of form elements within the CentralPoint administrative console. Many of CentralPoint's modules, such as Forms and Design, include multiple tabs for easier administrator interface. A group attribute takes two required parameters: id and name. The value of each of these should be identical for organizational purposes, and they must be alpha-numeric, beginning with a letter. Spaces and special characters are not allowed.

    Example:

    <group id="Workflow" name="Workflow"> ... </group>
    The property node is effectively a field in your module's database design. It takes one parameter: id, the value of which must be alpha-numeric, beginning with a letter. Spaces and special characters are not allowed. Additionally, no two property nodes can have the same id.

    A group is comprised of one or more property nodes, and property nodes are comprised of the value, attribute, control and validator nodes.

    Example:

            <group id="Workflow" name="Workflow">             <property id="UserEmail">             ...             </property>             <property id="IncludeFormData">             ...             </property>         </group>

    A value node sets the default value of a property (or database field) when andministrator creates a new record in the console's module interface. The value node is required to be present in the configuration document, but it is not required to contain a value.

    Examples:

    (With a value):         <property id="UserEmail">             <value>01</value>             ...         </property>

    (Without a value):         <property id="UserName">             <value />             ...         </property>

    The attribute node determines a label in the console's module interface, as well as whether the associated control is visible and if Cp:scripting is allowable in the form element. Those parameters are:

    name - Alpha-numeric, with spaces and special characters allowed isEnabled - true/false isVisible - true/false allowScripts - true/false

    Example:

            <attribute name="User Name" isEnabled="true" isVisible="true" allowScripts="true">         ...         </attribute>

    Attribute nodes are comprised of a single control, which determines the form element in the console and data type of the field in the module database.

    There are 19 possible control types. Control types are comprised of controlproperty nodes that govern the display of the control itself. Control types can also be validated by one or more validator nodes. Below are the control types and a brief description of what they do. A full list of code examples can be found in the Control Functionality and Examples chapter.

    • CpAttributeSwitch - Dynamically toggle the display of existing attributes.  It is recommended that you set the visiblity of all initally unselected controls to false.  This control may cause attributes hidden using module configurations to appear.
    • CpAudienceSelector - audience multiselect
    • CpColorPicker - color picker
    • CpDataListBox - data list box (A custom list box populated using data displayed on the selected Navigation Item.)
    • CpDateTimePicker - Date and Time selector
    • CpEditor - RTF editor
    • CpHyperlink - An uneditable field containing a linked image or text.
    • CpKeywordListBox - A list box populated using the selected Keyword List, available in Development > Keyword Lists
    • CpKeywordRadioButtonList - A list of radio buttons populated using the selected Keyword List, available in Development > Keyword Lists
    • CpListBox - A list box populated from any SQL table.
    • CpModuleListBox - A radio button list box of available modules in the console
    • CpRadioButtonList - A radio button list populated from any SQL table.
    • CpTaxonomySelector - The standard taxonomy selector
    • CpTextArea - a standard text area that does not allow RTF control
    • CpTextBox - a standard text box
    • CpTieredSelector - Tiered selectors dynamically populated using a SQL table with a parent field.
    • CpTimeZoneListBox - a standard time zone rop-down menu
    • CpUpload - a standard file upload button and its associated functionality
    • CpXmlListBox - A list box populated using the given XML file.
    Examples:

            <attribute name="Confirmation Email" isEnabled="true" isVisible="true" allowScripts="false">             <control id="CpAttributeSwitch" type="Centralpoint.Web.UI.Controls.CpAttributeSwitch">                 <controlProperty name="RepeatDirection" value="Horizontal" />                 <controlProperty name="RepeatColumns" value="0" />                 <listItem value="01:" index="0">No</listItem>                 <listItem value="02:cfrUserName|cfrTo|cfrFrom|cfrCC|cfrBCC|cfrSubject|cfrBody|cfrIncludeFormData" index="1">Yes</listItem>             </control> ...         </attribute>

            <attribute name="User Name" isEnabled="true" isVisible="true" allowScripts="true">             <control id="CpTextBox" type="Centralpoint.Web.UI.Controls.CpTextBox">                 <controlProperty name="Width" value="" />                 <controlProperty name="AllowCopy" value="true" />                 <controlProperty name="TextMode" value="SingleLine" />                 <controlProperty name="ReadOnly" value="false" />                 <controlProperty name="MaxLength" value="256" />                 <controlProperty name="ToolTip" value="" />             </control>         </attribute>

    As previously mentioned, control types can be checked using validator nodes. Validator nodes require two parameters: id and type. The id must be a unique, alpha-numeric value that does not contain spaces or special characters. The type must be one of the supported types below. Validator nodes also take controlproperty nodes that govern the error message that display if a form element does not pass validation, as well as patterns that the validator will use to verify the form element.

    • CpCompareValidator - Enter either an attribute with which to compare values, or a static value to check before submission.
    • CpIdCompareValidator - Compare the control value to the DataId.
    • CpLengthValidator - Validates that the length of the controls string value.
    • CpRegularExpressionValidator - evaluates and verifies that the form element matches the regular expression
    • CpRequiredFieldValidator - checks to ensure the form element contains a value
    • CpUniqueFieldValidator - Prevents records with duplicate field values.
    Examples:

            <validator id="CpRequiredFieldValidator" type="Centralpoint.Web.UI.Controls.CpRequiredFieldValidator" />

            <validator id="PatternCpRegularExpressionValidator" type="Centralpoint.Web.UI.Controls.CpRegularExpressionValidator">                     <controlProperty name="Pattern" value="Email" />                     <controlProperty name="ErrorMessage" value="" />         </validator>

    Control functionality and examples

    CpAttributeSwitch

            <property id="ContentType">             <value>02</value>             <attribute name="Content Type" isEnabled="true" isVisible="true" allowScripts="false">                 <control id="CpAttributeSwitch" type="Centralpoint.Web.UI.Controls.CpAttributeSwitch">                     <controlProperty name="RepeatDirection" value="Horizontal" />                     <controlProperty name="RepeatColumns" value="0" />                     <listItem value="01:cfrContentHtml" index="0">HTML</listItem>                     <listItem value="02:cfrContentText" index="1">Plain Text</listItem>                 </control>                 <validator id="CpRequiredFieldValidator" type="Centralpoint.Web.UI.Controls.CpRequiredFieldValidator" />             </attribute>         </property>

    The attribute switch works in conjunction with more than one attribute further down in your XML configuration document. Notice the example above indicates the value of the listItems as cfrContentHtml and cfrContentText. Each attribute to which you refer in your attribute switch must be prefixed with the "cfr" notation. The "Advertisers" module and the "Forms" module have good examples of this item.

    CpAudienceSelector

            <property id="Audiences">             <value>bf7bb52f-eae7-4d5a-bd20-6849d0260c80</value>             <attribute name="Audiences" isEnabled="true" isVisible="true" allowScripts="false">                 <headerText>Audiences will be used for console filtration only</headerText>                 <control id="CpAudienceSelector" type="Centralpoint.Web.UI.Controls.CpAudienceSelector" />             </attribute>         </property>

    Take note that there is a headertext node in this property. It determines text that will appear just above the audience selector control within the console. Nearly every module in the console contains an audience selector.

    CpColorPicker

            <property id="BackgroundColor">             <value>#FFFFFF</value>             <attribute name="Background Color" isEnabled="true" isVisible="true" allowScripts="false">                 <control id="CpColorPicker" type="Centralpoint.Web.UI.Controls.CpColorPicker">                     <controlProperty name="ToolTip" value="" />                 </control>                 <validator id="CpRequiredFieldValidator" type="Centralpoint.Web.UI.Controls.CpRequiredFieldValidator" />             </attribute>         </property>

    CpDataListBox

            <property id="SiteMapItems">             <value />             <attribute name="Navigation Items" isEnabled="true" isVisible="true" allowScripts="false">                 <control id="CpDataListBox" type="Centralpoint.Web.UI.Controls.CpDataListBox">                     <controlProperty name="FilterAudiences" value="true" />                     <controlProperty name="FieldsClause" value="InheritValue" />                     <controlProperty name="SearchableFields" value="InheritValue" />                     <controlProperty name="NoResultsText" value="No records were found." />                     <controlProperty name="SelectionMode" value="Multiple" />                     <controlProperty name="NavigationItemSystemName" value="SiteMap" />                     <controlProperty name="EmptyItemText" value="" />                     <controlProperty name="TableName" value="InheritValue" />                     <controlProperty name="ScrollHeight" value="171" />                     <controlProperty name="ShowHeader" value="false" />                     <controlProperty name="JoinClauses" value="InheritValue" />                     <controlProperty name="Columns" value="InheritValue" />                     <controlProperty name="WhereClause" value="" />                     <controlProperty name="ShowSearch" value="InheritValue" />                     <controlProperty name="OrderByClause" value="InheritValue" />                     <controlProperty name="PageSize" value="100" />                 </control>                 <validator id="CpRequiredFieldValidator" type="Centralpoint.Web.UI.Controls.CpRequiredFieldValidator" />             </attribute>         </property>

    A data list box is typically used to display site map items from the Site Architecture > Navigation module.

    CpDateTimePicker

            <property id="StartDate">             <value />             <attribute name="Publish Start Date">                 <control id="CpDateTimePicker" type="Centralpoint.Web.UI.Controls.CpDateTimePicker">                     <controlProperty name="Accuracy" value="Second" />                 </control>                 <validator id="CpRequiredFieldValidator" type="Centralpoint.Web.UI.Controls.CpRequiredFieldValidator" />             </attribute>         </property>

    CpEditor

            <property id="ContentHtml">             <value />             <attribute name="Content" isEnabled="true" isVisible="true" allowScripts="true">                 <control id="CpEditor" type="Centralpoint.Web.UI.Controls.CpEditor">                     <controlProperty name="UploadsSubFolder" value="" />                     <controlProperty name="AllowResources" value="true" />                     <controlProperty name="Configuration" value="Default" />                     <controlProperty name="Height" value="" />                 </control>                 <validator id="CpRequiredFieldValidator" type="Centralpoint.Web.UI.Controls.CpRequiredFieldValidator" />             </attribute>         </property>

    CpHyperlink

            <property id="ViewPages">             <value>Click here to view all associated article pages.</value>             <attribute name="View Associated Pages" isEnabled="true" isVisible="true" allowScripts="false">                 <control id="CpHyperLink" type="Centralpoint.Web.UI.Controls.CpHyperLink">                     <controlProperty name="Target" value="" />                     <controlProperty name="NavigateUrl" value="/Console/Module.aspx?sn=PubPages&amp;keywords={{0}}&amp;match=Phrase&amp;fields=cprel_PubPages.Article" />                     <controlProperty name="ImageUrl" value="" />                     <controlProperty name="NavigateUrlReplacementTextControlPath" value="../../../../../cfProperties/cfrDataId/clblDataId" />                     <controlProperty name="ToolTip" value="" />                 </control>             </attribute>         </property>

    CpKeywordListBox

            <property id="State">             <value />             <attribute name="State" isEnabled="true" isVisible="true" allowScripts="false">                 <control id="CpKeywordListBox" type="Centralpoint.Web.UI.Controls.CpKeywordListBox">                     <controlProperty name="KeywordListId" value="ef96d94f-5a0f-4a72-a776-843bb32348a9" />                     <controlProperty name="PleaseSelect" value="Please Select..." />                     <controlProperty name="SelectionMode" value="Single" />                     <controlProperty name="ToolTip" value="" />                 </control>             </attribute>         </property>

    CpKeywordRadioButtonList

            <property id="AutoUpdateGeoCodes">             <value>1</value>             <attribute name="Auto Update Geo Codes" isEnabled="true" isVisible="true" allowScripts="false">                 <control id="CpKeywordRadioButtonList" type="Centralpoint.Web.UI.Controls.CpKeywordRadioButtonList">                     <controlProperty name="KeywordListId" value="c52d9d0d-09f4-4547-96b0-0850f7fade47" />                     <controlProperty name="RepeatDirection" value="Horizontal" />                     <controlProperty name="RepeatColumns" value="0" />                 </control>             </attribute>         </property>

    CpListBox

            <property id="Roles">             <value>87d65c27-6e78-4e5c-b423-78d47d4f2768</value>             <attribute name="Roles">                 <control id="CpListBox" type="Centralpoint.Web.UI.Controls.CpListBox">                     <controlProperty name="SelectionMode" value="Multiple" />                     <controlProperty name="TableName" value="cpsys_Roles" />                     <controlProperty name="TextField" value="dbo.cpsys_Roles.[Name]" />                     <controlProperty name="ValueField" value="dbo.cpsys_Roles.RoleId" />                     <controlProperty name="Filter" value="dbo.cpsys_Roles.IsDataRole = 1" />                     <controlProperty name="PrefixFields" value="false" />                 </control>             </attribute>         </property>

    CpModuleListBox

    No sample available

    CpRadioButtonList

    No sample available

    CpTaxonomySelector

            <property id="Taxonomy">             <value />             <attribute name="Taxonomy">                 <control id="CpTaxonomySelector" type="Centralpoint.Web.UI.Controls.CpTaxonomySelector" />             </attribute>         </property>

    CpTextArea

            <property id="ContentText">             <value />             <attribute name="Content" isEnabled="true" isVisible="true" allowScripts="true">                 <control id="CpTextArea" type="Centralpoint.Web.UI.Controls.CpTextArea">                     <controlProperty name="ToolTip" value="" />                     <controlProperty name="ReadOnly" value="false" />                     <controlProperty name="Wrap" value="true" />                     <controlProperty name="Height" value="295" />                 </control>                 <validator id="CpRequiredFieldValidator" type="Centralpoint.Web.UI.Controls.CpRequiredFieldValidator" />             </attribute>         </property>

    CpTextBox

            <property id="CpScript">             <value />             <attribute name="CpScript" isEnabled="true" isVisible="true" allowScripts="false">                 <control id="CpTextBox" type="Centralpoint.Web.UI.Controls.CpTextBox">                     <controlProperty name="Width" value="" />                     <controlProperty name="AllowCopy" value="true" />     

  • Custom delimiters in Data Transfer

    Custom delimiters in Data Transfer

    Unfortunately, oledb connection completely ignores any custom delimiter. Our solution for this problem involves some manual setup. You will need to add a Schema.ini file, which needs to be in same folder as the file you are trying to import.

    Example: [NAME_OF_YOUR_FILE.txt] Format=Delimited(|) ColNameHeader=True MaxScanRows=1000 Character=OEM

    The first entry in Schema.ini is always the name of the text source file enclosed in square brackets. The following example illustrates the entry for the file Sample.txt: [Sample.txt] Format: The Format option in Schema.ini specifies the format of the text file.Format=Delimited(custom character) ColNameHeader: Defines if the file contains headers MaxScanRows: How many rows in the file are scanned. Character: You can select from two character sets: ANSI and OEM. The following example shows the Schema.ini entry that sets the character set to OEM: Character=OEM

    If you have multiple files you will need to import, they will need to be in different folders. Click here to download template for Schema.ini


    If the content of the column is being truncated. That means that the Jet database engine might not correctly determine the data type of each column, which could result in data truncation. In that case, you can use the Schema.ini file to specify the format of text data when you're using the Microsoft Jet database engine to import or link to the data. Especially pay attention to the MaxScanRows setting in the Schema.ini file. This setting scans rows to determine the data type and size of that column. If it is set to a low number, the Jet database engine might not correctly determine the data type of each column, which could result in data truncation. Here's an example of a Schema.ini file for a CSV file:

    [YourFileName.csv] Format=CSVDelimited ColNameHeader=True MaxScanRows=0 CharacterSet=OEM Col1=ID Long Col2=Name Text Col3=Age Long Col4=Salary Double

    In this example: • YourFileName.csv is the name of your CSV file. • Format=CSVDelimited specifies that the file is a CSV file. • ColNameHeader=True indicates that the first row of the file contains column names. • MaxScanRows=0 tells the driver to scan all rows (not just a subset) to guess the data type of each column. • CharacterSet=OEM specifies the character set. OEM is a common choice for English language Windows operating systems. • Col1=ID Long, Col2=Name Text, Col3=Age Long, Col4=Salary Double define the columns in the file. Each column is given a name and a data type (Long, Text, Double). Please replace YourFileName.csv and the column definitions with your actual file name and columns.

  • Custom Development

    Custom Development

    Here are some links which will give you some ideas: My Module training  http://aranon.net/Uploads/Public/Documents/My_Modules_Training.zip SDK:- http://www.oxcyon.com/sdk/ Creating Visual Studio Solution video: http://aranon.net/Uploads/Public/Documents/CreatingVisualStudioSolution.zip Creating Visual Studio Solution help file: http://www.aranon.net/Integrations/Centralpoint/Articles/Article.aspx?id=8975c45e-f713-411e-9990-11c22addf9da My Modules help file: http://www.aranon.net/Integrations/Centralpoint/Articles/Article.aspx?id=a6ce24cc-603f-4b54-bac9-5e9bab801519 My_cpScripting help file: http://www.aranon.net/Integrations/Centralpoint/Articles/Article.aspx?id=6a55b71c-89fd-4341-a49c-ea0884cc4085 Custom Authentication Source help file:- http://www.aranon.net/Integrations/Centralpoint/Articles/Article.aspx?id=29b4e0fc-2321-4d05-b042-280df43a3587 Custom Authentication Source example: http://www.oxcyon.com/SDK/CustomAuthentication.aspx

  • Dashboard Modules

    Dashboard Modules

          

    Dashboard Modules allow you to define modules you want your users to update from the FRONT of the website (instead of the Client Console). This involves two different components, FORMS which need to be set up, which are then referenced by the Dashboard Modules. Dashboard Modules works with the values found in ADMINISTRATORS, to determine which modules users have access to, including their personalization settings (like how many records per page view, and in what order). This filtration also allows for the ADMINISTRATOR to only manage content relative to the AUDIENCES and ROLES that he or she has access to. VIDEO BELOW

    STEP ONE. Set up the form. These forms should already be found within the TEMPLATE GALLERY, and are faster to set up using these helpful guides. The template Gallery contains pre defined forms for NAVIGATION, NEWS, EVENTS, and GENERIC ENHANCED A - I. Any one of these could be used as a guide to set up a custom form should you need to do so. NOTE: Each of these forms must have a unique DEFAULT VALUE OR GROUP, and also maintain a unique REDIRECT Link. This is used to return the user back to the default grid view, when done editing, adding new, or deleting their records.

    STEP TWO. Once these forms are set up, you will need to create DASHBOARD MODULE records which relate to these forms. Again, these default DASHBOARD MODULE records should be found in the TEMPLATE GALLERY, for you to release. You will need to DEFINE THE PATH of the module, for each form, and the CPScript provided, is then managed either on a Navigation page (or within a Dynamic Tab, if provided as a menu). It is important to ADD THE DEFAULT VALUE OR GROUP (FROM THE FORM) to the tail end of this CPScript (FROM DASHBOARD MODULES) to prevent any confusion from within the Dynamic Tabs. ADDITIONAL NOTE: To take full advantage of the EDIT/RELEASE/ON HOLD Icons (served from the Design/Styles Module, and if not uploaded, they will appear as hard coded), PLEASE BE SURE TO ADD:  DisplayStatus='true'  and DisplayAudiences='true' added to them to take advantage of the "Hold"/"Release" images and the audience display.

    Also, the dashboard scripts in the current dashboard need  DisplayStatus='true'  and DisplayAudiences='true' added to them to take advantage of the "Hold"/"Release" images and the audience display.

    STEP THREE. Set up the Dynamic Tab (Newest JQuery UI Theme). You should find this DASHBOARD VIEW also in the TEMPLATE GALLERY, and is easiest to simply release it (as the forms and dashboard module records above already relate to it). Be sure to add your DASHBOARD MODULE SCRIPTS (Complete with DefaultValue or Group for each form you are calling to) while in HTML View. Adding them in DESIGN view can skew the results, adding unnecessary formatting to your scripts upon submission. Dynamic Tabs allows users to switch tabs without a page refresh. The cost for this UI enhancement is that all tabs are loaded every time a post back occurs. If you have many tabs containing large grids of data the performance of these post backs can be significantly affected.  NOTE: IT IS IMPORTANT TO SET REMEMBER CLICKED TAB (jqtRememberClickedTab) to YES.

  • Data Broadcasts

    Data Broadcasts

      * When copying Data Broadcast record make sure that Send attribute is set to never. Otherwise the module trigger will update Scheduled Next Run Date attribute and send a copy of the broadcast.

    * The CAN-SPAM Act: A Compliance Guide for Business.

    The CAN-SPAM Act, a law that sets the rules for commercial email, establishes requirements for commercial messages, gives recipients the right to have you stop emailing them, and spells out tough penalties for violations.

    Despite its name, the CAN-SPAM Act doesn’t apply just to bulk email. It covers all commercial messages, which the law defines as “any electronic mail message the primary purpose of which is the commercial advertisement or promotion of a commercial product or service,” including email that promotes content on commercial websites. The law makes no exception for business-to-business email. That means all email – for example, a message to former customers announcing a new product line – must comply with the law.

    Each separate email in violation of the CAN-SPAM Act is subject to penalties of up to $16,000, so non-compliance can be costly. But following the law isn’t complicated. Here’s a rundown of CAN-SPAM’s main requirements:

    1. Don’t use false or misleading header information. Your “From,” “To,” “Reply-To,” and routing information – including the originating domain name and email address – must be accurate and identify the person or business who initiated the message.
    2. Don’t use deceptive subject lines. The subject line must accurately reflect the content of the message.
    3. Identify the message as an ad. The law gives you a lot of leeway in how to do this, but you must disclose clearly and conspicuously that your message is an advertisement.
    4. Tell recipients where you’re located. Your message must include your valid physical postal address. This can be your current street address, a post office box you’ve registered with the U.S. Postal Service, or a private mailbox you’ve registered with a commercial mail receiving agency established under Postal Service regulations.
    5. Tell recipients how to opt out of receiving future email from you. Your message must include a clear and conspicuous explanation of how the recipient can opt out of getting email from you in the future. Craft the notice in a way that’s easy for an ordinary person to recognize, read, and understand. Creative use of type size, color, and location can improve clarity. Give a return email address or another easy Internet-based way to allow people to communicate their choice to you. You may create a menu to allow a recipient to opt out of certain types of messages, but you must include the option to stop all commercial messages from you. Make sure your spam filter doesn’t block these opt-out requests.
    6. Honor opt-out requests promptly. Any opt-out mechanism you offer must be able to process opt-out requests for at least 30 days after you send your message. You must honor a recipient’s opt-out request within 10 business days. You can’t charge a fee, require the recipient to give you any personally identifying information beyond an email address, or make the recipient take any step other than sending a reply email or visiting a single page on an Internet website as a condition for honoring an opt-out request. Once people have told you they don’t want to receive more messages from you, you can’t sell or transfer their email addresses, even in the form of a mailing list. The only exception is that you may transfer the addresses to a company you’ve hired to help you comply with the CAN-SPAM Act.
    7. Monitor what others are doing on your behalf. The law makes clear that even if you hire another company to handle your email marketing, you can’t contract away your legal responsibility to comply with the law. Both the company whose product is promoted in the message and the company that actually sends the message may be held legally responsible.

    * Those rules and regulations always change. For more information and latest version of the document please visit http://www.ftc.gov and seach for CAN-SPAM Act.

    Soft bounces are when an email address is temporarily unavailable. Maybe the recipient’s server was down, or just too busy. You generally don’t have to do anything—Data Broadcast retries delivering a reasonable, non-server-annoying amount of times, and if it still gets rejected, we keep that email address on your list for the next campaign. It’s only if an email address soft bounces 5 campaigns in a row that we clean it off your list for good.

    Hard bounces mean an email address was non-deliverable. It’s gone. Deleted. Doesn’t exist anymore, never existed in the first place, whatever. Lost cause. These get removed from your list by Data Broadcast immediately. That’s because if you try resending to these emails, you could get blocked by that server (they track who keeps sending emails to bad addresses).

    Hard bounces are recorded immediately in the broadcast messages table as true bounce backs. Soft bounces are recorded in the broadcast messages table as bounce backs after five failures to send.

    RecipientInfo This script displays the values for current user.

    [cp:scripting key='RecipientInfo' attributeSystemName='DisplayName' /]
    Property Description
    attributeSystemName The id of the item in the Configuration/Properties collections. It's also supports following attributes:UserName,UserId,IntegrationId,DisplayName.


    MessageInfo This script returns values of the current message.

    [cp:scripting key='MessageInfo' attributeSystemName='FromAddress' /]
    Property Description
    attributeSystemName The id of the item in the broadcast record. Example: FromAddress, FromName, DataId or MessageId, Created or CreateDate, BroadcastId, ScheduledLastRunDate and all the Properties which are all the properties, configuration and attributes if source has those.


    CurrentDate The Current Date cp script uses the creates the current date/time in the correct Time Zone using specified formats.

    [cp:scripting key='CurrentDate' Format='MM-dd-yyyy'/]
    Property Description
    Format These are the formats that will format the current date. You can combined different abbreviations together to form unique Date Formats.
    Format Value Example
    MM/dd/yyyy 04/17/2012
    MM-dd-yyyy 04/17/2012
    MM/dd/yyyy hh:mm:ss tt 04/17/2012 01:59:06 PM
    MM-dd-yyyy hh:mm:ss tt 04-17-2012 01:59:06 PM
    hh:mm:ss tt 02:05:15 PM
    ddd Tue
    dddd Tuesday
    MMM Apr
    MMMM April
    yy 12
    yyyy 2012
    AddDays This optional attribute can be a positive or negative number and will add or subtract that many days from the current date.
    Reference Examples for Commonly Used Scripts in Broadcast are:

    [cp:scripting key='RecipientInfo' attributeSystemName='ContactTitle' /] [cp:scripting key='RecipientInfo' attributeSystemName='ContactFirstName' /] [cp:scripting key='RecipientInfo' attributeSystemName='ContactMiddleName' /] [cp:scripting key='RecipientInfo' attributeSystemName='ContactSuffix' /] [cp:scripting key='RecipientInfo' attributeSystemName='ContactAddress' /] [cp:scripting key='RecipientInfo' attributeSystemName='ContactCity' /] [cp:scripting key='RecipientInfo' attributeSystemName='ContactState' /] [cp:scripting key='RecipientInfo' attributeSystemName='ContactHomePhone' /] [cp:scripting key='RecipientInfo' attributeSystemName='ContactCellPhone' /] [cp:scripting key='RecipientInfo' attributeSystemName='ContactOfficePhone' /] [cp:scripting key='RecipientInfo' attributeSystemName='ContactCompany' /] [cp:scripting key='RecipientInfo' attributeSystemName='ContactCompanyPosition' /]

    Example of HTML Used for Unsubscribe links (instead of the unsubscribe images) to paste into the bottom of Email table.

    <table id="Table1">     <tbody>         <tr>             <td colspan="2">If you no longer wish to receive our e-mail(s), please click one of the buttons below.</td>         </tr>         <tr>             <td><a href="/Modules/DataBroadcast/Subscriptions.aspx?mid="> Unsubscribe from this Broadcast </a></td>             <td><a href="/Modules/DataBroadcast/Subscriptions.aspx?mid=&amp;bid="> Completely Unsubscribe from all Broadcasts</a></td>         </tr>         <tr>             <td colspan="2"><a href="/Modules/DataBroadcast/ViewMessage.aspx?mid=">Trouble viewing? Click to open in browser.</a></td>         </tr>     </tbody> </table>

    Q&A

    How Email Email Broadcast tracks open emails. When email is sent the small image is embed with unique Id of the broadcast into the email body. When someone reads his mail, with images enabled, the email-client will send a request to to load the image, passing that unique Id as a parameter. Our handler on the server will check the id parameter and record that emails was opened.

    How Email Email Broadcast tracks clicks. Every link in the broadcast will be replaces with reference to click.aspx and unique Id of the broadcast. When link is clicked click.aspx will parse those parameters and record the click in cpsys_ClicksLog table.

    Email validation status codes

    When completed, email validation snapshots bring one or more validation entries along with their email validation statuses. Verifalia defines several different statuses, where every value signals a successful validation or a particular issue.

    Generic status codes

    • Success

      Email address verified successfully.


    Syntax status codes

    • UnmatchedQuotedPair

      A quoted pair within a quoted word is not closed properly.

    • UnexpectedQuotedPairSequence

      An unexpected quoted pair sequence has been found within a quoted word.

    • InvalidWordBoundaryStart

      A new word boundary start has been detected at an invalid position.

    • InvalidCharacterInSequence

      An invalid character has been detected in the provided sequence.

    • UnbalancedCommentParenthesis

      The number of parenthesis used to open comments is not equal to the one used to close them.

    • DoubleDotSequence

      An invalid sequence of two adjacent dots has been found.

    • InvalidLocalPartLength

      The local part of the e-mail address has an invalid length.

    • InvalidFoldingWhiteSpaceSequence

      An invalid folding white space (FWS) sequence has been found.

    • AtSignNotFound

      The at sign symbol (@), used to separate the local part from the domain part of the address, has not been found.

    • InvalidEmptyQuotedWord

      An invalid quoted word with no content has been found.

    • InvalidAddressLength

      The email address has an invalid total length.

    • DomainPartCompliancyFailure

      The domain part of the email address is not compliant with the IETF standards.


    DNS status codes

    • DomainDoesNotExist

      The domain of the e-mail address does not exist.


    SMTP status codes

    • SmtpConnectionTimeout

      A timeout has occured while connecting to the mail exchanger which serves the e-mail address domain.

    • SmtpConnectionFailure

      A socket connection error occured while connecting to the mail exchanger which serves the e-mail address domain.


    Mailbox status codes

    • MailboxDoesNotExist

      The mailbox for the e-mail address does not exist.

    • MailboxConnectionFailure

      A connection error occurred while validating the mailbox for the e-mail address.

    • LocalSenderAddressRejected

      The external mail exchanger rejected to accept messages from Verifalia.

    • MailboxValidationTimeout

      A timeout occured while verifying the existence of the mailbox.

    • MailboxTemporarilyUnavailable

      The requested mailbox is temporarily unavailable (perhaps it is over quota). Please note that Verifalia validates email addresses in multiple passes and every temporary condition is checked for up to 20 minutes before having this status applied.

    • Data Cleaner

      Data Cleaner

      Data Cleaner - Enrich Metadata, Classification & more with Data Governance rules

      Data Cleaner (or Data Governance) allows you to manage Data Governance & Metadata rules to enhance your content. These tools may be used simply to rewrite common misspellings upon submission. They may also be used to enrich metadata or taxonomy, allowing all records containing the word apple to be tagged to fruit, trees and food. It may also be used to search the contents for any file, uploaded record or imported data for certain values, in which to reclassify it's security disposition or to alter roles....governing who will see the data. Data cleaner can deeply mine your records to determine what is found within, and then assign, append or change those values automatically. Enabling records and module properties that relate to this module may lead to overwritten or lost content. Creating a large number of records in this module may also cause the submission of records take significantly longer to complete.  It is to be used at your own risk. If records exist in the target module before the module property is enabled or data cleaner records are added they will not apply to those records until the next time they are submitted. Tools > Re-Submit All Module Records can be used to resubmit all existing records.

               

      Types of Data Transformation which are supported and the required fields needed for each:

      • STRUCTURED DATA SOURCES SUPPORTED
        • Sharepoint -Source Site URL, Title, List Title, Username, Password
        • Oracle -Connection String/table name, any query or filter (credentials)
        • SQL -Connection String/table name, any query or filter (credentials)
        • Office 365- (Ondrive) Authorization, Source Folder (Office365 file Selector), Source Recursive (y/n), Source End Point (bulk or changes)
        • OLEDB - Connection String/table name, any query or filter (credentials)
        • ODBC  - Connection String/table name, any query or filter (credentials)
        • XML- ReadXML -XML Source (path to xml), Available tables and columns, Source Table Index
        • XML- CpCollection –Source XML (path to xml), Default File, Source Directory, Number of Files to select, XSLT
        • Delimited TXT (oledb)– Source Directory, Source Delimiter used, Source Text Qualifier, Source Header Row, Source Select Command
        • Delimited TXT (Stream)– Source Directory, Source Delimiter used, Source Text Qualifier, Source Header Row, Source Select Command
        • Active Directory – (Used to build employee directories typically) – Directory Path, Filter
        • Excel – Source File (path to excel, if not uploaded into centralpoint), Source Header row, Source Select Command (if any)
        • RSS- Source Feed URL (Web path to RSS Feed), Feed type (atom or rss)
        • Access- Source File (Path), Source Select Command (query)
        • Office 365 – Source Authorization (Authorize), Source Folder, Source is Recursive, Source End Point
        • Custom Provider – Typically used when ingesting from a WebAPI/Web Services – Source Type, Source Parameters (Custom covers virtually any configuration) wherein certain security considerations or custom methods must be passed in order to authorize or encrypt.
        • Centralpoint (Modules, Audiences, Taxonomy, Roles) – This is used when transforming data Centralpoint to Centralpoint or to an outside system

      • UNSTRUCTURED
        • File path (and/or credentials) to spider (Network drive, web based drive (onedrive- Source Directory, Source Pattern, Source Options

      When to consider INDEXING vs. INGESTING Data using Centralpoint Data Transformation

      • Centralpoint supports both indexing or ingesting data. This is because you will want a federated search against all records, but need to preserve where some records currently live. In another case, you may need to have a new system of record or home to MOVE records into Centralpoint.
        • You may want to avoid duplication of your records
        • You may may need to consider the size of certain files (like CAD, Hi resolution images, etc.)
        • You may need to consider the security of the file paths in which your files live today and user’s network accessibility to them.

      • Indexing vs. Ingesting– The difference is whether you want to leave the record were it is found (to avoid duplication) in order to make it search able within Centralpoint, or whether you want to sunset an old system, where the new record will now live in Centrapoint as it’s new home. When creating your data transformation routine, the difference will be when field mapping ALTERNATIVE URL. Alternative URL is only used when indexing, allowing the path to record to be recorded in centralpoint (as well as the enrichment), wherein the user will be returned to the original source, should they have the access to see the record. If you are intending to move the record to Centralpoint as the new system of record, then DO NOT USE Alternative URL, and make sure each record is moved during the ingestion (via an available)  File Upload field.

      • Security Consideration- Whether you are ingesting or indexing records using Data Transformation, always be sure to map the security roles from the system or path your scanning, in which to maintain who may see or access records (either indexed o ingested in Centralpoint)

      Data Governance (Data Cleaner) considerations, when executing your Data Transformation.

      Data cleaning is a separate module found under the Centralpoint Data Transformation suite of tools, which allow you to set up data governance rules which may work in unison with your Data Transformation routines. 

        • Keyword Generator – Used to enrich, supplement or add new keywords to any record, where certain values are is found (during mining).
          • Example: If the word ‘apple’ is found, add keywords of ‘fruit, food, nutrition, pectin’ which will enhance search (searching fruit, and relate anything apple to any other record which may also relate to fruit or food)
            • What it will ask you fo this routine : Search for?, attributes, add keywords
        • Taxonomy GeneratorUsed to apply one or more metadata/taxonomy types when certain value(s) are found.
          • Example: If the word ‘apple’ is found, apply to N-tiered taxonomy under Food/Fruit, which will enhance search (searching fruit, and relate anything apple to any other record which may also relate to fruit or food)
            • What it will ask you fo this routine Search for?, case sensitive?, regex?, Taxonomy
        • Attribute Generator – Used to apply new values in any field within one or more modules when certain value(s) are found (during mining).
          • Example: If the term ‘Top Secret’ is found within any document, apply the value for the Role=Top Secret, to the ‘Roles’ attribute for any module. This will override the security roles for all documents which contain ‘Top Secret’
            • What it will ask you fo this routine : Search for?, regex?, value to add, attribute, which modules?
        • HTML CleanerUsed to clean or scrub any HTML or code where certain values are found (during mining). Often used to fix older or bad HTML or convert bad characters from MS/Word or faulty HTML being ingested.
          • Example: Should you need to replace any fault HTML, codes or characters which includes “<b>Apple<b>, and replace with <b>Apple</b> (correcting the original faulty html)
            • What it will ask you fo this routine : Search for?, replacement type (html/text), replace with?
        • Attribute HTML CleanerUsed to apply new values into certain fields into specific modules whenever certain values are found (during mining)-allowing you to apply new values to any attribute as a result
          • What it will ask you fo this routine : Search for? , replacement type (html/text), replace with, attribute to add, which modules?
        • Data Triage- Used to redirect certain file types into certain modules.
          • Example, when spidering a shared network drive or database, you may want to deposit all documents containing ‘Marketing’ references into a module designated for only Marketing, or place all Excel documents found into it’s own module. This is used to organize content by type (within separate modules)
          • What it will ask you fo this routine: Search for?, regex (yes or no), searched attribute, destination modules, logging attribute

      Keyword Generator

      • This tool is currently supported in all Generic Enhanced modules. It can be enabled by setting the generic enhanced Keyword Generator module property to Enabled and entering the Keyword Generator attribute.  This is the attribute which will have its value overwritten upon each submission with keywords generated from this module even if no keywords are generated.
      • Submitting a record in the generic enhanced module will trigger a lookup of records in Data Transform > Data Cleaner with Type = Keyword Generator.  Each of these records will be used to find matches in all attributes of the submitted record. When the Search For word is matched at least the number of times noted in the Threshold provided the Add Keywords will be added. If more than one data cleaner record returns keywords those keywords will be combined and the resulting set of keywords will overwrite the value of the attribute in the Keyword Generator Attribute module property.  If no keywords are found the attribute will be overwritten with an empty value.

      Taxonomy Generator

      • This tool is currently supported in all Generic Enhanced modules. It can be enabled by setting the generic enhanced Taxonomy Generator module property to Enabled.  By default the system appends generated taxonomy to existing selections, but setting Taxonomy Generator Overwrite = Enabled will overwrite the exist values in the Taxonomy attribute with the generated taxonomy upon each submission. Hide the Taxonomy attribute with Module Configuration > Hidden Attributes when enabling overwrites because manual selections will be overwritten.
      • Submitting a record in the generic enhanced module will trigger a lookup of records in Data Transform > Data Cleaner with Type = Taxonomy Generator.  Each of these records will be used to find matches in all attributes of the submitted record. When the Search For word is matched at least the number of times noted in the Threshold provided the Taxonomy will be added. If more than one data cleaner record returns taxonomy, that taxonomy will be combined and the resulting set of taxonomy will append to or overwrite the record's selected Taxonomy.  If overwrites are enabled and no taxonomy is found the Taxonomy will be overwritten with an empty value.

      Automated Taxonomy: Exclude Individual Records

      Support to exclude individual records from using the Taxonomy generation tools begins in version 8.11.48

      Record Exclusion Instructions

      1. Module Configuration Go to this location within the desired module. Add a custom attribute with a System Name of: IsUsingCpTaxonomyGenerator. This should be a CpKeywordRadioButtonList attribute as shown below. The values of this attribute are 0 and 1. When the attribute is set to 0 within the record, the Taxonomy attribute will not be populated from Data Cleaner records set to a type of Taxonomy Generator or Attribute Generator.
      2.         <property id="IsUsingCpTaxonomyGenerator">
                    <value>1</value>
                    <attribute name="Is Using Taxonomy Generator?" isEnabled="true" isVisible="true" allowScripts="false">
                        <control id="CpKeywordRadioButtonList" type="Centralpoint.Web.UI.Controls.CpKeywordRadioButtonList">
                            <controlProperty name="RepeatColumns" value="0" />
                            <controlProperty name="RepeatDirection" value="Horizontal" />
                            <controlProperty name="KeywordListId" value="c52d9d0d-09f4-4547-96b0-0850f7fade47" />
                        </control>
                    </attribute>
                </property>  	
        

      HTML Cleaner

      • This feature is especially unpredictable. The result of the matches and replacements is dependent upon the validity of each regular expression as it relates to the content after the previous replacement occurs. There is no reporting or way to debug whether the regular expressions are executing as expected.  This feature is to be used at your own risk and is not supported by Oxcyon.
      • This tool is currently supported in the Procedure Manuals > Policies module. It can be enabled by setting the policies HTML Cleaner module property to Enabled.
      • Submitting a record in the policies module will trigger a lookup of records in the Data Transform > Data Cleaner module with Type = HTML Cleaner. These records will be executed in order of priority executing regular expression replacements on the content.

      Roles or Audiences

      To set up data cleaner to assign (roles or audiences), please use this rule set below:

      First, you will need to set up this statement to allow PUBLIC/EVERYONE records to be assigned as usual. Pay careful note to the exlusions in the Regex, as if you change those roles, you will ALSO need to change this condition.

      NOT \bROLE 1\b|\(R1\) AND NOT \bROLE 2\b|//RO 2 AND NOT \bROLE 3\b AND NOT \bROLE 4\b AND NOT /ROLE 5 AND NOT \bROLE 6\b AND NOT \bROLE7\b|\bRole 7\b

      Individual Rule set up for:

      • Role 1: \bROLE 1\b|\(Role 1\)
      • Role 2: \bROLE 2\b|//Role 2
      • Role 3: \bROLE 3\b|\bRole 3\b
      • Role 4: \bROLE 4\b
      • Role 5: \bROLE 5\b
      • Role 6: /ROLE 6
      • Role 7: \bROLE 7\b
      (\b denotes a regex word boundary)

      PLEASE NOTE that you will need to utilize the attribute cleaner option and the value you place in the AddValue field will be the GUID of the Role/Audience, and the value you place in the Attribute field will be "Roles" (or "Audiences").

    • Data Sources

      Data Sources

      Data Sources provide a powerful way to retrieve data from any source and put it on the front end of the web site anywhere. There are 2 Tabs for Data Sources: Attributes and Formatting.

      Attributes

      1. System Title: This is the title for the Data Source.
      2. Publish Start Date: This is the Start Date for the Data Source.
      3. Publish End Date: This is the End Date for the Data Source.
      4. CpScript: After the record is saved, you can click back into the record and copy the CpScript it generates to put it anywhere where CpScripts are supported.
      5. Cache Duration: This is the cache duration. If you're information tends to not change for long periods of time, you can set this to a longer time. Warning: any dynamic Data Source that uses attributes, taxonomies, query strings, etc cannot use cache. This will break what the Data Source will display.
      6. Data Source: This is where the information will be retrieved from:
        • Current Web Site: This is the current Centralpoint Database.
          • Module Cache: This caches a Module Data Source based on the Module(s) and the specific type of caching.It is not recommended to use the Cache Duration with this Caching type.
            • Modules: Please select the Module(s) you will be using in the Select Command.
            • Audience Specific: If this is enabled, please use this System Filter CpScript (IsEnabled = 1 AND ((DataId IN (SELECT dbo.cpsys_DataCurrentInAudiences.DataId FROM dbo.cpsys_DataCurrentInAudiences WHERE (dbo.cpsys_DataCurrentInAudiences.AudienceId IN ('5f2d099d-a0df-4e62-bb88-93662c972ae0', 'bf7bb52f-eae7-4d5a-bd20-6849d0260c80') AND IsCda = 1))))). Note: some may have to be set to true if you using other specific types of cache.
            • Role Specific: If this is enabled, please use this System Filter CpScript (IsEnabled = 1 AND (DataId IN (SELECT cpsys_DataCurrentInRoles.DataId FROM cpsys_DataCurrentInRoles WHERE (cpsys_DataCurrentInRoles.RoleId IN ('782aa391-8922-4be1-9f1b-345be35b726b', '87d65c27-6e78-4e5c-b423-78d47d4f2768'))))). Note: some may have to be set to true if you using other specific types of cache.
            • Date Specific: If this is enabled, please use this System Filter CpScript (IsEnabled = 1 AND EndDate >= '2026-02-14T22:22:02' AND ((DataId IN (SELECT dbo.cpsys_DataCurrentInAudiences.DataId FROM dbo.cpsys_DataCurrentInAudiences WHERE (dbo.cpsys_DataCurrentInAudiences.AudienceId IN ('5f2d099d-a0df-4e62-bb88-93662c972ae0', 'bf7bb52f-eae7-4d5a-bd20-6849d0260c80') AND IsCda = 1))))) and make sure you have StartDate and EndDate in the SELECT part of the Select Command. Note: some may have to be set to true if you using other specific types of cache.
        • Connection String: You can use a Connecton String to retrieve data from any source:
          • Database Provider: These are the Databases that Centralpoint supports with this option.
          • Connection String: This is the connection string for the database. All four options have different versions of the connection string.
        • RSS Feed: This will pull information from an RSS Feed. The fields available for the Formatting Tab are Title, Date, Link, and Content.
          • Url: This URL for the RSS Feed.
          • Number Of Items: This is the number of records to pull from the Feed. There is no SELECT Command for this option.
        • ATOM Feed: This will pull information from an ATOM Feed. The fields available for the Formatting Tab are Title, PublishedDate, UpdatedDate, Link, and Content.
          • Url: This URL for the RSS Feed.
          • Number Of Items: This is the number of records to pull from the Feed. There is no Select Command for this option.
        • Custom Source: This is a advanced option and will require a developers to create Custom method which will have to return an DataTable. The fields available for the Formatting Tab in the Example of the Custom Source are: Title, AutoNumber, DataId, AudienceSystemName and Parameters.
        • Twitter: This will pull information from an Twitter User Timeline. The fields available for the Formatting Tab are Body, CreateDate, RetweetCount, FavoriteCount, Source. In order to use the Twitter feed you will need to go to https://dev.twitter.com/ and log in using your Twitter crendentials. In the upper right hand corner there is a blue tab, hover of that and click 'My Applications'. This will take you to https://apps.twitter.com/. Click the button 'Create New App'. You will be taken to a page called 'Create an application' where you need to fill out information about the application. Name and Description should be descriptive like 'Main Site Twitter Source'. The Website and Callback URL must be your website's Home Page ie 'http//www.mysite.com'. Click 'Yes I agree' at the bottom and push the button 'Create Your Twitter Application'. This will take you to to the https://apps.twitter.com/ page where you can find your information for the Twitter parameters in the API Keys section. At the bottom of this page, push the button Create Access Token. This will allow Centralpoint to request information from Twitter on your behalf.
        • Slack: Please use the Slack Wizard to guide you through this Data Source.
        • Facebook: Please use the Facebook Wizard to guide you through this Data Source.
        • Yammer: Please use the Yammer Wizard to guide you through this Data Source.
      7. Select Command: This is the Query that is used to pull the data from a Data Source. You can use the Select Comman Builder to build a Select Command from any module. It is a wizard that lets you selects fields from a module.
      8. Supports Data Broadcast Member Profiles: If you want to filter by MemberProfile add: FilterByMemberProfile='true' to your DataSource cp:script.
        • Filter Member Profiles By: If you select to filter MemberProfiles by one or all of those fileds(DataId, Keywords or Taxonomy), then those fields must be included in the SelectCommand.

      Formatting

      Formatting Options give you the option to format your information in a certain way.

      1. Data List: The Data List puts the infomation out in a table format. This is the basic representation of the Data List. These are its attributes:
        • Repeat Columns: How many columns will the items display in.
        • Repeat Direction: This is the direction the List will repeat, either horizontal, or vertical.
        • Width: Controls the width of the container that will hold your content. You can specify a percentage or pixel based width.
        • Padding: This is the overall padding for the Data List in pixels.
        • Empty Item: If Data Source Script return no records and Empty Item Content is selected the Header/Footer Content will be included and text from Empty Item Content displayed, otherwise, it will not.
          • Error Message This will output an red error message.
          • Empty String This will output nothing on the front end.
          • Empty Item Content This will output what is in the RTF Editor.
        • Header Content: This will be placed at the top of the Data List output.
        • Item Content: This is where the information will be displayed.
        • Alternating Item Content: This is display alternating to the Item Content if there is a value in this RTF Editor.
        • Footer Content: This will be placed at the bottom of the Data List output.
        • Custom Styles: This is optional custom CSS that will be added to the Data List output.
      2. Image Slideshow: This is the basic representation of the Image Slideshow option. Here are the additional fields to change the functionality:
        • Slideshow Width: This is the entire slideshow width in pixels.
        • Slideshow Background Color: This is the background color for the entire slideshow.
        • Slideshow Padding Top: This is the padding top for the entire slideshow.
        • Slideshow Padding Bottom: This is the padding bottom for the entire slideshow.
        • Slideshow Padding Left: This is the padding left for the entire slideshow.
        • Slideshow Padding Right: This is the padding right for the entire slideshow.
        • Main Gallery Height: This is the main gallery region height.
        • Main Gallery Padding Top: This is the main gallery region padding top.
        • Main Gallery Padding Bottom: This is the main gallery region padding bottom.
        • Display Main Gallery Previous / Next Images: This will show the Left and Right Main Image Gallery Images.
        • Main Gallery Left Arrow: This is the image for the left arrow of the gallery. It will have a default image if none is selected.
        • Main Gallery Right Arrow: This is the image for the right arrow of the gallery. It will have a default image if none is selected.
        • Caption Background Color: The caption is made from the Define Title Field and Define Content Field 1 columns. This is the background color for the gallery caption popup.
        • Caption Text Color: This is the text color for the gallery caption popup.
        • Caption Opacity: This is the opacity of the caption.
        • Thumbnail Height: This is the height of the thumbnail. The width will automatically be generated.
        • Thumbnail Opacity: This will set the opacity for the thumbnails.
        • Thumbnail Padding Top: This is the padding top for the Thumbnails region.
        • Thumbnail Padding Bottom: This is the padding bottom for the thumbnail region.
        • Display Thumbnail Previous / Next Images: This will display the thumbnail previous and next images.
        • Thumbnail Tooltip: This will show a tooltip for the Thumbnail based on a column.
          • Thumbnail Tooltip Column Name: This is the Column name for the Thumbnail Tooltip contents.
        • Navigation Bar Text Color: This is the text color for the image count and the start and stop links (the Navigation Bar).
        • Navigation Padding Top: This is the padding top for the Navigation bar.
        • Navigation Padding Bottom: This is the padding bottom for the Navigation bar.
        • Navigation Padding Left: This is the padding left for the Navigation Bar.
        • Navigation Padding Right: This is the padding right for the Navigation Bar.
        • Auto Start: This will start the slideshow automatically.
        • Slide Show Effect: This is the effect for the slide show.
        • Animation Speed: This is the speed of the animation effect.
        • Auto Play Duration: This is the time in which images switch when the slide show is running.
        • Hide Navigation Bar: This will hide the image numbers and the start stop links.
        • Hide Thumbnails: This will hide the thumbnails from the slideshow.
        • Hide Main Gallery: This will hide the main image part of the slideshow.
      3. Paged Data List This is the basic representation of the Paged Data List. These are its attributes:
        • Limited Records: It is highly recommended that you use a SELECT TOP in your select statement and you select no more that 500 records. By choosing yes you have agreed to limit your record count.
        • Navigation Location: The location of the navigation. Options are Top and Bottom of information.
        • Header Content: This is the header of the datasource. This will come after the pager if the pager is at the top.
        • Item Content: This will be in each page. To reference Fields in Data Source use placeholders.
        • Alternating Item Content: This is the alternating item content.
        • Footer Content: This is the footer of the datasource. This will come before the pager if the pager is at the bottom.
        • Records Per Page: This is the number of records in the item content that will display per page.
        • Total Page Links: This is the total number of page number links that will display in the navigation.
        • Background Color: Background color of navigation.
        • Text Color: The text color of previous, next, and page number counts.
        • Previous Link Text: This the text of the previous link.
        • Next Link Text: This the text of the next link.
        • Page Inactive Text Color: The color of inactive page number links.
        • Page Inactive Background Color: The background color of inactive page number links.
        • Page Active Text Color: The color of active page number link.
        • Page Active Background Color: The background color of active page number link.
        • Text Decoration: The text decoration style of the page number links.
        • Width: The width of the navigation element.
        • Height: The height of the navigation element.
        • Minimum Page: If there is less than or equal to this number, the pager will be hidden. It defaults to 10.
      4. Raw HTML This is a representation of what the Raw HTML can do. These are are its attributes and examples of how this was created.
        • Empty Item: This will be displayed if If Data Source Script return no records.
          • Error Message This will output an red error message.
          • Empty String This will output nothing on the front end.
          • Empty Item Content This will output what is in the RTF Editor.
        • Styles: This is the custom CSS that can be used for this option.
        • Scripts: This is the custom JavaScript that can be used for this option. Centralpoint supports JavaScript, jQuery, jQuery UI.
        • Template Content: This attribute is used to wrap HTML, CpScripts, or text around the placeholder. ItemContent The placeholder will get populated with the item content. This is an example from the image above:
          <table>
          <tbody>
          <tr>
          <th>ImageLink<th><ht>Title</th>
          ItemContent
          </tbody>
          </table>
          			
        • Item Content: To reference Fields in Data Source use placeholders. Column: Object reference not set to an instance of an object.. This is an example from the image above:
          <tr><td>Column: Object reference not set to an instance of an object.</td><td>Column: Object reference not set to an instance of an object.</td></tr>
          			
      5. Chart(Basic)
        • Empty Item: This will be displayed if If Data Source Script return no records.
          • Error Message This will output an red error message.
          • Empty String This will output nothing on the front end.
          • Empty Item Content This will output what is in the RTF Editor.
        • Title Column Name This is title column name in SELECT command. This will also show in the Legend as colors.
        • Number of Value Columns This is the number of value column names that the graph will represent. You will have 1 - 10 columns names to choose from from your SELECT command.
        • Title This is the title of the chart.
        • JCChartType These are the chart types for that you can display. There are extra attributes for each chart type.
          • Bar This is a basic representation of a Bar Chart.
            • Bar Group Margin This is the space around each group of bars in a bar chart.
            • Bar Margin This creates space around bars in the bar chart (added to both sides of each bar).
          • Area This is a basic representation of a Area Chart.
            • Line Width This is the width of the line in the area chart.
          • Pie This is a basic representation of a Pie Chart.
            • Pie Margin This is the space around outer circle of pie chart.

            • Data Sources > Template Content > JavaScript Extension

              Data Sources > Template Content > JavaScript Extension

              Data Sources > Template Content > JavaScript Extension

              When using the command builder to create markup for a Data Source record, the Template Content attribute contains default markup explained below.

              JavaScript & CSS Files (Above Table HTML)

              <link href="/Modules/DataSource/DataTablesJS/Styles.css?v=8.11.112" rel="stylesheet">
              
              [cp:scripting key='RegisterUnmanagedScriptInclude' url='/Integrations/JQuery/Plugins/dataTables/cp_DataSources_Extender.js?v=8.11.112' /]
              
              [cp:scripting key='RegisterUnmanagedScriptInclude' url='/Scripting/ModuleResults/Export/Scripts.js?v=8.11.112' /]
              
              [cp:scripting key='ExtTable' targetId='dataSource_TUGI' bPaginate='true' sPaginationType='two_button' bFilter='true' bSort='true' bInfo='true' bLengthChange='true' iDisplayLength='100' bJQueryUI='false' bProcessing='true' aLengthMenu='10, 25, 50, 100, 250, -1' aaSorting='0,cpsys_Aposdesccpsys_Apos' asStripeClasses='' bAutoWidth='false' sScrollY='' hasSearchableColumns='1' skippedSearchableColumns='0' /]
              
              [cp:scripting key='DataSourceExportButton' id='ExcelXml' type='ExcelXml' imagePath='/Integrations/Centralpoint/Resources/Icons/Microsoft_Excel.png' linkText='Export to Excel Xml Format' /]
              • The <link> tag registers default styles for the UI created from the Data Source.
              • The RegisterUnmanagedScriptInclude CpScripts register system JavaScript plugin files to the page. These extend functionality of the source plugin via DataTables.js
              • The ExtTable CpScript registers the DataTables.js source plugin files.
              • The DataSourceExportButton outputs a button that downloads the results from the Data Source into a XML file that can be imported into Microsoft Excel.

              Table HTML

              <table id="dataSource_XBMN" align="left" style="max-width: none;">
                <thead>
                  <tr>
                    <th><input type="checkbox" class="select-all"></th>
                    <th>StartDate</th>
                    <th>Title</th>
                    <th>DataId</th>
                    <th>AutoNumber</th>
                  </tr>
                </thead>
                <tbody>
                  [cp:placeholders key='ItemContent' /]
                </tbody>
              </table>
              • The number of columns has been reduced here and will reflect the relational columns in the table selected.
              • The first column will always contain the checkbox input. This allows users to select rows and download files referenced in the record's attributes or use the selected values for other purposes.
              • The CpScript, [cp:placeholders key='ItemContent' /], is where the dynamic content from the Item Content attribute is inserted.

              Search Taxonomy HTML (Below Table)

              <div class="cp-dtjs overlay">
                <div data-filter="taxonomy">
                  <h2>File Types</h2>
                  [cp:scripting key='FormRadioButtonList' id='TaxonomyList1' selectionmode='Multiple' repeatlayout='Flow' repeatColumns='4' tablename='cpsys_Taxonomy' filter='cpsys_Taxonomy.ParentTaxonomyId = cpsys_Apos8982210e-0447-47d6-9c09-4ad5014e30c6cpsys_Apos' valuefield='SystemName' textfield='Name' /]
                  <hr>
                  <h2>Document Types</h2>
                  [cp:scripting key='FormRadioButtonList' id='TaxonomyList2' selectionmode='Multiple' repeatlayout='Flow' repeatColumns='4' tablename='cpsys_Taxonomy' filter='cpsys_Taxonomy.ParentTaxonomyId = cpsys_Apos10ef4b4d-f913-4447-94fd-11dc71a4b157cpsys_Apos' valuefield='SystemName' textfield='Name' /]
                  <hr>
                  <h2>Terms</h2>
                  [cp:scripting key='FormRadioButtonList' id='TaxonomyList3' selectionmode='Multiple' repeatlayout='Flow' repeatColumns='4' tablename='cpsys_Taxonomy' filter='cpsys_Taxonomy.ParentTaxonomyId = cpsys_Apos39421aa9-99ad-4dfe-8931-3f95ab57b74ccpsys_Apos' valuefield='SystemName' textfield='Name' /]
                </div>
                <button type="button" class="srch-tbl">Search Table</button>
              </div>
              • This HTML provides users a means to filter the table by Taxonomy.
              • To complete the setup, the FormRadioButtonList CpScripts need updated with Taxonomy in the site that is associated to data being queried.
              • This requires that a QueryStringTaxonomyFilter CpScript is included in the SQL query via the Select Command attribute in the Data Source. When using the Select Command builder, this is provided in the SQL by default.
              • The default example provides users three tiers of taxonomy that when used would filter results by File Types, Document Types, and Terms. Records that match the taxonomy items selected will be returned.
              • When this setup is implemented properly, there will be a clickable element labeled Other Filters that users may click that will show the taxonomy search controls.

              Embedded JavaScript in HTML (Very Bottom)

              <script type="text/javascript">
              $('#dataSource_XBMN').cp_DataSourcesExtTable({{
                onInitComplete: function () {{ }},
                searchTermsLabel: "Search for:",
                taxonomy: {{
                  hasSearch: true,
                  queryStringVariableName: "tax",
                  modalTriggerHtml: '<strong>Other Filters:</strong> <img src="/Integrations/Centralpoint/Resources/Icons/Hierarchy.png" alt="filters">',
                  resetButton: "Remove Filters",
                  noneSelectedMessage: "Please select at least one taxonomy item."
                }},
                dates: {{
                  hasSearch: true,
                  from: "From:",
                  to: "To: ",
                  placeholder: "mm/dd/yyyy",
                  searchButton: "Search",
                  resetButton: "Reset"
                }},
                download: {{
                  columnIndex: 0,
                  buttonHtml: 'Download Files',
                  attributes: ["FileUpload1", "FileUpload2", "FileUpload3", "FileUpload4", "FileUpload5", "Image", "Document"],
                  fileName: "Attachments",
                  selectedRowsControl: {{
                    hasControl: true,
                    unfilteredButtonHtml: "View Selected Rows",
                    filteredButtonHtml: "Clear Selected Filter"
                  }},
                  onChange: function (selectedIds) {{ }},
                  onLoadSelectedIds: function() {{ return []; }}
                }}
              }});
              </script>

              cp_DataSourcesExtTable Configurable Properties


              • onInitComplete: function () callback after the extender plugin has found the table and finished initialization
              • searchTermsLabel when using the taxonomy search, the names of the searched items will be rendered above the table. This allows the bolded language to be changed in the following example: Search for: TaxonomyName1, TaxonomyName2

              Taxonomy Properties

              • hasSearch setting this to false will ensure the taxonomy search feature does not render. If this is set to true and the modalTriggerHtml does not render, it likely means that there are no checkboxes in the Search Taxonomy HTML. This feature prevents providing users an overlay with no options to search.
              • queryStringVariableName should match the names used in the QueryStringTaxonomyFilter CpScript of the SQL query. This base name tax stored in the JavaScript property expects the names in the CpScript to be tax1, tax2, tax3 etc. Meaning the names in the CpScript are required to start at 1 and each subsequent name needs to be incremented by 1 as produced in the defaults explained here.
              • modalTriggerHtml is the clickable HTML that triggers the search controls overly.
              • resetButton is the text within the button HTML tag. This button shows after a user has filtered results by taxonomy.
              • noneSelectedMessage is the alert presented to the user when they try to search within the overlay and no taxonomy is selected.

              Date Properties

              • hasSearch setting this to false will ensure the date search feature does not render.
              • from the label text for the first date input.
              • searchButton the text for the search button
              • resetButton the text for the reset button. This buttons shows after a user has executed a date search

              *IMPORTANT This feature requires QueryString CpScripts in the SQL with name='' values of fromDate and toDate. The Command Builder default SQL provides this.


              Download Properties

              • columnIndex the zero-based index of the column that holds the checkbox for rows in the table. Set this to -1 to disable this feature when the table is does not have a checkbox column. The defaults use the first column which is an index of 0 and allows users to move the checkbox to other columns if desired; which requires updating this value.
              • buttonHtml is the text within the button HTML tag.
              • attributes this defines the attribute system names within each selected record that contain file paths. These are the files included in the ZIP file downloaded to the user.
              • fileName this is the name of the downloaded ZIP for the user when the button is clicked.
              • selectedRowsControl.hasControl boolean property that determines if the selected rows filter button is rendered to the page. The default is false.
              • selectedRowsControl.unfilteredButtonHtml inner HTML of the button tag the renders when the table is not filtered by selected rows.
              • selectedRowsControl.filteredButtonHtml inner HTML of the button tag the renders when the table is filtered by selected rows.
              • onChange: function (selectedIds) this is a callback function that occurs each time a checkbox is changed. This is commonly used to pass the DataIds to a hidden input. An example is below.
              • onLoadSelectedIds: function () this is a callback function that occurs a single time when the plugin is initialized and provides a means to set selected DataId values. The system use for this is to ensure values are maintained when the plugin is used in a form as users may get stuck on a validator during postback. An example is below.

              *IMPORTANT This value attribute within checkbox HTML of the table rows is required to use the DataId column. The HTML in this column should look like: <input type="checkbox" value="e2ec3c7f-fc71-f011-807a-0050b6c0caf2" class="cp-file-download">

              Callback Examples

              onChange: function (selectedIds) {{ 
                $('#cpsys_FormItem_cpsys_DefaultGroup_SelectedDataIds').val(selectedIds.join(', '));
              }}

              onLoadSelectedIds: function() {{
                return $('#cpsys_FormItem_cpsys_DefaultGroup_SelectedDataIds')?.val()?.split(/[,\s]+/);
              }}

              Template Content vs Item Content: When to Use Each

              Understanding the difference between Template Content and Item Content is essential for building effective DataSources.

              Component Purpose Renders
              Template Content Wrapper HTML, table headers, scripts, CSS Once (at the beginning)
              Item Content Repeating row/card template Once per database record

              Critical Requirement: The ItemContent Placeholder

              Your Template Content MUST include this exact placeholder, or rows will NOT render:

              ItemContent

              This placeholder is where each Item Content template will be inserted for every database row. Without it, your DataSource will appear empty even if the SQL query returns data.

              Displaying Data with CpScript Column Tags

              The Column script is the primary way to display data in your Item Content. Here's how to use it for different field types.

              Basic Column Usage

              <!-- Display a standard field -->
              Column: Object reference not set to an instance of an object.
              
              <!-- Display a custom attribute -->
              Column: Object reference not set to an instance of an object.
              
              <!-- Display formatted date -->
              Column: Object reference not set to an instance of an object.
              
              <!-- Display with prefix text -->
              Column: Object reference not set to an instance of an object.
              
              <!-- Truncated description -->
              Column: Object reference not set to an instance of an object.
              
              <!-- Status with value replacement -->
              Column: Object reference not set to an instance of an object.

              Column Script Parameters

              Parameter Description Example
              name Column or attribute name (required) name='Title'
              format .NET format string with {{0}} placeholder format='By {{0}}'
              datatype Force data type: datetime, number, etc. datatype='datetime'
              default Value if column is empty default='N/A'
              truncate Max character length truncate='100'
              striphtml Remove HTML tags striphtml='true'
              replacetext Comma-separated values to find replacetext='1,2,3'
              replacewith Comma-separated replacements replacewith='Active,Pending,Archived'

              Custom Attributes Prefix: When accessing custom attributes (fields not in your SQL SELECT but stored in the Attributes XML), you MUST use the cpsys_Attributes: prefix. Example: name='cpsys_Attributes:CustomField'

            • Data Tables

              Data Tables

              The DataTables plugin uses a jQuery JavaScript library to transform a HTML table to an advanced table; providing features such as search capability, paginated results, and column sorting.

              Centralpoint generates two type of sources: Static and Dynamic.

              Static

              This method connects to an existing Data Source and applies the DataTable plugin to the table HTML in the Formatting tab of the Data Source record.

              This method provides more flexibility with the table HTML format, but the disadvantage is that it retrieves the entire data set on the initial page load. The plugin hides a majority of the records retrieved and lets you search and paginate through the results.

              The Static option works very similar to the original ExtTable CpScript, except that the HTML binds to the newer version of the DataTable plugin.

              In the Formatting Tab you have Styles, Scripts, Template and Data Source Attributes.

              Styles are used to add any custom styles to the page where Data Table will be displayed.

              Scripts will add custom JavaScript to the page.

              The Template attribute is used to format the table's HTML The placeholder CpScript will get populated with the DataSource content.[cp:placeholders key='DataSource' /]


              Dynamic:

              This method uses an AJAX model to call a Web API which returns JSON. The DataTable plugin uses the JSON result to generate the table's format.

              This method has less formatting flexibility, but works great with larger data sets because it only retrieves (n) number of records at a time. Each time the result set changes by user's interacting with the table's search, pagination, or sorting; the Web API is called to return an updated result set.

              The initial ordering of the results is based on data in the first column. The DataTable plugin only allows ordering and sorting on by columns which are in relation of the module.

              Another performance benefit to the Dynamic option is that the search is executed through a server-side Full-Text Index search compared to a client-side text search that the Static option uses.

              When a record is saved in the Data Table module, a corresponding Web API module record will be created or updated if the type attribute is set to Managed.

              The corresponding Web API record name will be formatted as shown here: DataTables (Managed) - <<Name of the Data Table record>>

              If the type attribute is set to Detached then you have to manage your Web API record manually. The order of the columns in Data table records and in WebApi has to match. The columns which are in webApi but not in DataTable have to be at the end of the Columns in WebApi record same as hidden columns.

              * If you creating API record manually make sure the Result is set to Object

              Formatting Tab

              The Formatting Tab provides the following attributes: Custom Control, Styles, Scripts, and Template.

              Custom Control

              This control provides a user interface to configure and retrieve data for dynamic option.

              • The Hide/Show Available Columns link will display all available columns for the selected module.

                Columns prefixed with cpsys_Attributes: are not in the table's relation and can't be used for the sorting.

              • Add Column Button will add new row with the selector of columns.

                When you select the standard column option, the column names will be used in the table header as is.

                One of the options in the selector is custom. When this option is selected you have control over the column names in the table header, and you may use Column CpScripts to retrieve content for that column.

                The check box next to the row is to display that column in the table. Sometimes you may need to retrieve a column, but don't want to display the column on your page. In this case you may uncheck a checkbox and the column will not be displayed in the table. You can drag and drop rows to arrange the order of the table header.

                To the right of the row there is a delete icon which would remove that row from data table.

              Supported Scripts:

              • ColumnFriendlyUrl: (script can be used to build the URL.)

                <a href="[cp:scripting key='ColumnFriendlyUrl' audiencesystemname='audience-1' systemname='genericv' /]">[cp:scripting key='Column' name='Title' /]</a>
              • Column: (script can be used to get value out of Columns and apply formatting.)

                [cp:scripting key='Column' name='StartDate' truncate='' defaultValue='' format='{{0:MM-dd-yyyy h:mm tt}}' DataType='DateTime' /]

              Dynamic Types

              • Managed: This type will generate or update a corresponding Web API record each time the Data Tables module record is saved.

                **Important** Due to the behavior applied when "Managed" is selected, you will not be able to manually edit the corresponding Web API record. This is because manual changes made to the Web API record will be overwritten each time the Data Table record is saved.

              • Detached: This type provides flexibility to format and customize the corresponding Web API record.

                **Important** This option should only be applied and managed by advanced users.


              Data Tables plugin options: Work with both options Static and Dynamic types.

              Minimum Number Of Characters:

              How many characters need to be typed before search will be executed

              Page Length:

              Number of rows to display on a single page when using pagination. Default: 10

              Search Enabled:

              Enable or disable search (filtering) abilities.

              Pagination Enabled:

              Enable or disable table pagination

              Sort Enabled:

              Enable or disable ordering of columns

              Length Menu:

              Parameter allows you to readily specify the entries in the length drop down select list that DataTables shows when pagination is enabled. Will let user to change number of records display per page.

              Number of Pages in Pagination:

              Number of pages control presented for pagination (forward and backward buttons with up to (n) page numbers in-between)

              Scroll Vertical:

              If enabled DataTables table body scrolling in the vertical direction.

              Container Height attribute let you set Height in px or in vh(viewpoint height)


              You can pass any information from the page DataTable page onto the API. In order to do that you need to set the global Javascript variable _dataTablePageInformation with JavaScript object (key-value pairs).
              Example:
               var pageInfo = {{
                 PageAudience: "Main",
                 UserName: "development",
                 Roles: "Admin"
               }};
              
              _dataTablePageInformation = pageInfo;
               
              Then you can use that information in the API by getting it from the placeholders.
              Example:
              [cp:placeholders key='PageAudience' /]
              

               

            • Data Transfer

              Data Transformation: Take Back Control Over Your Disparate, Siloed Information

              Overview: The data transfer module can be used to move data from any source to any destination. The source is typically a delimited text file or database, and the destination is typically a standard module, however, the system supports much more.

              Getting Started with Data Transfer

              When creating a new data transfer, you begin by configuring the following settings:

              System Title: Give the transfer a descriptive system title.

              Notification Options: Set up notifications that are commonly used to send an email when a scheduled transfer completes.

              Execute Attribute: This should be set to Never while designing your transfer, but can be used to execute a transfer immediately or on a schedule. When Now is selected, the transfer will be executed immediately after the transfer record is saved.

              File Upload Feature

              The General tab contains a File Upload attribute which can be used to upload source files, zip files, etc.

              • If you upload a recognized source file like an Access database, the system will automatically select your source and initialize the attribute accordingly
              • Uploading a .ZIP file triggers the system to extract that file into the site's /Uploads/DataTransfer folder in a sub-folder with the same name as the .ZIP file
              • All uploads are placed in the /Uploads/DataTransfer folder
              ⚠️ Important: Files in the /Uploads/DataTransfer folder are accessible from the web site via an unpublished URL.

              Once you've set up the initial tab, proceed to the Source & Destination tab where you determine where the data comes from and where it goes.

              Source & Destination Configuration

              Selecting a Source

              Selecting a different source provides you with the attributes required to read the data in that source. The attributes within each source will appear when it is selected, and typically contain header text that describes their use. The system also validates sources and destinations, so you should be prompted if you don't provide enough information.

              In addition to the predefined sources, we have added a Custom Provider option. This can be used to write code to retrieve data from any source by inheriting the TransferReader interface.

              Selecting a Destination

              After filling in the source information, you can make a selection in the destination attribute. This attribute also displays different attributes depending upon your destination selection, and contains a custom provider option so that data can be transferred into any system.

              Standard Module Destination: Selecting the Standard Module destination provides you with the options necessary to transfer data into a standard module. The majority of the attributes displayed are described adequately within the module.

              Bulk Method: Fast, but not very forgiving. No data will be transferred if the data doesn't meet the requirements of the database, and the error messages are typically difficult to decipher.

              Incremental Method: Much slower, but supports partial document updates and has much better error handling. In some cases, it will even transfer some records and provide a list of the data that could not be transferred.

              Status Interval: This attribute defines how often to report on the progress of the transfer to the process log.

              Monitoring Transfers: All transfers record their progress permanently in the Development > Process Log module and can be monitored in real time from the Development > Process Monitor module.

              Field Mapping

              The Fields tab is used to map source columns to destination columns once the source and destination have been defined and verified. You must select the mapping type for each destination column:

              Column: When the mapping type is Column, you select the source column. The data transfer engine will then know to simply move the data from the source column to the destination column.

              Text: The Text mapping type allows you to transfer the same text value into every row of the destination column.

              Default and Null: The Default and Null options work similarly. The default value for a destination column is determined by the destination provider.

              Scripting: The Scripting mapping type allows you to enter one or more of the data transfer scripts defined below. There are many scripts that generate dates or guids, retrieve and manipulate column data, and even translate text into unique identifiers.

              The Audiences, Taxonomy, Roles, Module, and Keywords scripts can be used to translate data in a module into their respective Guids used by the system to relate these records. They can also be used to validate the data in that column to ensure that it is in the required format and exists in the related module.

              Types of Data Transformation Supported

              Structured Data Sources Supported

              SharePoint
              Required Fields: Source Site URL, Title, List Title, Username, Password

              Oracle
              Required Fields: Connection String/table name, any query or filter (credentials)

              SQL
              Required Fields: Connection String/table name, any query or filter (credentials)

              Office 365 (OneDrive)
              Required Fields: Authorization, Source Folder (Office365 file Selector), Source Recursive (y/n), Source End Point (bulk or changes)

              OLEDB
              Required Fields: Connection String/table name, any query or filter (credentials)

              ODBC
              Required Fields: Connection String/table name, any query or filter (credentials)

              XML - ReadXML
              Required Fields: XML Source (path to xml), Available tables and columns, Source Table Index

              XML - CpCollection
              Required Fields: Source XML (path to xml), Default File, Source Directory, Number of Files to select, XSLT

              Delimited TXT (OLEDB)
              Required Fields: Source Directory, Source Delimiter used, Source Text Qualifier, Source Header Row, Source Select Command

              Delimited TXT (Stream)
              Required Fields: Source Directory, Source Delimiter used, Source Text Qualifier, Source Header Row, Source Select Command

              Active Directory
              Purpose: Used to build employee directories typically
              Required Fields: Directory Path, Filter

              Excel
              Required Fields: Source File (path to excel, if not uploaded into Centralpoint), Source Header row, Source Select Command (if any)

              RSS
              Required Fields: Source Feed URL (Web path to RSS Feed), Feed type (atom or rss)

              Access
              Required Fields: Source File (Path), Source Select Command (query)

              Office 365
              Required Fields: Source Authorization (Authorize), Source Folder, Source is Recursive, Source End Point

              Custom Provider
              Purpose: Typically used when ingesting from a WebAPI/Web Services
              Required Fields: Source Type, Source Parameters
              Note: Custom covers virtually any configuration wherein certain security considerations or custom methods must be passed in order to authorize or encrypt

              Centralpoint (Modules, Audiences, Taxonomy, Roles)
              Purpose: This is used when transforming data Centralpoint to Centralpoint or to an outside system

              Unstructured Data Sources

              File Path (Spider)
              Purpose: Spider network drives or web-based drives (OneDrive)
              Required Fields: File path (and/or credentials), Source Directory, Source Pattern, Source Options

              When to Consider Indexing vs. Ingesting Data

              Centralpoint supports both indexing and ingesting data. This is because you will want a federated search against all records, but need to preserve where some records currently live. In another case, you may need to have a new system of record or home to MOVE records into Centralpoint.

              Key Considerations

              • You may want to avoid duplication of your records
              • You may need to consider the size of certain files (like CAD, high resolution images, etc.)
              • You may need to consider the security of the file paths in which your files live today and users' network accessibility to them

              The Difference Between Indexing and Ingesting

              Indexing: Leave the record where it is found (to avoid duplication) in order to make it searchable within Centralpoint. When creating your data transformation routine and field mapping, use Alternative URL to record the path to the original record (as well as the enrichment). The user will be returned to the original source when they access the record (if they have the access to see it).

              Ingesting: Move the record to Centralpoint as the new system of record (sunset the old system). Do NOT use Alternative URL. Make sure each record is moved during the ingestion via an available File Upload field.

              ⚠️ Security Consideration: Whether you are ingesting or indexing records using Data Transformation, always be sure to map the security roles from the system or path you're scanning, in order to maintain who may see or access records (either indexed or ingested in Centralpoint).

              Data Governance (Data Cleaner) Considerations

              Data cleaning is a separate module found under the Centralpoint Data Transformation suite of tools, which allows you to set up data governance rules that may work in unison with your Data Transformation routines.

              Keyword Generator

              Purpose: Used to enrich, supplement or add new keywords to any record where certain values are found (during mining).

              Example: If the word 'apple' is found, add keywords of 'fruit, food, nutrition, pectin' which will enhance search (searching fruit will relate anything apple to any other record which may also relate to fruit or food).

              Required Input: Search for?, attributes, add keywords

              Taxonomy Generator

              Purpose: Used to apply one or more metadata/taxonomy types when certain value(s) are found.

              Example: If the word 'apple' is found, apply to N-tiered taxonomy under Food/Fruit, which will enhance search (searching fruit will relate anything apple to any other record which may also relate to fruit or food).

              Required Input: Search for?, case sensitive?, regex?, Taxonomy

              Attribute Generator

              Purpose: Used to apply new values in any field within one or more modules when certain value(s) are found (during mining).

              Example: If the term 'Top Secret' is found within any document, apply the value for the Role=Top Secret to the 'Roles' attribute for any module. This will override the security roles for all documents which contain 'Top Secret'.

              Required Input: Search for?, regex?, value to add, attribute, which modules?

              HTML Cleaner

              Purpose: Used to clean or scrub any HTML or code where certain values are found (during mining). Often used to fix older or bad HTML or convert bad characters from MS Word or faulty HTML being ingested.

              Example: Should you need to replace any faulty HTML, codes or characters which includes "<b>Apple<b>", and replace with "<b>Apple</b>" (correcting the original faulty html).

              Required Input: Search for?, replacement type (html/text), replace with?

              Attribute HTML Cleaner

              Purpose: Used to apply new values into certain fields into specific modules whenever certain values are found (during mining) - allowing you to apply new values to any attribute as a result.

              Required Input: Search for?, replacement type (html/text), replace with, attribute to add, which modules?

              Data Triage

              Purpose: Used to redirect certain file types into certain modules.

              Example: When spidering a shared network drive or database, you may want to deposit all documents containing 'Marketing' references into a module designated for only Marketing, or place all Excel documents found into its own module. This is used to organize content by type (within separate modules).

              Required Input: Search for?, regex (yes or no), searched attribute, destination modules, logging attribute

              See Also: Data Cleaner works in unison with Data Transfer to filter and assign (keywords, taxonomy, regular expressions) based upon your rules.

              Developer Notes & Tips Regarding Data Transfers

              1. Use Console Utilities

              • With so many modules containing triggers, utilizing this option saves a step post-import
              • Useful when the DataId Attributes configuration is in use on the module
              • Important Step: To activate console utilities on a per module basis, you must first visit the Module Properties for the receiving module (the module you are ingesting or indexing data into). In this way you can configure your module to leverage the data governance or data cleaning rules

              2. "Export" Feature on Scripts

              Allows you to insert a human value in place of a GUID on the way out (exporting).

              3. UseDefaultValueOnUpdates

              Allows you to mix and match your data set:

              • If the data being imported is new, the new value in that column will be used
              • If the data is being updated, the existing value will be maintained

              4. RemoveDuplicateValues

              Allows the system to de-dupe a comma-separated list.

              5. FTP Files

              Place on the source and destination tab's Execute Scripts on Open to send the file generated (presumably an export) to an FTP site provided by the client.

              Scheduling Recurring Imports from Third Party Content Providers

              ⚠️ Important: When Scheduling Recurring Imports from Third Party Content Providers (RSS, XML or Syndicated Content)

              When importing from third party sources (like RSS, JSON, XML or Syndicated News Feeds) and scheduling the recurring import of information from them (daily, weekly, or monthly):

              1. The Incremental Update managed within the Source & Destination tab (of Data Transfer) should be set to IntegrationID, and NOT DataId
              2. In the Fields tab (of Data Transfer):
                • The Autonumber field should be set to the Default radio button option
                • The DataId field should be set to the Default radio button option
              3. The IntegrationId field should be set to column and the column assigned should be the unique identifier from the third-party sources

              Summary

              The combination of the Incremental Update by DataId (where there is no data id coming from the third-party system) and the fields map having the DataId set to the NewGuid script means the system would never do an incremental update. The newguid would force the system to produce a new record each time, and the system was no doubt getting confused with the autonumber script and dataid being set to Newguid while attempting to update records by existing dataids (that don't exist).

              Commonly Used Scripts When Executing a Data Transfer

              Audiences Script

              Replaces a value or values with valid AudienceIds.

              [cp:scripting key='Audiences' name='COLUMN_NAME' valueColumn='AudienceId' defaultValue='bf7bb52f-eae7-4d5a-bd20-6849d0260c80:1:1, 5f2d099d-a0df-4e62-bb88-93662c972ae0:0:1' /]
              Property Description
              DefaultValue Enter the default value to be used when the value cannot be found.
              Name The system name of the column in the current data source. Select the Column mapping type for a list of column names. The system name appears in parenthesis.
              Format A format string used to prefix or suffix the return value. Just include '{{0}}' in the string where you would like the value to be placed.
              ValueColumn This property supports the following values: AudienceId, SystemName, Name, IntegrationId. By default this property uses the value 'AudienceId' which validates the values without replacements.
              isCda Optional parameter. default value = 1. Supported values (0,1 OR true, false)
              isConsole Optional parameter. default value = 1. Supported values (0,1 OR true, false)
              Export When Export='true' the replacement process is reversed allowing you replace GUIDs with a plain text value retrieved using the ValueColumn parameter.

              AutoNumber Script

              Generates the next available auto number for transfers into standard modules. This script can only be included once because it will generate a new auto number each time it is used.

              [cp:scripting key='AutoNumber' /]

              Column Script

              Retrieves the value of a single column from the data source.

              [cp:scripting key='Column' name='COLUMN_NAME' /]
              Property Description
              AddHours This property adds or subtracts hours from the value when dataType='DateTime'. It is primarily used to convert local times to UTC.
              DataType This property supports the following values: String, DateTime, Integer, Decimal, Double, Guid. By default this property uses the value 'String'.
              DefaultValue Enter the default value to be used when the column value cannot be parsed into the selected data type.
              EmptyValue An empty string will be returned when this value matches the script's DataType, and it is equal to the calculated value. Do not use this property when you require the script to return a data type other than String because an empty string may be returned instead of the desired data type.
              Format A format string used to prefix or suffix the return value. Just include '{{0}}' in the string where you would like the value to be placed. This can also be used to format data types: {{0:d}}.
              MinValue The minimum allowed value. This property ignored with some data types.
              MaxValue The maximum allowed value. This property ignored with some data types.
              Name The system name of the column in the current data source. Select the Column mapping type for a list of column names. The system name appears in parenthesis.
              RemoveMarkup This property supports the following values: true, false. Enter true to have all HTML stripped from the column value. By default HTML will not be stripped from the column value.
              ReplaceText Use this parameter to replace a string in the column value using the value of the ReplaceWith parameter.
              ReplaceWith This parameter will not be used unless the ReplaceText parameter contains a value. Enter a string that will be the replacement in the column value for the value of the ReplaceText parameter.
              ReplaceTextRegexEnabled If you pass in a string into a regular expression, you need to make sure some special c

            • Data Triggers

              Data Triggers

              Selecting Actions and Modules

              Upon launching the module, users are prompted to select the action(s) they wish to trigger (delete, insert, or update) and the modules from a provided list. This selection determines the events the module will monitor for execution.

              Setting Conditions

              After selecting actions and modules, users navigate to the "If" tab to define whether the action should be conditionally or always executed when the specified event occurs. If the conditional option is chosen, users can utilize the dynamic condition builder to configure a set of boolean rules based on the affected record.

              Defining Actions

              In the "Do" tab, users specify the action(s) to be performed when the selected condition is met. Currently, the tool supports sending an email as the action. However, additional actions may be incorporated in future updates.

              Executing Actions

              Once the tool is configured, it monitors the specified events within the selected modules. When a triggered event meets the defined condition, the corresponding action is executed. For example, if a record is updated according to the specified condition, an email notification will be sent.

              Logging and Monitoring

              The "Log" tab allows users to view the history of trigger actions. This feature provides visibility into the execution of actions, aiding in monitoring and troubleshooting.

              Note: Bulk data transfers do not fire triggers. Incremental data transfers with Console Utilities turn on, however, will fire the trigger.

            • Database & Connection String Changes

              Database & Connection String Changes

              The easiest way to change the connection string is to have the old and new databases working at the same time.  If this is the case you can simply change the connection string in the corresponding sites Admin > Settings module before removing the old database.

              If the old database is corrupt or you have already deleted it, you will have to manually update the connection strings in the corresponding sites web.config file.  After this has been done the master or web site console should load, but you still have to update Centralpoint.  To do this you simply go to the Admin > Settings module and submit the page without making any changes.

            • Date Formats

              Date Formats

              Standard Formats
              Display Example Format Code (Case Sensitive)
              3/9/2008 d
              4:05:07 PM T
              Sunday, March 09, 2008 D
              Sunday, March 09, 2008 4:05 PM f
              Sunday, March 09, 2008 4:05:07 PM F
              Sun, 09 Mar 2008 16:05:07 GMT r
              3/9/2008 4:05 PM g
              3/9/2008 4:05:07 PM G
              March 09 m
              March, 2008 y
              2008-03-09T16:05:07 s
              2008-03-09 16:05:07Z u
               
              Custom Formats
              Display Example Format Code (Case Sensitive)
              3/9/2008 M/d/yyyy
              03/09/2008 MM/dd/yyyy
              Sun, Mar 9, 2008 ddd, MMM d, yyyy
              Sunday, March 9, 2008 dddd, MMMM d, yyyy
              03/09/08 MM/dd/yy
              03/09/2008 MM/dd/yyyy
              SQL Date Formats
              Display Example Format Code
              03/09/2008 DATEADD(dd, 0, DATEDIFF(dd, 0, @your_date))

            • Decrypter Utility

              Decrypter Utility

              This utility will decrypt encrypted emails generated by form management.

            • Deep Links

              Deep Links

              Deep Links - Extending your secure SAML authentication to other applications

                             

              Deep Links allow you to extend your Centralpoint authentication with SAML, allowing one click access to other applications your end users may need to access (without having to log in repeatedly). Deep links broker the initial authentication with SAML, and empower you to pass secure tokens to other systems.  Deep Links is similar to the former Microsoft Passport, allowing one user's credentials to give them access to all applications once logged in. Deep Links empower your organization to oversee an ACL, Active Control List, granting certain roles, full access to back office applications. In order to create a new record in the Deep Links module log into the console then click on Admin followed by Deep Links. Here you will see the normal module view for Deep Links you can click on NEW button in order to navigate to the add new form to create the record.

              Once in the form you will have to fill out required information.

              • Title – This is just the title of the record. This will have no bearing on the connection. It is for you to be able to identify the connection on your own terms.
              • Deep Link Options – To create a SAML 2.0 record please select the “SSO SAML 2.0” option. Once this is selected many more options will appear for you to fill out.
              • SAML Name – This will serve as the agreed upon name of the third party vendor. Most likely they will already have something setup and will provide you with this information. This will be used to properly identify the requests coming from the third party which will then enable our system to use the other proper configuration options for this established connection. This field is required.
              • SAML Description – This is just a description of the established connection. It is here in order to give you more context if needed about the SAML connection being established. This is an optional field.
              • SAML Auth Request Signed – Specifies whether the authentication request from the partner service provider should be signed. This field is required and the default value is No.
              • SAML Sign Response – Specifies whether SAML responses sent to the partner service should be signed. This field is required and the default value is Yes.
              • SAML Sign Assertion – Specifies whether SAML assertions sent to the partner service provider should be signed. This field is required and the default value is No.
              • SAML Encrypt Assertion – Specifies whether SAML assertions sent to the partner service provider should be signed. This field is required and the default value is No.
              • SAMLAssertionPartnerCert – this field is only used when we encrypting the assertion. This is a file upload field where you are to upload the certificate the partner is wanting to use for encryption. Please note that this file should be coming from the third party as they need to key in order to decrypt the data being passed.
              • SAML Assertion URL – this is URL provided by the third party where we should be sending the SAML assertion to.
              • SAML Relay State – If the third party uses relay states to dictate where in their system the user whom is attempting to get into their system is to be navigated to this is the property to place in that URL they will provide. This field can be entered as a hard coded value or as a CpScript in order to accommodate custom logic which may be needed if certain users need to go directed to a specific page while other users to another. This is an optional field and not all SAML connections will use this field.
              • SAML Response Attributes – This attribute will accept XML data formatted just like you would for the Field Map for Users in the Forms module. But you will not be able to use the Form State CpScript to grab the values for the attributes. Instead you will have to use the User Info CpScript. The list of attributes required is dependent upon what the third party you are connecting to requires to load up the appropriate user in their system.  Please notes the systemName attribute of the attribute element will be the name of the field as described by the third party. For instance, they might call a field First Name while in Central Point it is called Contact First Name. Example of data for this property: <attribute systemName="UserName"> <![CDATA[ ]]></attribute> <attribute systemName="Email"> <![CDATA[ ]]></attribute>

               

              If this is your first time setting up a SAML 2.0 connection, then you will have to also configure the Module Properties. These properties will setup your Central Point as the Identity Provider (IdP) for this SAML Connection. In here you will see the following options used for the SAML 2.0 portion of the Deep Links module. The properties here will serve two separate purposes the first group of optional properties will build a client.xml file which you can share with the third party to help assist in the building of the SAML connection.

              • SAML X509 Cert – data inside of the X509 certificate.
              • SAML Location – fully qualified URL to the SSO Service page. This is used for when the client wants a Service Provider (third party) initiated SAML request. Value should be: http://your domain here/Modules/DeepLinks/SAML2/SSOService.aspx
              • SAML Org Name – Name of your organization
              • SAML Org Display Name – Display Name for your organization.
              • SAML Org URL – URL to your organization’s public website.

                The second set of properties are all required and needed in order to configure your system as the Identity Provider for the SAML connection.

              • SAML IdP Name – This can be whatever you need it to be. We recommend using your company’s name. This will serve as the identifying name for all of your SAML connection.
              • SAML IdP Local Cert File – This property’s value should be the relative path to the certificate used for encryption of user data over the SAML connection.
              • We recommend creating a Certificates folder inside the Centralpoint directory copy your certificate into that folder and reference the path to the certificate: ../../../Certificates/<Certificate_Name>.pfx replacing <Certificate_Name> with the name of your certificate.
              • We do recommend using a .pfx file which is password protected though.
              • SAML IdP Cert Password – this is the password for the certificate.

              Type of certificates supported

              Using SSO SAML 2.0 Connecting from Central Point to third Party (Identity Provider initiated)

              This is the normal circumstance for general usage of the SAML connection whereas a Centralpoint user has access to a third party via a link inside of central point and is logged in seamlessly via the SAML protocols into the third party’s system. Once you have configured the module and created your SAML 2.0 record you can access the record again at which point in time the CpScript property will be filled. This generated CpScript will provide a link to the webpage which will be used in order to navigate to the page for the initialization of the SAML connection building the SAML data and sending it to the third party page. From there the third party will read the assertion and attempt to match up with a user in their system. If successful it will then navigate you to a page based on their internal system or the page dictated by the relay state property if they build their system around that. This Cp script will specifically return the link to the page with the dataId of the record we are connecting to EX:

              /Modules/DeepLinks/SAML2/InitSSO.aspx?dataId= DataId of record from module here.

              From here you can make this a link or whatever you need it to be to fit your needs. You can add in the Format property to the CpScript in order to have it formatted the way you want within the CpScript call itself as well.

              Once the script is linked properly on a page or a navigation item. A user whom has to be logged in can click on the link in order to gain access to the third party system.

              Using SSO SAML 2.0 logging in from third party site via Centralpoint login information (Service Provider initiated)

              Used to log into a third party’s site using your login information from Centralpoint. Think about it like using your Facebook login in order to login into a different company’s website. Centralpoint has a special page which serves as a listener for the SAML connection. You will have to give the page to the third party so that they can configure their side accordingly. The page is located at Modules/DeepLinks/SAML2/SSOService.aspx upon connecting to this page the third part will send over a request for SAML assertion data. Upon reading this data Centralpoint will lookup data setup inside of our system based upon the SAML Name that is setup in the Deep Link module record. From there Centralpoint will look up the proper module record and build the SAML assertion using the user data logged into Centralpoint. Upon receiving the SAML assertion the third party will then look up and compare against the data in their system in order to login them into the site automatically using their Centralpoint’s active user session.

                                                                      

              Using a Custom Deep Link 

            • Delete Taxonomy Utility

              Delete Taxonomy Utility

              Because taxonomy supports N-Tiered relationships this means that should you ever want to delete a taxonomy tree, or individual taxonomy terms, you would need to do so manually, indvidiually, until all nodes of that taxonomy tree were deleted. This tool was created to allow all taxonomy items under a particular parent to be deleted in one fell swoop. Without this tool, each taxonomy found under the parent would have to be deleted manually, and individually and be time consuming.

              Note: You will want to confirm that the taxonomy (or family tree) you are deleting is not already in use by other modules, prior to deleting. If you delete the taxonomy list or tree, and it was in use prior, then you will need to retag all of those records to a new taxonomy post facto. It is highly recommended that you back up your site (See Tools/Backup) prior to the deletion of any taxonomy.

            • Design

              Design

                   

              Maintain the web site styles classified by Audience and Role to render distinct looking web sites.  These styles primarily relate to colors, fonts, images, and other design elements.  The 'Global' attributes are always available, but the majority of this modules attributes are controlled by the Site Type.  A web site's site type is selected in the master consoles update page for the given web site. Site types generate the area around the web site's content.  This module will have additional dynamically generated tabs relating to the surrounding areas provided by the site type.  Typically, these sections are top, right, bottom, left, and navigation.  Sections that appear in more than one site type are typically named the same, but you may have to revisit your design records after changing site types.

              In Centralpoint Digital Experience Platform 7 the design elements were stored in three different modules: Design::Color Schemas, Design::Module Font Settings, Design::Site Images.  These modules have been combined to make it easier to locate design attributes.  Instead of categorizing these module's attributes by type (color, font, images), they are categorized by location (top, right, bottom, left).  You'll find that this new organization caused each tab's attributes to be virtually the same.  All attributes from the old modules that referenced the 'Nav Bar' have been have been removed and will be implemented using Centralpoint Digital Experience Platform Scripting.   Numerous Centralpoint Digital Experience Platform 7 site properties have also been mapped to attributes in this module: Center Window Spacing, Core Page Sub Nav Alignment, Global Padding, Left Bar Display, Left Bar Drop Shadow, Left Bar Padding, Left Bar Width, Left Image Nav Alignment, Left Navigation Width Control Option, Main Homepage Center Content Window Padding, Main Site Border, Main Site Border Thickness, Main Site Homepage Alignment, Main Site Width, Right Bar Display, Right Bar Padding, Right Bar Width, Site Border, Site Border Thickness, Site Navigation - HTML Divider Line, Site Navigation - Sub Nav Item Indentation, Site Navigation Bold Option, Site Navigation Section Homepage Padding, Suppress All Site Navigation, Suppress Bottom Bar, Vertical Nav Display Options, Vertical Navigation Display Only Options.  There were also many old site properties relating to design which were simply no longer necessary.  Generally speaking, when the old site properties referred to a location (top, right, bottom, left) they have been moved to the appropriate tab in the new design module.  The same goes for old site properties relating to the navigation or sub navigation.

              Setting Up A Responsive Design

              • Setting up a responsive audience design may require changes that you can not anticipate. If you are upgrading an existing audience we recommend you first test your changes on an audience that is not accessible to the public. • Set Global > Rendering Mode to "Hybrid" to force the site to use DIVs in modern browsers. Mobile devices won't be using the older browsers anyway. This change should have little or no effect on the way that your site renders.  • Set Media Queries (Responsive Design) to "1 (Mobile)" and use the default settings to support mobile devices. This will add a viewport meta tag to all pages to prevent them from automatically resizing on mobile devices. • Add "img, object {{ max-width: 100% !important; }}" to the Global > Custom Styles attribute to allow your images to resize with the viewport.  If you experience problems with image resizing in some browsers it can be resolved by adding “div.cpsys_Block {{ table-layout: fixed; }}”.  This tells the browser to interpret the size of a column without considering the content and therefore the content (image) size is determined relative to its container.  You may also have to add style=”table-layout: fixed;” to HTML tables that you have added in the content of your site.  Applying this change will cause your left and right columns to be exactly the width that you define; removing the “rubber band” effect.  If your audience utilizes Left and Right Perimeter advertisements you may also have to add “.cpweb_PerimeterLeftTd, .cpweb_PerimeterRightTd {{ width: 10% !important; }} .cpweb_PerimiterCenterTd {{ width: 80% !important; }}” to explicitly set the width of these columns. • Remove predefined pixel widths from the Global > Wrapper Width and Navigation > Width attributes. Setting them to the empty string will let their widths change with the viewport. You can also add something like ".cpweb_Wrapper {{ max-width: 960px; margin: 0px auto; }}" to the Global > Custom Styles attribute if you'd like to convert your wrapper width to a max wrapper width. • Set Left > Width Units and Right > Width Units to "Percentage". This will allow the column widths to change with the viewport. • Remove all explicitly defined widths and HTML tables used for formatting from records in the client console. You can typically discover these elements by loading the pages using a mobile width to discover what is forcing the page to be wider than its viewport. Sometimes you'll have to view and search the source and style sheets for "width" to find the offending elements. • The media query styles can be designed to manually modify the page as the viewport changes if any of the steps above are unacceptable. This process requires manual analysis and implementation on a case-by-case basis. • Use Development > Content Audit > Responsive Audit to find content that has the potential to cause display issues issues in a responsive audience. The preceding link may not work if the module is not accessible or enabled.

              Setting Up Sub Navigation CSS Tiers

              By default all sub levels of Site Navigation are setup using Design > Styles > Sub Nav Tab. The CSS that this tab eventually translates is as follow:

              /* Default CSS from the Style Module */

              .cpsty_SubNavigation {{ background-color:#CCCCCC; text-align:left; text-decoration:inherit; font-size:95%; font-weight:bold; }}

              .cpsty_SubNavigation a, .cpsty_SubNavigation a:link {{ text-decoration:inherit; }}

              .cpsty_SubNavigation a:hover {{  }}

              .cpsty_SubNavigationSelected {{ color:#990000; text-decoration:inherit; }}

              .cpsty_SubNavigationSelected a, .cpsty_SubNavigationSelected a:link {{ color:#990000; text-decoration:inherit; }}

              .cpsty_SubNavigationHover {{ color:#FFFFFF; text-decoration:inherit; background-color:#888888; }}

              .cpsty_SubNavigationHover a, .cpsty_SubNavigationHover a:link {{ color:#FFFFFF; text-decoration:inherit; }}

              .cpsty_SubNavigationText {{ padding:2px 3px 2px 3px; margin:0px 0px 0px 0px; }}

               

              Each site will have different properties to each one of these class names. So when you need to setup a multilevel CSS class block, be sure to use your sites default by viewing source and loading the /SiteTypes/Default.master.css.aspx into note pad. When you start setting up the different blocks for each level remember that anything that you keep the same will inherit from the default class block above.

               

              Here is what the 1st level of the sub navigation CSS:

               

              /* 1st Level of the sub navigation */

              .cpsty_SubNavigation1 {{ background-color:#CCCCCC; text-align:left; text-decoration:inherit; font-size:95%; font-weight:bold; }}

              .cpsty_SubNavigation1 a, .cpsty_SubNavigation1 a:link {{ text-decoration:inherit; }}

              .cpsty_SubNavigation1 a:hover {{  }}

              .cpsty_SubNavigation1Selected {{ color:#990000; text-decoration:inherit; }}

              .cpsty_SubNavigation1Selected a, .cpsty_SubNavigation1Selected a:link {{ color:#990000; text-decoration:inherit; }}

              .cpsty_SubNavigation1Hover {{ color:#FFFFFF; text-decoration:inherit; background-color:#888888; }}

              .cpsty_SubNavigation1Hover a, .cpsty_SubNavigation1Hover a:link {{ color:#FFFFFF; text-decoration:inherit; }}

              .cpsty_SubNavigation1Text {{ padding:2px 3px 2px 3px; margin:0px 0px 0px 0px; }}

               

              As you can see here with this example, if placed on the page would change nothing. You will need to go through each property and make sure it is unique to that level and differs from the default unless you want it inherited.

               

              And here is for a 2nd level:

              /* 2nd Level of the sub navigation */

              .cpsty_SubNavigation2 {{ background-color:#CCCCCC; text-align:left; text-decoration:inherit; font-size:95%; font-weight:bold; }}

              .cpsty_SubNavigation2 a, .cpsty_SubNavigation1 a:link {{ text-decoration:inherit; }}

              .cpsty_SubNavigation2 a:hover {{  }}

              .cpsty_SubNavigation2Selected {{ color:#990000; text-decoration:inherit; }}

              .cpsty_SubNavigation2Selected a, .cpsty_SubNavigation2Selected a:link {{ color:#990000; text-decoration:inherit; }}

              .cpsty_SubNavigation2Hover {{ color:#FFFFFF; text-decoration:inherit; background-color:#888888; }}

              .cpsty_SubNavigation2Hover a, .cpsty_SubNavigation2Hover a:link {{ color:#FFFFFF; text-decoration:inherit; }}

              .cpsty_SubNavigation2Text {{ padding:2px 3px 2px 3px; margin:0px 0px 0px 0px; }}

               

              This essentially can go on forever depending on how many tiers you have. Just make sure to change each number in ALL the class names.

              Audiences: Apply Unique Design

              1. To first begin applying a unique design per audience, please step through all steps outlined in Audiences: Create a new Website via Audiences
              2. You will want to assign this audience with a unique record in both Homepages & Design > Styles.
              3. Site Architecture > Module Designer: You will want to begin with creating 2 new records here. One if for the Homepage layout, and the other is to control the interior pages / all pages pulling from the Navigation module. This is done using the drop-down menu labeled Module after you click the "NEW" button.
              4. When inside these records it is best practice to set the field Use Navigation Content? to No.
              5. Insert this CpScript to pull the primary content from these modules:
              6. Go back to the Audience that you want to enable this new design for. Site Architecture > Audiences > (find / select audience)
              7. Click the tab labeled Company.
              8. Near the bottom of the record, there are two fields that you need to utilize to assign the newly created records built within Module Designer.
              9. Near the bottom of the record, there are two fields that you need to utilize to assign the newly created records built within Module Designer.
              10. Homepages Module Design (HomePagesModuleViews): Set this to new Homepages Module Designer record that you've just created.
              11. Navigation Module Design (NavigationModuleViews): Set this to new Navigation Module Designer record that you've just created.
              12. Now save the audience record, and refresh your new audience's URL. The homepage & navigation pages will be reading the design layout from these new Module Designer records.
              13. Please note: You may need to also create other new records in Module Designer to finish your site. For example: If you're utilizing News & Events modules, there is a good chance that you will need to create new versions of these to specifically match the look & feel of your new audience.

              Audiences: Create a new Website via Audiences The instructions are for you to create a new website using CentralPoint's Audiences module. You can blend this into an existing design, or make it look like a completely different site all-together. The instructions below will assist you in the initial creation of a new audience/website.

              Audiences play a huge factor in back-end management. You can assign Administrators to individual Audiences, and they will only be able to view/edit records that are assigned to the same Audience as their Administrator record.

              1. Site Architecture > Audiences: Create your new audience using the console location in this step. Please note that your Audience system name will show in the URL bar within every page of that particular audience. I typically will keep them as short as possible, often using acronyms to abbreviate the system name.

                The "Main" audience is the root & default audience in every client console.

                Example: client-domain-here.com/main/navigation-system-name.aspx

                The bold piece of the example URL above is the audience system name. After creating your audience, this system name is set in stone. There is no way to change it, so please be certain this is desired from initially creating the audience.

                In this example, lets pretend we created an Audience with the system name being site1.

              2. Site Architecture > Homepages: To access your new audience using a front-end URL, you will need to assign it to a record in this Homepages module. You can share a homepage with another audience, or create a brand new one specific to site1.

                In this example, lets pretend we created a new Homepage record with the system name being site1-home.

                Your front-end URL would now be: client-domain-here.com/site1/site1-home.aspx

                Please note the following. You still will not be able to access the front-end until the next step is complete. Each audience should ONLY be assigned to ONE & ONLY ONE homepage record. Audiences assigned to multiple homepages could, and most likely will produce errors on the front-end website.

              3. Design > Styles: This is the final step before your new site/audience is ready for front-end viewing. You must either tag an existing Styles record to your new audience, or create a brand new one. Again, each audience should only be assigned to ONE & ONLY ONE record in Design > Styles. An audience assigned to multiple records in this section of the console could, and most likely will cause issues within your new audience/site.
              4. If you have followed these steps exactly as laid out, you will now be able to access the front-end of your website @: client-domain-here.com/site1/site1-home.aspx

               

               

            • Disabling IE Clipboard Prompt

              Disabling IE Clipboard Prompt

              Yes. Go to Internet Options in the Tools menu of Internet Explorer. Click on the Security Tab. Click the 'Custom Level...' button in the 'Security Level for this zone' section. Select 'Enable' under 'Allow Programmatic clipboard access' in the Scripting section.

            • DITA Module Suite

              DITA Module Suite

              The DITA management suite empowers its users to organize Specialized Elements, Generalized Elements, Vocabulary, and Media elements to assemble dynamic DITA documents via Document Shells (or downloads, for the benefit of the user community. Each DITA document is made up of elements, which are intelligent; able to be rendered 'ON DEMAND' by the user, yielding a potentially unique file output (or download) for each user. The benefit is in managing one document (which contain intelligent elements) secure to only those users who request it (by role, by region or both).

              This module suite is made up of three sub categories: Elements, Documents and Collections, and Types

              Elements:

              • Generalized Elements - A module which allows the author to create and manage reusable boilerplate content, and drag-n-drop into the Document Shell(s) or template
              • Specialized Elements- A module which allows the author to create re-usable dynamic content elements, and drag-n-drop into the Document Shell(s) or template (live changes from within the Shell) as the element values change.
              • Vocabulary- A module to manage any (roles based) terminology, and or associated help files or hyperlinks. These can be added to the Document Shell via drag-n-drop to manage the changes to terminology found within documents.
              • Media Elements- A module to manage any (roles based) digital assets (or media). These can be added to the Document Shell via drag-n-drop to manage (live changes from within the Shell) as the media element values change.

              Documents & Collections:

              • Documents- A module to manage the storage of the elements into their respective (indvidual) document record(s)
              • Colletions- A module in which to group the Documents into collections (like manuals and booklets)
              • Document Shells- A module to manage the templates, output file types and download links

              Types:

              • Specialized Element Types-A link to the Taxonomy used for all Specialized Elements
              • Generalized Element Types- A link to the Taxonomy used for all Generalized Elements
              • Media Element Types- A link to the Keyword List used for all Media Elements
              • Vocabulary Types- A link to the Taxonomy used for all Vocabulary
              • Document Shell Types- A link to the Taxonomy used for all Document Shells

            • Document Content Attributes: Remove Sections

              Document Content Attributes: Remove Sections

              Document Content Attributes: Remove Sections

              This feature was designed to remove cover pages from the HTML extracted within a Word document. However, using the instructions below, it could be used to remove any content that should not render on the web version of the document.

              This feature only manipulates the extracted HTML inserted into the attribute and does not alter the source document.

              There is no automated means to identify whether or not a Word document contains a cover page, so the following instructions must be followed to use this feature and achieve desirable results.

              Console Instructions

              1. Module Properties > Document Content Attributes: Remove Sections? Go to this location within the desired module. Set the radio-button to Yes and save the module properties.
              2. Module Configuration Go to this location within the desired module. Add a custom attribute with a System Name of: CpAsposeWordsDocumentSectionsToRemove. This should be a CpTextBox attribute and expects a comma separated list of integers. Determine whether or not there should be a default value. Remember, there is no guarantee a Word document has sections or the content expected to be removed within the identified sections.
              3. The XML below demonstrates the attribute needed for the module configuration XML file noted in the previous list-item. This example has a default value of 1, 2 for records in this module. It will remove the first two sections within each record containing a Word document unless that specific record is manually adjusted afterwards.
              		<property id="CpAsposeWordsDocumentSectionsToRemove">
              			<value>1, 2</value>
              			<attribute name="Word Document Sections To Remove">
              				<headerText>If these sections exist, they will be removed from the HTML extracted from the Word Document.</headerText>
              				<control id="CpTextBox" type="Centralpoint.Web.UI.Controls.CpTextBox" />
              			</attribute>
              		</property>	
              

              Word Instructions

              Aspose is the vendor that provides development components used in Centralpoint to read and manipulate various file types including MS Word.

              There is no means within Aspose to identify specific pages within a Word document without the use of Section Breaks within the word document.

              1. Read Microsoft's documentation on how-to insert section breaks.
              2. Read Microsoft's documentation on how-to view existing section breaks.

              For example, by inserting a Next Page Section Break after the cover page, this feature may now accurately identify the cover page.

              The CpAsposeWordsDocumentSectionsToRemove attribute within the record would contain a value of 1 in this case.

              Console Trace

              If issues are reported that unexpected content is being removed or expected content is not being removed, please view the console trace while saving a problem record.

              There will be lines beginning with WordDocumentRemoveSections which provide information on the sections within the word document and the sections targeted for removal within the CpAsposeWordsDocumentSectionsToRemove attribute .

            • Document Icons

              Document Icons

              This module is used to manage a list of document icons that are placed using Centralpoint Digital Experience Platform Scripting. Simply enter the file extension in the Extension attribute and upload the corresponding icon. A default icon will be used if a corresponding record cannot be found.

            • Dynamic Feeds

              Dynamic Feeds

              Dynamic feeds allow you to consume RSS feeds from the outside world, and re-format them in line with the style(s) of your website. In this way, live information may serve your site, as if it is your own. 

            • Dynamic Navigation

              Dynamic Navigation

              This module is used to design a DHTML menu that displays items from the Site Architecture > Navigation module.  It generates a CpScript that can be placed in any module and attribute that supports scripting. Be sure to use your mouse to hover over the names of the attributes because many of the more confusing attributes are described using tool tips.  If you would like a dynamic navigation to behave responsively you must set Rendering Mode to List, especially when Orientation is set to Horizontal. The Orientation attribute also supports a Vertical On Mobile Only option for responsive designs, but this feature only works when the server recognizes the browser as a mobile device. Tablets and some newer mobile phones may not be recognized as a mobile device without manual changes to the site or server's browser definition files.

              The generated menu control only supports a single selected item, therefore the Last Level Selected attribute was added to allow you to determine which level appears to be selected when any of the descendants of an item in that level are selected.  We have also included a Custom Styles attribute to add CSS Classes and reference them from any of the CSS Class attributes in the different tabs in this module.  These CSS classes will be added to the page so the names must be globally unique.  You can also use the Nav Groups attribute in this module to display only the records in the Site Architecture > Navigation module with overlapping Nav Groups selections.

              The Static tab allows you to design the static portion of the menu.  There is always at least one static level, but you can display more than one level as static using the Static Display Levels attribute.  All static levels have the static styles applied, but the styles in the Level tabs may be used to override the static styles at any level.

              The Dynamic tab allows you to design the dynamic portion of the menu.  The dynamic levels begin after the last static level and the Dynamic Display Levels attribute allows you to control the maximum number of dynamic levels.  You can use this attributes to suppress some levels of navigation.  All dynamic levels have the dynamic styles applied, but the styles in the Level tabs may be used to override the dynamic styles at any level.

              The Level # tabs allow you to apply styles to a specific level regardless of whether it is static or dynamic.  The styles under these tabs will not be applied unless you select 'Yes' in the Override Level # attribute.  By selecting 'Yes' you are stating that you understand that the static or dynamic styles for that level will be overriden by the styles in the Level # tab.

            • Dynamic Scripts

              Dynamic Scripts

              Easily create dynamic content within your enterprise without knowing code

              The Dynamic Scripts module allows administrators to pull records from individual modules and display that data in list or columnar format on the front end of the site. See Figure 1 and Figure 2 below.

              Title 1 Date 1 (if displayed) Content Field 1 (if displayed)

              Title 2 Date 2 (if displayed) Content Field 2 (if displayed)

              Title 3 Date 3 (if displayed) Content Field 3 (if displayed) Figure 1

              Title 1 Date 1 (if displayed) Content Field 1 (if displayed) Title 4 Date 4 (if displayed) Content Field 4 (if displayed)
              Title 2 Date 2 (if displayed) Content Field 2 (if displayed) Title 5 Date 5 (if displayed) Content Field 5 (if displayed)
              Title 3 Date 3 (if displayed) Content Field 3 (if displayed) Title 6 Date 6 (if displayed) Content Field 6 (if displayed)
              Figure 2

              Placing the dynamic script in any RTF editor that supports Cp scripting allows administrators to control the look and feel -- and output display -- of their content, as well as increase access to module records.

              Dynamic Scripts is located under the "Design" tab within CentralPoint's administrative console. The module features three tabs: Details, Fields and Formatting.

              Administrators can format the output of their records using Cascading Style Sheets (CSS), as well as determine which fields display as part of their output list.

              The system allows administrators to pull records dynamically by Taxonomy or manually by employing a custom SQL "where" clause. Additionally, administrators can order their output lists by one of CentralPoint's pre-defined fields, or they can enter their own "order by" clause.

              Finally, the script that administrators place on the front end of the site will generate valid HTML, allowing search engines to easily follow links.

              (Administrators of CentralPoint ME2 recognize this functionality from the Design > Script Generator module.)

              Chapters

              Details Tab Fields Tab Formatting Tab Placing a Script

              Details Tab

              The Details tab requires administrators to define the name of the script and the module from which the script will pull records. Other fields are optional, but in order to create a valid script a title and module must be defined.

              The title of the script is used for console display only, although the name of the script will appear within an HTML comment on the front end of a web site immediately before the script's output.

              Publish Start Date and Publish End Date allow administrators to define when the script will be valid for output purposes. As long as today's date falls between the Start Data and End Date range, the script will display output.

              The system uses the CpScript field to generate the script that administrators will place within the console to deliver their dynamic content. Administrator input is not required, though after a script is created (saved), administrators can use the "copy" button adjacent to the CpScript field to copy the script for placement.

              The Cache Duration field instructs the system on how often to look for new data related to the script to display it on the front end. The default is set to 1 day, although administrators can choose from among the following options:

              No Cache 1 Minute 5 Minutes 15 Minutes 30 Minutes 1 Hour 4 Hours 8 Hours 12 Hours 1 Day 1 Week

              Setting at least some cache will improve the performance of the script, and the web site as a whole. Generally speaking, if an administrator's organization is producing content on a daily basis, setting a cache of between 4 Hours and 1 Day is good practice.

              Choose the module from which your script will pull data in the Module radio-button list. This field is fully searchable using the "Search" field, as well as the "Match" and "In" drop-downs.

              The Filter Type option allows administrators to query the module with either a custom SQL filter (choose "Manual") or a system-aided script (Choose "Dynamic"). "Dynamic" will work for the majority of scripts administrators create. Choosing "Dynamic" requires administrators to filter the module's content with the "Taxonomy" field.

              Choosing one or more taxonomies from the "Taxonomy" field allows administrators to filter easily which records they wish to display. Choosing one taxonomy will tell the system to deliver the records that are tied to that taxonomy; choosing more than one taxonomy tells the system to display records that are tied to those taxonomies chosen.

              For instance, if an administrator wants to display Articles that are tied to Taxonomy A, Taxonomy F and Taxonomy K. The administrator should choose those taxonomies from the Taxonomy multi-select field only, and the system will display records that are tied to all three taxonomies.

              Administrators choosing the "Manual" option will have access to a "WHERE clause" field in which they can insert valid where-type clauses. Administrators should use the "Manual" filter only when they demonstrate a firm grasp of the fields (and their data types) available in each module and competency in SQL. Choosing "Manual” The common syntax for the Manual filter field follows closely that of a standard "where" clause in SQL. As an example, this "manual" filter looks for records whose taxonomy matches a specific ID:

              (Taxonomy like '%086b607d-bac4-45cd-8600-06c877489f7b%')

              The Archive Type field determines which type of records the script will display. The options are: All Current, Expired, Future and Published.

              "All Current" will display any record whether it is on hold or released, hidden or visible.

              "Expired" will display all records whose Publish End Date is past.

              "Future" displays those records whose Publish Start Date has not yet come.

              "Published" displays records that are "released" and "visible" only.

              The "Organizational Filter" options of "Automatic" and "Specify" give administrators further control over the records that display in their scripts. The "Audience Filtration" and "Role Filtration" attributes are used in conjunction with the "Automatic" option.

              Choosing "Automatic" -- along with "Yes" for "Audience Filtration" and "Role Filtration" -- will display records tied to the audience and role a user is on when he or she views the content on the front end of the site. For instance, if user views the contents of a script while browsing in /AudienceA/RoleF/, the script will display content that is tied to that audience and that role only.

              Choosing "No" for "Audience Filtration" and "Role Filtration" will allow any records from within the module to display, regardless of where a user browses.

              To maintain greater control over the records that display within the script, choose "Specify" as the "Organizational Filter" value. Choosing "Specify" displays an "Audience" and "Role" drop-down menus from which administrators are required to define their desired values. Note that the audience drop-down menu displays relevant children of an audience when a parent is chosen.

              The "Record Count" field allows administrators to display up to 999 records from a module in list or columnar format.

              The "Record Skip Count" field -- in conjunction with the "Record Count" field -- allows administrators to display the "[Record Count] - [Record Skip Count]" records from a given query, where [Record Skip Count] is a number less than the number assigned in the Record Count field. For example, if the "Record Count" field is 10 and the "Record Skip" field is 6, the script will display five records -- in this case, records 7 through 10 -- of that 10-record list. This is particularly useful on pages that contain multiple scripts displaying similar content.

              "Record Order" works in conjunction with the "Predefined Order" drop-down if administrators choose the "Predefined" value. This functionality allows administrators to display their lists in a desired order. Available predefined order options include:

              Date Ascending (Oldest on top, newest on the bottom) Date Descending (Newest on top, oldest on the bottom) Highest Rated (highest rated on top) Most Viewed (most viewed on top) Random (completely random display of records) Title Ascending (A on top, Z on the bottom) Title Descending (Z on top, A on the bottom)

              Choosing "Custom" allows administrators to define their own "Custom Order" clause. Administrators should use the "Custom" filter only when they demonstrate a firm grasp of the fields (and their data types) available in each module and competency in SQL. As an example, this "Custom order" filter will order the records by Field1, ascending:

              Field1 ASC

              The "Audiences" multi-select is for console use only. Administrators can choose relevant audiences to filter which administrators have access to which scripts.

              The "Display Status" determines whether or not the contents of the dynamic script are displayed on the front end of the web site.

              Formatting Options

              1. Standard: This is a basic representation of the Standard option. The other tabs define exactly how this will look.
              2. Content Pager: This is a basic represenation of the Content Pager option. There are new attributes to choose from when creating this:
                • Next Button: This will show an image for the next button. This will only apply if both Next Button and Previous Button image are uploaded.
                • Next Link Label: This will show the Next Text if an image is not selected. It is Next by default.
                • Previous Button: This will show an image for the previous button. This will only apply if both Next Button and Previous Button image are uploaded.
                • Previous Link Label: This will show the Previous Text if an image is not selected. It is Previous by default.
                • Reveal Type: This has two option. Click will make the selected page change when you click the mouse. Mouseover will make the selected page change when you hover over a page number.
                • Enable Fade Transition: This will enable a Fade Transition to the pager when new items are selected.
                • Auto Rotate: This will rotate the contents automatically.
                • Rotation Pause Time: This is the pause time for the Auto Rotate option. This is the time will take before the content is rotated.
                • Rotation Pause Time: This is the pause time for the Auto Rotate option. This is the time will take before the content is rotated.
                • Define Slide Background Image Field: This will put a background image to the content based on a field in the module.
                • Wrapper DIV CSS: This is the Styles for the wrapper of the content pager.
                • Slide DIV CSS: This is the Styles for each individual slide for the content.
                • Pagination CSS: This is the Styles for the pagination at the bottom of the content pager.
                • Z Index Auto Increment: If you are experience issues with the content pager showing on top of other content, set this option to no.
              3. Image Slideshow This is the basic representation of the Image Slideshow option. Here are the additional fields to change the functionality:
                • Slideshow Width: This is the entire slideshow width in pixels.
                • Slideshow Background Color: This is the background color for the entire slideshow.
                • Slideshow Padding Top: This is the padding top for the entire slideshow.
                • Slideshow Padding Bottom: This is the padding bottom for the entire slideshow.
                • Slideshow Padding Left: This is the padding left for the entire slideshow.
                • Slideshow Padding Right: This is the padding right for the entire slideshow.
                • Main Gallery Height: This is the main gallery region height.
                • Main Gallery Padding Top: This is the main gallery region padding top.
                • Main Gallery Padding Bottom: This is the main gallery region padding bottom.
                • Display Main Gallery Previous / Next Images: This will show the Left and Right Main Image Gallery Images.
                • Main Gallery Left Arrow: This is the image for the left arrow of the gallery. It will have a default image if none is selected.
                • Main Gallery Right Arrow: This is the image for the right arrow of the gallery. It will have a default image if none is selected.
                • Caption Background Color: The caption is made from the Define Title Field and Define Content Field 1 columns. This is the background color for the gallery caption popup.
                • Caption Text Color: This is the text color for the gallery caption popup.
                • Caption Opacity: This is the opacity of the caption.
                • Thumbnail Height: This is the height of the thumbnail. The width will automatically be generated.
                • Thumbnail Opacity: This will set the opacity for the thumbnails.
                • Thumbnail Padding Top: This is the padding top for the Thumbnails region.
                • Thumbnail Padding Bottom: This is the padding bottom for the thumbnail region.
                • Display Thumbnail Previous / Next Images: This will display the thumbnail previous and next images.
                • Link Thumbnail To Record: This will link the Thumbnails to the record displayed. This should only be used when Hide Main Gallery is set to Yes.
                • Thumbnail Tooltip: This will show a tooltip for the Thumbnail based on a column.
                  • Thumbnail Tooltip Column Name: This is the Column name for the Thumbnail Tooltip contents.
                • Navigation Bar Text Color: This is the text color for the image count and the start and stop links (the Navigation Bar).
                • Navigation Padding Top: This is the padding top for the Navigation bar.
                • Navigation Padding Bottom: This is the padding bottom for the Navigation bar.
                • Navigation Padding Left: This is the padding left for the Navigation Bar.
                • Navigation Padding Right: This is the padding right for the Navigation Bar.
                • Auto Start: This will start the slideshow automatically.
                • Slide Show Effect: This is the effect for the slide show.
                • Animation Speed: This is the speed of the animation effect.
                • Auto Play Duration: This is the time in which images switch when the slide show is running.
                • Hide Navigation Bar: This will hide the image numbers and the start stop links.
                • Hide Thumbnails: This will hide the thumbnails from the slideshow.
                • Hide Main Gallery: This will hide the main image part of the slideshow.

              Fields Tab

              The Fields tab determines what your script will display, including whether or not the title of the record will display, the date will display (and if so, what format) and if the script will display an image for each record.

              The first attribute administrators must decide on is "Display Title Field". The majority of scripts display this field, and the corresponding link to the record, so the default is set to "Show". Showing the title field requires the administrator to define the title field, which is "Title" by default.

              Administrators that wish to display lists of content that do not link to records should choose "Hide".

              If the script displays the "Title" field, administrators can control the design of that field and its corresponding link with the "Title Field CSS". Administrators have complete control over the contents of this field -- except the names of the CSS classes. dsTitleField must remain as the class name or the design defined in the CSS will not function properly.

              Next, administrators can define the data field in the "Define Date Field" attribute. If the script should not display the date, choose the "Hide" option in the "Display Date Field" attribute.

              "StartDate" is the default date that displays with each script, but administrators can choose other valid date fields from a particular module should they desire. Keep in mind, however, that the value of the "Define Date Field" must be a valid date field or the system will not display it.

              Administrators that wish to display the date field can control the date display in two ways: the date format itself (using the "Date Format" field) and the font format (using the Date Field CSS).

              There are several date format options from which to choose. Clicking the "Date Format" text within the module will pop up a window that displays all of the options. They are listed below, as well.

              Standard Formats
              Display Example Format Code (Case Sensitive)
              3/9/2008 d
              4:05:07 PM T
              Sunday, March 09, 2008 D
              Sunday, March 09, 2008 4:05 PM f
              Sunday, March 09, 2008 4:05:07 PM F
              Sun, 09 Mar 2008 16:05:07 GMT r
              3/9/2008 4:05 PM g
              3/9/2008 4:05:07 PM G
              March 09 m
              March, 2008 y
              2008-03-09T16:05:07 s
              2008-03-09 16:05:07Z u
               
              Custom Formats
              Display Example Format Code (Case Sensitive)
              3/9/2008 M/d/yyyy
              03/09/2008 MM/dd/yyyy
              Sun, Mar 9, 2008 ddd, MMM d, yyyy
              Sunday, March 9, 2008 dddd, MMMM d, yyyy
              03/09/08 MM/dd/yy
              03/09/2008 MM/dd/yyyy

              To employ a standard format, type the letter of the code in the "Date Format" field. This code is case-sensitive.

              To employ a custom format, enter into the "Date Format" field the format of the date as it appears above.

              The "Number of Content Fields" option allows administrators to extend the amount of information that displays with each record. The default is "One", but administrators can display up to three fields, in addition to date and title.

              Typical usage of more than one content field is when administrators wish to display product catalog items or calendar of event records.

              Each content field allows administrators to define the field they wish to display, control the display of that field using CSS (Content Field [n] CSS), determine whether or not the field display is truncated (Content Field [n] Truncation) and determine whether or not the system removes HTML formatting from the display of that field (Content Field [n] Retain HTML).

              To determine the content field ("Define Content Field [n]"), enter the exact name of the field from the module. If you wish to display no additional fields, leave the "Define Content Field 1" field empty.

              Administrators can control the design of the content [n] field by altering the "Content Field [n] CSS". Please note that the class name defined in the CSS -- .dsContentField[n] -- must remain intact for the formatting to take effect.

              To limit the number of characters that display from the content field, enter a number up to 999 in the "Content Field [n] Truncation" field.

              Administrators can also strip HTML formatting from the content field by setting the "Content Field [n] Retain HTML" attribute to "No". The advantage of stripping HTML formatting is if your content field contains many < Div > or < Table > references. Stripping the HTML content will return plain text that will inherit the formatting assigned in the "Content Field [n] CSS" field.

              Maintaining HTML formatting -- setting Content Field [n] Retain HTML to "Yes" -- will return HTML and text. Take note that truncating HTML may adversely affect the design of your site.

              Administrators can display an image adjacent to or on top of every record that appears in the dynamically generated content list by inserting the name of the image field from the module into the "Define Image Field" attribute. If the module from which the content is coming contains no image filed, leave the image field blank and move on to the "Formatting" tab.

              The attributes "Image HSpace," "Image VSpace", Image Height", "Image Width" and "Image Display Position" define the location and appearance of the image that will appear in each record.

              "Image HSpace" defines the horizontal margin (in pixels) around the image.

              "Image VSpace" defines the vertical margin (in pixels) around the image.

              To proportionally size the image using the height attribute, insert a height (in pixels) into the "Image Height" field, and leave the "Image Width" field blank. All images will appear at that height and width.

              To proportionally size the image using the width attribute, insert a width (in pixels) into the "Image Width" field, and leave the "Image Height" field blank. All images will appear at that width and height.

              Administrators can also leave both image width and height blank to display the image at its real, uploaded size.

              Finally, the "Image Display Position" determines where, relative to the content, the image will display. The options include:

              Content Left (inline, aligned to the left of the content) Content Right (inline, align to the right of the content) Top Left (on top of each record, aligned left) Top Center (on top of each record, aligned center) Top Right (on top of each record, aligned right)

              Formatting Tab

              The "Formatting" Tab allows administrators to further define the look and feel of their scripts, determining the orientation of the list or columnar display, the record alignment, and a custom "no data to display" message, among other options.

              The "Repeat Columns" and "Repeat Direction" attributes work in tandem to display the list. The default "Repeat Columns" value is "1" and the default "Repeat Direction" value is "Vertical". These two settings will display records in this orientation:

              Title 1 Date 1 (if displayed) Content Field 1 (if displayed)

              Title 2 Date 2 (if displayed) Content Field 2 (if displayed)

              Title 3 Date 3 (if displayed) Content Field 3 (if displayed)

              Assigning a value greater than one to the "Repeat Columns" attribute will allow administrators to display records adjacent to each other. For example, entering "2" in the "Repeat Columns" attribute and choosing "Vertical" as the "Repeat Direction" option will display six records in this orientation:

               

              Title 1 Date 1 (if displayed) Content Field 1 (if displayed) Title 4 Date 4 (if displayed) Content Field 4 (if displayed)
              Title 2 Date 2 (if displayed) Content Field 2 (if displayed) Title 5 Date 5 (if displayed) Content Field 5 (if displayed)
              Title 3 Date 3 (if displayed) Content Field 3 (if displayed) Title 6 Date 6 (if displayed) Content Field 6 (if displayed)

              Choosing "Horizontal" as the "Repeat Direction" value will display six records in this orientation:

              Title 1 Date 1 (if displayed) Content Field 1 (if displayed) Title 2 Date 2 (if displayed) Content Field 2 (if displayed)
              Title 3 Date 3 (if displayed) Content Field 3 (if displayed) Title 4 Date 4 (if displayed) Content Field 4 (if displayed)
              Title 5 Date 5 (if displayed) Content Field 5 (if displayed) Title 6 Date 6 (if displayed) Content Field 6 (

            • Dynamic Tab Display

              Dynamic Tab Display

              In order to use this Module. Please set your Tab Type, then fill out your properties. Save the record and then click back into the record and copy the CpScript attribute that is displayed. Here are the Tab Types and their templates:

              iFrame Skins:

              • Black:
              • BlackMetroTouch:
              • Default:
              • Glow:
              • Metro:
              • MetroTouch:
              • Office2007:
              • Office2010Black:
              • Office2010Blue:
              • Office2010Silver:
              • Outlook:
              • Silk:
              • Simple:
              • Sunset:
              • Telerik:
              • Vista:
              • Web20:
              • WebBlue:
              • Windows7:

              Jquery Tab

              These are completely customizable within the CSS style attribute and Scripts.(The are hidden by default) To unhide them, select a record, go to page options and select Module Configuration. In the attribute Hidden Attributes remove one or both of these attributes:

              • jqtScripts
              • jqtStyles

              In order to use the jQuery Tab Display, there are 4 ways to accomplish this:

              1. jQuery UI Theme attribute in this module.
              2. For the entire site (Admin > Properties > Header Tags > jQuery UI Theme).
              3. An audience (Site Architecture > Audiences > Header Tags > jQuery UI Theme).
              4. A web page (Site Architecture > Homepages & Navigation).
              There are 14 templates packaged with Centralpoint with update 8.4.2:
              • Template 01:
              • Template 02:
              • Template 03:
              • Template 04:
              • Template 05:
              • Template 06:
              • Template 07:
              • Template 08:
              • Template 09:
              • Template 10:
              • Template 11:
              • Template 12:
              • Template 13:
              • Template 14:

              Jquery Accordion

              These are completely customizable within the Styles attribute. You can use the query string tab=NUMBER_OF_TAB in a URL for a page to land on that tab.

              In order to use the jQuery Accordion with Themes, there are 4 ways to accomplish this:

              1. jQuery UI Theme attribute in this module.
              2. For the entire site (Admin > Properties > Header Tags > jQuery UI Theme).
              3. An audience (Site Architecture > Audiences > Header Tags > jQuery UI Theme).
              4. A web page (Site Architecture > Homepages & Navigation).
              There are 14 templates packaged with Centralpoint with update 8.4.2:
              • Template 01:
              • Template 02:
              • Template 03:
              • Template 04:
              • Template 05:
              • Template 06:
              • Template 07:
              • Template 08:
              • Template 09:
              • Template 10:
              • Template 11:
              • Template 12:
              • Template 13:
              • Template 14:

              Custom Tab

              These are completely customizable within the Styles attribute.

              • Default Setup:

              Custom Accordion

              These are completely customizable within the Styles attribute and the others. Please read the header text for these extra attributes.

              • Example Setup:

            • Ecommerce Cart

              Ecommerce Cart

              All standard modules are designed to support ecommerce by simply enabling it using the module’s properties.  Enabling ecommerce adds the Ecommerce tab to the module and allows you to begin setting up the values required for ecommerce to work.  Once all of the records in a module contain the required Ecommerce values you can then create a record in the Ecommerce > Cart module or use the Default record to store items that are added to the cart.  The cart module is designed to create an invisible repository for both open and closed orders and control how the cart behaves and looks.

              The cart module contains four tabs: Details, Default, Summary, and Completed.  The Details tab is used to give the cart a name, set up some initial values, and determine how the cart behaves.  The other three tabs are used to control how the cart will look.  The View property of the generated CpScript may be set to Default, Summary, or Completed and will display data using the attributes from the related tab in the module.  In addition to simply displaying the data, the Completed view will clear the cart and store the order with the new status of Completed.  This view should only be displayed once the final processing is completed which is typically done using Form > Thank You Message attribute.  All views also generate two hidden fields, ItemQuantity and DigitalItems, which can be used within forms management for validation or processing.

              The CpScript generated by this module must be included in a Form and will cause the generation of a new cart if one does not already exist.  If it is included on a public page the user has not been authenticated (logged in), therefore, a temporary user id will be generated.  The cart can be completed using the temporary user id, but if the user does log in the cart will be transferred to their account.  The cart maintains its items across user sessions and can be integrated with Sales Tax, Shipping, Discounts, and other CpScripts.  When a cart is regenerated after a user’s session expires, or the items or their quantity changes, all external data is cleared and must be reentered by the user.

              Adding items to the cart is easy from the Details View (#3) of a standard module.  You simply include a FormAddToCartButton CpScript in the module designer and it will automatically add the item to the cart using the values stored in the Ecommerce tab of the record.  This button also automatically searches for a form item, typically a FormTextBox, in the same form group named Quantity and will add the item to the cart the provided number of times.  The FormAddToCartButton may also be used on the Results View (#2) or within a Data Source, but the setup is a bit more complicated.  First you must be sure to add the Group and UniqueIdColumn properties to the button and all related form items so that it does not use the default group and creates a unique form per record.  You also must explicitly assign the DataId of the item that you want added to the cart.  You do this by adding a FormHiddenField with the same Group and UniqueIdColumn and the following additional properties: Id=’DataId’, and DefaultValue=’cpsys_Constant:ColumnData:DataId’.  The DataId column must exist when using this technique within a DataSource.  You can also set up a FormHiddenField called Origin if you wish to populate the documents originating URL manually.  If you are on a standard modules results view you can even set defaultValue='BuildUrl' to have the appropriate URL generated for the record.

              You can also add integrated items to the cart.  An integrated item is any item that does not have a DataId and therefore is not automatically recognized by the system.  It is typically displayed on the site using Data Sources.  In this case you simply create form items, typically FormHiddenField CpScripts, containing the following Id’s: IntegrationId, Title, Summary, OriginalPrice, CurrentPrice, DimWeight, IsTaxable, and Type.  These form items will usually have the DefaultValue property set using cpsys_Constant:ColumnData:ColumnName.  The item will be added to the cart using these values instead of the values stored in the module’s ecommerce tab.  Since integrated items cannot be verified by the system many cart features are not supported.

              Some items require additional information like Size or Color.  The system supports this kind of item and calls this additional information Variants.  Variants are added to an item by adding a form item, typically FormRadioButtonList, containing the appropriate Group and UniqueIdColumn when necessary and setting the property Variant=’Message displayed when the variant is not selected.’  This new variant property is supported in all standard CpScripting Form controls when used with a FormAddToCartButton.  Be aware that variants will not work with cart validation based on stock or the maximum quantity per user because these values are only set once per item, not per variant.

              Finally, the FormAddToCartButton may be included within Default > Item Content attribute of the Cart module itself.  In this case you must set Group=’OrderItem’ and UniqueIdColumn=’OrderItemId’ so that the button works in coordination with the order item hidden fields generated by the system.  You can also add a FormTextBox CpScript with the Id=’Quantity’ to allow the user to enter the quantity, but in this case the quantity will replace the items current quantity instead of adding to it.  This CpScript must also use the same Group and UniqueIdColumn as the button itself.  You may add a Remove=’true’ property to cause the button to remove an item from the cart instead of looking for a DataId text box, but changing the Quantity to 0 will also remove an item from the cart.  If you wish the form buttons (next, previous, submit, custom) to automatically update the cart item quantities you cannot use individual item update buttons and you should change the Id of the FormTextBox to '{{0}}_Quantity'.  In this case you must also include the cart on every page of the form so that it is available to update the item quantities.  If you have a page where you do not want the cart you may use the view='Hidden' property of the cart CpScript.

              This module contains a Custom Provider module property which developers can use to override standard cart methods like InsertItem. To use this property you must first create a class which inherits from Centralpoint.WebSite.Ecommerce.Cart. It can be created in a my_Modules or Custom file/folder and namespace depending on whether you want it to sync to all sites or use it in select sites. This class must override both public constructors as demonstrated in this example. It can then override any virtual method in the inherited Cart class. Be aware that overriding a method, especially without calling the base method, may cause compatibility issues in future updates. Be sure to watch the sync notes and test any ecommerce related changes in the development site before syncing to a production site when this module property is in use. Once the class is created the module property should be set to the complete type name, e.g., Centralpoint.WebSite.Custom.TemplateCart.


              Ecommerce Sales Tax You can setup an Sales Tax for your Ecommerce in Ecommerce > Sales Tax Module. This module let you setup international or local tax rates for regular product or a digital product. FormAddressInfo cp:script will retrieve appropriate tax rates based on user billing information and set those rates in cart of the user.


              CartDownloadDigitalItems This script will display URL for Digital Items which were purchased. It can be used in thank you page or in the email.

              [cp:scripting key='CartDownloadDigitalItems' id='DigitalItems' usefullyqualifiedurl='' /]
              Property Description
              usefullyqualifiedurl true or false. Optional value. need to be set to true if this script used in email.
              Format A format string used to prefix or suffix the return value. Include '{{0}}' in the string where you would like the value to be placed.

              Add Additional payment method(

              In order to add additional payment mended you need to follow next steps: 1. Cart Checkout From add additional page and shift Editor HTML from page 3 to page 4 and page 4 to page 5. 2. On page 3 and FormRadioButtonList csript SystemType='KeywordList' SystemName='PaymentMethod' and apply validator to that control.  Example:  

                  3. On page 4 of the form add alternativePaymentMethod='true' PaymentMethodId='PaymentMethod' to 'FormPayment' cpScript 4. Ecommerce > Cart > Summary > SummaryHeaderContent add PaymentMethodId='PaymentMethod' to 'FormPayment' cpScript

              FormPayment This script will display FormPayment form and posses the payment based on the data id parameter which should match data id of the record in Ecommerce > Merchants module.

              [cp:scripting key='FormPayment' dataid='DataId_Ecommerce_Merchants_Module' stage='summary' alternativePaymentMethod='true' PaymentMethodId='PaymentMethod' FormPaymentPreview='true' /]
              Property Description
              dataid data id of the record in Ecommerce > Merchants module
              stage stage of the script. supported values are: form or summary.
              alternativePaymentMethod optional. true, false. default false. If form payment supports alternative Payment Method like e-check or Purchase Order. Custom set-up required.
              PaymentMethodId optional. works with alternativePaymentMethod. takes id of the control which defined all Payment Methods.
              FormPaymentPreview optional. default value is false. if set to true then payment information will be stored in the form and available in emails or completed page. The card number will only display last 4 characters of the Credit Card.
              				NameOnCard: [cp:scripting key='FormState' id='FormPayment_NameOnCard' /]
              				CardNumber: [cp:scripting key='FormState' id='FormPayment_CardNumber' /]
              				CardType:[cp:scripting key='FormState' id='FormPayment_CardType' /]
              				CardExpiration:[cp:scripting key='FormState' id='FormPayment_CardExpiration' /]
                             

            • Ecommerce Discounts

              Ecommerce Discounts


              Form Discounts This script will create Form Discounts control. This script will only work on the Cart Checkout > Payment Method page and preview on Ecommerce gt; Cart gt; SummaryFooterContent. We support 3 css classes which will let you change display of the discount items. formdiscountsalert - any error/alert message. formdiscounttext - discount text. formdiscountitems - all discount which has been applied.

              [cp:scripting key='FormDiscounts' id='FormDiscounts' format='<br/><div>{{0}} {{1}}</div><br/>' textBoxFormat='Coupon {{0}}' buttonText='Apply Discounts' buttonImage='/Integrations/Centralpoint/Resources/CartDefaultImages/Apply_sm.gif' Limit='' AutomaticDiscounts='false' RemoveDiscountButtonImage='' EditDiscountButtonImage='' view='hiddenform' /]
              Parameter Description
              Id The id of the form element.
              TextBoxFormat A format string used to prefix or suffix the return value. Just include '{{0}}' in the string where you would like the value to be placed.
              ButtonText Enter the text you want to display on your button.
              ButtonImage Takes image path and an image button will be used instead of a standard button.
              Limit Takes numeric value to limit number of discounts to be applied. By removing the value you will remove any restrictions. By default it has no limit.
              AutomaticDiscounts This property supports the following values: true, false. Enter true to have to apply dicsounts automaticly(without clicking of the apply button).Those discount can't be removed. By default automatic discounts are disabled.
              RemoveDiscountButtonImage Takes image path and will replace a default image.
              EditDiscountButtonImage Takes image path and will replace a default image.
              SuppressIndividualItemsErrorMessages optional. supported values. true, false. will Suppress Individual Items Error Messages and display only one message instead.
              View This property supports the following values: Empty and hiddenform. hiddenform will remove discount text box and apply button.


              You can insert a coupon code in a URL and have the system automatically apply that code to the cart. In order to do this you will need to provide user with link to the cart.aspx and passing coupon value in URL query string parameter. http://www.example.com/Main/Cart.aspx?couponCode=save10. We also support an optional query string parameter pageURL. pageURL parameter is used to redirect user to the specific page after applying a coupon code. http://www.example.com/Main/Cart.aspx?couponCode=save10&pageURL=/Main/Home.aspx.

              Form Field Types Reference

              Centralpoint Forms support 13 different field types. Here's a quick reference for the most commonly used types:

              Field Type Purpose Key Parameter
              FormTextBox Single-line or multi-line text TextMode='MultiLine', Rows='4'
              ExtDatePicker Date picker with calendar sourceFieldId (requires 3 components)
              FormListBox Dropdown selection AddListItems (XML format)
              FormUpload File upload control defaultValue stores file path
              FormSignature Digital signature capture Width, Height (auto-creates 4 metadata fields)
              FormEditor Rich text WYSIWYG editor Width='980'

              Key Point: All form fields require a group attribute that must be identical across all form components (HTML, Field Map XML, email templates). Mismatched group names cause silent failures.

              DataSource Best Practices

              DataSources consist of four components that must work together correctly:

              Component Purpose
              SQL SELECT Retrieves data from database
              Template Content Wrapper HTML, runs once at beginning
              Item Content Repeating template for each record
              Styles (CSS) Visual styling (prefer embedding in Template)

              Critical Rules

              Rule 1: The Placeholder Requirement

              Template Content MUST include: ItemContent

              Without this exact placeholder, rows will NOT render even if SQL returns data.

              Rule 2: Attributes vs Standard Fields

              Standard fields: name='FieldName'

              Attribute fields: name='cpsys_Attributes:FieldName'

              They will NOT render if called incorrectly.

            • Editor Loads Slowly

              Editor Loads Slowly

              Visit the link below for a technical description of the problem. http://www.telerik.com/support/kb/article/b454K-8op-b454T-K.aspx

            • Editor Module Manager Tool Properties Inspector Option Problems

              Editor Module Manager Tool Properties Inspector Option Problems

              This problem has been resolved in Centralpoint v8.7.1 with the release of Telerik UI for ASP.NET AJAX v2017.1.228.

              You may notice that the properties inspector option in the editor's module manager toolbar tool doesn't work when you have it enabled via Admin > RTF Editor > Tools > Module Manager = Yes and Editor Modules > Properties Inspector Enabled = Yes. This is a known issues released by Telerik in the latest update, but could not be resolved by Telerik in time for inclusion in Centralpoint's upgrade. It will be resolved in Centralpoint's next Telerik upgrade, but the following work-around is available in the meantime if you rely on this feature.

              A new Properties Inspector Visible option has been added to the Admin > RTF Editor > Editor Modules tab which is set to No by default. If you change this attribute to Yes the properties inspector option will work properly but the properties inspector will be visible in all RTF editors by default. If you would prefer that the properties inspector is hidden by default as it was previously, you can set the RTF Editor > Configuration > Custom Client Load Scripts attribute to "/Integrations/Centralpoint/Resources/Controls/CpEditor/PropertiesInspectorBugFix.js" to hide the properties inspector by default using a client method.  The module manager toolbar tool's properties inspector option will then function as it did previously. This patch will not affect future editor upgrades, but can be removed after the next upgrade if desired.

              If your site already contains Custom Client Load Scripts you must open the referenced file and copy the code from the CpEditor_Custom_OnClientLoad into your existing CpEditor_Custom_OnClientLoad method. If editor layout issues occur they can resolved by commenting in the editor.repaint(); line in the custom file. It would be wise to copy this file to the site's Uploads directory and reference it locally before making any changes to prevent overwrites during the sync process.

              The fixes outlined above only apply to Centralpoint consoles. If you are experiencing this problem on the front-end of a site via the FormEditor CpScript it will require a manual change in the /Root/App_Data/RadControlsEditorToolsFile.xml or RadControlsEditorToolsFile_Basic.xml file by setting root/modules/module name="RadEditorNodeInspector" visible="true" to show the properties inspector by default. If you require that the properties inspector is hidden by default you'll also have to update the /Root/Modules/Forms/Editor.js file manually. The onClientLoad method can be updated to include the same line of code from the CpEditor_Custom_OnClientLoad method, and this file should be added to the site's sync exclusions to ensure that the file is not overwritten during the sync. If this change is necessary it should be removed after the next Telerik upgrade so that the file can be removed from sync exclusions and get system updates.  

            • Email Access

              Email Access

              This module is used to design an interface to display a user's email. It has been depreciated in favor of Admin > Mail, Contacts, Calendars. It generates a CpScript that can be placed in any module and attribute that supports scripting. Be sure to use your mouse to hover over the names of the attributes because many of the more confusing attributes are described using tool tips. This script is designed to retrieve the user's credentials from their account using UserInfo scripts, therefore, it should be placed on private pages to ensure that the user has been authenticated.

              The Details tab describes how the users account will be accessed. You may type a username and password into the provided attributes, but it is recommened that you use UserInfo scripts to access this information. For instance, if you are using the Active Directory Global Login with Outlook Web Access you can use the [cp:scripting key='UserInfo' attributesystemname='OwaUsername' /] and [cp:scripting key='UserInfo' attributesystemname='OwaPassword' /] CpScripts which are automatically populated by the login. Since the OwaPassword is automatically encrypted by the system you should set the IsEncrypted attribute to "Yes".

              The Formatting tab is in charge of designing your email interface.  In this case we use Template Content attribute both the header and footer content included the item content using the [cp:placeholders key='ItemContent' /] script. If you are using the Active Directory Global Login with Outlook Web Access you can also link the Inbox text to "/Accounts/Owa.aspx" to automatically link the interface to Outlook.

            • Enable WCF on windows server 2012

              Enable WCF on windows server 2012

              ENABLE WCF WINDOWS SERVER 2012

              If you didn’t install HTTP-Activation for WCF Services, you will get a 404 error when trying to access your service directly. To be able to run HTTP WCF Services, do as follows: 1. Run Server Manager from your task bar or start menu 2. Choose the server you want to install WCF on 3. Scroll down to “Roles and Features” from task drop down 4. On “Add Role or Feature Wizard” dialog, click down to “Features” in the list of pages on the left 5. Expand “.NET 4.5″ – if you haven’t installed it already, go back to “roles” and install it first 6. Under WCF Services” check the box “HTTP-Activation”. You can also add other types (TCP, Named Pipes, etc) if you will need them 7. Click “Install”

            • Enabling Solutions In Visual Studio

              Enabling Solutions In Visual Studio

              Go to Tools/Options in the Visual Studio toolbar. Click on 'Projects and Solutions' and check the 'Always Show Solution' checkbox. This will allow you to right click on your solution, rename it, and add additional projects.

            • Enter Key Submission

              Enter Key Submission

              ASP.NET automatically clicks the first image button on the page unless you specifically state which button to click.  This can cause a search box or login form at the top of the page to be executed after filling out a physician search in the middle of the page.  To prevent this problem you must wrap your form in a div and tell the div which button to click.  You can find the id of the button by viewing the source of the page and looking for the id attribute of the button form element.

              <div onkeypress="javascript: return [cp:scripting key='FireDefaultButton' /]">FORM CONTENTS</div>


              Fire Default Button Creates the enter key event for the element..

              [cp:scripting key='FireDefaultButton' /]
              Property Description
              targetClass This the optional class of the button to be clicked.

            • Error Messages

              Error Messages

              The web sites web.config file and Global.asax file have been equipped to handle custom errors.  When an error occurs within the application the Global.asax determines if the error is an HTTP error and handles it accordingly.  This feature requires custom errors to be on in the web.config file.

              If the current error is a 404 error and a 404 Redirect record exists with an Original URL value that matches the URL on which the error originated the user will be redirected to the URL entered in the Redirect To attribute.  The Redirect To URL cannot exist in any other record as the Original URL or the redirect will be blocked. The original URL must be root relative or fully qualified and directories should not contain a trailing slash (/).  This redirect only occurs if the page on which the error occurred is handled by the .NET framework.  To get other pages to support this feature you manually change the IIS settings for the site.  Under the Custom Errors tag the 404 HTTP Error must point to the URL '/Error.aspx'.

              All HTTP errors that are not existing 404 Redirects are redirected to a page that finds the custom error message based on the current error.  If no message is found the default message will be displayed regardless of its enabled status or whether it is URL specific.  If this record does not contain a valid message a system message will be displayed.  URL specific error messages that exist for the current hostname will be displayed before general error messages, and may be formatted "*.yoursite.com" to use one error message for all versions of a hostname including "yoursite.com".  Pages that are not handled by the .NET framework may not report errors properly in IIS 6.  In this case change the Custom Error within IIS 6 to '/Error.aspx'.  This will cause IIS to send these errors to your custom error page.

              We support custom error handling. You can enable this by navigating to module property and setting Custom Error Pre-Processor to yes. Chane the name of the method in Custom Method to your method name and create that method in your cp:scripting file. You can copy the template for CustomErrors which located in Root\App_Code\DevV\CpScripting.cs

            • Errors

              Errors

              When an unhandled exception occurs this console or web site a copy of the error is stored in this module. An unhandled exception assumes that the client was was provided an error page. This page then trapped the error, page, and user details and reported them to this module. This list of errors is designed to provide a place to study errors, look for patterns, and store notes regarding site problems.

            • Errors

              Errors

              When an unhandled exception occurs in any console or web site CDA (Content Delivery Application) a copy of the error is stored in this module. An unhandled exception assumes that the client was was provided an error page. This page then trapped the error, page, and user details and reported them to this module. This list of errors is designed to provide a place to study errors, look for patterns, and store notes regarding site problems. A master error has an empty web site name.

            • Errors

              Errors

              When an unhandled exception occurs in any console or web site CDA (Content Delivery Application) a copy of the error is stored in this module. An unhandled exception assumes that the client was was provided an error page. This page then trapped the error, page, and user details and reported them to this module. This list of errors is designed to provide a place to study errors, look for patterns, and store notes regarding site problems. An uber error has an empty master and web site names, and a master error has an empty web site name.

              Only errors where the 'System' attribute is set to 'No' will be displayed in descendant consoles. Setting this attribute to yes will remove that error from all descendant consoles. The 'Notes' attribute is used to store system notes related error, such as a solution if it cannot be solved programmatically. This attribute is never displayed in descendant consoles.
              The database is enforcing automatic error deletions when web sites deleted, but not when masters are deleted. Masters should never be deleted, but if they are manually deleted from the database the errors table may contained orphaned records.

            • Events Module

              Events Module

              Setting up the calendar

              Starting on July 16, 2018 new prices systems are now in effect for the Google Maps Platform. This is only in affect if you are using the GeoCodes attribute in this module. Please see the User Guide and view this option's billing here.

              1. Linking To link to the calendar month view you must use a query string variable. The link looks like this: /AudienceSystemName/NavigationItemSystemName.aspx?calendar=y
              2. Module Designer There is a new tab in Site Architecture > Module Designer > Events called Calendar Month View. This is where you control the design of the calendar view.
              3. Attribute Definitions
                • Header Content The html that will show up above the calendar.
                • Event Item Content Here you can use cp:scripting to build and display any information from the relation. Each event’s data will show up in its own DIV. In order to make the event titles link to their details view, you must build the link yourself. Here is an example: /Main/Events/Column: Object reference not set to an instance of an object..aspx. The CSS for the div that holds the event data and its title link is handled in the attribute called "Event Title CSS". The default is “<a href="#">Column: Object reference not set to an instance of an object.</a>”
                • Link to Day View This will link the calendar's date to the List View for a single day of events.
                • Display Top Events This will filter the top events by in a single day.
                • Record Filter This is the number of events to show in a single day.
                • Calendar See More Link This will show a linkk to the List View for a single day of events if there is more events than the Record Filter displays.
                • See More Link Text This is the text for the See More Link. It defaults to See More..
                • Grid Color A color picker that will set the color of the calendar grid lines. The default is black.
                • Title Bar CSS This is where you control the CSS class for the bar where the month navigation and month name is.
                • Event Title CSS Here is where you control the div and its child controls (links) for the event data. So there is no need to add a class definition to the Event Item Content html.
                • Event Day Cell CSS For the days that have events on them, you may control the look of the cell that holds the title.
                • Day Header CSS The class definition for the cells that hold the day names.
                • Day Cell CSS This class definition controls all the day cells that do not have an event or is not the current day.
                • Today’s Day Cell CSS This class definition controls the current day’s cell.
                • Calendar Date Number CSS This class definition controls the date numbers.
                • Previous Navigation Type This is an attribute switch that will allow you to choose between an image or text for the month navigation.
                • Next Navigation Type This is an attribute switch that will allow you to choose between an image or text for the month navigation.
                • Footer Content The html that will display under the calendar.
              4. CSS classes for Calendar
                • Day Class cpsty_CalendarDayCell
                • Day Header Class cpsty_CalendarDayHeader
                • Today Day Class cpsty_CalendarTodaysDayCell
                • Title Class cpsty_CalendarTitleBar
                • Other Month Day Class cpsty_CalendarOtherMonth
                • Weekend Day Class cpsty_CalendarWeekendDayStyle
                • Day Class cpsty_CalendarDayStyle
                • Date Number Class cpsty_CalendarDateNumber


              CalendarDate This databind method displays the Calendar date.

              [cp:databind key='CalendarDate("m")' /]
              Property Description
              Key The term which will have its alias displayed if it exists, otherwise the term itself will be displayed.
              format The date formats. For valid formats please Click here


              DateSelector This cpcontrol populates the dropdown with dates based on passed values for pastMonths and futureMonths attributes.

              [cp:control key='DateSelector' cpsys_src='/Modules/Events/Common/Calendar/DateSelector.ascx' pastMonths='58' futureMonths='49' format='{{0:y}}' /]
              Property Description
              Key The term which will have its alias displayed if it exists, otherwise the term itself will be displayed.
              pastMonths An integer value to calculate starting date. It calculates the starting date based on current date. Its default value is set to 12. Eg. If current date is 11/2011 and if this attribute is set to 12 then starting date will start from 11/2010.
              futureMonths An integer value to calculate end date. It calculates the end date based on current date. Its default value is set to 12. Eg. If current date is 11/2011 and if this attribute is set to 26 then end date will be 01/2014.
              format The format for date. The syntax for this should be : {{0:format}} eg: {{0:y}}. For formats please click here
              pleaseSelectText The text to set text for Please Select. The 'Please Select...' text is set as it's default.


              TaxonomySelector This cpcontrol populates the dropdown with taxonomies for passed parentTaxonomyId.

              [cp:control key='TaxonomySelector' cpsys_src='/Modules/Events/Common/Calendar/TaxonomySelector.ascx' parentTaxonomyId='' futureMonths='49' pleaseSelectText='' /]
              Property Description
              Key The term which will have its alias displayed if it exists, otherwise the term itself will be displayed.
              parentTaxonomyId A guid value for Parent Taxonomy Id. It takes the Root taxonomy id if it is left empty.
              pleaseSelectText The text to set text for Please Select. The 'Please Select...' text is set as it's default.
              showSubCategories This will create a children Taxonomy dropdown. It's values are true or false. It is set to false by default.
              subCategoriesPleaseSelectText The text to set text for Please Select for the children Taxonomy dropdown. The 'Please Select...' text is set as it's default.


              ViewSelector This cpcontrol populates with List and Grid options to display the Events. This control can be used in Header Content of any Calendar View as per requirement.

              [cp:control key='ViewSelector' cpsys_src='/Modules/Events/Common/Calendar/ViewSelector.ascx' pleaseSelectText='' /]
              Property Description
              Key The term which will have its alias displayed if it exists, otherwise the term itself will be displayed.
              pleaseSelectText The text to set text for Please Select. The 'Please Select...' text is set as it's default.

              Setting up the Calendar List View

              1. Linking To link to the calendar list view you must use a query string variable. The link looks like this: /AudienceSystemName/NavigationItemSystemName.aspx?list=y There is also an option for a Day List View. The link looks like this: AudienceSystemName/NavigationItemSystemName.aspx?list=day&date=MM-dd-yyyy if the date is left empty it will show the current day.
              2. Module Designer There is a new tab in Site Architecture > Module Designer > Events called Calendar List View. This is where you control the design of the calendar view.
              3. Attribute Definitions
                • Css Class The css classes for calendar list view contents. You can write css classes for list view contents.
                • Header Content The html that will show up above the calendar list view. Here you can use calendar cpcontrols like DateSelector, TaxonomySelector and View Selector. To display the selected date in header, the databind 'DisplaySelectedDate(string dateFormat)' can be used. The databind WeekView(string text) and MonthView(string text) can be used here to switch to week and month view respectively.
                • Day Header Content Here you can use cp:scripting to build and display any information from the relation. This will be displayed as header for each event in the list. For example : Column: Object reference not set to an instance of an object. This will display Event start date of each event as its header.
                • Item Content Here you can use cp:scripting to build and display any information from the relation. In order to make the event titles link to their details view, you must build the link yourself. Here is an example: /Main/Events/Column: Object reference not set to an instance of an object..aspx. To show the body copy of event, you can use databind 'ViewDetails(object dataItem, String text, string cssClassVDLink)', this will display content of each event with View Details link to link to Details view of Event.
                • Footer Content The html that will display under the calendar list view.


              DisplaySelectedDate This databind works in Header Content of CalendarListView tab for Events Module. This dipslays the Selected date from DateSelector in List View if date is selected from DateSelector control otherwise displays the Current month date.

              [cp:databind key='DisplaySelectedDate(Container.DataItem,"MMMM yyyy")' /]
              Property Description
              Key The term which will have its alias displayed if it exists, otherwise the term itself will be displayed.
              dataItem The current DataItem.
              dateFormat The date formats. No need to pass 0, just pass the format as string. For example: DisplaySelectedDate("d"). The default value is "y". For valid formats please Click here


              ViewDetails This databind works in Item Content of CalendarListView tab for Events Module. This dipslays the content of each event with View Event Details link if content length is more than 256 characters. This link points to the Details View of the event.

              [cp:databind key='ViewDetails(Container.DataItem,"View Event Details","CssClassNameForLink")' /]
              Property Description
              Key The term which will have its alias displayed if it exists, otherwise the term itself will be displayed.
              dataItem The current DataItem.
              text The text(label) for View Event Details link. The default value is 'View Event Details'.
              cssClass The name of css class which will be applied to View Event Details link.

              Setting up the Calendar Week View

              1. Linking To link to the calendar week view you must use a query string variable. The link looks like this: /AudienceSystemName/NavigationItemSystemName.aspx?week=y
              2. Module Designer There is a new tab in Site Architecture > Module Designer > Events called Calendar Week View. This is where you control the design of the calendar week view.
              3. Attribute Definitions
                • Css Class The css classes for calendar week view contents. You can write css classes for week view contents.
                • Header Content The html that will show up above the calendar week view. Here you can use cp:scripting to build and display any information from the relation. Here you can use calendar cpcontrol like TaxonomySelector to filter the content. To display the date for current week in header, the databind 'DisplayCurrentWeek(string dateFormat)' can be used. To navigate through previous and next week, the datbind 'Next(string textForLink)' and databind 'Previous(string textForLink)' can be used. The databind MonthView(string text) and ListView(string text) can be used to switch to Month and List View respectively.
                • Item Content Here you can use cp:scripting to build and display any information from the relation. In order to make the event titles link to their details view, you must build the link yourself. Here is an example: /Main/Events/Column: Object reference not set to an instance of an object..aspx. The content can be alingned using tables or Divs.
                • Footer Content The html that will display under the calendar week view.


              DisplayCurrentWeek This databind works in Header Content of CalendarWeekView tab for Events Module. This dipslays the date for Current week.

              [cp:databind key='DisplayCurrentWeek("dateFormat")' /]
              Property Description
              Key The term which will have its alias displayed if it exists, otherwise the term itself will be displayed.
              dateFormat The date formats. The default format is {{0:D}}. Need to use format {{0:dateformat}}. For valid formats please Click here


              DisplayDayInCurrentWeek This databind works in Header Content of CalendarWeekView tab for Events Module. This will display the date for Current week, adding or subracting days to the first day of the week.

              [cp:databind key='DisplayDayInCurrentWeek("daysToAdd", "dateFormat")' /]
              Property Description
              Key The term which will have its alias displayed if it exists, otherwise the term itself will be displayed.
              daysToAdd This will add or subtract days to show the date. This will offset from the first day of the week. So to show the week end, use 6. It can be a positive or negative number.
              dateFormat The date formats. The default format is {{0:D}}. Need to use format {{0:dateformat}}. For valid formats please Click here


              NextWeek This databind works in Header Content of CalendarWeekView tab for Events Module. This dipslays the link to navigate to Next week events.
              [cp:databind key='NextWeek("Next")' /]
              Property Description
              Key The term which will have its alias displayed if it exists, otherwise the term itself will be displayed.
              text The text for Next week. The defualt value is "Next Week".


              PreviousWeek This databind works in Header Content of CalendarWeekView tab for Events Module. This dipslays the link to navigate to previous week events.

              [cp:databind key='PreviousWeek("Previous")' /]
              Property Description
              Key The term which will have its alias displayed if it exists, otherwise the term itself will be displayed.
              text The text for Previous week. The defualt value is "Prev Week".


              WeekView This databind displays a link to switch to Calendar Week View. This can be used in Header Content of any Calendar View.

              [cp:databind key='Centralpoint.WebSite.Modules.Events.Calendar.WeekView("Week")' /]
              Property Description
              Key The term which will have its alias displayed if it exists, otherwise the term itself will be displayed.
              text The text for Week view link. The defualt value is "Week".


              ListView This databind displays a link to switch to Calendar List View. This can be used in Header Content of any Calendar View.

              [cp:databind key='Centralpoint.WebSite.Modules.Events.Calendar.ListView("List")' /]
              Property Description
              Key The term which will have its alias displayed if it exists, otherwise the term itself will be displayed.
              text The text for List view link. The defualt value is "List".


              MonthView This databind displays a link to switch to Calendar Month View. This can be used in Header Content of any Calendar View.

              [cp:databind key='Centralpoint.WebSite.Modules.Events.Calendar.MonthView("Month")' /]
              Property Description
              Excel truncating text in cells in DataTransfer

              Excel truncating text in cells in DataTransfer

              When you import data from a Jet OLEDB 4.0 data source(microsoft products)
              Microsoft samples some number of rows at the beginning of your spreadsheet when it creates the Excel source. If on the ShortDescription column it doesn't notice anything too large, it will default to a 255 character text column.

              So To import data from a column that contains rows with large amounts of data without truncation, you must make sure that the ShortDescription column in at least one of the sampled rows contains a value longer than 255 characters, or you must increase the number of rows sampled by the Jet Excel driver to include such a row. You can increase the number of rows sampled by increasing the value of TypeGuessRows under the HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Excel registry key.
              sometime for 64 bit computers you may need to alos update Access Connectivity

              HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Office\12.0\Access Connectivity Engine\Engines\Excel


              Or better and safer solution is to export data to
              tab or comma delimited format and 
              as you matching columns change their type to Memo instead of the text

              Here is the microsoft article describing same issue 
              http://support.microsoft.com/kb/281517
              Ther reference Data Transformation Services (DTS)
              which use same microsoft drivers.

              DataSource Best Practices

              DataSources consist of four components that must work together correctly:

              Component Purpose
              SQL SELECT Retrieves data from database
              Template Content Wrapper HTML, runs once at beginning
              Item Content Repeating template for each record
              Styles (CSS) Visual styling (prefer embedding in Template)

              Critical Rules

              Rule 1: The Placeholder Requirement

              Template Content MUST include: ItemContent

              Without this exact placeholder, rows will NOT render even if SQL returns data.

              Rule 2: Attributes vs Standard Fields

              Standard fields: name='FieldName'

              Attribute fields: name='cpsys_Attributes:FieldName'

              They will NOT render if called incorrectly.

              CpScript Tag Reference

              Common CpScript tags for displaying dynamic content:

              Tag Purpose Example
              Column Display field values Column: Object reference not set to an instance of an object.
              UserInfo Display user properties UserInfo: Your UserInfo script must have attributeSystemName parameter.
              IfInRole Show content by role
              NavigationTier Display navigation menu

              Syntax Rules: All CpScript tags are lowercase, use single quotes only, and end with a space before /]

            • Export SQL Builder Utility

              Export SQL Builder Utility

              This tool typically used by senior developers, allows you to see the SQL Query for any module in your site. By selecting any module, it will provide the complete SQL Statement for all records from that module. This Query can then be used to create Data Sources, Data Transfers, or to build any report.

              It has been optimized for use within Data Transfer, and although it could be used for reporting or others tasks (to filter record sets), it is not optimized for those purposes.

              DataSource Best Practices

              DataSources consist of four components that must work together correctly:

              Component Purpose
              SQL SELECT Retrieves data from database
              Template Content Wrapper HTML, runs once at beginning
              Item Content Repeating template for each record
              Styles (CSS) Visual styling (prefer embedding in Template)

              Critical Rules

              Rule 1: The Placeholder Requirement

              Template Content MUST include: ItemContent

              Without this exact placeholder, rows will NOT render even if SQL returns data.

              Rule 2: Attributes vs Standard Fields

              Standard fields: name='FieldName'

              Attribute fields: name='cpsys_Attributes:FieldName'

              They will NOT render if called incorrectly.

            • Extract Sharepoint Documents Utility

              Extract Sharepoint Documents Utility

              When migrating or extracting documents 'from' Sharepoint this tool is essential to retreive and restore binary images and documents. It will allow you to create a new file structure of all documents (previously in Sharepoint) into a new file directory, wherein files will no longer be binary. From this new directory, typically imports are run in order to migrate these records into Centralpoint. This would be a tool used by senior developers.

              Note: This tool will mimic the file directory previously maintained in Sharepoint (including the documents). This tool gives you the option to control various versions of Sharepoint (old to new), wherein some fields below pertain only to certain versions of Sharepoint.

            • Failed Login Attempts

              Failed Login Attempts

              Yes. Users are given 3 attempts to enter their password correctly. If they do not do so, an error message is displayed. To gain access to the system they must contact their administrator and have their password reset. You can view the number of failed of password attempts for a user along with other useful information in the properties view in the client console. To get to the user's properties just visit their record and select 'Show/Hide Properties' from the 'Page Options...' drop down list.

            • File Upload Problems

              File Upload Problems

              The file upload component does not support tracing. Ensure that tracing is disabled via the web.config file.

            • FileOutput POST

              FileOutput POST

              FileOutput POST

              The console tools below make a POST request to generate a dynamic document from the File Output module.

              • Design > Script Generator > File Output (Results Download)
              • Data Transform > Search Results Output > File Output

              *IMPORTANT*

              These tools do not have knowledge of the content inside the template. The file output template is expected to contain Data Sources that query tables which contain rows matching the DataIds passed to it in the POST request.

              If the downloaded file does not render results that are shown from the website search, please investigate the template file within the File Output record.

              The template file either does not contain Data Sources that query tables where the DataIds passed to it reside or the queries have other filters that the website search does not which is excluding results.

              Ensuring downloaded files contain the expected results is a responsibility of the console administrator.


              These tool sets FormState values for the following IDs: DataIds, Taxonomy

              Example SQL Filter for Taxonomy

              WHERE LEN('[cp:scripting key='FormState' id='Taxonomy'/]') >= 36 AND (TaxonomyId IN ('[cp:scripting key='FormState' id='Taxonomy' replaceText=', ' replaceWith='cpsys_Apos, cpsys_Apos' /]'))

              Example SQL Filter for DataIds

              WHERE LEN('[cp:scripting key='FormState' id='DataIds'/]') >= 36 AND (cprel_GenericEnhancedCC.DataId IN ('[cp:scripting key='FormState' id='DataIds' replaceText=', ' replaceWith='cpsys_Apos, cpsys_Apos' /]'))

              Form Field Types Reference

              Centralpoint Forms support 13 different field types. Here's a quick reference for the most commonly used types:

              Field Type Purpose Key Parameter
              FormTextBox Single-line or multi-line text TextMode='MultiLine', Rows='4'
              ExtDatePicker Date picker with calendar sourceFieldId (requires 3 components)
              FormListBox Dropdown selection AddListItems (XML format)
              FormUpload File upload control defaultValue stores file path
              FormSignature Digital signature capture Width, Height (auto-creates 4 metadata fields)
              FormEditor Rich text WYSIWYG editor Width='980'

              Key Point: All form fields require a group attribute that must be identical across all form components (HTML, Field Map XML, email templates). Mismatched group names cause silent failures.

              DataSource Best Practices

              DataSources consist of four components that must work together correctly:

              Component Purpose
              SQL SELECT Retrieves data from database
              Template Content Wrapper HTML, runs once at beginning
              Item Content Repeating template for each record
              Styles (CSS) Visual styling (prefer embedding in Template)

              Critical Rules

              Rule 1: The Placeholder Requirement

              Template Content MUST include: ItemContent

              Without this exact placeholder, rows will NOT render even if SQL returns data.

              Rule 2: Attributes vs Standard Fields

              Standard fields: name='FieldName'

              Attribute fields: name='cpsys_Attributes:FieldName'

              They will NOT render if called incorrectly.

            • FitBit

              FitBit

              In order to setup FitBit within any Centrlapoint Portal you must:

              1.) Log into https://dev.fitbit.com/login. Since Google has acquired Fitibt, you will need to use your Google Credentials.  and click on the link “Manage Your Apps”. 2.) Register a New App (found in top right of the FITBIT Dev administration page) 3.) It will ask you to enter the Application Name (which can be whatever you choose to call it), 4.) It will ask for a Description (which can be whatever description you choose to give it) 5.) Application Website URL: This will be the URL of your website, or can be a prefixed name (like https://test.oxd20.com) 6.) Organization : Here it will be asking for the actual Organization or owner of the URL (It need not be the same as the URL above in step 5) 7.) Terms of Service URL: Here it is asking for the website which outlines the terms of service or Privacy Policy from the organization (and need not be the same as in step 5) 8.) Privacy Policy URL: Here it is asking for the URL to the Privacy Policy. Often times the terms and privacy are on the same page or url, and you can use the same link for both step 7 and 8 if needed) 9.) oAUTH 2.0 Application Type: Select Server 10.) Redirect URL: Here it asking where to return the user after they have authenticated with FITBIT. THis would be same URL as found within Admin/Properties (or https://www.yourdoman.com//Modules/MyLogs/FitBit/Authorize.aspx) 11.) Default Access Type: Read Only 12.) Next you will need to agree to FITBIT's terms of service (checkbox). 12.) When completed, click on REGISTER

              Once you have completed these steps, FITBIT will provide you with FITBIT generated values (needed information) for you to enter into your Admin/Properties, within your Centralpoint Client Console. They are: FITBIT CLIENT ID, FITBIT CONSUMER SECRET, and FITBIT CALLBACK URL. Please enter the ClientID and Consumer Secret ID, and for the FITBIT Callback URL, use: https://YOURDOMAIN/main/fit-bit-authorize

              In the Client Console's Admin > Template Gallery, click on Sleep Log: Awakenings Count, Sleep Log: Efficiency, Sleep Log: Minutes After Wakeup, Sleep Log: Minutes Asleep, Sleep Log: Minutes Awake, and Sleep Log: Minutes To Fall Asleep. This will put records in the module My Logs > Logs.

              On the front end of the client Centralpoint site, make sure that the Navigation record that points to /Modules/MyLogs/FitBit/Authorize.aspx is Private, and send Authenticated Users who have a FitBit to that page. They will then have to Authorize the web site to use their FitBit. When they Authorize, this will take some time for the web site to create a record in Members > Fitbit and also gather the data that will go into My Logs > Member Logs and My Logs > Member Logs Records.

              Then if you haven't already, you can set up a Module Designer record for My Logs so that Users can view their Sleep Logs in real time.

              There is also a Scheduled Task called FitBit that you will need to turn on. This will go through all of the Members > Fitbit records and if they are enabled, it will gather their data on a daily basis preferably. The Scheduled Task is in the Master > Content > Scheduled Tasks. The Job is called FitBit. You will want to set which website or all the websites that you want the FitBit Scheduled Task to run on, then choose Type Daily.

            • Form State Decode Utility

              Form State Decode Utility

              This tools was created in order to take any encoded form state string, in which to decode. Enter the encoded form state string and click decode. This would be strictly for developers.

              Note: Form state stores information about a form, their controls and their values. That information is encrypted, which is why we developed this tool....allowing to decode the form into an unencrypted format, including its values.

            • Forms Management

              Forms Management

              Forms, Forms Wizard, Workflow & Reporting              T

              Centralpoint Forms Wizazrd - The easiest way to create new forms, workflow & reporting

              The Forms Management module allows administrators to create and manage single- or multi-page forms that capture data within the CentralPoint database (to specific modules), third-party databases, within emails or in all three -- depending on the administrator's choice. Whichever choice administrators adopt, they can manage email notifications both to the form submitter and web site administrators. Additionally, this module can be used to manage workflow for content that web site users submit.

              The module suite is comprised of two modules: Forms and Results, both of which reside under the Forms Management tab. The Forms module manages and displays forms; the Results module houses the form submission results. The module uses CpScripting to build the form elements and form validators. Examples of the Cpscripting that drives the module can be found later in this tutorial.

              Chapters

            • Creating forms | CpScripting
            • Validating Form Fields
            • Managing email notifications and workflow
              Confirmation emails Approval emails
            • Managing data insertion and sharing
              Data insertion into a CentralPoint module Data insertion into a third-party database Creation of a user/member profile Data submission to web requet/response page
              * We don't support dash inside of the Group parameter.

              Creating Forms

              To begin a new form, locate the Forms Management link in the console and click it. The system will automatically send you to the grid view of the Forms module. Click the "New" button in the upper left- hand corner of the grid view to create a new form.

              Within the Forms module, the "General" tab allows administrators to build the form to their specifications. This tab contains the following fields: System Title, System Caption, Publish Start Date, Publish End Date, Results, CpSCript, Manage Form Buttons, Submit Button, Cancel Button, PRevious Button, Next Button, Number of Pages, Page 1 through Page 10, Completed, Thank You Message, Prevent Multiple Submissions, Display Status and Audiences.

              The "System Title" field is used for console purposes only, but should contain a label that administrators can recognize.

              Likewise, the "System Caption" field is used within the console only. Administrators can insert a 512-charactrequireder description for the form's function within this field.

              Administrators can set the date range in which the form is available for display on the front end by altering the "Publish Start Date" and "Publish End Date" fields. Take note, too, that you can begin and end the form's display at a precise moment in time by using the hour, minute, second fields.

              The "Results" field provides administrators with a link to their form's submission results. This link is also displayed on the module's grid view.

              The form that administrators build is referenced through the "CpScript" field. Administrators can copy the contents of this field and place it within a page (or any other RTF field that supports CPscripting) to display the form. A "copy link" feature is also available in the grid view of the Forms module.

              "Manage Form Buttons" is a switch (Yes/No) that allows administrators to insert their own custom image buttons that will display as part of the form. Choosing "No" means that CentralPoint's default buttons will display. Choosing "Yes" allows administrators to upload a button for the following actions: "Submit", "Cancel", "Previous Page", "Next Page".

              Administrators can define the number of pages a form will contain by choosing the appropriate number from the "Number of Pages" radio button array. Choosing more than one page will trigger the console to display a new RTF editor that corresponds to that page number. The front-end display will always default to the "Page 1" information, and users can toggle from page to page using the "Previous Page" and "Next Page" buttons. Administrators can require users to enter form item values to move from one page to the next. More about that in the "validators" section below.

              The "Page [n]" RTF field is where administrators build the form elements. CentralPoint currently supports these form elements:

              Text box - [cp:scripting key='FormTextBox' id='Name of Item' /]

              Multi-line Text box - [cp:scripting key='FormtextBox' id='Name of Item' TextMode='MultiLine' Rows='5' style='width:250px;' /]

              File Upload - [cp:scripting key='FormUpload' id='Name of Item' /]

              Radio buttons - [cp:scripting key='FormRadioButtonList' id='Name of Item' AddListItems='&lt;listItem value="Item1" index="1"&gt;Item2&lt;/listItem&gt;&lt;listItem value="Item2" index="2"&gt;Item2&lt;/listItem&gt;&lt;listItem value="Item3" index="3"&gt;Item3&lt;/listItem&gt;&lt;listItem value="Item4" index="4"&gt;Item4&lt;/listItem&gt;'/]

              Check boxes - [cp:scripting key='FormRadioButtonList' id='Name of Item' SelectionMode='Multiple' AddListItems='&lt;listItem value="Item1" index="1"&gt;Item2&lt;/listItem&gt;&lt;listItem value="Item2" index="2"&gt;Item2&lt;/listItem&gt;&lt;listItem value="Item3" index="3"&gt;Item3&lt;/listItem&gt;&lt;listItem value="Item4" index="4"&gt;Item4&lt;/listItem&gt;'/]

              Drop-down menu - [cp:scripting key='FormListBox' id='Name of Item' AddListItems='&lt;listItem value="Item1" index="1"&gt;Item1&lt;/listItem&gt;&lt;listItem value="Item2" index="2"&gt;Item2&lt;/listItem&gt;&lt;listItem value="Item3" index="3"&gt;Item3&lt;/listItem&gt;'/]

              CAPTCHA validation - [cp:scripting key='FormCaptcha' id='Captcha' /]

              U.S. State list drop-down: [cp:scripting key='FormListBox' id='States' SystemType='KeywordList' SystemName='StatesCodes' defaultValue='' PleaseSelect='Please select state...'/]

              Country list drop-down: [cp:scripting key='FormListBox' id='Country' SystemType='KeywordList' SystemName='CountryCodes' defaultValue='' PleaseSelect='Please select country ...'/]

              Months of the year drop-down: [cp:scripting key='FormListBox' id='Months' SystemType='KeywordList' SystemName='Months' defaultValue='' PleaseSelect='Please select month ...'/]

              The form element attributes id is the name of the form field.  Underscores are valid, however dashes may not be used as part of the id.

              The form element attribute selection and its value determines whether a radio button array displays or a check box array displays. Selection='Multiple' displays a check box array. The default is a radio button, or administrators can input Selection='Single' for a radio button array.

              The listitem element attribute index determines where in the drop-down, check box or radio button array the item appears. Index="1" displays the item first.

              The listitem element attribute value is the value of the list item and is equivalent to the <option value=""> attribute in HTML.

              A full list of attributes and their values can be found in the Scripting help file. There are also a number of built-in jquery elements referenced in the Scripting help file that can help you extend the functionality within your form. In that scripting help file, search for any of the following terms: ExtAutoComplete, ExtDatePicker, ExtPasswordStrength, ExtMaskFormInput, ExtWaterMark.

              The "Completed" field allows administrators to determine the action upon form submission. Choosing "Thank You Message" allows administrators to display the contents of the RTF "Thank You Message" field. Upon submission, the "Thank You Message" field will appear in place of the form itself. The "Thank You Message" RTF field is required if the value of "Completed" is "Thank You Message".

              Alternatively, administrators can redirect their form submitters to a specific page by choosing the "Redirect" option. The value of the "Redirect URL" field governs where the form submitter will be redirected to. The "Redirect to URL" field is required if the value of "Completed" is "Redirect".

              To prevent more than one submission of a form by the same person in a one-year period, choose the "Yes" option on the "Prevent Multiple Submissions" field. The "Yes" option sets a cookie on the form submitters browser that will prevent that submitter from sending in more than one form in the time frame that you choose in the "Intervals" and "Interval Values" fields. To limit a user to one form submission per day, choose "Days" in the "Interval" option, and insert a numeral 1 in the "Interval Values" field.

              Choose "No" to allow any number of forms submissions from the same person.

              The display status option allows administrators to toggle on and off the display of the form on the front end. Choosing "Hold" will not allow the form to display on the front end. Choosing "Release" displays the form on the front end.

              The Audiences multi-select field is used for console filtration only, meaning that administrators can limit the display of the form within the console to only certain administrators by audience. This value doesn't affect the front-end display of the form.

              Validating Form Fields

              Many forms require specific fields to be validated before the form itself can be submitted. Below are the types of form validations CentralPoint supports.

              Required Field Validator You can use this controls to make sure that the user has entered something in a form field.

              [cp:scripting key='FormRequiredFieldValidator' id='IDofTheValidator' itemToValidate='NameOfTheFormField' defaultValue='* Error Message'/]
              Property Description
              id The id of the form validator. This required property allows the form state to uniquely identify this validator within the group.
              itemToValidate The id of the form element to validate.
              defaultValue Error Message the user will see if no value was entered.
              errorColor Optional property. Can contain Color HEX value(Example: FF0000 or FFFF00) or Color Names (Example: red or yellow)
              ItemToEnable Optional property. Enter Id of the control which will enable or disable this validator. Works together with ItemToEnableOnValue property.
              ItemToEnableOnValue Optional property. Enter the value based on which the validator will get enabled or disabled. Works together with ItemToEnableOnValue property.


              Field Length Validator You can use this control to ensure the user has entered the appropriate number of characters in a field. A practical example of this is to validate username or password lengths.

              [cp:scripting key='FormLengthValidator' id='IDofTheValidator' minimumLength='3' maximumLength='6' itemToValidate='NameOfTheFormField' defaultValue='* Error Message'/]
              Property Description
              id The id of the form validator. This required property allows the form state to uniquely identify this validator within the group.
              itemToValidate The id of the form element to validate.
              defaultValue Error Message the user will see if no value was entered.
              errorColor Optional property. Can contain Color HEX value(Example: FF0000 or FFFF00) or Color Names (Example: red or yellow)
              ItemToEnable Optional property. Enter Id of the control which will enable or disable this validator. Works together with ItemToEnableOnValue property.
              ItemToEnableOnValue Optional property. Enter the value based on which the validator will get enabled or disabled. Works together with ItemToEnableOnValue property.


              Unique Field Validator Use this control to ensure that the user has entered unique value in a form field. Example: Validate this username does not already exist within the Members module.
              [cp:scripting key='FormUniqueFieldValidator' id='IDofTheValidator' itemToValidate='NameOfTheFormField' table='DatabaseTableName' itemToCompare='DatabaseFieldName' defaultValue='* Error message' /]
              Property Description
              id The id of the form validator. This required property allows the form state to uniquely identify this validator within the group.
              itemToValidate The id of the form element to validate.
              table Table in the database you want to validate form input
              itemToCompare Field in the database you want to compare with the submitted form value.
              defaultValue Error Message the user will see if submitted value is not unique.
              errorColor Optional property. Can contain Color HEX value(Example: FF0000 or FFFF00) or Color Names (Example: red or yellow)
              ItemToEnable Optional property. Enter Id of the control which will enable or disable this validator. Works together with ItemToEnableOnValue property.
              ItemToEnableOnValue Optional property. Enter the value based on which the validator will get enabled or disabled. Works together with ItemToEnableOnValue property.


              Unique Fields Validator Use this control to ensure that the user has entered 2 value between 2 controls are Unique. Example: Validate that Procedural Manual Title and Manual Number are does not already exist within the ProceduralManuals module. r>
              [cp:scripting key='FormUniqueFieldsValidator' id='IDofTheValidator' itemToValidate='NameOfTheFormField' itemToCompare='DatabaseFieldName' itemToValidate2='NameOfTheFormField2' itemToCompare2='DatabaseFieldName2' table='DatabaseTableName' defaultValue='* Error message' /]
              Property Description
              id The id of the form validator. This required property allows the form state to uniquely identify this validator within the group.
              table Table in the database you want to validate form input
              itemToValidate The id of the form element to validate.
              itemToCompare Field in the database you want to compare with the submitted form value.
              itemToValidate2 Second id of the form element to validate.
              itemToCompare2 Second Field in the database you want to compare with the submitted form value.
              defaultValue Error Message the user will see if submitted value is not unique.
              errorColor Optional property. Can contain Color HEX value(Example: FF0000 or FFFF00) or Color Names (Example: red or yellow)
              ItemToEnable Optional property. Enter Id of the control which will enable or disable this validator. Works together with ItemToEnableOnValue property.
              ItemToEnableOnValue Optional property. Enter the value based on which the validator will get enabled or disabled. Works together with ItemToEnableOnValue property.


              Compare Field Validator The CompareValidator control is used to compare the value of one input control to the value of another input control.
              [cp:scripting key='FormCompareValidator' id='IDofTheValidator' itemToValidate='FormField1' itemToCompare='FormField1' type='String' operator='Equal' defaultValue='* Error message' /]
              Property Description
              AttributeToValidate Used to validate the value of a records attribute instead of a form field. It should be set to the system name of an attribute and will only work when ItemToValidate contains the id of a form field which will return the DataId of the record you wish to validate.
              DefaultValue Error Message the user will see if submitted value does not pass the compared requirements.
              ErrorColor Optional property. Can contain Color HEX value(Example: FF0000 or FFFF00) or Color Names (Example: red or yellow)
              Id The id of the form validator. This required property allows the form state to uniquely identify this validator within the group.
              ItemToCompare The id of the form element with which to compare.
              ItemToEnable Optional property. Enter Id of the control which will enable or disable this validator. Works together with ItemToEnableOnValue property.
              ItemToEnableOnValue Optional property. Enter the value based on which the validator will get enabled or disabled. Works together with ItemToEnableOnValue property.
              ItemToValidate The id of the form element to validate.
              Operator
            • Equal
            • GreaterThan
            • GreaterThanEqual
            • LessThan
            • LessThanEqual
            • NotEqual
            • DataTypeCheck
            • Type
            • String (Supported Operators: Equalor NotEqual)
            • Integer (Supported Operators: All)
            • Date (itemToCompare and Operator will be ignored.)
            • ValueToCompare A static value which will be compared. It only works when ItemToCompare is left empty.


              Range Field Validator Use this control to ensure the user has entered a specific number of characters into the textbox or ensure those characters are of a specific type (Number, Date, String).

              [cp:scripting key='FormRangeValidator' id='IDofTheValidator' itemToValidate='NameOfTheFormField' type='Integer' minimumValue='3' maximumValue='9' defaultValue='* Error message' /]
              Property Description
              id The id of the form validator. This required property allows the form state to uniquely identify this validator within the group.
              itemToValidate The id of the form element to validate.
              type
            • Integer - minimum and maximum
            • String - minimum and maximum characters
            • Decimal or Currency- minimum and maximum
            • Date - any valid date in .NET help file
            • minimumLength The minimum number of the characters the field must have.
              maximumLength The maximum number of the characters the field can have.
              minimumValue The minimum integer of your range.
              maximumValue The maximum integer of your range.
              defaultValue The Error Message user will see if the submitted value does not pass the required validation.
              errorColor Optional property. Can contain Color HEX value(Example: FF0000 or FFFF00) or Color Names (Example: red or yellow)
              ItemToEnable Optional property.

            • Forms Management - double opt-in functionality for membership sign-up

              Forms Management - double opt-in functionality for membership sign-up

              Our membership sign-up process allow double opt-in functionality. In order to set this up please follow next steps:

              1. On your form add hidden field:
                [cp:scripting key='FormHiddenField' id='ValidationKey' defaultValue='cpsys_newguid' /]
                Email Field need to be named: UserEmail
              2. Workflow Tab > Message to User that form is being processed <a href="https://www.oxcyon.com/Main/Login.aspx?uName=cpsys_Null&vkey=cpsys_Null">Click here to activate your account.</a>
              3. Processing Tab > User Submission: <attribute systemName="IsLockedOut">0</attribute> <properties systemName="AcctRegistrationDate"><![CDATA[ 02/14/2026 05:22:02 PM ]]></properties> <configuration systemName="AccountVerificationKey"><![CDATA[ cpsys_Null ]]></configuration>

              Form Field Types Reference

              Centralpoint Forms support 13 different field types. Here's a quick reference for the most commonly used types:

              Field Type Purpose Key Parameter
              FormTextBox Single-line or multi-line text TextMode='MultiLine', Rows='4'
              ExtDatePicker Date picker with calendar sourceFieldId (requires 3 components)
              FormListBox Dropdown selection AddListItems (XML format)
              FormUpload File upload control defaultValue stores file path
              FormSignature Digital signature capture Width, Height (auto-creates 4 metadata fields)
              FormEditor Rich text WYSIWYG editor Width='980'

              Key Point: All form fields require a group attribute that must be identical across all form components (HTML, Field Map XML, email templates). Mismatched group names cause silent failures.

            • Forms Management Training Video

              Forms Management Training Video

              Forms Management This narrated video discusses Forms Management; Forms, Forms Wizard, Workflow and Reporting

              Understanding Centralpoint’s Forms Management is essential to unlocking a whole new level of automation and efficiency across your organization. This narrated video walks you through Forms, the Forms Wizard, Workflow Management, and Reporting — showing how easy it is to create, manage, and route forms dynamically based on user input. Centralpoint Forms aren’t just simple data collectors; they drive powerful, role-based workflows that can automate reviews, approvals, assignments, and even the dynamic generation of documentation — all tailored to the data users provide.

              By mastering Forms and Workflow, you can transform static, manual processes into intelligent, automated routines. Imagine building proposals, contracts, compliance documents, or internal reports automatically, based entirely on how a user completes a form — without duplicative work or delays. This video will show you how Centralpoint empowers you to streamline operations, improve data quality, enforce governance policies, and deliver a highly personalized, efficient experience to both users and administrators alike.

            • Forms State drop-down list

              Forms State drop-down list

              Scripting tags are similar to XML tags, but use square brackets ([]) instead of angle brackets(<>). All property values must be enclosed in single quotes ('') and may not contain single quotes. All cp:scripting tags are only supported in web sites, while cp:personalization, cp:privatelabeling, cp:personalization, and cp:configuration are supported in other sites.


              State Drop-down menu Use this quick reference code to display a drop-down menu of states for custom-built forms.

            • Forms Wizard

              Forms Wizard

              Forms Wizard

                      

              Forms Wizard is designed to allow you to step through a process to create your needed form, manage workflow, and even the finalized integration or document creation. Our advice would be to analyze the form you want carefully, and count how many fields you will need, and specifically what type of fields should be presented. For an example, forms are typically made up of text boxes (like when entering your name), dates (when we ask the user to select a date), to upload files (should you need to collect files or photos from your users), and maybe even the user's signature (to sign off on something). 

              There are a series of steps in order to create your form. You can go back at any time in the wizard, except the the last step (when you save it).

              Step 1:

              This is the forms set up step

              • Name of Your Form? This is the Title of the form.
              • Field Padding? This is the standard padding to be used for all fields in the form.
              • How Many Pages? This is the number of pages in your form.
              • Do you want TABLE or DIV setup? This is how the form fields will be displayed. Table does not suggest a table row for each field, it set up using a table for each row with set widths.
              • Default Width of all Fields? This is the default width that will populate the width textboxes in Step 3.
              • Spacing between multiple fields This is the width of the Empty Field items in Step 4.

              Step 2:

              This step will go page by page and ask you how many of each particular field you want.

              Step 3:

              This step will go page by page and ask for a name or a label and other attributes that the CpScripts require to function properly. There are also checkboxes for 'Include in Email' and 'Add in Module'. Names and label must be unique in these steps for ALL pages. Name cannot have spaces, just like in CpScripts. I would suggest prefixing field items. For instance, if you have a name text box and a large text that is called name, please give the textbox a name like txtName. This can apply to all fields. Such as:

              • TextBoxes txtName
              • Date Fields dtName
              • Drop Downs ddlName
              • Checkboxes chkName
              • File Uploads fuName
              • Taxonomy Selectors taxName

              Step 4:

              This step is a three part process for each page.

              Step 1

              • How many rows for this page? This is the number of rows for the page.

              Step 2

              Looking at your form as a grid, how many columns do you need for each row.

              Step 3

              This is where you have drop downs for that page that you can either choose a for field, or an empty to create space for your form. If form items are chosen that have been chosen in another drop down, the other drop down will switch to an empty field value

              Step 5

              This is the preview page where you can see what your fields will look like on the form and what fields will be in the email bodies.

              Step 6

              • Do you want this to be saved in the Forms Results? This is the same attribute as in the Forns module
              • Would you like to include these fields and the data collected into a Module? If you answer yes you will be given these options:
                • Which fields do you want in the Title? This is the name of fields you want as the title for the module records.
                • Please select your Module Here you will be given all the modules in Centralpoint. When you choose one, an XML link will appear. Please right-click and choose 'Save Link As...' in order to get your new module configuration.
              • Confirmation Email? This will give you the fields from the forms module to fill out. The email form body will be populated with the value from Step 3.
              • Approval Email? This will give you the fields from the forms module to fill out. The email form bodies will be populated with the value from Step 3. The from is a drop down list of all the fields from the form to use as the email from.

            • Friendly URLs

              Friendly URLs

              This module was designed for technically savvy administrators only. The powerful rule based engine can lead to difficult to understand configurations and potentially break existing URLs. Some common difficulties and pitfalls include:

              • All relevant routes are checked with every page load. Adding a large number of records to this module could affect the load time of every page in the site because the HttpModule executes on every page load and must check each route. URL generation is also executed multiple times per page load and a large number of complicated patterns may affect the performance of this feature. This is not an alternative to Admin > Error Messages/Redirects > Type = 404 Redirect. 404 Redirects are designed for migrating old dead URLs to new URLs and they are optimized to do that efficiently. Friendly URLs is designed for routing and generating the URLs of existing pages.
              • Domain and Audience routing requires a Navigation or Document route. Domain and audience routes won't apply if the Routing module property is set to Fallback mode and the navigation and document portion of the path is not routed. The "System: Extensionless URLs with Fallback Routing" record was designed to route all standard Centralpoint navigation and document paths. Enabling this record or restoring it to it's original values will typically resolve this problem.
              • Routing is executed in the following order: Domain, Audience, and then Navigation & Document. If two records have the same order the newer record will be tested first. A preferred URL is chosen when building a URL in a slightly different way. When a document URL is being built records with specific documents selected will be tested first, and when a navigation url is built records with specific navigation items selected will be tested first. Records with no navigation item will always execute after those with specified values.
              • Only managed (ASP.NET served) requests are supported by default. If you wish to route non-managed requests like .htm, .css, or .custom extensions you must set runAllManagedModulesForAllRequests to true in the Root/Web.Config. This will cause all HttpModules, regardless of their preCondition attribute setting, to fire on all requests which could lead to performance problems and unexpected behaviors.
              • Conflicts may occur with the IIS URL Rewrite module. Similar redirects set up in the web.config or IIS could cause issues or even infinite loops. They should be removed from the web.config when they are added to this module.
              • Permanent redirects are cached at many levels. When the Redirection module property is set to enabled and Enable Permanent Redirection Cache is set to Yes the browser and proxies will cache the redirection. If the preferred URL is changed later it may lead to 404 errors until browser cache is cleared.
              • Changing URLs can lead to SEO problems. If the site has already been indexed by search engines you must ensure that the indexed URLs resolve properly including the appropriate canonical URL meta tags or redirect to the correct URL.
              • Domain routing skips Default.aspx. If the site is using features that require the domain to redirect to Default.aspx then you cannot enable records with Type = "Domain." Domain routing automatically loads the the Default Path without the redirect to Default.aspx and then to the default path. The most commonly used features that require Default.aspx and are incompatible with Type = "Domain" are Admin > URL Redirect to Audiences and Admin > IP Manager > Action = "Redirect".

              Utilizing this module typically involves creating or enabling a record and testing the route and URL generation then testing all other routes to make sure they weren't negatively affected. It is highly recommended that you set up and test one record at a time being sure to include the test URLs in the Test URLs attribute. A unique Notes attribute will display for each Type selection which explains how to configure that type for routing and generation. By default all system pages will generate a canonical URL meta tag when the page is loaded on a non-preferred URL, but the Redirection module property can be enabled to redirect to the preferred URL instead. You can use the Friendly URLs module to perform many URL manipulation tasks, some of which include:

              • Supporting extensionless URLs. Enable the "System: Extensionless URLs with Fallback Routing" record to route and generate system URLs without the extension (.aspx). The legacy urls (including .aspx) will still be supported. If a hardcoded URL is accessed with the extension it will render normally including a canonical URL meta tag pointing to the preferred (extensionless) version of the URL. The path to all records will exclude the extension: /aud/nav or /aud/nav/doc.
              • Enforcing all lowercase URLs. Enable the "System: Extensionless URLs with Fallback Routing" record, add .aspx to the Preferred URL if you'd prefer to keep the extensions ({{smi}}{{doc}}.aspx), and set Admin > Properties > Web Site Generated URL Casing to "Lowered". If a hardcoded URL is accessed in a different casing it will render normally including a canonical URL meta tag pointing to the correct casing. Set the Redirection module property to "Case Sensitive (Enabled)" to force a permanent redirection to the correct URL and casing.
              • Supporting pathless audience homepages. Enable the "System: Pathless Audiences" record to route and generate system URLs that point to audience homepages without the homepage system name or extension. If a hardcoded URL is accessed with the homepage in the URL it will render normally including a canonical URL meta tag pointing to the preferred audience URL. This record will automatically utilize Site Architecture > Homepages > SystemName = "Home" for all audiences. If all audiences do not utilize this homepage you must create separate records for each audience/homepage combination. The path to all audiences will exclude the homepage: /aud.
              • Supporting pathless domain homepages. Enable the "System: Pathless Domains" record and make sure that the Default Path and Navigation relate to the homepage of the Main audience to route and generate system URLs that point to the main audience home page without the audience or home page system name or extension. If a hardcoded URL is accessed with the audience and homepage in the URL it will render normally including a canonical URL meta tag pointing to the domain only. Set the Default Path and Navigation attributes accordingly to use a different homepage. The domain alone will render the main audience home page: /.
              • Changing the audience system name. Create a new record with Type = "Audience", set the Pattern to the new audience system name supporting an optional trailing slash (custom-aud/?), set the Default Path to the home page portion of the URL (home), set the Preferred URL to the new audience system name (custom-aud), select the homepage under Navigation, and select a single Audience.  You may also want to change the Order to 95 if you want to the "System: Pathless Domains" record to execute first.
              • Changing the path to a document. Create a new record with Type = "Document", set the Pattern to the new path supporting an optional trailing slash (custom/doc/?), set the Preferred URL to the document path (custom/doc), select the Navigation, and select the Document. The selected navigation must have a page type of module and its module must include the selected document. The path will still contain the audience system name unless you have configured an audience specific domain: /aud/custom/doc.
              • Changing the path to an HTML page. Create a new record with Type = "Navigation", set the Pattern to the path supporting an optional trailing slash (custom/nav/?), set the Preferred URL to the navigation path (custom/nav), and select the Navigation. The path will still contain the audience system name unless you have configured an audience specific domain: /aud/custom/nav.
              • Changing the path to a module. Create a new record with Type = "Navigation", set the Pattern to the path including {{doc}} and supporting an optional trailing slash (custom/module{{doc}}/?), set the Preferred URL to the navigation path including {{doc}} (custom/module{{doc}}), and select the Navigation. The path will still contain the audience system name unless you have configured an audience specific domain: /aud/custom/module or /aud/custom/module/doc.
              • Using a custom extension instead of ASPX. Open the site's Root/Web.Config file and set runAllManagedModulesForAllRequests attribute to "true" in configuration/system.webServer/modules. This will cause all HttpModules, regardless of their preCondition attribute setting, to fire on all requests which could lead to performance problems and unexpected behaviors. Disable the "System: Extensionless URLs with Fallback Routing" because this new record will handle all system URLs. Create a new record with Type = "Navigation", set the Pattern to include the custom extension ({{smi}}{{doc}}\.custom), set the Preferred URL to include the custom extension ({{smi}}{{doc}}.custom), and select All Site Map Items under Navigation. The path to all records will end in the custom extension (.custom): /aud.custom, /aud/nav.custom, or /aud/nav/doc.custom.
              • Configuring an audience specific domain.Create a new record with Type = "Domain", set the Pattern to the audience specific domain (www\.yourdomain\.com), set the Default Path to the homepage portion of the URL (home), set the Preferred URL to the audience specific domain (www.yourdomain.com), select the homepage under Navigation, and select a single Audience to generate fully qualified URLs in canonical URL meta tags using your audience specific domain. By default audience specific domains do not support or generate the audience system name in the URL. If your site contains hardcoded URLs which include the audience system name they will return 404 errors which will be detected automatically by the error handler and redirected to the same URL without the audience system name regardless of the selection in the Redirection module property. If you would prefer to maintain the audience system name in the URL it should be included in the Default Path (main/home).
              • Configuring a single pathless audience.Create a new record with Type = "Audience", set the Pattern to the audience system name supporting an optional trailing slash (aud-system-name/?), set the Default Path to the home page portion of the URL (home), set the Preferred URL to the audience system name (aud-system-name), select the homepage under Navigation, and select a single Audience. You may also want to change the Order to 95 if you want to the "System: Pathless Domains" record to execute first.
              • Configuring a preferred domain. Create a new record with Type = "Domain", set the Pattern to catch all potential domains (.*), set the Preferred URL to your preferred domain (www.yourdomain.com), and select the related Audiences to generate fully qualified URLs in canonical URL meta tags using your preferred domain.
              • Requiring HTTPS on a specific domain. Create a new record with Type = "Domain", set the Pattern to catch all potential domains (www\.yourdomain\.com), and select Yes under Requires HTTPS to generate fully qualified URLs in canonical URL meta tags using your preferred scheme. Set the Redirection module property to "Enabled" to force a permanent redirection to the correct scheme.
              • Routing a domain to a specific record. Create a new record with Type = "Domain", set the Pattern to catch all potential versions of that domain ((www\.)?yourdomain\.com), under Default Path enter the path to the navigation item or document (nav/doc), select the navigation item under Navigation, and select the appropriate Audience.

            • Gamification

              Gamification

              Gamification refers to a process of making systems, service and activities more enjoyable. Centralpoint Gamification allows for your users to compete to be most active in their communities. Incentives can be provided to your users (whether it be employees, clients, or partners) to get more involved and compete to be the most active participant.

              Centralpoint Gamification reporting allows you to see all of your users' activity, and compares one against the other, providing incentive for users to get involved. Gamification commonly employs game design elements which are used in so called non-game contexts in attempts to improve user engagement,organizational productivity, flow, learning, employee recruitment and evaluation, ease of use and usefulness of systems, physical exercise, among others. A review of research on gamification shows that a majority of studies on gamification find positive effects from gamification. However, individual and contextual differences exist.