Giter Club home page Giter Club logo

options-framework-plugin's People

Contributors

alepee avatar aprakasa avatar bawxie avatar devinsays avatar inxilpro avatar iwillhappy1314 avatar jlethuau avatar lukemcdonald avatar majidkn avatar neojp avatar pedro-mendonca avatar samargulies avatar sksmatt avatar themeblvd avatar utkarshkukreti avatar vanpop avatar weslly avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

options-framework-plugin's Issues

of_get_option $default should be false

Hey Devin,

This is more an enhancement rather than issue, but thought I'd leave a note in here. Right now when the of_get_option function is defined in options-framework.php, you have the default being 'false' instead of false. I've found that if I remove the single quotes that I can then simply test if there is a value assigned in my template by just saying:

if(of_get_option('logo'))

Instead of:

if(of_get_option('logo') != 'false')

I'm not an expert with PHP, so there may be a reason I'm unaware of that you did this, so forgive me if there is.

Checkbox defaults aren't working

I'm having trouble getting the checkbox defaults to work. I think it has to do with how $POST sends checkbox data. Can someone else take a look at this?

Select Pages drop down not returning ID

I added the following code to include a drop down menu in the options for pages. Ideally, I would like this to output the page ID on a theme page (show this page here, etc.). However, when I echo the results of this code, I get the page order number (3rd page down on drop down = 3, and so on).

//Access the WordPress Pages via an Array
$options_pages = array();
$options_pages_obj = get_pages('sort_column=post_parent,menu_order');
foreach ($options_pages_obj as $options_page) {
    $options_pages[$options_page->ID] = $options_page->post_name; }
    $options_pages_tmp = array_unshift($options_pages, "Select a page:");

I believe the code is correct, so I think this is a bug; but please double-check me :)

of_recognized_font_faces()

For the typography option setting...it calls on a function that

I was wondering if it were possible to hook into...
this function....

of_recognized_font_faces() located in in options-sanitize.php

That way authors can add more fonts....

Checkbox bug

With the latest master (2011-03-24) checkboxes don't work anymore. They aren't saved as checked. To fix this:

In the file: options-framework.php in the method optionsframework_validate replace the line:

if ( ($input[($option['id'])]) != 'true' )
    $clean[($option['id'])] = 'false';

with:
if ( ($input[($option['id'])]) != 'true' ){
$clean[($option['id'])] = 'false';
}
else {
$clean[($option['id'])] = 'true';
}

Multicheck wont save

I haven't had time to fully test this, but when updating from 0.4 to the latest master my multicheck option will not save any values. Also, the multicheck values that were paths (ie. /wp-content/plugins/plugin.php) and when looking at the page source appear to be truncated now (ie. wp-contentpluginspluginphp). The names display fine, its just the option value that appears to be affected.

Using a Default Image

A user reported that if you have a default image set, its impossible to remove it and have that field be blank.

Type: Image Save Error

Using Latest Version, May 1st. pull Running Wordpress 3.1.2

In the options.php file provide for the options-check theme you provide an options with type "images"

$options[] = array( "name" => "Example Image Selector",
                    "desc" => "Images for layout.",
                    "id" => "example_images",
                    "std" => "2c-l-fixed",
                    "type" => "images",
                    "options" => array(
                        '1col-fixed' => $imagepath . '1col.png',
                        '2c-r-fixed' => $imagepath . '2cr.png',
                        '2c-l-fixed' => $imagepath . '2cl.png',
                        '3c-fixed' => $imagepath . '3cm.png',
                        '3c-r-fixed' => $imagepath . '3cr.png')
                    );

I had created another one with a different id "another_example_images"

$options[] = array( "name" => "Another Example Image Selector",
                    "desc" => "Images for layout.",
                    "id" => "another_example_images",
                    "std" => "2c-l-fixed",
                    "type" => "images",
                    "options" => array(
                        '1col-fixed' => $imagepath . '1col.png',
                        '2c-r-fixed' => $imagepath . '2cr.png',
                        '2c-l-fixed' => $imagepath . '2cl.png',
                        '3c-fixed' => $imagepath . '3cm.png',
                        '3c-r-fixed' => $imagepath . '3cr.png')
                    );

When you restore the default, and then save, with out selecting any of the images, the option moves to the last listed image on both of them.

Decide if isset or empty should be used in of_get_options

Moving over an issue discussed in other ticket. This from @thelukemcdonald:

In the footer case, using the version (0.6) in the repository, I've done a test. If I set a text option to have a default value of 'std' => 'Footer Test 1' in options.php and in the template file call it with of_get_option( 'footer_test' ), I should receive the default text "Footer Test 1".

If I delete the default text "Footer Test 1" from the options and save, the option is now empty and of_get_option( 'footer_test' ) then returns the $default set by of_get_option() function, which passes false. This means no text will show because options is empty, and the default of of_get_option() is false.

Using isset() would work in this case as well because it would be checking that, yes, the option is set (because it exists), and then returns it's value, which would be nothing.

I'm not a PHP guru by any means, so I could be totally off on all this. This is just what I've found in my tests. In most cases, I tend to pass the default value via the template of_get_option( 'options_name', $default_value ) and not via options.php. This allows for the theme to function/display normally without the Options Framework plugin activated. Maybe there is a better way for me to implement. This may all belong in a new ticket ticket?

Warning: Illegal offset type in isset or empty

I've recently had two people come to me about an issue when using the Options Framework Plugin and my theme. Apparently, when they are getting the following warning on the theme options page:

Warning: Illegal offset type in isset or empty in /.../wp-includes/pomo/translations.php on line 59

Line 59 has something to do with the translate_entry() function. Both sites with these issues are in another language.

Any ideas?

esc_html on type info + heading desc

This might not be a big issue, but i think 'esc_html' on the 'desc' for the options panel might be too strict. There might be cases when describing a setting an author might want to bold a particular word. Also, it's not a user input value, its a theme author value. So, giving theme authors the ability use some html in the "desc" value for the options array might be good. Just a thought...

One suggestion might be using the global $allowed tags, or creating a preferred tags array for this situation, in combination with WP 'wp_kses' function. http://ottopress.com/2010/wp-quickie-kses/

There might be a better way though.....but here is some sample code, 3 lines changed from current version of options-interface.php, noted with **

// Wordpress Allowed Tags under comment section
**global $allowedtags;**

    // Info
    case "info":
        $class = 'section';
        if ( isset( $value['type'] ) ) {
            $class .= ' section-' . $value['type'];
        }
        if ( isset( $value['class'] ) ) {
            $class .= ' ' . $value['class'];
        }

        $output .= '<div class="' . esc_attr( $class ) . '">' . "\n";
        if ( isset($value['name']) ) {
            $output .= '<h3 class="heading">' . esc_html( $value['name'] ) . '</h3>' . "\n";
        }
        if ( $value['desc'] ) {
            **$output .= '<p>'. wp_kses( $value['desc'], $allowedtags ). '</p>' . "\n";**
        }
        $output .= '<div class="clear"></div></div>' . "\n";
    break;                       

    // Heading for Navigation
    case "heading":
        if($counter >= 2){
           $output .= '</div>'."\n";
        }
        $jquery_click_hook = preg_replace('/\W/', '', strtolower($value['name']) );
        $jquery_click_hook = "of-option-" . $jquery_click_hook;
        $menu .= '<li><a title="' . esc_attr( $value['name'] ) . '" href="' . esc_attr( '#'.  $jquery_click_hook ) . '">' . esc_html( $value['name'] ) . '</a></li>';
        $output .= '<div class="group" id="' . esc_attr( $jquery_click_hook ) . '"><h2>' . esc_html( $value['name'] ) . '</h2>' . "\n";
        break;
    }

    if ( ( $value['type'] != "heading" ) && ( $value['type'] != "info" ) ) {
        if ( $value['type'] != "checkbox" ) {
            $output .= '<br/>';
        }
        $explain_value = '';
        if ( isset( $value['desc'] ) ) {
            $explain_value = $value['desc'];
        }

        **$output .= '</div><div class="explain">' . wp_kses( $explain_value, $allowedtags ) . '</div>'."\n";**
        $output .= '<div class="clear"></div></div></div>'."\n";
    }

Options validation (client side)

This isn't an issue but more of an interest check. What would you think off client-side validation using jquery validate (http://bassistance.de/jquery-plugins/jquery-plugin-validation/). This way you can easily validate min-max length on an input or for example use a regular expression to validate the Google Tracking code.

I have already tested this in my fork (version 0.3), so if anybody is interested I could update it to the current version and request a pull.

Allow access to options-sanitize.php in public views.

Currently I believe that this file is included only when the options page is being viewed. IMO the file should be available at all times. Basically anytime a theme would need to display a value stored in the options. Maybe including it at "init" would be a good solution?

Another solution would be to provide a hook that themes can use to include it themselves. The point of the hook would be so that the theme would not have to guess the path of the file ... which can get a little tricky depending on the configuration.

The purpose of including the sanitize file would be to promote the use of best practices for theme authors. It includes many functions that make escaping output very easy. IMHO theme authors should not have to rewrite it from scratch.

Options not saving in live environment

I just ran across a situation where the I've set up a test environment locally and have the site ready to go, options and all. When moving to a fresh install of WordPress on a live server, all default WP settings and no other plugins enabled, I cannot get the options to save. I've tried a new databases without any luck.

I'm using the current branch master. Any ideas?

Textarea type not working

When I use the textarea type on an installation, the Theme Options page comes back empty with not data. There are no errors being reported on the page. How do I view error logs for plugin?

Getting uploaded images as attachments

Hi, this is more a question than an actual issue but I didn't find a better place to ask, is there a way to get the attachment id of uploaded images? I see you created a custom post type where you attach all images so I'd like to be able to use my custom sizes to display them in my theme and if I do of_get_option('my_image') I get just the url.

No Public Functions

One thing that I've been doing in all of my plugins lately is to explicitly declare all functions as "private" and provide custom hooks where necessary. Take, for example, a case where a theme author creates a theme that supports this plugin and uses of_get_option() in the template files. Quite honestly, these theme files will produce a fatal error do to use of an undefined function. Installing the plugin would fix this.

IMO dependencies like this between plugin and theme should not exist.

A simple way to help fix this would be to enforce the use of a filter instead.

<?php print apply_filters( 'of-get-option', 'Default Value', 'option-name' ); ?>

Just a thought.

saving html code in text area

is there a way to allow textareas to save html code? this is useful if the textarea is for pasting google codes (adsense, analytics, cse, etc) or embeds.

Options wont save

When I try to test this plugin by saving options, I'm brought to the /wp-admin/options.php page with a "Safari can't open the page" error on Wordpress 3.1.

Multicheck - Options check

Since the initial rewrite of the multicheck options not to long ago, I have been trying to get the multicheck options to work. In the current master (plugin version 0.4), I've done some testing trying to show/hide of an element based on the multicheck options. To make things easier, I did a simple screencast that hopefully helps out. In short, there are two problems I've come across:

  1. Getting a single multicheck options key values seems to show all instances of multicheck options key values.
  2. A check to see if a multicheck option is checked doesn't seem to be working correctly.

Screencast: http://www.screenr.com/xF3

Use Ajax upload instead of WP/Custom Post Type Upload

The file upload feature in the Options-Framework is currently not as user-friendly or intuitive as it used to be.

What would you rather have your users do they they want to upload a file in the theme options area?

Option One

User Clicks on the "Upload" button
Selects the file to upload using the "Select Files" button
Browse for the file.
Selects the file
File uploads
User see the file has been uploaded but has to figure out what to press next... ???
User then see's "Insert into Post" button
Finally file has been uploaded and is showing in the theme options.
Option Two

User Clicks on the "Upload" button
Browse for file
File uploads
File has been uploaded and is showing in the theme options.
It does not make sense to make this process hard for users, It should be simple and intuitive.

Options Check Theme

Warning: Missing argument 2 for of_get_option(), called in D:\helga\xampp\htdocs\single\wp-content\themes\options-check\index.php on line 61

which refers to

<dl> <dt>type: uploader</dt> <dd>of_get_option('example_uploader'): <?php echo of_get_option('example_uploader', 'no entry'); ?></dd> <?php if ( of_get_option('example_uploader') ) { ?> <img src="<?php echo of_get_option('example_uploader'); ?>" /> <?php } ?> </dl>

in index.php

even though the of_get_option() function seems to say that if there is no second argument it should be set to false

Javascript WYSIWYG editor for TextArea

I have installed your framework and changed some sanitization routines so I can use html within the textarea. If you plan to do any further work with the textarea (seen some discussion about it already), it would be greatly appreciated if you could consider adding an optional Javascript WYSIWYG to the admin panel (aka TinyMCE) too.

Thanks!

Uploaded Background Image Bug

Filters for the background need to be finished out.

Uploader isn't keeping the image stored.

Background options should stay if image is loaded, even on refresh.

Fatal Error when activating Options Framework

When I install the Options Framework plugin directly in Wordpress.org, it causes an issues and makes the "Portfolio" button disappear.

So I downloaded the one provided on this site (devinsays-options-framework-plugin-v0.5-41-gcd5dd55.zip) and uploaded to WP. I can install fine, but when I go to activate I get the message "Fatal error: Call to undefined function optionsframework_options() in ...wp-content/plugins/devinsays-options-framework-plugin-cd5dd55/options-framework.php on line 162

Does it have anything to do with the fact that I just upgraded to the latest wordpress version (3.1.3)?

No Repeat

Should be no-repeat rather than none.

function of_recognized_background_repeat() {
return array(
'none' => 'No Repeat',
'repeat-x' => 'Repeat Horizontally',
'repeat-y' => 'Repeat Vertically',
'repeat' => 'Repeat All',
);
}

Multicheck...std

When you set multi check defaults, for your multi check type, and you clear the options manually, they don't stick, Instead, they go to the default values....

So maybe, there is a check if the array is empthy, and then it sets the default. It Should be a little smarter, and know when to detect that the options have been unchecked, that way it'll stick.

Runing latest Github pull, on 3.1.2 Wordpress

// MULTICHECK ARRAY
$multicheck_array = array("one" => "French Toast", "two" => "Pancake", "three" => "Omelette", "four" => "Crepe", "five" => "Waffle");

// MULTICHECK DEFAULTS
$multicheck_defaults = array("one" => true,"five" => true);



$options[] = array( "name" => "Multicheck",
                    "desc" => "Multicheck description.",
                    "id" => "example_multicheck",
                    "std" => $multicheck_defaults, // These items get checked by default
                    "type" => "multicheck",
                    "options" => $multicheck_array);

Labels for "issues"

On the WPAlchemy Repository, Dimas has colored Labels for "Issues" ( https://github.com/farinspace/wpalchemy/issues ). For example, when an issue is posted, he can then mark it as a bug, feature, idea, or task.

I thought this was useful and might be a good idea, but have not a clue on how to accomplish it.

Use themes version of of_get_option()

Is there a way to use my own version of of_get_option()?

Currently, if I don't use the check if ( ! function_exists( 'of_get_option' ) ) in my themes functions.php file, I get a fatal error. I noticed the same check is being used in options-framework.php around line 400. I'm guessing I need to create an add_action() or apply_filters() call somewhere to call my version of of_get_option() before the plugin does, but I can't think of it at the moment.

Cheatin, huh? Error

In the latest version, an update to the function optionsframework_rolescheck() seems to be causing a "Cheatin, huh?" error when the user is not logged in, or does not have permissions to edit theme options. The following seems to do the trick for that function:

if ( current_user_can( 'edit_theme_options' ) ) {
    /* If the user can edit theme options, let the fun begin! */
    add_action( 'admin_menu', 'optionsframework_add_page' );
    add_action( 'admin_init', 'optionsframework_init' );
    add_action( 'admin_init', 'optionsframework_mlu_init' );
    add_action( 'after_setup_theme', 'optionsframework_helpers' );
}

Luke

Created case for background style

i'm not sure my commit notes are the most helpful, b/c I didn't know what I was doing trying to merge my branches. but i added a case for background styling that is an array like typography and includes color, image, repeat, position, and attachment properties.

ps - just wondering why you chose to do :

testtheme[example_typography_size]

instead of

testtheme[example_typography][size]

as the latter is how WPAlchemy names its inputs when creating metaboxes.

True, False options for Checkboxes

The True/False update to Checkboxes don't seem to be reflecting correctly against the output under options-interface.php or what's being saved at validation. Looks like we'll need to typecast the $val to determine true/false.

Lighter UI for Color Picker

The color picker that you are using provides a lighter skin that I think would look killer with WordPress 3.2's admin refresh.

I separated them along time ago for ArtPress, but ... you know ... I never really finished that. This directory has all the light images:

https://github.com/mfields/artpress/tree/master/images/color-picker

And I believe that this stylesheet has all of the necessary mods in place:

https://github.com/mfields/artpress/blob/master/styles/colorpicker.css

Multicheck - Pass/Fail tests

Devin: I thought I would start a new issue on this. Nice work on fixing the multiple Multicheck array's.

I've been testing "pass/fail" of multicheck checkboxes. Regular checkbox's work fine. Multicheck however, I cannot get to work. Also, it doesn't seem to matter if you have one or multiple multicheck options in the options.php or in the page. I've created a screencast below demonstrating what I've come across. I've also included two links to files I used for the Options Check index.php and options.php for you to use quickly.

Screencast: http://www.screenr.com/ZTP

Options Check index.php: http://d.pr/py33

Options Check options.php: http://d.pr/9CkU

Getting closer. Thanks for all your hard work!

Font Sizes

Tested some code on returning the correct font size with sanitize. Working code shown below:

function of_sanitize_font_size( $value ) {
    $recognized = of_recognized_font_sizes();
    $value = preg_replace('/px/','', $value);
    if ( in_array( (int) $value, $recognized ) ) {
        return (int) $value;
    }
    return (int) apply_filters( 'of_default_font_size', $recognized );
}
add_filter( 'of_font_size', 'of_sanitize_font_size' );

Info Option Sanitization

Is there a way to change the sanitization of the "info" option? I would like to add some tags to the allowed tags similar to how the of_sanitize_textarea might work. For example, the option to add span, img or iframe tags would be helpful when needed. I didn't find anything in options-sanitize.php to do this without editing the plugins files.

How to input image?

Hi,

I'm trying to input a featured image option in to a twenty ten child theme and as a designer I'm struggling with the code for it.

For theme functions I have:

function main_photo() {
$shortname = get_option('of_shortname');
if (get_option($shortname . '_main_photo') != '') {
echo ''."\n";
}
else { ?>

"Main Photo", "desc" => "Upload a photo for the front page, or specify the image address of your online photo.", "id" => $shortname."main_photo", "std" => "", "type" => "upload"); For calling on the page:

Would also like to know how I could call up multiple images in the header?

Apolgise if I posted this in the wrong area.

Thanks

Sortable Multicheck

Not sure if this is a feature that the community would enjoy. But I think there are some cases where a sortable multicheck would be great via drag and drop. It's probably only applicable to a small amount cases. For example if you had options to turn on and off meta info, such as tags, author, date, time, category. But would like the user to sort the order of the selected options.

I could take a stab at it. What do you think Devin? Useful?

Multicheck issue

First of all, Thanks a Million for this awesome Theme Option plugin :) Truely Magical :) So playing around with it - making a free wp theme.

I'm facing 2 issues with Multicheck.

  1. Whenever I try to change the default value of "options" from "$options_radio" to custom-ones, Gets a lot of errors on Theme Options top part. Say the error resides in line 646 and some other in admin-interface.php
  2. Not able to fetch the values from muticheck options. Code example given below.

File : theme-options.php


$options_radio = array("one" => "Twitter","two" => "Facebook","three" => "Digg","four" => "StumbleUpon","five" => "Delicious");

....

$options[] = array( "name" => "Share Buttons",
                    "desc" => "Select the Share service you wish to use in the single page.",
                    "id" => $shortname."_share_buttons_options",
                    "std" => "two",
                    "type" => "multicheck",
                    "options" => $options_radio);

File: single.php

$shortname =  get_option('of_shortname');
$shareButtonsOptions = get_option($shortname . '_share_buttons_options');

echo $shareButtonsOptions; // prints nothing
print_r($shareButtonsOptions); //  prints nothing
echo $shareButtonsOptions['one']; // prints nothing

Any ideas ? Thanks in advance.

Use Ajax upload instead of WP/Custom Post Type Upload

The file upload feature in the Options-Framework is currently not as user-friendly or intuitive as it used to be.

What would you rather have your users do they they want to upload a file in the theme options area?

Option One
1. User Clicks on the "Upload" button
2. Selects the file to upload using the "Select Files" button
3. Browse for the file.
4. Selects the file
5. File uploads
6. User see the file has been uploaded but has to figure out what to press next... ???
7. User then see's "Insert into Post" button
8. Finally file has been uploaded and is showing in the theme options.

Option Two
1. User Clicks on the "Upload" button
2. Browse for file
3. File uploads
4. File has been uploaded and is showing in the theme options.

It does not make sense to make this process hard for users, It should be simple and intuitive.

Multicheck Key's

In the current master, the key's for multicheck are being pulled in but ignoring underscores. For example, the key 'french_toast => 'French Toast' is being saved as 'frenchtoast'. Also, maybe use preg_replace() instead of ereg_replace() (deprecated as of PHP 5.3.0)?

In options-framework.php, line 381 replace:
$key = ereg_replace("[^A-Za-z0-9]", "", strtolower($key));
with:
$key = preg_replace("/[^A-Za-z0-9_]/", "", strtolower($key));

Replace $allowedtags with $allowedposttags for textarea

The most asked question I get about the framework is how to allow more tags in the textarea. I'm thinking loosening the sanitization here to use $allowedposttags rather than $allowedtags. I'm also considering doing the same for the info tag. Discuss...

Here's a var dump with the differences:

ALLOWED TAGS:

array(13) { ["a"]=> array(2) { ["href"]=> array(0) { } ["title"]=> array(0) { } } ["abbr"]=> array(1) { ["title"]=> array(0) { } } ["acronym"]=> array(1) { ["title"]=> array(0) { } } ["b"]=> array(0) { } ["blockquote"]=> array(1) { ["cite"]=> array(0) { } } ["cite"]=> array(0) { } ["code"]=> array(0) { } ["del"]=> array(1) { ["datetime"]=> array(0) { } } ["em"]=> array(0) { } ["i"]=> array(0) { } ["q"]=> array(1) { ["cite"]=> array(0) { } } ["strike"]=> array(0) { } ["strong"]=> array(0) { } }

ALLOWED POST TAGS:

array(71) { ["address"]=> array(0) { } ["a"]=> array(8) { ["class"]=> array(0) { } ["href"]=> array(0) { } ["id"]=> array(0) { } ["title"]=> array(0) { } ["rel"]=> array(0) { } ["rev"]=> array(0) { } ["name"]=> array(0) { } ["target"]=> array(0) { } } ["abbr"]=> array(2) { ["class"]=> array(0) { } ["title"]=> array(0) { } } ["acronym"]=> array(1) { ["title"]=> array(0) { } } ["article"]=> array(6) { ["align"]=> array(0) { } ["class"]=> array(0) { } ["dir"]=> array(0) { } ["lang"]=> array(0) { } ["style"]=> array(0) { } ["xml:lang"]=> array(0) { } } ["aside"]=> array(6) { ["align"]=> array(0) { } ["class"]=> array(0) { } ["dir"]=> array(0) { } ["lang"]=> array(0) { } ["style"]=> array(0) { } ["xml:lang"]=> array(0) { } } ["b"]=> array(0) { } ["big"]=> array(0) { } ["blockquote"]=> array(5) { ["id"]=> array(0) { } ["cite"]=> array(0) { } ["class"]=> array(0) { } ["lang"]=> array(0) { } ["xml:lang"]=> array(0) { } } ["br"]=> array(1) { ["class"]=> array(0) { } } ["button"]=> array(4) { ["disabled"]=> array(0) { } ["name"]=> array(0) { } ["type"]=> array(0) { } ["value"]=> array(0) { } } ["caption"]=> array(2) { ["align"]=> array(0) { } ["class"]=> array(0) { } } ["cite"]=> array(4) { ["class"]=> array(0) { } ["dir"]=> array(0) { } ["lang"]=> array(0) { } ["title"]=> array(0) { } } ["code"]=> array(1) { ["style"]=> array(0) { } } ["col"]=> array(8) { ["align"]=> array(0) { } ["char"]=> array(0) { } ["charoff"]=> array(0) { } ["span"]=> array(0) { } ["dir"]=> array(0) { } ["style"]=> array(0) { } ["valign"]=> array(0) { } ["width"]=> array(0) { } } ["del"]=> array(1) { ["datetime"]=> array(0) { } } ["dd"]=> array(0) { } ["details"]=> array(7) { ["align"]=> array(0) { } ["class"]=> array(0) { } ["dir"]=> array(0) { } ["lang"]=> array(0) { } ["open"]=> array(0) { } ["style"]=> array(0) { } ["xml:lang"]=> array(0) { } } ["div"]=> array(6) { ["align"]=> array(0) { } ["class"]=> array(0) { } ["dir"]=> array(0) { } ["lang"]=> array(0) { } ["style"]=> array(0) { } ["xml:lang"]=> array(0) { } } ["dl"]=> array(0) { } ["dt"]=> array(0) { } ["em"]=> array(0) { } ["fieldset"]=> array(0) { } ["figure"]=> array(6) { ["align"]=> array(0) { } ["class"]=> array(0) { } ["dir"]=> array(0) { } ["lang"]=> array(0) { } ["style"]=> array(0) { } ["xml:lang"]=> array(0) { } } ["figcaption"]=> array(6) { ["align"]=> array(0) { } ["class"]=> array(0) { } ["dir"]=> array(0) { } ["lang"]=> array(0) { } ["style"]=> array(0) { } ["xml:lang"]=> array(0) { } } ["font"]=> array(3) { ["color"]=> array(0) { } ["face"]=> array(0) { } ["size"]=> array(0) { } } ["footer"]=> array(6) { ["align"]=> array(0) { } ["class"]=> array(0) { } ["dir"]=> array(0) { } ["lang"]=> array(0) { } ["style"]=> array(0) { } ["xml:lang"]=> array(0) { } } ["form"]=> array(7) { ["action"]=> array(0) { } ["accept"]=> array(0) { } ["accept-charset"]=> array(0) { } ["enctype"]=> array(0) { } ["method"]=> array(0) { } ["name"]=> array(0) { } ["target"]=> array(0) { } } ["h1"]=> array(4) { ["align"]=> array(0) { } ["class"]=> array(0) { } ["id"]=> array(0) { } ["style"]=> array(0) { } } ["h2"]=> array(4) { ["align"]=> array(0) { } ["class"]=> array(0) { } ["id"]=> array(0) { } ["style"]=> array(0) { } } ["h3"]=> array(4) { ["align"]=> array(0) { } ["class"]=> array(0) { } ["id"]=> array(0) { } ["style"]=> array(0) { } } ["h4"]=> array(4) { ["align"]=> array(0) { } ["class"]=> array(0) { } ["id"]=> array(0) { } ["style"]=> array(0) { } } ["h5"]=> array(4) { ["align"]=> array(0) { } ["class"]=> array(0) { } ["id"]=> array(0) { } ["style"]=> array(0) { } } ["h6"]=> array(4) { ["align"]=> array(0) { } ["class"]=> array(0) { } ["id"]=> array(0) { } ["style"]=> array(0) { } } ["header"]=> array(6) { ["align"]=> array(0) { } ["class"]=> array(0) { } ["dir"]=> array(0) { } ["lang"]=> array(0) { } ["style"]=> array(0) { } ["xml:lang"]=> array(0) { } } ["hgroup"]=> array(6) { ["align"]=> array(0) { } ["class"]=> array(0) { } ["dir"]=> array(0) { } ["lang"]=> array(0) { } ["style"]=> array(0) { } ["xml:lang"]=> array(0) { } } ["hr"]=> array(5) { ["align"]=> array(0) { } ["class"]=> array(0) { } ["noshade"]=> array(0) { } ["size"]=> array(0) { } ["width"]=> array(0) { } } ["i"]=> array(0) { } ["img"]=> array(11) { ["alt"]=> array(0) { } ["align"]=> array(0) { } ["border"]=> array(0) { } ["class"]=> array(0) { } ["height"]=> array(0) { } ["hspace"]=> array(0) { } ["longdesc"]=> array(0) { } ["vspace"]=> array(0) { } ["src"]=> array(0) { } ["style"]=> array(0) { } ["width"]=> array(0) { } } ["ins"]=> array(2) { ["datetime"]=> array(0) { } ["cite"]=> array(0) { } } ["kbd"]=> array(0) { } ["label"]=> array(1) { ["for"]=> array(0) { } } ["legend"]=> array(1) { ["align"]=> array(0) { } } ["li"]=> array(2) { ["align"]=> array(0) { } ["class"]=> array(0) { } } ["menu"]=> array(3) { ["class"]=> array(0) { } ["style"]=> array(0) { } ["type"]=> array(0) { } } ["nav"]=> array(6) { ["align"]=> array(0) { } ["class"]=> array(0) { } ["dir"]=> array(0) { } ["lang"]=> array(0) { } ["style"]=> array(0) { } ["xml:lang"]=> array(0) { } } ["p"]=> array(6) { ["class"]=> array(0) { } ["align"]=> array(0) { } ["dir"]=> array(0) { } ["lang"]=> array(0) { } ["style"]=> array(0) { } ["xml:lang"]=> array(0) { } } ["pre"]=> array(2) { ["style"]=> array(0) { } ["width"]=> array(0) { } } ["q"]=> array(1) { ["cite"]=> array(0) { } } ["s"]=> array(0) { } ["span"]=> array(7) { ["class"]=> array(0) { } ["dir"]=> array(0) { } ["align"]=> array(0) { } ["lang"]=> array(0) { } ["style"]=> array(0) { } ["title"]=> array(0) { } ["xml:lang"]=> array(0) { } } ["section"]=> array(6) { ["align"]=> array(0) { } ["class"]=> array(0) { } ["dir"]=> array(0) { } ["lang"]=> array(0) { } ["style"]=> array(0) { } ["xml:lang"]=> array(0) { } } ["strike"]=> array(0) { } ["strong"]=> array(0) { } ["sub"]=> array(0) { } ["summary"]=> array(6) { ["align"]=> array(0) { } ["class"]=> array(0) { } ["dir"]=> array(0) { } ["lang"]=> array(0) { } ["style"]=> array(0) { } ["xml:lang"]=> array(0) { } } ["sup"]=> array(0) { } ["table"]=> array(12) { ["align"]=> array(0) { } ["bgcolor"]=> array(0) { } ["border"]=> array(0) { } ["cellpadding"]=> array(0) { } ["cellspacing"]=> array(0) { } ["class"]=> array(0) { } ["dir"]=> array(0) { } ["id"]=> array(0) { } ["rules"]=> array(0) { } ["style"]=> array(0) { } ["summary"]=> array(0) { } ["width"]=> array(0) { } } ["tbody"]=> array(4) { ["align"]=> array(0) { } ["char"]=> array(0) { } ["charoff"]=> array(0) { } ["valign"]=> array(0) { } } ["td"]=> array(17) { ["abbr"]=> array(0) { } ["align"]=> array(0) { } ["axis"]=> array(0) { } ["bgcolor"]=> array(0) { } ["char"]=> array(0) { } ["charoff"]=> array(0) { } ["class"]=> array(0) { } ["colspan"]=> array(0) { } ["dir"]=> array(0) { } ["headers"]=> array(0) { } ["height"]=> array(0) { } ["nowrap"]=> array(0) { } ["rowspan"]=> array(0) { } ["scope"]=> array(0) { } ["style"]=> array(0) { } ["valign"]=> array(0) { } ["width"]=> array(0) { } } ["textarea"]=> array(5) { ["cols"]=> array(0) { } ["rows"]=> array(0) { } ["disabled"]=> array(0) { } ["name"]=> array(0) { } ["readonly"]=> array(0) { } } ["tfoot"]=> array(5) { ["align"]=> array(0) { } ["char"]=> array(0) { } ["class"]=> array(0) { } ["charoff"]=> array(0) { } ["valign"]=> array(0) { } } ["th"]=> array(15) { ["abbr"]=> array(0) { } ["align"]=> array(0) { } ["axis"]=> array(0) { } ["bgcolor"]=> array(0) { } ["char"]=> array(0) { } ["charoff"]=> array(0) { } ["class"]=> array(0) { } ["colspan"]=> array(0) { } ["headers"]=> array(0) { } ["height"]=> array(0) { } ["nowrap"]=> array(0) { } ["rowspan"]=> array(0) { } ["scope"]=> array(0) { } ["valign"]=> array(0) { } ["width"]=> array(0) { } } ["thead"]=> array(5) { ["align"]=> array(0) { } ["char"]=> array(0) { } ["charoff"]=> array(0) { } ["class"]=> array(0) { } ["valign"]=> array(0) { } } ["title"]=> array(0) { } ["tr"]=> array(7) { ["align"]=> array(0) { } ["bgcolor"]=> array(0) { } ["char"]=> array(0) { } ["charoff"]=> array(0) { } ["class"]=> array(0) { } ["style"]=> array(0) { } ["valign"]=> array(0) { } } ["tt"]=> array(0) { } ["u"]=> array(0) { } ["ul"]=> array(3) { ["class"]=> array(0) { } ["style"]=> array(0) { } ["type"]=> array(0) { } } ["ol"]=> array(4) { ["class"]=> array(0) { } ["start"]=> array(0) { } ["style"]=> array(0) { } ["type"]=> array(0) { } } ["var"]=> array(0) { } }

Replace Delete Icon

Replace delete icon for images with something closer to the WordPress UI. Perhaps just text.

Labels on Checkbox

Comment from user:

Typically, you can click the label to activate a check box, but this is not the case in the framework. The radio buttons work as expected though.

Allow tabs to stick on administartion pages.

Using the test theme bundled with the plugin and the default options you will notice there are two tabs: "Basic Settings" and "Advanced Settings". if you navigate to Advanced Setting and make some modifications and then click "Save Options" everything works fine except, the current active tab is now "Basic Settings".

I think that it would be a good for UX to recode the form to be aware of the current active tab.

I also think that it would be a good idea to use either "options" or "settings" exclusively throughout the plugin.

Reset doesn't store values in database

put this on your blog, but putting it here too... when i click "restore defaults" the default values (set as "std" in the options array) aren't saved to the database immediately. you have to click Save after you click Restore to get the "std" defaults usable to

of_get_option('test');

without needing to define the default value a second time.

of_get_option('test', 'default value');

to me it makes sense to declare that in the $options array and have everything nice and centralized.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.