MyBB Community Forums

Full Version: Peeker Hook
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2
MyBB seriously needs a hook in the admin/modules/config/settings.php for peekers. It's incredibly annoying to make plugins that modify that lol
(2011-11-26, 09:05 PM)Booher Wrote: [ -> ]MyBB seriously needs a hook in the admin/modules/config/settings.php for peekers. It's incredibly annoying to make plugins that modify that lol

Say what?!

You shouldn't be modifying anything in settings.php, so no there shouldn't be a hook in it. Ever.
(2011-11-26, 09:12 PM)Dylan M. Wrote: [ -> ]
(2011-11-26, 09:05 PM)Booher Wrote: [ -> ]MyBB seriously needs a hook in the admin/modules/config/settings.php for peekers. It's incredibly annoying to make plugins that modify that lol

Say what?!

You shouldn't be modifying anything in settings.php, so no there shouldn't be a hook in it. Ever.

It would be good for other plugin groups that want options to only show up if a certain setting is selected.

such as the plugin i just made that lets you change reCaptcha theme easily. the setting box only comes up if you have recaptcha selected so it won't show if your using the regular captcha or something.

Also, there are hooks in settings.php... 19 of them to be exact.

Did you think i meant inc/settings.php? or am i just utterly confused lol
its already available $mybb-settings['setting-name-here']. All settings are available globally, so you can test for the setting in your plugin before installing or activating or running a function, etc.
Noo, you know how when you turn your board off the message box appears for a reason? That is what the peekers are for. lol
ah, that is what you mean. You can always use admin_page_output_footer hook to output your own peeker script like the ACP does already, just change the object/function name from "loadPeekers()" to something specific to your pluign.
but yes, I agree that it would be cool to have a globla array of peeker items that you can add to before the script code is echo'd or modify /admin/modules/config/settings.php and change the peeker function

function print_setting_peekers()
{
	global $plugins, $peekers;
	
	//add hook so users can modify peeker array
	$plugins->run_hooks("admin_load_peekers_start");
	
	//if we have peekers, generate JS content
	if(count($peekers) > 0)
	{
		$peeker_code = '<script type="text/javascript" src="./jscripts/peeker.js"></script>
		<script type="text/javascript">
			Event.observe(window, "load", function() {
				loadPeekers();			
			});
			function loadPeekers()
			{';
		
			foreach($peekers as $peeker_name => $peeker_options)
			{
				if($peeker_options['type'] == 1)
				{
					$peeker_code .=  '			new Peeker($$(".'.$peeker_name.'"), $("'.$peeker_options['rowid'].'"), /'.$peeker_options['setting'].'/, '.$peeker_options['value'].');';
				}
				elseif($peeker_options['type'] == 2)
				{
					$peeker_code .=  '			new Peeker($(".'.$peeker_name.'"), $("'.$peeker_options['rowid'].'"), /'.$peeker_options['setting'].'/, '.$peeker_options['value'].');';
				}
			}
		
		$peeker_code .= '</script>';
	}
}

//global default peeker array, type 1 uses $$, type 2 uses $
$peekers['setting_boardclosed'] = array(type=>1, rowid=>'row_setting_boardclosed_reason', setting=>'1', value=>'true');
$peekers['setting_gzipoutput'] = array(type=>1, rowid=>'row_setting_gziplevel', setting=>'1', value=>'true');
$peekers['setting_useerrorhandling'] = array(type=>1, rowid=>'row_setting_errorlogmedium', setting=>'1', value=>'true');
$peekers['setting_useerrorhandling'] = array(type=>1, rowid=>'row_setting_errortypemedium', setting=>'1', value=>'true');
$peekers['setting_useerrorhandling'] = array(type=>1, rowid=>'row_setting_errorloglocation', setting=>'1', value=>'true');
$peekers['setting_subforumsindex'] = array(type=>2, rowid=>'row_setting_subforumsstatusicons', setting=>'[^0]', value=>'false');
$peekers['setting_showsimilarthreads'] = array(type=>1, rowid=>'row_setting_similarityrating', setting=>'1', value=>'true');
$peekers['setting_showsimilarthreads'] = array(type=>1, rowid=>'row_setting_similarlimit', setting=>'1', value=>'true');
$peekers['setting_disableregs'] = array(type=>1, rowid=>'row_setting_regtype', setting=>'0', value=>'true');
$peekers['setting_showsimilarthreads'] = array(type=>1, rowid=>'row_setting_similarlimit', setting=>'1', value=>'true');
$peekers['setting_failedlogincount'] = array(type=>2, rowid=>'row_setting_failedlogintime', setting=>'[^0]', value=>'false');
$peekers['setting_failedlogincount'] = array(type=>2, rowid=>'row_setting_failedlogintext', setting=>'[^0]', value=>'false');
$peekers['setting_postfloodcheck'] = array(type=>1, rowid=>'row_setting_postfloodsecs', setting=>'1', value=>'true');
$peekers['setting_postmergemins'] = array(type=>2, rowid=>'row_setting_postmergefignore', setting=>'[^0]', value=>'false');
$peekers['setting_postmergemins'] = array(type=>2, rowid=>'row_setting_postmergeuignore', setting=>'[^0]', value=>'false');
$peekers['setting_postmergemins'] = array(type=>2, rowid=>'row_setting_postmergesep', setting=>'[^0]', value=>'false');
$peekers['setting_enablememberlist'] = array(type=>1, rowid=>'row_setting_membersperpage', setting=>'1', value=>'true');
$peekers['setting_enablememberlist'] = array(type=>1, rowid=>'row_setting_default_memberlist_sortby', setting=>'1', value=>'true');
$peekers['setting_enablememberlist'] = array(type=>1, rowid=>'row_setting_default_memberlist_order', setting=>'1', value=>'true');
$peekers['setting_enablereputation'] = array(type=>1, rowid=>'row_setting_repsperpage', setting=>'1', value=>'true');
$peekers['setting_enablewarningsystem'] = array(type=>1, rowid=>'row_setting_allowcustomwarnings', setting=>'1', value=>'true');
$peekers['setting_enablewarningsystem'] = array(type=>1, rowid=>'row_setting_canviewownwarning', setting=>'1', value=>'true');
$peekers['setting_enablewarningsystem'] = array(type=>1, rowid=>'row_setting_maxwarningpoints', setting=>'1', value=>'true');
$peekers['setting_enablepms'] = array(type=>1, rowid=>'row_setting_pmsallowhtml', setting=>'1', value=>'true');
$peekers['setting_enablepms'] = array(type=>1, rowid=>'row_setting_pmsallowmycode', setting=>'1', value=>'true');
$peekers['setting_enablepms'] = array(type=>1, rowid=>'row_setting_pmsallowsmilies', setting=>'1', value=>'true');
$peekers['setting_enablepms'] = array(type=>1, rowid=>'row_setting_pmsallowimgcode', setting=>'1', value=>'true');
$peekers['setting_enablepms'] = array(type=>1, rowid=>'row_setting_pmsallowvideocode', setting=>'1', value=>'true');
$peekers['setting_smilieinserter'] = array(type=>1, rowid=>'row_setting_smilieinsertertot', setting=>'1', value=>'true');
$peekers['setting_smilieinserter'] = array(type=>1, rowid=>'row_setting_smilieinsertercols', setting=>'1', value=>'true');
$peekers['setting_mail_handler'] = array(type=>2, rowid=>'row_setting_smtp_host', setting=>'smtp', value=>'false');
$peekers['setting_mail_handler'] = array(type=>2, rowid=>'row_setting_smtp_port', setting=>'smtp', value=>'false');
$peekers['setting_mail_handler'] = array(type=>2, rowid=>'row_setting_smtp_user', setting=>'smtp', value=>'false');
$peekers['setting_mail_handler'] = array(type=>2, rowid=>'row_setting_smtp_pass', setting=>'smtp', value=>'false');
$peekers['setting_mail_handler'] = array(type=>2, rowid=>'row_setting_secure_smtp', setting=>'smtp', value=>'false');
$peekers['setting_mail_handler'] = array(type=>2, rowid=>'row_setting_mail_parameters', setting=>'mail', value=>'false');


this is not tested, but it only took a few minutes to update
Still kind of curious of Dylan's reply though lol. I'm assuming he thought i was talking about inc/settings.php as he said 'it should not contain hooks. ever'
(2011-11-27, 12:59 AM)Booher Wrote: [ -> ]Still kind of curious of Dylan's reply though lol. I'm assuming he thought i was talking about inc/settings.php as he said 'it should not contain hooks. ever'

You are entirely correct. I totally misread what you wrote. Dammit Smile
(2011-11-27, 12:59 AM)Booher Wrote: [ -> ]Still kind of curious of Dylan's reply though lol. I'm assuming he thought i was talking about inc/settings.php as he said 'it should not contain hooks. ever'

either way, I posted a solution you can implement yourself, but at that point you might as well insert them directly into the function
It might be useful. Although, you may trying checking it with something like if($mybb->settings[
'recaptcha'] = 1) then , but yes that'd be good to see it implemented as well.
Pages: 1 2