IGB Documentation
From EVEDev
| In Game Browser Documentation - Category Home - Documentation Home |
The ingame web browser is a simple but effective HTML-like method for creating interfaces accessible within the game to applications.
Web browser is somewhat overstating things in regards to modern browsers such as Firefox and Opera- the IGB is a limited tool and thus should not be expected to behave like a real web browser. According to CCP, it supports HTML 3.2 and some parts of HTML 4.0.[1] The user agent header the IGB currently use is "EVE-minibrowser/3.0".
The documentation for the IGB is still fairly sketchy- although documentation from CCP exists it is somewhat out of date, hence this recent documentation effort. As such, please do not copy function references or tutorials from CCP documentation- this documentation should only cover proven, workable and tested solutions in the current (Trinity) EVE client.
Contents |
[edit] Page Design
Sections covering design of IGB-compliant pages, best practices, and the language the IGB understands.
[edit] Forms
Which form components are supported and with what limitations
here is what i(qdel3) know
| Tag | Supported parameters | Lmitations |
|---|---|---|
| <input> | type
value name | type cannot be 'Button'
and as far as i know you cant set size on texy fields also there is no support for the enabled parameter so you cant make a text field or button disabled for editing or clicking |
[edit] CSS
- Supports
- background
- border-collapse
- border-spacing
- color (HEX ONLY)
- font-size
- line-height
- margin
- padding
- text-align
- Does NOT support
- border
- Entire list of CSS colors, use Hex instead
- RGB function
- color:RGB(XXX,XXX,XXX);
- vertical-align
- Always appears as if vertical-align:top was set, default for most browsers is vertical-align:middle
[edit] Other
Uses alt='XXX' tag for tooltips. Does NOT support the title='XXX' tag for tooltips.
[edit] Special Links
Sections covering links to display systems, routes and regions/constellations in the ingame map browser, or type/player information when clicked.
[edit] Maps
Show info on solar system:
<a href="showinfo:5//{SYSTEM_ID}">Solar System</a>
[edit] Corporations
Show Info on Corporation
<a href="showinfo:2//{CORP_ID}">Corp Name</a>
[edit] Types
Type link information
[edit] People
People link information
Show Info on Player
<a href="showinfo:{TYPE_ID}//{PILOT_ID}">Pilot Name</a>
since you usually dont know the specific typeid (eg the previously stated '1377' is 'CharacterGallente') you should use '1' as typeid which is the group 'Character'
Pilot Portrait
<img src="portrait:{PILOT_ID} size="{PIXELS}">
[edit] Authentication and Trust
The IGB supports a rudimentary trust mechanism to prevent rogue IGB websites harvesting potentially sensitive data from the character viewing the page.
DO NOT RELY ON THE SECURITY OF THIS MECHANISM FOR AUTHENTICATING USERS!!
The IGB headers can be faked very easily- if you validate corporation/alliance data via the IGB your site is insecure and should use the API keys instead.
[edit] Trust Implementations
Various language implementations of Trust mechanisms.
[edit] Automatic Refreshing
The IGB can be told to refresh via three methods. The simplest and least powerful is the old "meta refresh" HTML tag within the header of the document. The IGB seems to place restrictions on exactly what is allowed here; for example it appears to fail to honor actual refresh requests if a full URL is specified, and occasionally when GET parameters are specified.
If at all possible it is much more reliable to have your web server send a refresh header, which is what the meta refresh is a poor imitation of. The IGB supports two methods of refreshing via the refresh header, and both can be used simultaneously. The first method is the simple timed refresh, for example:
<?php
header('refresh:10;URL='.$_SERVER['PHP_SELF']);
?>
This will cause the page to automatically refresh every 10 seconds.
The second method is to use the special eve IGB interval called sessionchange which will cause a reload only when the user changes sessions in game; changing systems, docking, and undocking are session changes. This is accomplished by simply substituting the timeout time above with the word 'sessionchange'.
<?
header('refresh:sessionchange;URL='.$_SERVER['PHP_SELF']);
?>
These two methods can be combined simultaneously to periodically refresh the IGB when the user is in a system, and instantly refresh it when they switch to another system, dock, or undock, to provide timely information.
Note that if you are using "trusted mode", it is not uncommon for session changes to submit invalid data from the IGB; most often I have seen the IGB submit HTTP_EVE_STATIONNAME and HTTP_EVE_NEARESTLOCATION both set to 'None' when using the sessionchange refresh. It may be prudent to check for this situation and if it is detected, issue a timed refresh on a short interval, to acquire valid data.
This code will cause the IGB to refresh on a session change when one occurs, or every five minutes otherwise.
<?
header('refresh:300;URL='.$_SERVER['PHP_SELF']);
header('refresh:sessionchange;URL='.$_SERVER['PHP_SELF']);
?>
[edit] Headers
Once IGB trusts your site, it includes several HTTP headers that indicate the location and identity of the pilot. All of the data is supplied by the client and trivial to forge so none of it should be trusted unless other means of verification have been established.
| Name | PHP Code | Example Value | Notes |
|---|---|---|---|
| General | |||
| Eve.Trusted | $_SERVER['HTTP_EVE_TRUSTED'] | yes | If this is not equal to "yes", then none of the other headers will be present. |
| Eve.Serverip | $_SERVER['HTTP_EVE_SERVERIP'] | 87.237.38.200:26000 | This will tell you if the pilot is on tranquility, multiplicity, or singularity. |
| Character | |||
| Eve.Charname | $_SERVER['HTTP_EVE_CHARNAME'] | WoogyDude | That's the character's name. |
| Eve.Charid | $_SERVER['HTTP_EVE_CHARID'] | 1164427832 | That's the character's ID. |
| Eve.Regionname | $_SERVER['HTTP_EVE_REGIONNAME'] | Delve | Shows what region the character is currently in. |
| Eve.Constellationname | $_SERVER['HTTP_EVE_CONSTELLATIONNNAME'] | W-4U1E | Shows what constellation the character is currently in. |
| Eve.Solarsystemname | $_SERVER['HTTP_EVE_SOLARSYSTEMNAME'] | QY6-RK | Shows what solarsystem the character is currently in. |
| Eve.Nearestlocation | $_SERVER['HTTP_EVE_NEARESTLOCATION'] | QY6-RK VI - Moon 24 | When the nearest celestial object is a moon. |
| QY6-RK IV - Asteroid Belt 1 | When the nearest celestial object is an asteroid belt. | ||
| QY6-RK IV | When the nearest celestial object is a planet. | ||
| Stargate (J-LPX7) | When the nearest celestial object is a stargate. | ||
| None | When the pilot is docked. | ||
| Eve.Stationname | $_SERVER['HTTP_EVE_STATIONNAME'] | None | When the pilot is not docked. |
| Tash-Murkon Prime V - Moon 1 - Tash-Murkon Family Bureau | When the pilot is docked. | ||
| Corporation | |||
| Eve.Corpname | $_SERVER['HTTP_EVE_CORPNAME'] | GoonFleet | Name of the character's Corporation. |
| Eve.Corpid | $_SERVER['HTTP_EVE_CORPID'] | 749147334 | ID of the character's Corporation. |
| Eve.Corprole | $_SERVER['HTTP_EVE_CORPROLE'] | 2199024312320 | Binary number reveals roles, shows "0" if no roles. |
| Alliance | |||
| Eve.Alliancename | $_SERVER['HTTP_EVE_ALLIANCENAME'] | GoonSwarm | Not sent if the character's corporation is not in an alliance. |
| Eve.Allianceid | $_SERVER['HTTP_EVE_ALLIANCEID'] | 824518128 | Shows "None" if character's corporation is not in an alliance. |

