EDK 4.4.0.0 with ESI support

EDK releases + Open discussion and chat about EDK.
User avatar
Salvoxia
Developer
Posts: 1598
Joined: Wed Feb 22, 2012 12:11

EDK 4.4.0.0 with ESI support

Post by Salvoxia »

\o guys,

with a slight delay (sorry for that!), EDK 4.4.0.0 has been released.
If you wonder about the jump from version 4.2: Odd minor version numbers are test versions, even ones are considered stable releases.

The major change in EDK 4.4 is that XML API and CREST support have been removed completely, and the new ESI API is utilized for everything.
The old XML API import has been replaced by ESIFetch, API keys are now Single-Sign-On (SSO) tokens.
A BIG thank you goes to Snitch Ashor (aka prometh) for providing the base implementation of the SSO flow and ESI fetching!

In comparison to the old XML API, with ESI all killmails can be fetched, right back to the first kills that were accessible through the XML API back in 2008.
For how to set up EDK to be used with SSO, see this thread: [HowTo] Setup SSO and ESI Fetching.

EDK now also writes its own error log file in cache/error.log. If you encounter problems you'd like to report, please append that log file to your post.

Even though EDK has been tested extensively, I'm sure there will still be issues in the first days. If you report them here, I'll try and get them fixed ASAP.

Mods:
The internal structure for mods has NOT been changed in this version, so all mods working with EDK 4.2 should also work with EDK 4.4, unless they were utilizing the API. If you are using any mods that no longer work,
please post in the appropriate thread in the Mods Forum and I'll see what I can do.
If any mods should cause your complete killboard to not load, remove/rename that are not in the following list:
  • ajcron
  • forum_post
  • known_members
  • mail_editor
  • rss_feed
  • signature_generator
These mods are core distribution mods and should not cause any problems.


Themes:
Vecati's Themes that I am maintaining have been updated to properly support the new features in EDK 4.4 (e.g. displaying the time EDK spent talking to the ESI API at the bottom of the page (if profiling is enabled)).
If you find anything that's not right, please report it in the linked thread.



Prerequisites

The following is needed to run EDK 4.4 (prerequisites differing from EDK4.2 are highlighted):
  • Webserver
  • Mysql 5.0 with FULL_GROUP_ONLY mode disabled!
  • PHP 5.6+
    • GD 2 or higher
    • PHP safe mode off
    • PHP MySQLi extension (available by default in PHP5)
    • PHP cURL extension with SSL support (mandatory!)
    • PHP zlib extension
    • PHP DOM extension
    • PHP memcached/redis extension (recommended)
  • Memcached / Redis (recommended)
The auto updater will verify that your server meets the PHP version requirements before allowing you to update.


Download:
Full Install Package 4.4.0.0: Download (MD5: B56B1E2E45D66D1531E6363E88169BE4)
Update 4.2.37.0 - 4.4.0.0: Download (MD5: C2A34CDF10F02EBCB0632F594C5D4E59)

Since this is a big update, make sure to really backup your database before updating!


Release Notes:

Full Changelog:

Code: Select all

Installer: Updated minimum PHP version (and check) to 5.6
Installer: Updated Eve-Dev URL to evekb.org in page footer
Added PHP version check to auto updater (at least 5.6 for EDK 4.3 and above)
Generated new ESI client library from _latest 20180329
Updated CCPDB to YC-120-3 1.0.20180323
Default theme: Use official login image for SSO registration
Updated EDK major version and requirements in README
Removed CREST and XML-related constants
Removed database table files for XML API related tables
Enhanced ESI error logging 
Made more robust against ESI errors
Removed API cache folder 
Added ESI cache folder
Removed last XML API classes 
Removed PHEAL
Installer now uses ESI for searching/adding board owners
ACP -> Troubleshooting: Removed API and CREST connection checks, added ESI cache and connection check
EDK ESI Client: Added more debug logging, nhanced retry mechanism in case of server timeouts
Pre-configure maximum processing time per SSO key
Added database update for ESI SSO
Added SSO registration to top menu
Added support for corporation killmail fetching using SSO
ESI SSO: Added scope for corporation killmails
Added support for character ESI killmail fetching via SSO
Adding ESI SSO registration for pilot killmail fetching
Enhancement: Added keep-alive like behavior to ESI library
Added Snitch Ashor as contributor to About page
Enhancement: Added caching to ESI Client (using PHPFastCache)
Switched item value update in ACP from CREST to ESI
Added kb3_factions to list of CCPDB SDE tables
Installer: Updated minimum PHP version (and check) to 5.6
Installer: Updated Eve-Dev URL to evekb.org in page footer
ESI Link posting: Allowed legacy ESI link for zKB link support
SSO: Added setting to only allow board owners to register for ESI fetching
Updated readme file for cron jobs with cron for ESI fetching
Default theme: Use official login image for SSO registration


List of new features
  • Updated EDK to 4.4.0.0
  • Support ESI for fetching kills
  • Use ESI for item value updates
  • Remove old XML API and CREST completely - they are now shutdown by CCP and don't work anymore!



Installation Instructions:
Requirements


New Installations
  • Upload the whole package to a webhost
  • Point your webbrowser to /install inside the EDK directory
  • Follow the instructions
  • Delete the install folder after installation
  • If no pilot images are displayed check that the server has write permission to the cache folder.
Manual upgrade
  • Backup the existing database and files
  • Remove or rename all files in the killboard folder other than [kbfolder]/kbconfig.php
  • Upload the new package to the killboard folder
  • Remove install folder
  • Move your mods back from the backup to the mods folder.


Update from 4.2.37.0:

Auto Updater
  • Backup the existing database and files
  • Enter the admin control panel
  • Select the option "Upgrade" from the menu on the right
  • If the code update to Version 4.2.36.0 doesn't show up in the list, select the link at the bottom saying "retrieve update description file now"
  • Click "Download"
  • Click "Apply"
  • Database update process starts, follow instructions
  • DONE \o/


Manual upgrade
  • Download the Update 4.2.37.0 - 4.4.0.0 (see above)
  • Backup the existing database and files
  • Upload the contents of the update package to your webhost
  • DONE


Known issues:

Forward Operating Bases are not recognized as "ships".
If you run into issues with such kills after the update, please run the following SQL script:

Code: Select all

INSERT INTO edk_base.kb3_ships VALUES
(46363, 18), -- Guristas Forward Operating Base
(46364, 18); -- Blood Raider Forward Operating Base


An SQL error might occur when fetching ancient killmails
The error message would look like this:

Code: Select all

SQL execution error: Column 'kll_x' cannot be null
Hotfix: Replace your common/includes/class.esiparser.php with this one (right click -> save as)


ZKBFetch can get stuck, skipping over the same batch of kills over and over again
Hotfix: Replace your common/includes/class.zkbfetch.php with this one (right click -> save as).

Best Regards,
Salvoxia
User avatar
Dism0
Active Author
Posts: 158
Joined: Fri Jul 06, 2012 01:42

Re: EDK 4.4.0.0 with ESI support

Post by Dism0 »

first i would like to thank you for maintaining the killboard code and continuing to improve upon it. updating went smoothly as has come expected from your releases.

suggestion: every update i manually go in and remove the green fill for the front page kills. is it possible to add a switch to turn off the green and just leave the red? less xmas like front page and cleaner overall in my opinion.

when i first click on the sso registration link at the top it provides errors most likely from other installed mods by the looks of it. see error code below. more of an fyi i suppose. the page still loads fine after the errors so its usable once you scroll down it's just not very pretty. i removed a few of the line 64 augmented banner errors as there were easily 15+ of them.

Code: Select all

Strict Standards: strtotime(): We selected 'America/New_York' for 'EDT/-4.0/DST' instead in /homepages/30/d678292045/htdocs/kb/mods/augmented_banner/augmented_banner.php on line 60

Strict Standards: date(): We selected 'America/New_York' for 'EDT/-4.0/DST' instead in /homepages/30/d678292045/htdocs/kb/mods/augmented_banner/augmented_banner.php on line 60

Strict Standards: strtotime(): We selected 'America/New_York' for 'EDT/-4.0/DST' instead in /homepages/30/d678292045/htdocs/kb/common/includes/toplist/class.base.php on line 272

Notice: Undefined property: TopKillsList::$sql_ in /homepages/30/d678292045/htdocs/kb/common/includes/toplist/class.base.php on line 313

Strict Standards: strtotime(): We selected 'America/New_York' for 'EDT/-4.0/DST' instead in /homepages/30/d678292045/htdocs/kb/common/includes/globals.php on line 196

Strict Standards: strtotime(): We selected 'America/New_York' for 'EDT/-4.0/DST' instead in /homepages/30/d678292045/htdocs/kb/common/includes/globals.php on line 197

Notice: Undefined variable: numListed in /homepages/30/d678292045/htdocs/kb/mods/augmented_banner/augmented_banner.php on line 64

Strict Standards: strftime(): We selected 'America/New_York' for 'EDT/-4.0/DST' instead in /homepages/30/d678292045/htdocs/kb/common/smarty/sysplugins/smarty_internal_templatecompilerbase.php on line 59
also when i go through to fetch the old killmails im getting another error. not sure if this is the right place to put it or not.

Code: Select all

ERROR [256] No victim ship id set
Error on line 453 in file /homepages/30/d678292045/htdocs/kb/common/includes/class.kill.php
PHP 7.0.29 (Linux), EDK 4.4.0.0 (YC-120-3 1.0)
File: /homepages/30/d678292045/htdocs/kb/common/includes/class.kill.php, line: 453, function: trigger_error
File: /homepages/30/d678292045/htdocs/kb/mods/realmoney_mod/realmoney.php, line: 12, class: Kill, function: getVictimShip
File: /homepages/30/d678292045/htdocs/kb/mods/realmoney_mod/init.php, line: 16, function: include_once
File: /homepages/30/d678292045/htdocs/kb/common/includes/class.pageassembly.php, line: 80, class: realmoney, function: show
File: /homepages/30/d678292045/htdocs/kb/common/includes/class.pageassembly.php, line: 44, class: pageAssembly, function: call
File: /homepages/30/d678292045/htdocs/kb/common/kill_detail.php, line: 1772, class: pageAssembly, function: assemble
File: /homepages/30/d678292045/htdocs/kb/common/index.php, line: 324, function: include
File: /homepages/30/d678292045/htdocs/kb/index.php, line: 25, function: include


Fatal error: Uncaught Error: Call to a member function getPrice() on string in /homepages/30/d678292045/htdocs/kb/mods/realmoney_mod/realmoney.php:12 Stack trace: #0 /homepages/30/d678292045/htdocs/kb/mods/realmoney_mod/init.php(16): include_once() #1 /homepages/30/d678292045/htdocs/kb/common/includes/class.pageassembly.php(80): realmoney::show(Object(pKillDetail)) #2 /homepages/30/d678292045/htdocs/kb/common/includes/class.pageassembly.php(44): pageAssembly->call('realmoney::show') #3 /homepages/30/d678292045/htdocs/kb/common/kill_detail.php(1772): pageAssembly->assemble() #4 /homepages/30/d678292045/htdocs/kb/common/index.php(324): include('/homepages/30/d...') #5 /homepages/30/d678292045/htdocs/kb/index.php(25): include('/homepages/30/d...') #6 {main} thrown in /homepages/30/d678292045/htdocs/kb/mods/realmoney_mod/realmoney.php on line 12
Last edited by Dism0 on Thu May 10, 2018 05:23, edited 1 time in total.
MrJayIsAGoon
Noob
Posts: 4
Joined: Wed May 09, 2018 04:15

Re: EDK 4.4.0.0 with ESI support

Post by MrJayIsAGoon »

Upgraded, no issues. The natives were getting restless!

On the Admin > SSO page, there's an slight PHP error

Notice: Undefined variable: on_load in /home/killboard/killboard/common/smarty/sysplugins/smarty_internal_data.php on line 291
style="height: 100%">

And to echo Dism0's sentiments: Thank you for keeping this project alive. You're pretty much the only game in town, so thanks for that!
Redhouse
Apprentice
Posts: 49
Joined: Sun Mar 18, 2012 17:12

Re: EDK 4.4.0.0 with ESI support

Post by Redhouse »

Installed and working!
Thanks a lot, without this fix these EDK boards would have just died off.
User avatar
prometh
Advanced
Posts: 170
Joined: Thu Aug 09, 2012 19:25
Contact:

Re: EDK 4.4.0.0 with ESI support

Post by prometh »

Thanks for the update.
Can't get it to fetch kills yet. Both esi and zkb always result in
Error getting data: Could not resolve host: CREST_PUBLIC_URL(6),

Edit: was the insurence_mod, need to update it at some point.

Bests,
Snitch
unrealalex
Greenhorn
Posts: 14
Joined: Wed Jan 13, 2010 18:37

Re: EDK 4.4.0.0 with ESI support

Post by unrealalex »

prometh wrote: Thu May 10, 2018 10:03 Can't get it to fetch kills yet. Both esi and zkb always result in
Error getting data: Could not resolve host: CREST_PUBLIC_URL(6),
I had the same error until I turned off insurance_mod.
User avatar
Salvoxia
Developer
Posts: 1598
Joined: Wed Feb 22, 2012 12:11

Re: EDK 4.4.0.0 with ESI support

Post by Salvoxia »

@Dism0:

You seem to be using the "combine kills and losses" setting for the front page. Do I understand you correctly that you just don't want the kills to have a green background but the default background color? If it's okay for you to remove the green background from kills not only from the front page, but from all kill lists, you could do so by doing the following:
  • go to themes/<yourTheme>/
  • create a new file called "noGreenKills.css" with the following content:

    Code: Select all

    .kb-table-rows > tbody > tr.kb-table-row-kill:nth-child(even)
    {
    	background: #292929;
    }
    
    .kb-table-rows > tbody > tr.kb-table-row-kill:nth-child(odd)
    {
    	background: #222;
    }
    
    .kb-table-rows > tbody > tr.kb-table-row-kill:hover
    {
    	background: #0083CC;
    }
    
  • go to your ACP -> Global Options and select as "Style" your "noGreenKills"
  • Profit!
As for the notices on the SSO page: Please check whether these two commits fix this issue:
Fix #1
Fix #2


And for your error:
This looks like an error induced by the realmoney mod, but when viewing a kill, not when fetching. Is this the correct error stack trace?


Best Regards,
Salvoxia
User avatar
Salvoxia
Developer
Posts: 1598
Joined: Wed Feb 22, 2012 12:11

Re: EDK 4.4.0.0 with ESI support

Post by Salvoxia »

@MrJayIsAGoon:

Fix #2 linked in the post above should take care of that notice you see on the ACP SSO page.

Best Regards,
Salvoxia
User avatar
Rounon Dax
Greenhorn
Posts: 21
Joined: Sat Jul 11, 2015 17:15

Re: EDK 4.4.0.0 with ESI support

Post by Rounon Dax »

Hey there,
Thanks for the update!

I'm getting these errors in my cron log for the esi-cron.

For pilot killmails

Code: Select all

PHP Warning:  count(): Parameter must be an array or an object that implements Countable in /var/www/terra-nanotech/webroot/killboard.terra-nanotech.de/common/includes/class.esiparser.php on line 728
for pilot and corp killmails

Code: Select all

2018/05/10 13:35:01 - Starting ESI Import
SQL execution error: Column 'kll_x' cannot be null<br>SQL: UPDATE kb3_kills JOIN kb3_mails ON kb3_mails.kll_id = kb3_kills.kll_id SET kb3_kills.kll_external_id = ?, kb3_mails.kll_external_id = ?, kll_modified_time = UTC_TIMESTAMP(), kb3_kills.kll_x = ?, kb3_kills.kll_y = ?, kb3_kills.kll_z = ? WHERE kb3_kills.kll_id = ? AND (kb3_kills.kll_external_id IS NULL OR kb3_kills.kll_x = 0)<br>PHP Fatal error:  SQL execution error. in /var/www/terra-nanotech/webroot/killboard.terra-nanotech.de/common/includes/class.dbpreparedquery.php on line 96
anchorhead
Someday Author
Posts: 95
Joined: Thu May 16, 2013 12:48

Re: EDK 4.4.0.0 with ESI support

Post by anchorhead »

MrJayIsAGoon wrote: Thu May 10, 2018 01:43 Upgraded, no issues. The natives were getting restless!

On the Admin > SSO page, there's an slight PHP error

Notice: Undefined variable: on_load in /home/killboard/killboard/common/smarty/sysplugins/smarty_internal_data.php on line 291
style="height: 100%">

And to echo Dism0's sentiments: Thank you for keeping this project alive. You're pretty much the only game in town, so thanks for that!
It's an issue with custom template, remove style="height: 100%" in index.tpl in your template folder
Post Reply