MVC Templates

Currently MVC templates are only supported on Windows. The MVC templates are currently in beta testing.

Features

  • The following features are configurable in the game settings:
    • Custom background images per game. Place the images in TCAdmin2\ControlPanel.MVC\Views\Default so they are used in all your custom themes.
    • Custom service home page template per game. (change whole layout of the service home page)
    • Custom status template per game. (change which information and ports are displayed)
    • Join URL
  • Responsive design.
  • Editable HTML templates.
    • Create a new theme in Settings > Themes. Set the type to MVC. A folder will be created in TCAdmin2\ControlPanel.MVC\Views where you can place your custom .cshtml and images.
    • Your custom template folder only needs to have the files that have been modified.
    • If a file doesn't exist in your custom template it will use the file from the default template. Use the same directory structure as the Default template.
    • You can safely add files to the default template folder but all the original files will be overwritten when you update TCAdmin.
    • To translate MVC templates go to Settings > Languages > select the language > Other Components > Resources.*.
MVCPreview1.png
MVCPreview2.png

Requirements

  • .NET 4.5 must be installed on your server. MVC templates will not work if you only have .NET 4.0 installed.
  • Install TCAdmin version 2.0.126.0 or greater.

Configure TCAdmin

  • Edit TCAdmin2\Monitor\TCAdminMonitor.exe.config or /home/tcadmin/Monitor/TCAdminMonitor.exe.config. Add these lines under <appSettings> (update them if they already exist).
<add key="TCAdmin.Public.MVC" value="True" />
<add key="TCAdmin.Public.MVC.WebServicesPath" value="../ControlPanel.MVC" />
  • Important for Linux users: Https is not supported by the built in web server when "TCAdmin.Public.MVC" is set to True. To use https you must configure your control panel with Nginx.
  • Restart the monitor service.

Update the WHMCS module (optional)

Make a backup of your /whmcs/modules/servers/tcadmin2_advanced/tcadmin2_advanced.php and replace it with this file. This module has the links updated to work with the MVC template format.

File:Tcadmin2 advanced mvc.zip

Linux Nginx configuration (optional)

Configure Nginx with these instructions but use this default.conf instead of one provided in that tutorial: Configure_the_TCAdmin_website_to_run_with_Nginx If your control panel website was configured with a certificate you must copy the lines starting with ssl_certificate and ssl_certificate_key from the previous configuration.

upstream tcadmin-fcgi {
        ip_hash;
        server unix:/home/tcadmin/Temp/fastcgi-socket-1;
}

upstream tcadmin-fcgi-mvc {
        ip_hash;
        server unix:/home/tcadmin/Temp/fastcgi-socket-mvc-1;
}

server {
        #the following line is required if you want to configure with Let's Encrypt
        #server_name tcadmin.yourdomain.com;
        fastcgi_temp_path /home/tcadmin/Temp 1 2;
        client_body_temp_path /home/tcadmin/Temp 1 2;
        listen   8880;
        #access_log   /home/tcadmin/Logs/nginx.log;
        index index.html index.htm default.aspx Default.aspx;

        #Support for Let's encrypt tools
        location /.well-known {
               try_files $uri $uri/ =404;
        }

        #Everything else served by fastcgi server
        location / {
               fastcgi_ignore_client_abort on;
               fastcgi_pass tcadmin-fcgi-mvc;
               include fastcgi_params;
               fastcgi_split_path_info ^(.+\.as[pmh]x)(.*)$;
               fastcgi_param PATH_INFO $fastcgi_path_info;
               fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
               fastcgi_keep_conn off;
               fastcgi_buffering off;
               gzip            off;
               client_max_body_size 100m;
       }

        #Everything else served by fastcgi server
        location /Aspx {
               fastcgi_ignore_client_abort on;
               fastcgi_index Default.aspx;
               fastcgi_pass tcadmin-fcgi;
               include fastcgi_params;
               fastcgi_split_path_info ^(.+\.as[pmh]x)(.*)$;
               fastcgi_param PATH_INFO $fastcgi_path_info;
               fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
               fastcgi_keep_conn off;
               fastcgi_buffering off;
               gzip            off;
               client_max_body_size 100m;
       }
}

Windows IIS configuration (optional)

Edit Templates in Visual Studio 2017

Available in 2.0.127.0

  • Go to settings > Themes > Create a new MVC theme. This is the templte that you will be editing in Visual Studio.
  • Copy TCAdmin2\ControlPanel.MVC and TCAdmin2\Monitor\Shared to your PC.
  • Rename ControlPanel.MVC\Web.VS2017.config to ControlPanel.MVC\Web.config
  • Edit ControlPanel.MVC\Web.config in notepad.
    • Update the value of "TCAdmin.SharedPath" to the correct path.
    • Update "TCAdmin.Database.MySql.ConnectionString" with your MySQL info.
  • Run Visual Studio.
    • select File > Open > Web Site. Select your ControlPanel.MVC folder.
    • Select Website > select Start Options.
    • In Build > Before running startup page select "No build" and click on OK.
    • You should be able to run the solution and it will load the control panel website. Only MVC content will render correctly. Classic ASP.NET content will show a server error.
    • Don't edit the files from the default template. To edit a specific page copy it from ControlPanel.MVC\Views\Default to ControlPanel.MVC\Views\(YourTemplate) keeping the same directory structure. You don't need to copy all files. If a file is not in your template the default file will be used.

Going back to the classic ASP.NET themes

If you want to go back to the classic ASP.NET themes:

  • Edit TCAdmin2\Monitor\TCAdminMonitor.exe.config and set the value of TCAdmin.Public.MVC to False
  • Restart the monitor.
Retrieved from "https://help.tcadmin.com/index.php?title=MVC_Templates&oldid=1623"