CyberStore Ecommerce 2023 Documentation
NovoLiteratureRackControl Class
Members  Example 


Dovetail.Ecommerce.Controls Namespace : NovoLiteratureRackControl Class
A novo literature rack control. Introduced in v2.5.
Remarks

The NovoLiteratureRackControl is used to display Literature items and allow the presentation of links that will download these items. Literature items are managed within an installation of the novo Content Management System (CMS).

Literature Items are can be files of varying types but are most commonly PDF, Excel, Word, Powerpoint, or image files. They can be grouped using novo CMS into custom Categories. Additional functions of the novo Literarature Rack module include the ability to restrict user access to novo Users.

When a Literature link is clicked, the request is sent to the novo application via the CMS system's "Go Url." In custom implementations where the Go application is not found off of the root of the CyberStore website, the GoURL property lets developers set the appropriate location.

Integration with CyberStore

A single sign-on experience is available for users of both the CyberStore and novo systems. This is controlled using the CyberStore Connect API integration as well as certain management functions in CyberStore console that make the synchronization of CyberStore Accounts and novo Users automatic. Additional synchronization options are available to connect CyberStore Customer Classes to novo User Groups.

When integrated, the CustomerLoginControl should be implemented to authenticate novo users on login. This function is enabled in the login control by setting its AuthenticateNovoOnLogin property to true.

Licensing Note:

For full novo integration functionality, the CyberStore Connect API must have a valid license.

Pass Through Access

As described previously, novo Literature Rack features allow for site managers to set access permissions on Literature items in the novo Management Console, when synchronized with CyberStore Accounts these restrictions can be used in conjunction with a CyberStore login and the NovoLiteratureRackControl handles the access validation automatically taking into account the Literature Access Type and possible user/group level restrictions implemented in novo CMS.

Important Note:

When a user does not have permission to access to a Literature item, it will not be displayed to the user. In other words any list of Literature items shown to a user are available to them for download as they have been fully authenticated via the integration described above.

Property Usage

By changing the values of the control's properties in the SitePages.config file for your Site, you can enable or disable certain behaviors, set certain defaults, alter aspects of the display or otherwise cusomtize your site's implementaion of the control.

The following describes properties pertaining to key functional areas of the control that can be configured to suit your needs.

Configuring Literature Display Scope

The NovoLiteratureRackControl uses Literature Rack Categories to determine which Literature items to include in scope. The control allows for specifying which category to use when determining what Literature items to display by including the name of the category in the LiteratureCategoryName property. To show all Literature items no matter category, do not set the LiteratureCateogryName property, and set the ShowAllLiteratureWhenCategoryNotFound property to true.

In novo Literature use stories where Literature category names exist which match Item Stockcodes and the NovoLiteratureRackControl is placed onto an Item Detail Page, automatic linking between the stock code and the Literature category can be achieved by using the UseStockCodeAsCategoryName property an setting it to true.

Controlling Headline Usage

When displaying the list of Literature items with the NovoLiteratureRackControl, a headline can be displayed above the list. To override the default headline text from "Literature" to whatever text you wish to use, set the LiteratureRackHeadlineText property . You can also choose to hide the headline altogether by setting the ShowLiteratureRackHeadline property to false.

Properties Inherited from the Base CyberStoreBaseControl

Properties specific to the CyberStoreBaseControl can be listed in the following categories:

Override Properties

When the IgnoreControl property is set to true, all processing of a control is skipped, and the control's Visible property is set to false ensuring that it is not rendered in the resulting CyberStore page.

Contextual Properties

Contextual properties define specific details about the current instance of the control based on context. Context can be set by any number of factors including the log in state of the Shopper, the Site being visited, or the properties that have been established for a control.

The AttributesBag property is used internal to control processing and is the collection of attributes, or properties, and their values based on how the control is configured. The attributes in this property are set by processing the SitePages.config file as well as any specific declared property values in any registered sub controls. It allows for the passing down of all properties to a control and any registered sub controls.

The ComConfigUserData and Site_ID properties are read-only values made available to all CyberStore controls to aid in processing and establishing context about the Site and Shopper.

Example
<Control src="NovoLiteratureRackControl.ascx" 
    GoURL="/Go"
    LiteratureCategoryName="MyLiterature"
    LiteratureRackHeadlineText="Literature"
    ShowAllLiteratureWhenCategoryNotFound="false"
    ShowLiteratureRackHeadline="true"
    UseStockCodeAsCategoryName="false"
/>
CSS Classes

Pre-Defined CSS Class Names 

The output of the Literature Rack items produces HTML content in the form of a table that will include references to the following pre-defined CSS classes.

CSS Class Applied To
.LiteratureRackHeadlineHighlight The <div> wrapper that contains the headline.
.LiteratureHeadline The <span> that contains the actual headline text.
.LiteratureTable The <table> that contains the Literature items
.LiteratureRow The <tr> tag for a single row in the Literature table.
.LiteratureCell The <td> tag for a single cell in a Literature table row.
.LTR_LiteraturePDFLink The <a href...> tag of the link to the Literature item.
Control Markup

The following is the markup for this control.

Developer's Note:

To create a custom version of the control, copy all of the code below into a file of the same name and place it into your Site's control folder (e.g., ../YourSiteFolder/Control). The CyberStore page engine will then override the default markup with your customized version.

 

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="NovoLiteratureRackControl.ascx.cs" Inherits="Dovetail.Ecommerce.Controls.NovoLiteratureRackControl" %>
<div id="divLiteratureRackHeadlineHighlight" runat="server" class="LiteratureRackHeadlineHighlight">
    <asp:Label runat="server" ID="lblLiteraturerRackHeadline" CssClass="LiteratureHeadline"></asp:Label>
</div>
<table class="LiteratureTable">
<asp:DataList ID="dlLiteratureRackItems" EnableViewState="false" runat="server">
    <HeaderTemplate>

    </HeaderTemplate>
    <ItemTemplate>
    <TR class="LiteratureRow" >
        <TD class="LiteratureCell">
            <a href="<%# String.Format("{0}/5-{1}-{2}.aspx",GoURL, DataBinder.Eval(Container.DataItem, "Literature_ID").ToString(), Server.UrlEncode(DataBinder.Eval(Container.DataItem, "Title").ToString().Replace(" ", "-"))) %>" class="LTR_LiteraturePDFLink" target="_blank">
                <%# DataBinder.Eval(Container.DataItem, "Title") %>
            </a>
        </TD>
    </TR> 
    </ItemTemplate>
    <FooterTemplate>

    </FooterTemplate>
</asp:DataList>
</table>
Inheritance Hierarchy

System.Object
   System.Web.UI.Control
      System.Web.UI.TemplateControl
         System.Web.UI.UserControl
            Dovetail.Ecommerce.ControlBases.CyberStoreBaseControl
               Dovetail.Ecommerce.Controls.NovoLiteratureRackControl

See Also

Reference

NovoLiteratureRackControl Members
Dovetail.Ecommerce.Controls Namespace