Sample Module

From TCAdmin 2.0 Documentation
Revision as of 00:09, 21 May 2020 by TCAHelp (talk | contribs) (→‎Sample View Page)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

This is an example of a module that can be installed onto your master which will work with TCAdmin.

Sample View Page

Sample View Page - HelloWorld.cshtml

@model Game.HelloWorldModel
@{
    Layout = this.GetTemplateFile("Shared/Main.cshtml", true);

    <script>
        $(document).ready(function () {
            document.title = "@TCAdmin.SDK.Web.MVC.Template.GetSelectedTemplateTitle() " + "Hello World!"; // Sets the page title
            $('.header-text').html("Hello World - A Sample Module") // Sets the page header
        });
    </script>
}

@section head{

}

@section sidebar{
    @Html.Action("_PageIcons", "Service", new { id = Model.Service.ServiceId }) @*Adds the service buttons to the sidebar*@
}
<br />
@Model.Message @*Displays the 'Hello World' message*@
<br />
<br />
@Model.ServiceStartedOn @*Displays information about the service startup time & process id*@

Sample Controller

Sample Controller - HelloWorldController.cs

using System.Web.Mvc;
using TCAdmin.SDK.Web.MVC.Controllers;

namespace Game
{
    public class HelloWorldModel
    {
        public string Message { get; set; }
        public string ServiceStartedOn { get; set; }
        public TCAdmin.GameHosting.SDK.Objects.Service Service { get; set; }
    }

    public class HelloWorldController : BaseServiceController
    {
        [HttpGet]
        [ParentAction("Service", "Home")]
        public ActionResult Index(int id)
        {
            //Make sure the user has permission this feature
            EnforceFeaturePermission("FileManager");

            var model = new HelloWorldModel();
            //Gets the current service
            model.Service = TCAdmin.GameHosting.SDK.Objects.Service.GetSelectedService();
            //Sets the message variable
            model.Message = "Hello World!";
            //Gets information about the service startup
            model.ServiceStartedOn = string.Format($"{model.Service.ConnectionInfo} was started on {TCAdmin.SDK.Misc.Dates.UniversalTimeToCurrentTimeZone(model.Service.Status.StartTime)} with process id {model.Service.Status.ProcessId}");


            return View("HelloWorld", model);
        }
    }
}

Installing The Custom Module

How to install the module after compiling it with TCAdmin:


1. Copy SampleModule.dll to TCAdmin2\ControlPanel.MVC\bin-extensions

2. Copy HelloWorld.cshtml to ControlPanel.MVC\Views\[ThemeFolder]\Game\Service

3. Clear the contents of TCAdmin2\Cache and restart the monitor

4. You can then navigate to the module in your browser e.g http://127.0.0.1/Service/HelloWorld/1


Module Preview

What this module looks like:

ModuleView1.png

Module Download

File:SampleModule.zip

Retrieved from "https://help.tcadmin.com/index.php?title=Sample_Module&oldid=2116"