View Single Post
  #11  
Old 12-09-2014, 12:07 PM
Kyttias's Avatar
Kyttias Kyttias is offline
Premium Member
 
Join Date: Jan 2014
Posts: 857
Gender: Unknown/Other
Credits: 90,861
Kyttias is on a distinguished road
Default

Konami Code Install

1 - You need a link to jQuery. My Bootstrap theme comes with it. If you don't have it, hop into **root**/templates/**your theme**/template.tpl and before </body>, add this:

HTML Code:
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
2 - Open up notepad, paste this in, and save it as jQuery_konami_code.js in the /js folder at the base of your Mysidia framework installation. So it will be **root**/js/jQuery_konami_code.js.
HTML Code:
;(function( $, window, document, undefined){
  var keys = []

  $.fn.konami_code = function( options ) { 
    var settings = $.extend(true, {}, $.fn.konami_code.defaults, options )
    var executionCount = 0
    
    $(this).keydown(function(e) {
      if(settings.maximum > executionCount){        
        keys.push( e.keyCode )
      }
      // console.log(keys.toString()) 
      if ( keys.toString().indexOf( settings[settings.activeCode] ) >= 0 ){
        // execute the specified callback function when the activeCode is detected
        // if I ever use event triggers I'll need to append the event argument object to the end of settings.arguments
        settings.callback.apply( settings.scope, settings.arguments )
        executionCount++;
        // empty the array containing the key sequence entered by the user
        keys = []
      } else if (keys.length >1000) {
        keys = [] //a crude way to keep the array from getting too big for no reason--a better check would be to clear after a long delay between keypresses (400-800ms)
      }
    })
    console.log('konami_code: power on')
    return this
  } //end $.fn.konami_code()  

  defaultCallback = function(){
    console.log("power up")
    alert("power up")      
  }  

  $.fn.konami_code.defaults = {
    konami: '38,38,40,40,37,39,37,39,66,65',       
    SFII: '40,82,38,76,89,66,88,65',
    callback: defaultCallback,
    activeCode: 'konami',
    maximum: 1000000000000000,
    scope: window
  }
})( jQuery , window, document)
3 - Now you will need to link to it. Go back to **root**/templates/**your theme**/template.tpl and after the jQuery link from step 1, and before the end of the </body>, add in this (the $home variable will automatically find the root folder and does need to be changed in any way):
HTML Code:
<script src="{$home}js/jQuery_konami_code.js"></script>
4 - After this we need to initialize, that is, prepare the code. So, right after what we just did, we'll add this:
HTML Code:
<script type="text/javascript">
    myCallback = function(){ alert('yay!') }
    $(document).konami_code({ callback: myCallback })
</script>
Right now, it's creating a javascript alert window that contains 'yay!'. See how it's working alert('yay!') in the script above?

This code is now operational on every page in your site. As a reminder, the Konami Code is up, up, down, down, left, right, left, right, b, a. For some further reading on how this code can be modified, check out the github repository for it.
__________________
Please do not contact me directly outside of Mysidia.
I also cannot troubleshoot code more than two years old - I legit don't remember it.
Reply With Quote