Difference between revisions of "Addons"

From GExtension Wiki
Jump to navigation Jump to search
(Created page with "This article explais, how to create an addon for GExtension. == Folder Structure == The folder structure is similar to the one of Garry's Mod. First, you should create a fold...")
 
Line 55: Line 55:
 
*uninstall.php: Optional. If existent, this script will be run when the addon gets uninstalled (by navigating to '''Admin -> Settings -> Addons'''). Should be used to remove any leftovers. Must contain a function Uninstall()
 
*uninstall.php: Optional. If existent, this script will be run when the addon gets uninstalled (by navigating to '''Admin -> Settings -> Addons'''). Should be used to remove any leftovers. Must contain a function Uninstall()
  
== Working In Process ==
+
== Working In Progress ==
 
This artile will be extended soon.
 
This artile will be extended soon.
  
 
[[Category:Addons]]
 
[[Category:Addons]]

Revision as of 11:59, 19 April 2017

This article explais, how to create an addon for GExtension.

Folder Structure

The folder structure is similar to the one of Garry's Mod. First, you should create a folder: "addons/[your-addon]"

That's your main addon folder, where all files of your addon should be in. Additionally, you can create the following subfolders:

/api
/assets
/language
/main 
/pages
/request
/settings
/themes

The meaning and function of those folders are explained below. Please try to imitate the folder structure of the GExtension core files.

Useful Functions

  • string Lang(string $identifier): Returns the language string for the given identifier.
  • string AP(__DIR__): Returns the path of your addon folder (e.g. "addons/[you-addon]/"), useful if you want to access the "assets" folder.
  • string ValidateHTML(string $html): Validates a given HTML code, prevents XSS.
  • void RequiredArguments(string $arg1, string $arg2, ...): Checks if the given strings are available as $_REQUEST paramters. If true, they will be transformed to global variables with the same name. If not, a die() with error message will be executed.
  • void Error(string $reason, bool $debug): die() with format {"error":"$reason"}. Writes error in the gex_debug mysql table if $debug is set to true.
  • void Success(): die() with format {"success":true}
  • void Result(array $result): die() with the array in json format
  • string Hostname(): Returns the url to the domain (e.g. https://www.community.com/).
  • string GetCurrentLocation(): Returns the url to the GExtension directory (e.g. https://www.community.com/gmodweb/).
  • array FromJson(string $json): Same as json_decode() but with save return
  • string ToJson(array $array): Same as json_encode() but wuth save return
  • void Redirect(string $url, bool $delay = false): Initiates a JavaScript redirect, with 500ms delay if wanted
  • bool StartsWith(string $haystack, string $needle)
  • bool EndsWith(string $haystack, string $needle)
  • string FormatDate(string $date): Formats a given date string (not unix).
  • float FormatPrice(float $price): Formats a given price to two decimals
  • void Debug(string $text): Writes a text into the gex_debug mysql table.
  • void PermissionsError(bool $queue = false): Display a permissions error warning, queued for the next redirect if wanted.
  • string SteamIDTo64(string $steamid32): Converts a 32 Bit SteamID into a 64 Bit SteamID.
  • string SteamIDFrom64(string $steamid62): Converts a 64 Bit SteamID into a 32 Bit SteamID.

See assets/php/util.php and assets/php/classes/*.class.php for more functions.

Database

GExtension uses a MySQLi class which is documentated here.

The object is named $db and can be used by functions with:

$db = MysqliDb::getInstance();

or

global $db;

Addon Folder

Additionaly to the subfolders named above, the main addon folder can contain some more files:

  • addon.txt: Optional. Contains a json object with information about the addon, important at the moment are, "author" and "version".
  • install.php: Optional. If existent, gives the user the ability to run a one-time setup to complete the addon installation. Possible by navigating to Admin -> Settings -> Addons. Must contain a function Install(). The process will create a installed.txt in the main addon folder, containing the date of the installation and the steamid64 of the user who ran it.
  • uninstall.php: Optional. If existent, this script will be run when the addon gets uninstalled (by navigating to Admin -> Settings -> Addons). Should be used to remove any leftovers. Must contain a function Uninstall()

Working In Progress

This artile will be extended soon.