Created

Embed URL

HTTPS clone URL

SSH clone URL

You can clone with HTTPS or SSH.

Download Gist

Bug Hunt One [SOLVED]

View bug-hunt-one.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?

Owner

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.

Owner

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

Owner

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

Owner

@mordauk ;)

And thanks @paulruescher, that leaves one bug left!

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

Owner

@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'] );" ;)

Owner

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

Owner

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'] ) );

Owner

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

@paulruescher Yes! Great suggestion.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.