Michael Posted June 1, 2009 Posted June 1, 2009 Currently, in order to edit a hook to change something like which template it hooks into, you have to turn on IN_DEV mode. This is bad because it puts the whole site into developers mode. We should be able to edit a hook's properties without having to enable IN_DEV.
bfarber Posted June 1, 2009 Posted June 1, 2009 The problem is, we wanted to keep the development of hooks outside of normal view of users. Hooks are already a complicated enough thing to present to a typical admin who knows nothing about how it all works....we didn't want to present any options that would confuse them further (and you know some people can't resist clicking a link even if they don't need to). I'd prefer to keep any editing of hooks in developer mode myself. Not for the developer's sake, but for the end user's sake.
Michael Posted June 1, 2009 Author Posted June 1, 2009 Maybe you should show the options to Root Admins only then? I just can't help thinking that the current setup is not ideal. On at least two occasions already here on this site, I've had to tell someone that they had to enable IN_DEV just to change the positioning of a hook. Whenever they would do that, all users on the board could either get huge ugly errors or get info revealed to them that they shouldn't have. It would be one thing if a board admin could have a development board where they did have IN_DEV turned on so they could experiment with this, but even with that setup, once they figure out what needs changed there is still no way other than enabling IN_DEV on a production board to alter this (unless you want to edit serialized values directly in the database).
Martin A. Posted June 1, 2009 Posted June 1, 2009 What about a new constant? "HOOK_EDIT_MODE", or something. As with any other constants, place that in initdata.php, and setting that to 1, would enable those edit sections. Which would allow any administrators to edit the hooks, without facing any security risks by putting the whole board IN_DEV.
AndyF Posted June 1, 2009 Posted June 1, 2009 [quote name='m4rtin' date='01 June 2009 - 03:26 PM' timestamp='1243866418' post='1806739'] What about a new constant? "HOOK_EDIT_MODE", or something. As with any other constants, place that in initdata.php, and setting that to 1, would enable those edit sections. Which would allow any administrators to edit the hooks, without facing any security risks by putting the whole board IN_DEV. I was just about to suggest something similar too :)
RobertMidd Posted June 1, 2009 Posted June 1, 2009 Just set IN_DEV at the top of the admin/index.php that is what I did.
Luke Posted June 1, 2009 Posted June 1, 2009 I would suggest IN_DEV be in each wrapper so they can be toggled separately.
bfarber Posted June 1, 2009 Posted June 1, 2009 If it's just positioning of the hooks, THAT should be editable without enabling developer mode if you ask me. That is, for positioning of a hook relative to a separate hook. We can look into a separate constant if that would be really helpful. As I said though, the main goal is to keep this as simple as possible for the (majority) of admins that simply want to install a hook - they won't understand what all the stuff is for when editing it, and giving them the options isn't necessary. KISS rule and all.
teraßyte Posted June 1, 2009 Posted June 1, 2009 The best example is the shoutbox, already some peoples asked how to change the hook access point for the global shoutbox.. without IN_DEV this is not possible :
bfarber Posted June 1, 2009 Posted June 1, 2009 Hmm, this is true. Any good thoughts then on how to present an option like that without making this overly difficult for the average admin?
teraßyte Posted June 1, 2009 Posted June 1, 2009 Well, the best thing (in my opinion) is to show only the dropdowns to change if/foreach cycle and the other dropdown to selected the hook point of course when IN_DEV is not enabled. When IN_DEV is enabled instead show everything as usual.
Michael Posted June 1, 2009 Author Posted June 1, 2009 [quote name='teraßyte' date='01 June 2009 - 05:05 PM' timestamp='1243890353' post='1806873'] Well, the best thing (in my opinion) is to show only the dropdowns to change if/foreach cycle and the other dropdown to selected the hook point of course when IN_DEV is not enabled. When IN_DEV is enabled instead show everything as usual. Agreed. :)
teraßyte Posted July 11, 2009 Posted July 11, 2009 I think It is already too late to include this in 3.0.1 but do something about that problem in IPB 3.0.2 please :(
bfarber Posted July 13, 2009 Posted July 13, 2009 Can't promise anything for the 3.0.x point releases. We would want to do this as user-friendly as possible, which is a challenging task for this sort of thing. ;) We'll see.
teraßyte Posted July 13, 2009 Posted July 13, 2009 For the shoutbox I need to release 5 different hooks just because the hook access point can't be edited, and is a pain to maintain 5 hooks (I might do a fix in an hook and forget to apply it also to the other one and such lol) :(
bfarber Posted July 13, 2009 Posted July 13, 2009 Oh, I understand and I'm not saying we don't want to do it. I'm just saying we'd need to do it *right* and it's hard to push something like that into a minor point release.
teraßyte Posted July 13, 2009 Posted July 13, 2009 Yeah, I never said you don't want to do it but put this feature at the top of the "TODO" lists as it is really needed :P
Martin A. Posted July 14, 2009 Posted July 14, 2009 [quote name='teraßyte' date='13 July 2009 - 04:40 PM' timestamp='1247496006' post='1825468'] For the shoutbox I need to release 5 different hooks just because the hook access point can't be edited, and is a pain to maintain 5 hooks (I might do a fix in an hook and forget to apply it also to the other one and such lol) :( Can't you make a new setting (probably separated from the core settings system) where you make a lit of pre-defined locations, and update the hook data upon save, and recache the templates?
teraßyte Posted July 15, 2009 Posted July 15, 2009 This would require a lot more work as I would need to code a new area in ACP only to handle that, I just prefer to copy/paste the hook files and change the access point as it is much more faster :lol: I'll definitely forget to update them sometimes but I'll live with this issue :P
bfarber Posted July 15, 2009 Posted July 15, 2009 I think it would be cool if a hook could be assigned to more than one access point as well (at least a template hook)
Martin A. Posted July 15, 2009 Posted July 15, 2009 [quote name='teraßyte' date='15 July 2009 - 11:40 AM' timestamp='1247650807' post='1826503'] This would require a lot more work as I would need to code a new area in ACP only to handle that, I just prefer to copy/paste the hook files and change the access point as it is much more faster :lol: I'll definitely forget to update them sometimes but I'll live with this issue :P It's not so difficult, really. I did something similar in an application. If I disabled the whole app, it also disabled the hook. You should be able to do the same, only you have to recache the templates when you're done. And it also a bit friendlier for the user, than having to enable/disable hooks. [quote name='bfarber' date='15 July 2009 - 04:34 PM' timestamp='1247668461' post='1826587'] I think it would be cool if a hook could be assigned to more than one access point as well (at least a template hook) Didn't I suggest that in the early beta stages? EDIT: No I didn't. I reported/requested that several hooks could share the same source file. http://forums.invisionpower.com/tracker/issue-13213-several-hook-points-cant-share-the-same-file/
Recommended Posts
Archived
This topic is now archived and is closed to further replies.