Fork me on GitHub
2sxc 9.33 for DNN 7 to 9
Website Builder, Content Manager, App-System: open-source and amazing
You are here: Home  >  Docs

2sxc Documentation

We are currently re-working the documentation structure. The new structure will be:

  1. API documentation for Razor/C#, JavaScript (incl. $2sxc and $cms), WebServices, Edit-UIs etc. will be found on the 2sxc wiki.
  2. Features-documentation will be found on this page
  3. Learning tutorials and concepts will be in Learn
  4. Blogs, examples etc. are of course in Blog

Features of 2SexyContent with Details and How-To-Use

Filter by

A content-type defines the structure of an information-set. A news-item has a title, body and date, whereas a person also needs first/last names, birthday, etc. (added 01.00.00)
Tags: Field Configuration, Entities, Content Types, For beginners,

Enable or disable various languages in 2sxc. (added 04.00.00)
Tags: Multi-Language, For beginners,

Hide all complicated settings like Administration from the content-editor by creating a user group called 2sxc Designers. (added 03.00)
Tags: For beginners, For experts, Editing,

Awesome Image-Resizer with really neat features. (added 05.03.00)
Tags: Images, HTML and CSS, For beginners, Design, Token, Razor, Linking, Lightbox,

Once you apply a list to a template, you suddenly have multile items presented - maybe as a table or as a designed list. What you then often need is a way to add a title before that or create settings for the way the list is presented. (added 03.00.00)
Tags: Razor, Token, Lists, Lists with Details, For beginners,

Designed content can be one item, or it can be an entire list of items. This is very easy to do. (added 03.00.00)
Tags: Razor, Token, Lists, Design, For beginners,

With the simple toolbar you can enhance the editing experience. (added 03.00.00)
Tags: Token, Razor, For beginners,

2sxc offers powerfull - we believe the best possible - multi-language implementation. (added 04.00.00)
Tags: Multi-Language, For beginners,

There are cases where certain parts of an app should be shared across multiple zones / portals. (added 02.00.00)
Tags: Admin and Edit Dialogs, Apps, For beginners, Razor, Token,

2sxc comes with two built in view engines. The Token-Engine uses simple placeholders like [Content:Title] and allows you to do amazing things - with very simple technologies. (added 01.00.00)
Tags: Token, Design, For beginners, for designers, for javascript developers, AngularJS, HTML and CSS, JavaScript, Lists, Multi-Language, Visual Query - Data Pipeline Designer,

Now any view can have a name in the URL - so that a module showing that App can easily change between views just by adding "Details" or "CategoryList" to the URL. Simple and powerful. (added 06.06.00)
Tags: new in 6.x, For beginners, Token, Apps,

Look inside

Content Item

These are the values a content-editor can manage.
Name Type Value
Title System.String App Information - Object and Token
Teaser System.String Using the App-Object you can access path information, settings and resources.
AddedInVersion System.String 05.05.00
DescriptionLong System.String <p>This new variable / token was introduced to help templates become flexible.&nbsp;</p> <p>Usage Tokens</p> <ul> <li>[App:Path]/scripts/knockout.js</li> <li>[App:PhysicalPath]</li> <...
ImageTeaser System.String
Image System.String
DocumentedOnPage System.String Page:463
StatusDocumentation System.String 3
StatusDevelopment System.String 10
DesignedContent ToSic.Eav.Data.EntityRelationship
ReplacementDocs null
Tags ToSic.Eav.Data.EntityRelationship 1840,1841,1910,2440
RelatedFeatures ToSic.Eav.Data.EntityRelationship 1831
DemoAppGuid System.String
DemoPage System.String


Presentation Item

These are additional, optional presentation instructions a content-editor can manage. If none are entered, a default set (predefined by the designer) will be used.

No Presentation parameters specified, using default presentation for this item.


Template file

@using DotNetNuke.Entities.Modules
@using ToSic.SexyContent.Search
@using ToSic.Eav.DataSources
@functions
{
    public override void CustomizeData()
    {
        // Don't customize anything, nothing to customize in this case
        //throw new Exception("demo");
        var relationshipFilter = CreateSource<RelationshipFilter>(Data["Default"]);
        relationshipFilter.Relationship = "Tags";
        relationshipFilter.Filter = "[QueryString:Tag]";
        if (relationshipFilter["Default"].List.Count() > 0)
        {
            Data.In["Default"] = relationshipFilter["Default"];
        }
    }

    /// <summary>
    /// Populate the search - ensure that each entity has an own url/page
    /// </summary>
    /// <param name="searchInfos"></param>
    /// <param name="moduleInfo"></param>
    /// <param name="startDate"></param>
    public override void CustomizeSearch(Dictionary<string, List<ISearchInfo>> searchInfos, ModuleInfo moduleInfo, DateTime startDate)
    {

        foreach (var si in searchInfos["Default"])
        {
            si.QueryString = "mid=" + moduleInfo.ModuleID + "&feature=" + si.Entity.EntityId;
        }
    }


}@if (Request.QueryString["feature"] == null)
{
    // Note: the code inside _List.cshtml could also be inserted right here
    // I just took it out to make everything a bit easier to read
    // The Render-Page will execute that CSHTML and include all data that is in the current view
	@RenderPage("_2SexyContent Feature - List.cshtml");
}
else
{
    // This one will also execute another CSHTML, but will add a variable with the URL-parameter
	@RenderPage("_2SexyContent Feature - Details.cshtml", Request.QueryString["Feature"]);
}