mirror of
https://github.com/e107inc/e107.git
synced 2025-07-16 12:36:26 +02:00
@ -262,7 +262,12 @@ class eurl_admin_ui extends e_admin_controller_ui
|
|||||||
</colgroup>";
|
</colgroup>";
|
||||||
|
|
||||||
$name = 'urlstatus['.$plug.']';
|
$name = 'urlstatus['.$plug.']';
|
||||||
$text .= "<tr class='active'><td ><h4>".$plug."</h4></td><td colspan='2'>".$frm->radio_switch($name,$active)."</td></tr>";
|
|
||||||
|
$switch = $frm->radio_switch($name, $active, LAN_ON, LAN_OFF, array(
|
||||||
|
'switch' => 'mini',
|
||||||
|
));
|
||||||
|
|
||||||
|
$text .= "<tr class='active'><td ><h4>" . $plug . "</h4></td><td colspan='2'>" . $switch . "</td></tr>";
|
||||||
$text .= "<tr><th>Key</th><th>Regular Expression</th>
|
$text .= "<tr><th>Key</th><th>Regular Expression</th>
|
||||||
|
|
||||||
|
|
||||||
|
@ -2243,54 +2243,85 @@ class e_form
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Boolean Radio Buttons.
|
* Boolean Radio Buttons / Checkbox (with Bootstrap Switch).
|
||||||
* @param name string
|
*
|
||||||
* @param check_enabled boolean
|
* @param string $name
|
||||||
* @param label_enabled default is LAN_ENABLED
|
* Form element name.
|
||||||
* @param label_disabled default is LAN_DISABLED
|
* @param bool $checked_enabled
|
||||||
* @param options array - inverse=1 (invert values) or reverse=1 (switch display order)
|
* Use the checked attribute or not.
|
||||||
|
* @param string $label_enabled
|
||||||
|
* Default is LAN_ENABLED
|
||||||
|
* @param string $label_disabled
|
||||||
|
* Default is LAN_DISABLED
|
||||||
|
* @param array $options
|
||||||
|
* - 'inverse' => 1 (invert values)
|
||||||
|
* - 'reverse' => 1 (switch display order)
|
||||||
|
* - 'switch' => 'normal' (size for Bootstrap Switch... mini, small, normal, large)
|
||||||
|
*
|
||||||
|
* @return string $text
|
||||||
*/
|
*/
|
||||||
function radio_switch($name, $checked_enabled = false, $label_enabled = '', $label_disabled = '',$options=array())
|
function radio_switch($name, $checked_enabled = false, $label_enabled = '', $label_disabled = '', $options = array())
|
||||||
{
|
{
|
||||||
if(!is_array($options)) parse_str($options, $options);
|
if(!is_array($options))
|
||||||
|
{
|
||||||
$options_on = varset($options['enabled'],array());
|
parse_str($options, $options);
|
||||||
$options_off = varset($options['disabled'],array());
|
}
|
||||||
|
|
||||||
unset($options['enabled'],$options['disabled']);
|
$options_on = varset($options['enabled'], array());
|
||||||
|
$options_off = varset($options['disabled'], array());
|
||||||
|
|
||||||
|
unset($options['enabled'], $options['disabled']);
|
||||||
|
|
||||||
$options_on = array_merge($options_on, $options);
|
$options_on = array_merge($options_on, $options);
|
||||||
$options_off = array_merge($options_off, $options);
|
$options_off = array_merge($options_off, $options);
|
||||||
|
|
||||||
|
|
||||||
if(vartrue($options['class']) == 'e-expandit' || vartrue($options['expandit'])) // See admin->prefs 'Single Login' for an example.
|
if(vartrue($options['class']) == 'e-expandit' || vartrue($options['expandit'])) // See admin->prefs 'Single Login' for an example.
|
||||||
{
|
{
|
||||||
$options_on = array_merge($options, array('class' => 'e-expandit-on'));
|
$options_on = array_merge($options, array('class' => 'e-expandit-on'));
|
||||||
$options_off = array_merge($options, array('class' => 'e-expandit-off'));
|
$options_off = array_merge($options, array('class' => 'e-expandit-off'));
|
||||||
}
|
}
|
||||||
|
|
||||||
$options_on['label'] = $label_enabled ? defset($label_enabled,$label_enabled) : LAN_ENABLED;
|
$options_on['label'] = $label_enabled ? defset($label_enabled, $label_enabled) : LAN_ENABLED;
|
||||||
$options_off['label'] = $label_disabled ? defset($label_disabled,$label_disabled) : LAN_DISABLED;
|
$options_off['label'] = $label_disabled ? defset($label_disabled, $label_disabled) : LAN_DISABLED;
|
||||||
|
|
||||||
if(!empty($options['inverse'])) // Same as 'writeParms'=>'reverse=1&enabled=LAN_DISABLED&disabled=LAN_ENABLED'
|
if(!empty($options['switch']))
|
||||||
{
|
{
|
||||||
$text = $this->radio($name, 0, !$checked_enabled, $options_on)." ".$this->radio($name, 1, $checked_enabled, $options_off);
|
if(!empty($options['inverse']))
|
||||||
|
{
|
||||||
|
$checked_enabled = !$checked_enabled;
|
||||||
|
}
|
||||||
|
|
||||||
|
$js_options = array(
|
||||||
|
// Each form element has its own options.
|
||||||
|
$name => array(
|
||||||
|
'size' => $options['switch'],
|
||||||
|
'onText' => $options_on['label'],
|
||||||
|
'offText' => $options_off['label'],
|
||||||
|
),
|
||||||
|
);
|
||||||
|
|
||||||
|
e107::library('load', 'bootstrap.switch');
|
||||||
|
e107::js('settings', array('bsSwitch' => $js_options));
|
||||||
|
e107::js('footer', '{e_WEB}js/bootstrap.switch.init.js', 'jquery', 5);
|
||||||
|
|
||||||
|
$text = $this->checkbox($name, 1, $checked_enabled);
|
||||||
|
}
|
||||||
|
elseif(!empty($options['inverse'])) // Same as 'writeParms'=>'reverse=1&enabled=LAN_DISABLED&disabled=LAN_ENABLED'
|
||||||
|
{
|
||||||
|
$text = $this->radio($name, 0, !$checked_enabled, $options_on) . " " . $this->radio($name, 1, $checked_enabled, $options_off);
|
||||||
|
|
||||||
}
|
}
|
||||||
elseif(!empty($options['reverse'])) // reverse display order.
|
elseif(!empty($options['reverse'])) // reverse display order.
|
||||||
{
|
{
|
||||||
$text = $this->radio($name, 0, !$checked_enabled, $options_off)." ".$this->radio($name, 1, $checked_enabled, $options_on);
|
$text = $this->radio($name, 0, !$checked_enabled, $options_off) . " " . $this->radio($name, 1, $checked_enabled, $options_on);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
$text = $this->radio($name, 1, $checked_enabled, $options_on) . " " . $this->radio($name, 0, !$checked_enabled, $options_off);
|
||||||
$text = $this->radio($name, 1, $checked_enabled, $options_on)." ".$this->radio($name, 0, !$checked_enabled, $options_off);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
return $text;
|
return $text;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -412,7 +412,7 @@ class core_library
|
|||||||
|
|
||||||
// Bootstrap Editable (local).
|
// Bootstrap Editable (local).
|
||||||
$libraries['bootstrap.editable'] = array(
|
$libraries['bootstrap.editable'] = array(
|
||||||
'name' => 'Bootstrap Editable (Local)',
|
'name' => 'Bootstrap Editable (local)',
|
||||||
'vendor_url' => 'https://vitalets.github.io/bootstrap-editable/',
|
'vendor_url' => 'https://vitalets.github.io/bootstrap-editable/',
|
||||||
'version_arguments' => array(
|
'version_arguments' => array(
|
||||||
'file' => 'js/bootstrap-editable.min.js',
|
'file' => 'js/bootstrap-editable.min.js',
|
||||||
@ -454,6 +454,95 @@ class core_library
|
|||||||
'library_path' => '{e_WEB}js/bootstrap3-editable',
|
'library_path' => '{e_WEB}js/bootstrap3-editable',
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// Bootstrap Switch (CDN).
|
||||||
|
$libraries['cdn.bootstrap.switch'] = array(
|
||||||
|
'name' => 'Bootstrap Switch (CDN)',
|
||||||
|
'vendor_url' => 'http://www.bootstrap-switch.org',
|
||||||
|
'version_arguments' => array(
|
||||||
|
'file' => 'js/bootstrap-switch.min.js',
|
||||||
|
'pattern' => '/v(\d\.\d\.\d)/',
|
||||||
|
'lines' => 5,
|
||||||
|
),
|
||||||
|
'files' => array(
|
||||||
|
'js' => array(
|
||||||
|
'js/bootstrap-switch.min.js' => array(
|
||||||
|
'zone' => 2,
|
||||||
|
'type' => 'footer',
|
||||||
|
),
|
||||||
|
),
|
||||||
|
'css' => array(
|
||||||
|
'css/bootstrap3/bootstrap-switch.min.css' => array(
|
||||||
|
'zone' => 2,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
'variants' => array(
|
||||||
|
// 'unminified' version for debugging.
|
||||||
|
'dev' => array(
|
||||||
|
'files' => array(
|
||||||
|
'js' => array(
|
||||||
|
'js/bootstrap-switch.js' => array(
|
||||||
|
'zone' => 2,
|
||||||
|
'type' => 'footer',
|
||||||
|
),
|
||||||
|
),
|
||||||
|
'css' => array(
|
||||||
|
'css/bootstrap3/bootstrap-switch.css' => array(
|
||||||
|
'zone' => 2,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
// Override library path to CDN.
|
||||||
|
'library_path' => 'https://cdn.jsdelivr.net/bootstrap.switch',
|
||||||
|
'path' => '3.3.2',
|
||||||
|
);
|
||||||
|
|
||||||
|
// Bootstrap Switch (local).
|
||||||
|
$libraries['bootstrap.switch'] = array(
|
||||||
|
'name' => 'Bootstrap Switch (local)',
|
||||||
|
'vendor_url' => 'http://www.bootstrap-switch.org',
|
||||||
|
'version_arguments' => array(
|
||||||
|
'file' => 'dist/js/bootstrap-switch.min.js',
|
||||||
|
'pattern' => '/v(\d\.\d\.\d)/',
|
||||||
|
'lines' => 5,
|
||||||
|
),
|
||||||
|
'files' => array(
|
||||||
|
'js' => array(
|
||||||
|
'dist/js/bootstrap-switch.min.js' => array(
|
||||||
|
'zone' => 2,
|
||||||
|
'type' => 'footer',
|
||||||
|
),
|
||||||
|
),
|
||||||
|
'css' => array(
|
||||||
|
'dist/css/bootstrap3/bootstrap-switch.min.css' => array(
|
||||||
|
'zone' => 2,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
'variants' => array(
|
||||||
|
// 'unminified' version for debugging.
|
||||||
|
'dev' => array(
|
||||||
|
'files' => array(
|
||||||
|
'js' => array(
|
||||||
|
'dist/js/bootstrap-switch.js' => array(
|
||||||
|
'zone' => 2,
|
||||||
|
'type' => 'footer',
|
||||||
|
),
|
||||||
|
),
|
||||||
|
'css' => array(
|
||||||
|
'dist/css/bootstrap3/bootstrap-switch.css' => array(
|
||||||
|
'zone' => 2,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
// Override library path.
|
||||||
|
'library_path' => '{e_WEB}lib/bootstrap-switch',
|
||||||
|
);
|
||||||
|
|
||||||
// Font-Awesome (CDN).
|
// Font-Awesome (CDN).
|
||||||
$libraries['cdn.fontawesome'] = array(
|
$libraries['cdn.fontawesome'] = array(
|
||||||
'name' => 'Font-Awesome (CDN)',
|
'name' => 'Font-Awesome (CDN)',
|
||||||
@ -542,6 +631,7 @@ class core_library
|
|||||||
$libraries['cdn.bootstrap.editable']['library_path'] = str_replace('https://cdn.jsdelivr.net/bootstrap.editable', 'https://cdnjs.cloudflare.com/ajax/libs/x-editable', $libraries['cdn.bootstrap.editable']['library_path']);
|
$libraries['cdn.bootstrap.editable']['library_path'] = str_replace('https://cdn.jsdelivr.net/bootstrap.editable', 'https://cdnjs.cloudflare.com/ajax/libs/x-editable', $libraries['cdn.bootstrap.editable']['library_path']);
|
||||||
$libraries['cdn.bootstrap.editable']['path'] .= '/bootstrap-editable';
|
$libraries['cdn.bootstrap.editable']['path'] .= '/bootstrap-editable';
|
||||||
|
|
||||||
|
$libraries['cdn.bootstrap.switch']['library_path'] = str_replace('https://cdn.jsdelivr.net/bootstrap.switch', 'https://cdnjs.cloudflare.com/ajax/libs/bootstrap-switch', $libraries['cdn.bootstrap.switch']['library_path']);
|
||||||
$libraries['cdn.fontawesome']['library_path'] = str_replace('https://cdn.jsdelivr.net/fontawesome', 'https://cdnjs.cloudflare.com/ajax/libs/font-awesome', $libraries['cdn.fontawesome']['library_path']);
|
$libraries['cdn.fontawesome']['library_path'] = str_replace('https://cdn.jsdelivr.net/fontawesome', 'https://cdnjs.cloudflare.com/ajax/libs/font-awesome', $libraries['cdn.fontawesome']['library_path']);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -864,18 +954,18 @@ class e_library_manager
|
|||||||
if(!isset($loaded[$name]))
|
if(!isset($loaded[$name]))
|
||||||
{
|
{
|
||||||
$cache = e107::getCache();
|
$cache = e107::getCache();
|
||||||
$cacheID = 'Library_' . e107::getParser()->filter($name,'file');
|
$cacheID = 'Library_' . e107::getParser()->filter($name, 'file');
|
||||||
$cached = $cache->retrieve($cacheID, false, true, true);
|
$cached = $cache->retrieve($cacheID, false, true, true);
|
||||||
|
|
||||||
if($cached)
|
if($cached)
|
||||||
{
|
{
|
||||||
$library = unserialize($cached);
|
$library = e107::unserialize($cached);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!varset($library, false))
|
if(!varset($library, false))
|
||||||
{
|
{
|
||||||
$library = $this->detect($name);
|
$library = $this->detect($name);
|
||||||
$cacheData = e107::serialize($library,'json');
|
$cacheData = e107::serialize($library, 'json');
|
||||||
$cache->set($cacheID, $cacheData, true, true, true);
|
$cache->set($cacheID, $cacheData, true, true, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -340,6 +340,8 @@ define("LAN_UPLOAD_777","Folder is missing or not writable, you need to CHMOD 77
|
|||||||
define("LAN_UPLOAD_SERVEROFF", "This option is disabled as file uploading is not enabled on your server");
|
define("LAN_UPLOAD_SERVEROFF", "This option is disabled as file uploading is not enabled on your server");
|
||||||
define("LAN_WIDTH","Width");
|
define("LAN_WIDTH","Width");
|
||||||
|
|
||||||
|
define("LAN_ON","On");
|
||||||
|
define("LAN_OFF", "Off");
|
||||||
define("LAN_DISABLED","Disabled");
|
define("LAN_DISABLED","Disabled");
|
||||||
define("LAN_ENABLED", "Enabled");
|
define("LAN_ENABLED", "Enabled");
|
||||||
define("LAN_BOOL_REVERSE", "Invert");
|
define("LAN_BOOL_REVERSE", "Invert");
|
||||||
|
31
e107_web/js/bootstrap.switch.init.js
vendored
Normal file
31
e107_web/js/bootstrap.switch.init.js
vendored
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
var e107 = e107 || {'settings': {}, 'behaviors': {}};
|
||||||
|
|
||||||
|
(function ($)
|
||||||
|
{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @type {{attach: e107.behaviors.bootstrapSwitchInit.attach}}
|
||||||
|
*/
|
||||||
|
e107.behaviors.bootstrapSwitchInit = {
|
||||||
|
attach: function (context, settings)
|
||||||
|
{
|
||||||
|
if(typeof settings.bsSwitch === 'undefined' || settings.bsSwitch.length == 0)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$.each(settings.bsSwitch, function (name, options)
|
||||||
|
{
|
||||||
|
$('input[name="' + name + '"]', context).once('bootstrap-switch-init').each(function ()
|
||||||
|
{
|
||||||
|
$(this).bootstrapSwitch({
|
||||||
|
size: options.size || 'mini',
|
||||||
|
onText: options.onText || null,
|
||||||
|
offText: options.offText || null
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
})(jQuery);
|
Reference in New Issue
Block a user