Example #1
0
function handle_registration($Db)
{
    global $user;
    if (isset($_POST['username']) && isset($_POST['password']) && $_POST['password'] == $_POST['password2'] && isset($_POST['email'])) {
        if ($user->registerUser($_POST['username'], $_POST['password'], $_POST['email'])) {
            if (isset($_POST['import'])) {
                require_once 'manage.php';
                add_api_key($Db, $user->uid, $_POST['usid'], $_POST['apik'], "", $notes = "");
            }
            redirect("/" . $_SESSION['redirect']);
        } else {
            echo show_registration($Db) . "<a class=\"smalllink\" href=\"index.php\">[api input]</a>&nbsp;</body></html>";
            insert_header("Register");
        }
    } else {
        echo show_registration($Db) . "<a class=\"smalllink\" href=\"index.php\">[api input]</a>&nbsp;</body></html>";
    }
    insert_header("Register");
}
Example #2
0
<?php

/* $Id: about.php,v 1.2 2007-03-20 05:23:06 quinn Exp $
 * --------------------------------------------------------------------
 * Keystone retreiver about page
 */
require 'includes.phpi';
insert_header();
?>

<h3>What is This?</h3>

<p>
This is an early prototype of a new metasearch technology developed by Index Data.
It is scheduled for general release during the spring of 2007. It enables
efficient metasearching of up to hundreds of databases at the same time
using Z39.50, SRU/W, or proprietary protocols. It is a powerful,
open-source-based alternative to proprietary, closed-source metasearch
alternatives.
</p>

<p>
The technology supports on-the-fly merging, relevance-ranking, or sorting by
arbitrary data elements. It also supports any number of result facets for
limiting result sets by subject, author, etc.
</p>

<p>
Please <a href="mailto:info@indexdata.com">contact us</a> if you are
interested in more information about our metasearch technology.
</p>
Example #3
0
<?php

/* 
	this example uses the default values as entered in admin alng with the built-in 'insert_header'
	function to build the header
	
	clearly, with the exception of 'intermediate theme' appended to the subtitle, this example has the same 
	result as using the default header, but it illustrates the values that can be set manually if required
	
	for instance - you may wish to include a date variable, which wouldn't be possible via the settings pages
*/
// custom nav array - this will override anything in the Links > Menu
$link = array();
$nav_links['site_menu'] = array($link[] = array('title' => 'Custom Header Nav:', 'link' => '#'), $link[] = array('title' => 'Facebook', 'link' => 'http://facebook.com'), $link[] = array('title' => 'Google', 'link' => 'http://google.com'));
// set values
$title = $config['site']['title'];
$subtitle = $config['site']['subtitle'] . ' - intermediate theme';
$panel = $config['site']['header_panel_html'];
$nav = insert_nav('header', $nav_links);
// use built-in function to wrap around the html markup and output
echo insert_header($title, $subtitle, $panel, $nav);
Example #4
0
<?php

$config['site']['doctype'] = 'html5';
$head_content = '';
show_head($head_content, $config);
?>
<body>

	<div id="page_wrapper">
	

	
	<div id="content_wrapper">
	
		<?php 
echo insert_header($config['site']['title'], $config['site']['subtitle']);
?>
 	
		<div id="aside">the aside</div>		
		<?php 
echo insert_main_content($body_content['main']);
?>
		

		
	</div>
	
	</div>
<div id="footer">this is the footer</div>	
</body>
</html>
 public function skills()
 {
     //print_r($dB);
     $sql = getenv('DB_HOST');
     $sql_u = getenv('DB_USERNAME');
     $sql_p = getenv('DB_PASSWORD');
     $db = getenv('DB_DATABASE');
     $Db = new eveDb($sql, $sql_u, $sql_p, $db);
     $userid = 4526453;
     $apikey = "REcp21O2Djg2uSfv5ioLLpGuJyeVh4rxrd3sdk8V1TDGRpNSuzXTAk67gsoGh6MJ";
     $chid = 93501378;
     $charSelect = true;
     //$charSelect = false;
     //require_once("login.php");
     $_SESSION['redirect'] = "index.php";
     $cookielogin = false;
     if (isset($_GET['newapi'])) {
         clear_api_cookie();
     }
     // load variables n such - defined here temporary before being set to constants later on
     if (isset($_GET['usid'])) {
         $userid = trim($_GET['usid']);
     }
     if (isset($_GET['apik'])) {
         $apikey = trim($_GET['apik']);
     }
     if (isset($_GET['chid'])) {
         $chid = trim($_GET['chid']);
     }
     if (isset($_GET['key'])) {
         $short_api_key = trim($_GET['key']);
     }
     /*if (!login_load_creds($Db, (isset($userid) && isset($apikey) || isset($short_api_key)))) {
     	// handle cookie stuff
     	if (isset($_COOKIE["api"]) && ($_COOKIE["api"] != "") && !isset($userid) && !isset($short_api_key)) { // if a cookie was present, and we were not passed args via get, try to use what is in the cookie
     		$login = explode(',',$_COOKIE["api"]);
     		$cookielogin = true;
     		if ($login[0] == "api") {
     			$userid = trim($login[1]);
     			$apikey = trim($login[2]);
     			if (count($login) > 3)
     				$chid = trim($login[3]);
     		} else 
     			$short_api_key = trim($login[1]);
     			
     		$_GET['save'] = "1";
     	}
     } else 
     		$_GET['save'] = "1";*/
     if (isset($short_api_key)) {
         // get stored apikey
         $charSelect = false;
         $ret = retrieve_api_key($Db->link, $short_api_key);
         if ($ret != null) {
             $chid = $ret["chid"];
             $userid = $ret["usid"];
             $apikey = $ret["apik"];
         } else {
             unset($short_api_key);
             // invalid key
             $cookielogin = false;
         }
     }
     if (!isset($chid) && isset($_GET['chid'])) {
         $chid = trim($_GET['chid']);
         $charSelect = true;
     }
     define("COOKIE_LOGIN", $cookielogin);
     if ((!isset($apikey) || !isset($userid)) && !isset($short_api_key)) {
         $info = "";
         if (isset($_GET['fittingid'])) {
             $result = mysql_query("SELECT * FROM " . DB_PREFIX . FITTINGS_TABLE . " WHERE keyv=\"" . mysql_real_escape_string($_GET['fittingid']) . "\"", $Db->link);
             if ($result != false && mysql_num_rows($result) > 0) {
                 // yay! got a cached value
                 $row = mysql_fetch_assoc($result);
                 mysql_free_result($result);
                 $info = "Your ability to use the fitting '{$row['name']}' ({$row['ship']}) will be shown after you log in.";
             }
             $Db->close();
         }
         api_input($info);
         // die
     }
     define("USER_ID", $userid);
     define("API_KEY", isset($_GET['oldkey']) && $_GET['oldkey'] == "1" ? "old_{$apikey}" : $apikey);
     $multiplechars = false;
     if (strpos(API_KEY, "old_") === 0) {
         // old api key, must load characters and other horseshit
         $keyinfo = 1;
         $chars = $Db->fetchApiChars(USER_ID, API_KEY);
         if (!$chars) {
             fatal_error("Unable to load API. Verify the key is correct and not expired.");
         }
         $keys = array_keys($chars);
         define("KEY_MASK", isFullApi($Db->link, $keys[0], USER_ID, API_KEY) ? 268435455 : 8);
         $multiplechars = count($chars) > 1;
         if (!$multiplechars) {
             $chid = $keys[0];
         }
         if (isset($chid)) {
             foreach ($chars as $ch_id => $char) {
                 if ($ch_id == $chid) {
                     define("CHAR_NAME", $char["name"]);
                 }
             }
             if (!defined("CHAR_NAME")) {
                 fatal_error("The character ID was not found on this account.");
             }
         }
         define("CORP_MODE", false);
         define("KEY_TYPE", "Account");
     } else {
         // modern fancy ass keys ////////////////////////
         $keyInfo = eveApi\cache_api_retrieve($Db->link, "/account/APIKeyInfo.xml.aspx", array("keyID" => USER_ID, "vCode" => API_KEY), 5 * 60)->value;
         if ($keyInfo->error) {
             fatal_error("Unable to load API. Verify the key is correct and not expired.");
         }
         define("KEY_MASK", (double) $keyInfo->result->key["accessMask"]);
         $multiplechars = count($keyInfo->result->key->rowset->row) > 1;
         if (!$multiplechars) {
             $chid = (string) $keyInfo->result->key->rowset->row[0]["characterID"];
         }
         if (isset($chid)) {
             $char = $keyInfo->api->xpath("//row[@characterID='{$chid}']");
             if (count($char) == 0) {
                 fatal_error("The character ID was not found on this account.");
             }
             define("CHAR_NAME", (string) $char[0]["characterName"]);
         }
         define("KEY_TYPE", (string) $keyInfo->result->key["type"]);
         if (KEY_TYPE == "Corporation") {
             define("CORP_MODE", true);
             define("CORP_ID", (string) $keyInfo->result->key->rowset->row[0]["corporationID"]);
             define("CORP_NAME", (string) $keyInfo->result->key->rowset->row[0]["corporationName"]);
             $multiplechars = false;
         } else {
             define("CORP_MODE", false);
         }
     }
     if (isset($short_api_key) && $charSelect) {
         $urlAuthInfo = "key={$short_api_key}&chid={$chid}";
     } elseif (isset($short_api_key) && !$charSelect) {
         $urlAuthInfo = "key={$short_api_key}";
     } else {
         $urlAuthInfo = (isset($chid) ? "chid={$chid}&" : "") . "usid=" . USER_ID . "&apik=" . API_KEY;
     }
     define("FULL_URL", "?" . $urlAuthInfo . (isset($_GET['save']) && $_GET['save'] == "1" ? "&save=1" : ""));
     /* . ((!isset($_GET['view']) && isset($_GET['fittingid'])) ? "&fittingid=$_GET[fittingid]" : "")*/
     if ($multiplechars && !isset($chid)) {
         // must resolve a character id
         if (!isset($chars)) {
             $chars = $Db->fetchApiChars(USER_ID, API_KEY);
         }
         character_select($Db, $chars);
     }
     define("CHAR_ID", $chid);
     define("USER_NAME", CORP_MODE ? CORP_NAME : CHAR_NAME);
     // set to corp name or char name depending on key type
     if (!CORP_MODE && isset($_GET['save']) && $_GET['save'] == "1") {
         // save api key into a cookie if present
         if (isset($short_api_key)) {
             $auth = "key,{$short_api_key}";
         } else {
             $auth = "api," . USER_ID . "," . API_KEY . "," . CHAR_ID;
         }
         setcookie("api", $auth, time() + 60 * 60 * 24 * 30);
     }
     // load pages into registered_pages (all pages),eligible_pages (supported by key type),enabled_pages
     require_once "audit.pages.php";
     if (isset($_GET['makeshorturl'])) {
         $key = make_short_key($Db->link, USER_ID, API_KEY, CHAR_NAME, CHAR_ID);
         if ($key) {
             header("Location: " . SELF_URL . "key={$key}" . (isset($_GET['view']) ? "&view=" . $_GET['view'] : ""));
             die("<html><body><a href=\"" . SELF_URL . "key={$key}" . (isset($_GET['view']) ? "&view=" . $_GET['view'] : "") . "\">Click here to continue.</a><body></html>");
         } else {
             fatal_error("Unable to create key.", "Please try again later.", true);
         }
     }
     $infobar = "<span class=\"infobar\">&lt;&nbsp;";
     $getpage = "none";
     if (isset($_GET['view'])) {
         $getpage = trim($_GET['view']);
         if (!isset($eligible_pages[$getpage])) {
             $getpage = "none";
         }
     }
     foreach ($eligible_pages as $name => $page) {
         if (isset($enabled_pages[$name])) {
             if ($getpage == "none") {
                 $getpage = $name;
             }
             if ($name != $getpage) {
                 $infobar .= "<a href=\"" . FULL_URL . "&view={$name}\">{$name}</a>";
             } else {
                 $infobar .= "<span class=\"current_page\">{$name}</span>";
             }
         } else {
             $infobar .= "<span class=\"disabled_page\">{$name}</span>";
         }
         $infobar .= "&nbsp;";
     }
     if ($getpage == "none") {
         fatal_error("This API has no pages that the Jackknife can display.");
     }
     define("PAGE_VIEW", $getpage);
     $infobar .= "|&nbsp;";
     $infobar .= "<a href=\"" . SELF_URL . "newapi\">new api</a>&nbsp;";
     if ($multiplechars && $charSelect) {
         if (isset($short_api_key)) {
             $infobar .= "<a href=\"" . SELF_URL . "key={$short_api_key}\">char select</a>&nbsp;";
         } else {
             $infobar .= "<a href=\"" . SELF_URL . "usid=" . USER_ID . "&apik=" . API_KEY . (isset($_GET['save']) && $_GET['save'] == "1" ? "&save=1" : "") . "\">char select</a>&nbsp;";
         }
     }
     if (!isset($short_api_key)) {
         $infobar .= "<a href=\"" . FULL_URL . "&makeshorturl&view=" . PAGE_VIEW . "\">short url</a>&nbsp;";
     }
     //$infobar.="|&nbsp;".get_loginbar().get_api_bar();
     $infobar .= "&gt;&nbsp;<b>" . strtoupper(KEY_TYPE);
     $infobar .= "</b></span>";
     //$infobar .=get_form_divs();
     //////// FINAL OUTPUT
     if (PAGE_VIEW == "onepage") {
         insert_header("Ataglance for " . USER_NAME);
         echo $infobar . "<br>";
         $next = 1;
         $time_start2 = microtime_float();
         foreach ($enabled_pages as $name => $page) {
             if ($page == "onepage") {
                 continue;
             }
             $error = !$page->GetOutput($Db);
             if ($error) {
                 //fatal_error("API: " . $page->Output);
             } else {
                 echo "<br>";
                 echo "<a name=\"s" . ($next - 1) . "\"></a>";
                 echo "<span style=\"font-size: 70%\"><a href=\"#s{$next}\">skip to next section</a></span><br>";
                 $next++;
                 echo "<h2>" . ucfirst($name) . "</h2>";
                 if ($page->Header != "") {
                     echo $page->Header . "<br>";
                 }
                 echo $page->Output . "<hr>";
             }
         }
         echo "<a name=\"s" . ($next - 1) . "\"></a>";
         $time_end2 = microtime_float();
         $time_exec = $time_end2 - $time_start2;
         echo "<br><span style=\"font-size:80%;\"><a href=\"#top\">top</a></span><br>\n";
         echo "<span style=\"font-size:80%;\">";
         if ($Db->queries != 0) {
             echo "\n" . $Db->queries . " queries<br>";
         }
         echo "exec time: {$time_exec} s<br>";
         echo "</span>";
         echo "</body></html>";
     } else {
         $page = $eligible_pages[PAGE_VIEW];
         $error = "";
         //print_r($page->GetOutput($Db));
         //exit;
         $error = !$page->GetOutput($Db);
         echo $infobar . "<br>";
         if ($error) {
             fatal_error("API: " . $page->Output, "", true);
         } else {
             $page->SetHeaders();
             insert_header($page->Title);
             if ($page->Updated) {
                 echo "<span class=\"updated_text\">" . $page->Updated . "</span><br>";
             }
             if ($page->Header != "") {
                 echo $page->Header . "<br>";
             } else {
                 echo "<span style=\"font-size:450%\">" . USER_NAME . "</span><br>";
             }
             echo $page->Output . "<br>";
             echo $page->Times . "<br>";
             echo "</body></html>";
         }
     }
     //print_r($chars);
     echo "FInal";
 }
Example #6
0
                            if ($email && $pass) {
                                $pass .= " and ";
                            }
                            if ($pass || $email) {
                                mail($_SESSION['email'], $pass . $email, wordwrap("Your " . $pass . $email . " has been changed for Eve Jackknife", 70));
                            }
                            redirect("/manage.php");
                        } else {
                            # account page
                            $result = $Db->selectWhere("accounts", ['id' => $_GET['id']]);
                            if ($result != false) {
                                if ($result->rows > 0) {
                                    $row = $result->results[0];
                                }
                            }
                        }
                        echo "<br><a href='index.php'> Auditor</a>   <a href='manage.php'> Manage Account </a>";
                        insert_header("Jackknife - Edit Notes");
                    } else {
                        echo "<span class=\"infobar\">&lt;&nbsp;" . get_loginbar() . "<a onclick=\"if(!show_div('account')) return false;\" href='manage.php?editAccount=1'> Account Settings</a> &gt;</span><br>";
                        echo get_form_divs();
                        echo makeDiv("account", get_account_change($_SESSION['email']));
                        echo management_view($Db);
                        insert_header("Jackknife - Manage Account");
                        $_SESSION['redirect'] = "manage.php";
                    }
                }
            }
        }
    }
}
function api_input($info = "")
{
    insert_header();
    echo "<span class=\"infobar\">&lt;&nbsp;" . get_loginbar(true) . get_api_bar() . "&gt;<a href=\"itemsrch.php\"> Search for Items</a></span><br>";
    echo get_form_divs();
    ?>
<b>Please insert your api key. You will need to enable items in the eve key interface for them to be accessible here.</b><br>
<?php 
    if ($info != "") {
        echo "<br><b>{$info}</b><br>";
    }
    ?>
<br>
<form id="api" action="?" method="get">
<table>
<tr><td>User ID / key ID</td><td><input type="textbox" name="usid" size=7></td></tr>
<tr><td>API Key / vCode</td><td><input type="textbox" name="apik" size=90></td></tr>
<tr><td>Old API key?</td><td><input type="checkbox" name="oldkey" value="1"></td></tr>
<?php 
    if (!LOGGED_IN) {
        ?>
<tr><td>Remember API?</td><td><input type="checkbox" name="save" value="1" checked></td></tr><?php 
    }
    if (isset($_GET['fittingid'])) {
        ?>
<input type="hidden" name="fittingid" value="<?php 
        $_GET['fittingid'];
        ?>
"><?php 
    }
    ?>
</table>
<input type="submit" value="Get Chars"></form><h5>
<a target="_blank" href="https://support.eveonline.com/api/Key/Index">I don't know my NEW apis! (EVE Support)</a>&nbsp;&nbsp;<b><br>
Create API:</b>
<a target="_blank" href="https://support.eveonline.com/api/Key/CreatePredefined/34013320">Skills-only API</a>&nbsp;
<a target="_blank" href="https://support.eveonline.com/api/Key/CreatePredefined/268435455">Everything API</a>&nbsp;<br>
<br>'Remember API' requires cookies to be enabled. Corp apis will not be 'remebered'.<br>If using an old-style Full or Limited API, remember to check the old api checkbox!</h5><pre width="100%"><?php 
    file_get_contents("updates.txt");
    ?>
</pre>
</body>
</html>
<?php 
    exit;
}
/**
 * show_body
 * 
 * 
 * 
 * 
 * 
 * 
 */
function show_body($body_content, $config = 0)
{
    // get config from database
    if (empty($config)) {
        $config = get_settings();
    }
    // start body html
    echo '
	<body>
		<div id="outer_wrapper">
		<div id="inner_wrapper">';
    // header
    $panel = !empty($config['site']['header_panel_html']) ? $config['site']['header_panel_html'] : '';
    $nav = $config['layout']['main_menu'] == 'header' ? insert_nav($config['layout']['main_menu']) : '';
    echo !empty($body_content['header']) ? $body_content['header'] : insert_header($config['site']['title'], $config['site']['subtitle'], $panel, $nav);
    // nav - only insert automatically if main_menu position is set to 'navbar'
    if ($config['layout']['main_menu'] == 'navbar') {
        echo !empty($body_content['nav']) ? $body_content['nav'] : insert_nav($config['layout']['main_menu']);
    }
    // start content wrapper
    echo '	
		<div id="content_wrapper">';
    // main content
    echo insert_main_content($body_content['main']);
    // aside
    echo !empty($body_content['aside']) ? $body_content['aside'] : insert_aside();
    // close content wrapper
    echo '
		</div> <!-- close content_wrapper -->
		</div> <!-- close inner_wrapper -->
		</div> <!-- close outer_wrapper -->';
    // footer
    echo !empty($body_content['footer']) ? $body_content['footer'] : insert_footer();
    // analytics
    if (!empty($config['connections']['woopra_analytics'])) {
        echo insert_woopra_analytics();
    }
    if (!empty($config['connections']['compete_analytics'])) {
        echo insert_compete_analytics($config['connections']['compete_analytics']);
    }
    if (!empty($config['connections']['getclicky_analytics'])) {
        echo insert_getclicky_analytics($config['connections']['getclicky_analytics']);
    }
    if (!empty($config['connections']['quantcast_analytics'])) {
        echo insert_quantcast_analytics($config['connections']['quantcast_analytics']);
    }
    if (!empty($config['connections']['disqus_shortname'])) {
        echo insert_disqus_comment_count($config['connections']['disqus_shortname']);
    }
    echo '	
	</body>
	</html>';
}
Example #9
0
    echo "<a name=\"s" . ($next - 1) . "\"></a>";
    $time_end2 = microtime_float();
    $time_exec = $time_end2 - $time_start2;
    echo "<br><span style=\"font-size:80%;\"><a href=\"#top\">top</a></span><br>\n";
    echo "<span style=\"font-size:80%;\">";
    echo "\n" . $Db->getCount() . " queries<br>";
    echo "exec time: {$time_exec} s<br>";
    echo "</span>";
    echo "</body></html>";
} else {
    $page = $eligible_pages[PAGE_VIEW];
    $error = !$page->GetOutput($Db);
    echo $infobar . "<br>";
    if ($error) {
        fatal_error("API: " . $page->Output, "", true);
    } else {
        $page->SetHeaders();
        insert_header($page->Title);
        if ($page->Updated) {
            echo "<span class=\"updated_text\">" . $page->Updated . "</span><br>";
        }
        if ($page->Header != "") {
            echo $page->Header . "<br>";
        } else {
            echo "<span style=\"font-size:450%\">" . USER_NAME . "</span><br>";
        }
        echo $page->Output . "<br>";
        echo $page->Times . "<br>";
        echo "</body></html>";
    }
}
function api_input($info = "")
{
    global $infoBarFunctions, $footerFunctions;
    insert_header();
    $infobar = "";
    foreach ($infoBarFunctions as $function) {
        $infobar .= $function();
    }
    if (!empty($infoBarFunctions)) {
        $infobar = "<span class=\"infobar\">&lt;&nbsp;" . $infobar . "&gt;</span><br>";
    }
    echo $infobar;
    ?>
	     <h2> Eve JackKnife Api Auditor</h2>
	 <style type="text/css">

        * {
            margin: 0;
        }
        html, body {
            height: 100%;
        }
        .wrapper {
            min-height: 100%;
            height: auto !important;
            height: 100%;
            margin: 0 auto -4em;
        }
        .footer, .push {
            height: 4em;
        }

    </style>
    <div class="wrapper">
<b>Please insert your api key. You will need to enable items in the eve key interface for them to be accessible here.</b><br>

<?php 
    if ($info != "") {
        echo "<br><b>{$info}</b><br>";
    }
    ?>
<br>
<form id="api" action="?" method="get">
<table>
<tr><td>User ID / key ID</td><td><input type="textbox" name="usid" size=7></td></tr>
<tr><td>API Key / vCode</td><td><input type="textbox" name="apik" size=90></td></tr>
<?php 
    if (!loggedIn()) {
        ?>
<tr><td>Remember API?</td><td><input type="checkbox" name="save" value="1" checked></td></tr><?php 
    }
    if (isset($_GET['fittingid'])) {
        ?>
<input type="hidden" name="fittingid" value="<?php 
        $_GET['fittingid'];
        ?>
"><?php 
    }
    ?>
</table>
<input type="submit" value="Get Chars"></form><h5>
<a target="_blank" href="https://support.eveonline.com/api/Key/Index">I don't know my NEW apis! (EVE Support)</a>&nbsp;&nbsp;<b><br>
Create API:</b>
<a target="_blank" href="https://community.eveonline.com/support/api-key/createpredefined?accessmask=34013320">Skills-only API</a>&nbsp; or
<a target="_blank" href="https://community.eveonline.com/support/api-key/createpredefined?accessmask=268435455">Everything API</a>&nbsp;<br>
<br>'Remember API' requires cookies to be enabled. Corp apis will not be 'remebered'.<br>If using an old-style Full or Limited API, remember to check the old api checkbox!</h5><pre width="100%"><?php 
    file_get_contents("updates.txt");
    ?>
</pre>
<br>
<br>
This Website is used to audit an api so that you might see your own skills and what ships you can fly, mails, contracts,assets, and any other given access from a specific api key<br>
After inputting your api key either precreated or by using one of the two create links above  you can use the site to view the previously mentioned items from the eve api as well as<br>
checking if you have the skills required to fit a particular ship. This site is mainly for those who want to check another character's api to determine if they meet requirements for their<br>
corp or if what they are telling them is true however this can also be useful to new players to see what ships they can and cannot fly effectively. Green links at the top of the page<br>
can be used to navigate the apis or selecting one-page will display everything at once,WARNING may not load fully on first attempt<br>
<br>
<br>

Remember you can get source code at  <a href="https://bitbucket.org/Whinis/eve-jacknife">Bitbucket</a> or <a href="https://github.com/whinis/eve-jacknife">Github</a>
 <br>
   <?php 
    if (defined("public")) {
        //something noone should need to set, displays a link to my github commit log on the main website
        ?>
            <a href="history.html">Update History</a>
        <?php 
    }
    ?>
 <br>
 <br>
 Questions or concerns contact Equto ingame or Email me at Whinis@whinis.com

 <div class="push"></div>
    </div>
    <div class="footer">
EVE Online and the EVE logo are the registered trademarks of CCP hf. All rights are reserved worldwide. All other trademarks are the property of their respective owners. EVE Online, the EVE logo, EVE and all associated logos and designs are the intellectual property of CCP hf. All artwork, screenshots, characters, vehicles, storylines, world facts or other recognizable features of the intellectual property relating to these trademarks are likewise the intellectual property of CCP hf. CCP hf. has granted permission to Eve JackKnife to use EVE Online and all associated logos and designs for promotional and information purposes on its website but does not endorse, and is not in any way affiliated with, Eve JackKnife. CCP is in no way responsible for the content on or functioning of this website, nor can it be liable for any damage arising from the use of this website.
</div>
<?php 
    foreach ($footerFunctions as $function) {
        echo $function();
    }
    ?>
</body>
</html>
<?php 
    exit;
}