Skip to content

Instantly share code, notes, and snippets.

@EnvatoWP
Created January 9, 2012 11:13
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 4 You must be signed in to fork a gist
  • Save EnvatoWP/1582533 to your computer and use it in GitHub Desktop.
Save EnvatoWP/1582533 to your computer and use it in GitHub Desktop.
Bug Hunt One [SOLVED]
<?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' );
@jahvi
Copy link

jahvi commented Jan 9, 2012

options.pip in form action?

@EnvatoWP
Copy link
Author

EnvatoWP commented Jan 9, 2012

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 :)

@timwco
Copy link

timwco commented Jan 9, 2012

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.

@EnvatoWP
Copy link
Author

EnvatoWP commented Jan 9, 2012

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 :)

@gchp
Copy link

gchp commented Jan 9, 2012

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

@pippinsplugins
Copy link

Line 14 - "add_plugins_page" should be "add_options_page"

@pippinsplugins
Copy link

Line 70 should be

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

@pippinsplugins
Copy link

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

@owldesign
Copy link

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

@ManiSingh
Copy link

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

@contrastlogic
Copy link

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

@EnvatoWP
Copy link
Author

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! :)

@paulruescher
Copy link

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

@pippinsplugins
Copy link

@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

@EnvatoWP
Copy link
Author

@mordauk ;)

And thanks @paulruescher, that leaves one bug left!

@contrastlogic
Copy link

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

@EnvatoWP
Copy link
Author

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

@ManiSingh
Copy link

Line 41: has a random <?php there lol

@johnnypea
Copy link

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

@EnvatoWP
Copy link
Author

Done! Thanks, @johnnypea

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

@owldesign
Copy link

@paulruescher
Copy link

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

@ManiSingh
Copy link

@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.

@johnnypea
Copy link

@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

@EnvatoWP
Copy link
Author

Solution posted!

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

@ManiSingh
Copy link

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

@owldesign
Copy link

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

@paulruescher
Copy link

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

@EnvatoWP
Copy link
Author

@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