RichardAtHome-- I had run across several mentions in this forum of the Security.level value affecting the authentication part of CakePHP's behavior, so late last week I tried lowering it to 'medium'. That appeared to slightly improve things, in that the product director began to get correct hotkey behavior at least occasionally (roughly 10% of the time). So, on Saturday I tried lowering it to 'low', as you had suggested, but we saw no further improvement. For all I know, the apparent improvement when I lowered the Security.level the first time may have been entirely coincidental. Anyway, thanks for the suggestion -- it was certainly worth trying. --Bill
On Jan 27, 2:41 am, RichardAtHome <[email protected]> wrote: > I'd wager its not your code, but CakePHP's security settings. In app/ > config/core.php change > > Configure::write('Security.level', 'high'); > > To > > Configure::write('Security.level', 'low'); > > and see if that clears up the problem. > > On Jan 27, 2:14 am, MichTex <[email protected]> wrote: > > > I have been working for a number of months on an application using > > CakePHP, and have for the most part found it to be a very congenial > > development environment. However, for the last few weeks I've been > > struggling with what looks to be some peculiar CakePHP behavior. > > Basically, I am trying to implement keyboard shortcuts (hotkeys) using > > simple Javascript event handling to capture keycodes, and then, via > > the browser's location.href property, route the user to the > > appropriate page. This approach works great most of the time. However, > > there are a couple of users for whom this approach causes the browser > > to route them to the login page rather than the desired page. I have > > rummaged through hundreds of postings here in the CakePHP Google > > group, and done dozens of Google searches through CakePHP > > documentation and numerous relevant blogs, but so far have turned up > > no clues to what the problem is. > > > Let me expand on the details a little bit: > > > -The application I am working on mostly provides a few basic screens > > which present blocks of text followed either by simple forms, or by > > sets of link-type or button-type navigation choices. This part of the > > system works very well. > > > -Recently, the product director wanted me to add hotkeys to speed up > > navigation. For example, in cases where the navigation consists of a > > short list of choices, he wants the user to be able to type a single > > digit associated with each choice. Thus, if there were 5 navigation > > choices, numbered 1 to 5, the user could either use the mouse to click > > on any of the 5 links for those choices, or type the individual digits > > 1 to 5 on the keyboard to select the corresponding link. In another > > case, there is an informational screen with a big Next button at the > > bottom. The product director wants the user to be able to go to the > > next page either by clicking on the Next button with the mouse, or by > > typing either the letter 'n' or a carriage return. > > > -In order to implement the hotkey idea, I wrote some CakePHP code to > > generate simple Javascript to capture keycodes from keypress events, > > and then execute for particular characters a Javascript line of the > > form > > > location.href = 'http://mysite.com/controller/action/arg'; > > > which would cause the browser to switch to the specified page. [I used > > the Event class from the Prototype Javascript library together with > > CakePHP's Javascript Helper. I've attached an example of the kind of > > Javascript that gets generated to the end of this posting.] > > > -When I wrote the hotkey-handling code several weeks ago, it appeared > > to work fine. In fact, it continues to work perfectly for me. Here's > > where it gets weird, though. About 90% of the time, when the product > > director himself tries a hotkey, he ends up on a login screen, as if > > he had been logged out. However, if he hits the back button, and then > > uses the mouse to make a choice on the screen he had been on, that > > works fine. So, he had not in fact been logged out. > > > -The product director has so far tried this with 3 different browsers > > (IE, Firefox and Chrome) on 5 different machines in 2 different > > locations, and gotten the same bad behavior in roughly the same 90/10 > > bad/good behavior split. There are two other people involved with this > > project, as well. For one of them, like me, the hotkeys have never > > failed, while for the other user hotkey navigation has almost always > > worked, but has in fact failed a few times. > > > So, can anyone provide some insight into this situation? Is there any > > reason why routing to a CakePHP page using Javascript's location.href > > should always work for some users, most of the time for other users, > > and rarely for yet others? Is there an alternative way to route to a > > CakePHP page from Javascript? Or is there some other way to implement > > a hotkey capability? > > > Thanks in advance for any help or advice you can give. > > > BillCavnar > > --------------------------------------------------------- > > Example of the generated Javascript code for handling hotkeys: > > > <script type="text/javascript" src="/js/prototype.js"></script> > > <script type="text/javascript"> > > //<![CDATA[ > > Event.observe(window, 'load', function() { > > Event.observe(document, 'keypress', function(e){ > > var code; > > if (!e) { > > var e = window.event; > > } > > if (e.keyCode) { > > code = e.keyCode; > > } else if (e.which) { > > code = e.which; > > } > > var character = String.fromCharCode(code); > > switch(character) { > > case '1': > > location.href = 'http://http://mysite.com/worksheet/ > > show_answer/1'; > > break; > > case '2': > > location.href = 'http://http://mysite.com/worksheet/ > > show_answer/2'; > > break; > > case '3': > > location.href = 'http://http://mysite.com/worksheet/ > > show_answer/3'; > > break; > > case '4': > > location.href = 'http://http://mysite.com/worksheet/ > > show_answer/4'; > > break; > > case '5': > > location.href = 'http://http://mysite.com/worksheet/ > > show_answer/5'; > > break; > > } > > }); > > > }); > > > //]]> > > </script> --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "CakePHP" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/cake-php?hl=en -~----------~----~----~----~------~----~------~--~---
