IGB Documentation

From EVEDev

Jump to: navigation, search
Image:Api.pngIn 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.

[edit] External Links

http://bughunters.addix.net/igbtest/IGB-commands.html

Personal tools