public
Last active

Bug Hunt One [SOLVED]

  • Download Gist
bug-hunt-one.php
PHP
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
<?php
/*
* Plugin Name: EnvatoWP Bug Hunt One
* Plugin URI: https://gist.github.com/
* Description: Bug Hunt One - Find all the bugs in this basic plugin
* Version: 0.1
* Author: EnvatoWP
* Author URI: http://envatowp.github.com/
* License: GPL2
*/
 
function bhone_add_menu()
{
$bhone_settings_page = add_plugins_page(
__( 'Bug Hunt One Settings' ),
__( 'Bug Hunt One' ),
'manage_options',
'bhone-settings',
'bhone_settings_page'
);
}
 
function bhone_settings_page()
{
?>
<div class="wrap">
<div class="icon32" id="icon-options-general"></div>
<h2><?php _e( 'EnvatoWP Bug Hunt One Settings' ); ?></h2>
 
<form action="options.php" method="post">
 
<?php settings_fields( 'bhone_settings' ); ?>
<?php do_settings_sections( 'bhone_settings_page' ); ?>
 
<p class="submit">
<input name="Submit" type="submit" class="button-primary" value="<?php esc_attr_e( 'Save Changes' ); ?>" />
</p>
</form>
 
</div>
<?php
}
 
function bhone_register_settings()
{
register_setting(
'bhone_settings',
'bhone_settings',
'bhone_settings_sanitize'
);
 
add_settings_section(
'bhone_settings_section',
__( 'Bug Hunt One Settings' ),
'bhone_settings_output',
'bhone_settings_page'
);
 
add_settings_field(
'bhone_setting_example',
__( 'Bug Hunt One Example Setting' ),
'bhone_setting_example_output',
'bhone_settings_page',
'bhone_settings_section'
);
}
 
function bhone_settings_output()
{
echo '<p>These are example settings for Bug Hunt One.</p>';
}
 
function bhone_setting_example_output()
{
$options = get_option( 'bhone_settings' );
echo '<input name="bhone_settings[setting_example]" id="bhone_setting_example" type="checkbox" value="1" class="code" ' . checked( 1, $options["setting_example"], false ) . ' /> An example option for Bug Hunt One';
}
 
function bhone_settings_sanitize( $input )
{
$options = get_option( 'bhone_settings' );
$options['setting_example'] = trim( $input['setting_example'] );
return $options;
}
 
add_action( 'admin_menu', 'bhone_add_menu' );
add_action( 'admin_init', 'bhone_register_settings' );

options.pip in form action?

Hey, nicely spotted!
You can also create a "fork" of the Gist and do your bug fixes on it and link to a bug-free version when you're done :)

If I have time later, I'll fork it and get a corrected version, but right at first glance....

Line 32 - missing closing '?>'
Line 63 - missing ','
Line 86 - missing ';'

Those are trivial mistakes and from reading through it the plugin isn't' going to actually do much other than create a link in the plugins menu and go to a blank page. I wish I had more time to spend playing around with it.

Great! Most of the mistakes are trivial ones. It doesn't go to a blank page exactly, but you're right, it doesn't do much :)

line #36 - type="sumit" should be type="submit"

Line 14 - "add_plugins_page" should be "add_options_page"

Line 70 should be

echo '<p>These are example settings for Bug Hunt One.</p>';

Line 87 is missing an "s" at the end of bhone_register_setting

line 87 needs to be "settings". The function has an "s" at the end

Line 18 - 'bhone-settings', should read 'bhone_settings',

Line 76 should be:

echo '<input name="bhone_settings[setting_example]" id="bhone_setting_example" type="checkbox" value="1" class="code"' . checked( 1, $options["setting_example"], false ) . '/> An example option for Bug Hunt One';

Real simple, missing 2 single quotes

Nearly there! Only 2 bugs left that haven't been mentioned yet.

@mordauk: Unless I'm mistaken Line 14 isn't a bug: http://codex.wordpress.org/Function_Reference/add_plugins_page
Nice spotting on the rest though! :)

icon-options-general, not icon-options-generale

@EnvatoWP - oh shoot, you're right. I wasn't sure there was an add_plugins_page(), and I did find it in the codex (somehow?), so I thought it was a bug :P

@mordauk ;)

And thanks @paulruescher, that leaves one bug left!

Line 2: the docBlock should start with /**, no?
Not really a bug, per se...

@contrastlogic Convention says you're correct there, but no, that's not the last bug.

Line 41: has a random <?php there lol

Line 82: "trim( $input['setting_example'] );" NOT "trim( $options['setting_example'] );" ;)

Done! Thanks, @johnnypea

@ManiSingh that's not so random, it breaks out on Line 25 :)

$options['setting_example'] = trim( isset( $input['setting_example'] ) );

@EnvatoWP sorry I might be a bit of a noob right now lol but shouldn't each opening tag have a closing one? I count 4 <?php and only 3 closing tags.

@ManiSingh you don't have to put PHP closing tag in the end of the file http://framework.zend.com/manual/en/coding-standard.php-file-formatting.html

Solution posted!

@ManiSingh ah I see what you mean, if you look at Line 32, that's where the missing closing tag is ;)

@johnnypea and @EnvatoWP thanks for clearing that up for me!

Line 18 still has spelling. Shouldn't it be 'bhone_settings'

better yet $options['setting_example'] = trim( intval( $input['setting_example'] ) );

@owldesign No, but I probably should've used a less ambiguous name for the menu slug there.

@paulruescher Yes! Great suggestion.

Please sign in to comment on this gist.

Something went wrong with that request. Please try again.