RocketCDS
Installation
Integration
RocketCDS
Installation
Integration
Installing AppThemes
Partial And Shared Templates
Razor Tokens
Dependancy
JQuery Validation
DNN Search
File Download
Rocket Tools
ChatGPT
DeepL
Simplisity JS
Command Attributes
Methods
Class Events
Field Data
Utility Functions
Ajax DropDownList
RocketContent
Create an AppTheme
Adding CSS and JS
Adding Resx
Multi-Row AppTheme
DataObjects
Razor Tokens
Shared Templates
Snippets
ArticleLimpet
ArticleRowLimpet
RocketDirectory
Create an AppTheme
DataObjects
Razor Tokens
Shared Templates
MenuManipulator
Category Menu
Text Search
Property Filter
Tag Filter
Secure Document
Snippets
RSS feed
Related Articles
ArticleLimpet
RocketForms
Create an AppTheme
DataObjects
Functionality
Module Settings
# AppTheme Dependancies AppThemes often have data and files that they are dependant on. There is a file in the AppTheme that can define those dependancies. It is found in the subfolder "dep", in XML format, with an extension of ".dep". ``` /DesktopModules/RocketThemes/#AppThemeProjectName#/#systemkey#.#AppThemeName#/#version#/dep ``` And has different sections. Not all sections are required for some AppThemes or systems. ## Dependancy File Section Dependancies are CSS or JS files that are required for the theme to function. The dependancy system stops duplicate CSS and JS files being injected. Dependancies ONLY work on the Front View of the website. For Admin View use "AdminFirstHeader.cshtml" or "AdminLastHeader.cshtml" templates. ### ECO Mode ECO Mode is a module level flag setting that stops the dependancy system from injecting any dependancies with "ecofriendly" set to false. ### Do NOT inject with Skin In some cases the CSS file is injected with the Skin. In these cases we can choose to ignore the injection by using the name of the skin the the skinignore node. ```
rocketw3,anotherskin>
``` This supports CSV list and will check if SkinSrc contains any of the skin names. **Tokens** \{domainurl} = Protocol and domain URL of RocketAPI. \{appthemefolder} = Relitive URL of the from view AppTheme. \{appthemesystemfolder} = Relitive URL of the system. \{jquery} = Injects Jquery into the view page. *Example:* ```
js>
{jquery}
true
css>
/DesktopModules/DNNrocket/css/w3.css
true
rocketw3,anotherskin>
css
{domainurl}{appthemefolder}/css/HtmlContent.css>
true
``` ## Module Templates A ModuleTemplate is part of an Apptheme. It defines what templates and commands that can be used on a Module at startup. The XML contains meta data that is used by the system, there is no UI in the apptheme editor, this data is static to the AppTheme. *Example:* ```
view.cshtml
List View
list
hozcatmenu2lvl.cshtml
Horizontal Category Menu (2 levels)
catmenu
``` file = File name of the template. name = Friendly name. cmd = The data command that will be used. ### cmd values RocketDirectory listdetail = Display detai or list by using "articleid" param. (default) list = Same as listdetail. (Deprecated) listonly = list data only detailonly = article data only catmenu = Category Data satellite = List data without populating it. The call for data should be made in the razor template. ## Admin Panel Interfaces An AppTheme for "rocketdirectoryapi" system (or a wrapper system) can select which options are available in the Admin Panel of the system. By default options are shown, if you want to hide options then you need to have a "adminpanelinterfacekeys" section in the dependancy file of the AppTheme. there are 5 options that can be shown. - Articel Admin - Category Admin - Property Admin - Settings Admin - Portal System Admin (Host only) The superuser will always see all admin options. All activated plugins will be shown on the Admin Panel. Setting the show node to "False" will hide the option. *Example:* ```
articleadmin
true
categoryadmin
true
propertyadmin
true
settingsadmin
true
rocketdirectoryadmin
true
``` ## QueryParams With the directory system you may have a list and detail structure. ### Format ```
articleid
rocketdirectoryapi
rocketnewsapi
article
``` *queryparam = The URL param that will be looked for. The value of which is used to read records form the Database.* *tablename = The name of the table that will be used. Usually "rocketdirectoryapi" or "rocketecommerceapi".* *systemkey = The systemkey for the queryparam.* The QueryParams do 2 important actions when the detail page needs to be seen. **SEO** and **Activation of the Detail Display**. #### Categories The category article list query param is also defined in the dependancy file. ```
catid
rocketdirectoryapi
rocketnewsapi
category
``` This allow for each AppTheme to have it's own categoey menu injected into the DDRMenu. ### SEO The detail should contain SEO data in the header. The SEO data is read by using a URL parameter, this paramater is defined in the dependacies file. Saving the directory settings will also update the Page data so the Meta.ascx can capture the detail data with an ItemId. The data record must have some default field names that will be used for SEO. metatitle = "genxml/lang/genxml/textbox/seotitle" or "genxml/lang/genxml/textbox/articlename" metadescription = "genxml/lang/genxml/textbox/seodescription" or "genxml/lang/genxml/textbox/articlesummary" metatagwords = "genxml/lang/genxml/textbox/seokeyword" *NOTE: Keywords are no longer used by search engines and do not have to be included.* It will also look for the first image called "imagepatharticleimage" or "imagepathproductimage". These field names are the default names used in the Shared Templates. If you are not using the shared templates you must use the same names to make the SEO header work. ### DDRMenu Provider The categories can be added to the menu by the menu provider. (See MenuManipulator documentation) ```
RocketDirectoryAPI
RocketDirectoryAPI.Components.MenuDirectory
rocketblogapi
``` ### Activation of the detail display The detail page is displayed in a module by using the itemid in the URL. The name of the query param for the itemid is defined in the dependacy file. The systemkey is also defined, so that only modules using the deifned systemkey are activated for detail. In some situation multiple systems/module may want to display the detail. This can be done but it will affect the SEO, only the first detail SEO will be added to the page. ## DNN search RocketContent can use the dependacy file to define what field data should be included in the DNN search. *NOTE: Other Rocket systems like RocketDirectory have deifned fields for the search and therefore does not use this section* ### Dependacy File Section (example) ```
genxml/lang/genxml/textbox/title
genxml/lang/genxml/textbox/richtext
genxml/lang/genxml/textbox/richtext
``` The dependacy section only has 1 entry, a CSV list can be used to concatinate multile fields. ### AdminRow.cshtml (example) ```
@ResourceKey("DNNrocket.heading")
@EditFlag(sessionParams) @TextBox(info, "genxml/lang/genxml/textbox/title", " id='title' class='w3-input w3-border' autocomplete='off' ", "", true, 0)
@EditFlag(sessionParams)
@CKEditor4(info, "genxml/lang/genxml/textbox/richtext", true)
``` ## Example of a full dependancy file *Example:* ```
js>
{jquery}
true
css>
/DesktopModules/DNNrocket/css/w3.css
true
css
{domainurl}{appthemefolder}/css/HtmlContent.css>
true
view.cshtml>
List View>
list>
hozcatmenu2lvl.cshtml>
Horizontal Category Menu (2 levels)>
catmenu>
articleadmin
true
categoryadmin
true
propertyadmin
true
settingsadmin
true
rocketdirectoryadmin
true
articleid
rocketdirectoryapi
genxml/lang/genxml/textbox/title
genxml/lang/genxml/textbox/richtext
genxml/lang/genxml/textbox/richtext
```