Skip to content

Commit

Permalink
control bootstrap css/js via yii-embed wordpress settings page
Browse files Browse the repository at this point in the history
  • Loading branch information
cornernote committed Feb 24, 2014
1 parent 2f595d6 commit e24d138
Show file tree
Hide file tree
Showing 2 changed files with 174 additions and 11 deletions.
38 changes: 34 additions & 4 deletions includes/YiiEmbed.php
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,9 @@ public static function activation()
}
// add options
delete_option('yii_embed');
add_option('yii_embed', array('yii_path' => ''));
add_option('yii_embed', array(
'yii_path' => '',
));
}

/**
Expand Down Expand Up @@ -175,9 +177,37 @@ public static function registerScripts()
if (!YII_EMBED_YII_VERSION)
return;

Yii::app()->bootstrap->register();
if (is_admin())
Yii::app()->clientScript->registerCss('wp-admin-fix', 'body{background-color:transparent;}ul,ol{margin:0;}select,textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{height:auto;}');
$options = get_option('yii_embed');
$bootstrap = Yii::app()->bootstrap;

// admin css/js
if (is_admin()) {
if (!empty($options['admin_bootstrap_css'])) {
$bootstrap->registerCoreCss();
Yii::app()->clientScript->registerCss('wp-bs-admin-fix', 'body{background-color:transparent;}ul,ol{margin:0;}select,textarea,input[type="text"],input[type="password"],input[type="datetime"],input[type="datetime-local"],input[type="date"],input[type="month"],input[type="time"],input[type="week"],input[type="number"],input[type="email"],input[type="url"],input[type="search"],input[type="tel"],input[type="color"],.uneditable-input{height:auto;}');
}
if (!empty($options['admin_bootstrap_css_responsive']))
$bootstrap->registerResponsiveCss();
if (!empty($options['admin_bootstrap_js']))
$bootstrap->registerCoreScripts();
if (!empty($options['admin_bootstrap_js_popover']))
$bootstrap->registerPopover();
if (!empty($options['admin_bootstrap_js_tooltip']))
$bootstrap->registerTooltip();
}
// front css/js
else {
if (!empty($options['front_bootstrap_css']))
$bootstrap->registerCoreCss();
if (!empty($options['front_bootstrap_css_responsive']))
$bootstrap->registerResponsiveCss();
if (!empty($options['front_bootstrap_js']))
$bootstrap->registerCoreScripts();
if (!empty($options['front_bootstrap_js_popover']))
$bootstrap->registerPopover();
if (!empty($options['front_bootstrap_js_tooltip']))
$bootstrap->registerTooltip();
}
}

/**
Expand Down
147 changes: 140 additions & 7 deletions includes/YiiEmbedSettings.php
Original file line number Diff line number Diff line change
Expand Up @@ -83,11 +83,25 @@ public function admin_init()
// register the setting and validation callback
register_setting('yii_embed', 'yii_embed', array($this, 'validate'));

// add the settings section
add_settings_section('yii_embed', '', array($this, 'settings_section_yii_embed'), 'yii-embed-settings');
// yii settings
add_settings_section('yii', '', array($this, 'settings_section_yii'), 'yii-embed-settings');
add_settings_field('yii_embed_yii_path', __('Yii Path'), array($this, 'settings_field_yii_path'), 'yii-embed-settings', 'yii');

// add the yii_path field
add_settings_field('yii_embed_yii_path', __('Yii Path'), array($this, 'settings_field_yii_path'), 'yii-embed-settings', 'yii_embed');
// admin bootstrap settings
add_settings_section('admin_bootstrap', '', array($this, 'settings_section_admin_bootstrap'), 'yii-embed-settings');
add_settings_field('yii_embed_admin_bootstrap_css', __('Bootstrap CSS'), array($this, 'settings_field_admin_bootstrap_css'), 'yii-embed-settings', 'admin_bootstrap');
add_settings_field('yii_embed_admin_bootstrap_css_responsive', __('Bootstrap Responsive CSS'), array($this, 'settings_field_admin_bootstrap_css_responsive'), 'yii-embed-settings', 'admin_bootstrap');
add_settings_field('yii_embed_admin_bootstrap_js', __('Bootstrap JS'), array($this, 'settings_field_admin_bootstrap_js'), 'yii-embed-settings', 'admin_bootstrap');
add_settings_field('yii_embed_admin_bootstrap_js_popover', __('Bootstrap Popover JS'), array($this, 'settings_field_admin_bootstrap_js_popover'), 'yii-embed-settings', 'admin_bootstrap');
add_settings_field('yii_embed_admin_bootstrap_js_tooltip', __('Bootstrap Tooltip JS'), array($this, 'settings_field_admin_bootstrap_js_tooltip'), 'yii-embed-settings', 'admin_bootstrap');

// front bootstrap settings
add_settings_section('front_bootstrap', '', array($this, 'settings_section_front_bootstrap'), 'yii-embed-settings');
add_settings_field('yii_embed_front_bootstrap_css', __('Bootstrap CSS'), array($this, 'settings_field_front_bootstrap_css'), 'yii-embed-settings', 'front_bootstrap');
add_settings_field('yii_embed_front_bootstrap_css_responsive', __('Bootstrap Responsive CSS'), array($this, 'settings_field_front_bootstrap_css_responsive'), 'yii-embed-settings', 'front_bootstrap');
add_settings_field('yii_embed_front_bootstrap_js', __('Bootstrap JS'), array($this, 'settings_field_front_bootstrap_js'), 'yii-embed-settings', 'front_bootstrap');
add_settings_field('yii_embed_front_bootstrap_js_popover', __('Bootstrap Popover JS'), array($this, 'settings_field_front_bootstrap_js_popover'), 'yii-embed-settings', 'front_bootstrap');
add_settings_field('yii_embed_front_bootstrap_js_tooltip', __('Bootstrap Tooltip JS'), array($this, 'settings_field_front_bootstrap_js_tooltip'), 'yii-embed-settings', 'front_bootstrap');
}

/**
Expand Down Expand Up @@ -172,9 +186,9 @@ public function options_page()
/**
* Callback to add the section settings
*/
public static function settings_section_yii_embed()
public static function settings_section_yii()
{
//echo __('Yii Embed Settings:');
echo '<h2>' . __('Yii Settings') . '</h2>';
}

/**
Expand All @@ -183,10 +197,129 @@ public static function settings_section_yii_embed()
public function settings_field_yii_path()
{
echo strtr('<input type="text" id="yii_embed_yii_path" name="yii_embed[yii_path]" class="regular-text" value=":value" /><p class="description">:description :default_path</p>', array(
':value' => isset($this->options['yii_path']) ? esc_attr($this->options['yii_path']) : '',
':value' => !empty($this->options['yii_path']) ? esc_attr($this->options['yii_path']) : '',
':description' => __('Full path the the folder that contains Yii\'s "framework" folder.'),
':default_path' => empty($this->options['yii_path']) ? '<br/>' . __('Default:') . ' ' . YiiEmbed::yiiPath() : '',
));
}

/**
* Callback to add the section settings
*/
public static function settings_section_admin_bootstrap()
{
echo '<h2>' . __('Admin Bootstrap Settings') . '</h2>';
echo '<p>' . __('Choose which bootstrap styles and scripts should be enabled in the Administration theme.') . '</p>';
}

/**
* Callback to add the admin_bootstrap_css setting field
*/
public function settings_field_admin_bootstrap_css()
{
echo strtr('<input type="checkbox" id="yii_embed_admin_bootstrap_css" name="yii_embed[admin_bootstrap_css]" value="1" :checked />', array(
':checked' => !empty($this->options['admin_bootstrap_css']) ? 'checked="checked"' : '',
));
}

/**
* Callback to add the admin_bootstrap_css_responsive setting field
*/
public function settings_field_admin_bootstrap_css_responsive()
{
echo strtr('<input type="checkbox" id="yii_embed_admin_bootstrap_css_responsive" name="yii_embed[admin_bootstrap_css_responsive]" value="1" :checked />', array(
':checked' => !empty($this->options['admin_bootstrap_css_responsive']) ? 'checked="checked"' : '',
));
}

/**
* Callback to add the admin_bootstrap_js setting field
*/
public function settings_field_admin_bootstrap_js()
{
echo strtr('<input type="checkbox" id="yii_embed_admin_bootstrap_js" name="yii_embed[admin_bootstrap_js]" value="1" :checked />', array(
':checked' => !empty($this->options['admin_bootstrap_js']) ? 'checked="checked"' : '',
));
}

/**
* Callback to add the admin_bootstrap_js_popover setting field
*/
public function settings_field_admin_bootstrap_js_popover()
{
echo strtr('<input type="checkbox" id="yii_embed_admin_bootstrap_js_popover" name="yii_embed[admin_bootstrap_js_popover]" value="1" :checked />', array(
':checked' => !empty($this->options['admin_bootstrap_js_popover']) ? 'checked="checked"' : '',
));
}

/**
* Callback to add the admin_bootstrap_js_tooltip setting field
*/
public function settings_field_admin_bootstrap_js_tooltip()
{
echo strtr('<input type="checkbox" id="yii_embed_admin_bootstrap_js_tooltip" name="yii_embed[admin_bootstrap_js_tooltip]" value="1" :checked />', array(
':checked' => !empty($this->options['admin_bootstrap_js_tooltip']) ? 'checked="checked"' : '',
));
}


/**
* Callback to add the section settings
*/
public static function settings_section_front_bootstrap()
{
echo '<h2>' . __('Front Bootstrap Settings') . '</h2>';
echo '<p>' . __('Choose which bootstrap styles and scripts should be enabled in the Front-End theme.') . '</p>';
}

/**
* Callback to add the front_bootstrap_css setting field
*/
public function settings_field_front_bootstrap_css()
{
echo strtr('<input type="checkbox" id="yii_embed_front_bootstrap_css" name="yii_embed[front_bootstrap_css]" value="1" :checked />', array(
':checked' => !empty($this->options['front_bootstrap_css']) ? 'checked="checked"' : '',
));
}

/**
* Callback to add the front_bootstrap_css_responsive setting field
*/
public function settings_field_front_bootstrap_css_responsive()
{
echo strtr('<input type="checkbox" id="yii_embed_front_bootstrap_css_responsive" name="yii_embed[front_bootstrap_css_responsive]" value="1" :checked />', array(
':checked' => !empty($this->options['front_bootstrap_css_responsive']) ? 'checked="checked"' : '',
));
}

/**
* Callback to add the front_bootstrap_js setting field
*/
public function settings_field_front_bootstrap_js()
{
echo strtr('<input type="checkbox" id="yii_embed_front_bootstrap_js" name="yii_embed[front_bootstrap_js]" value="1" :checked />', array(
':checked' => !empty($this->options['front_bootstrap_js']) ? 'checked="checked"' : '',
));
}

/**
* Callback to add the front_bootstrap_js_popover setting field
*/
public function settings_field_front_bootstrap_js_popover()
{
echo strtr('<input type="checkbox" id="yii_embed_front_bootstrap_js_popover" name="yii_embed[front_bootstrap_js_popover]" value="1" :checked />', array(
':checked' => !empty($this->options['front_bootstrap_js_popover']) ? 'checked="checked"' : '',
));
}

/**
* Callback to add the front_bootstrap_js_tooltip setting field
*/
public function settings_field_front_bootstrap_js_tooltip()
{
echo strtr('<input type="checkbox" id="yii_embed_front_bootstrap_js_tooltip" name="yii_embed[front_bootstrap_js_tooltip]" value="1" :checked />', array(
':checked' => !empty($this->options['front_bootstrap_js_tooltip']) ? 'checked="checked"' : '',
));
}

}

0 comments on commit e24d138

Please sign in to comment.