Accordion jQuery plugin.The biggest advantage of this plugin is it loads your wordpress site faster than before, it saves huge space, provides tabbed browsing inside your sidebar.
Author: P Dayaparan
Version: 0.2
Author URI: mailto:daya@meyshan.com
*/
define('NUM_PLUGINS', 6);
function widget_accordion($args)
{
extract($args);
$here = get_option('siteurl') . "/wp-content/plugins/accordion";
$options = get_option('widget_accordion');
echo $before_widget;
if($options['title']) echo $before_title . $options['title'] . $after_title;
$list_tag = $options['list_tag'];
$before_title = $options['before_title'];
$after_title = $options['after_title'];
echo '
';
if($options['widget_type'] == 'accordion')
{
for($i = 1; $i <= NUM_PLUGINS; $i++)
{
if($options[$i]['function'])
{
$title = $options[$i]['title'];
echo "{$before_title}{$title}{$after_title}
<$list_tag>";
eval($options[$i]['function']);
echo "$list_tag>
";
}
}
}
else
{
echo '
';
for($i = 1; $i < NUM_PLUGINS; $i++)
{
if($options[$i]['function'])
{
$o = $options[$i];
echo "
";
}
}
echo '
';
for($i = 1; $i < NUM_PLUGINS; $i++)
{
if($options[$i]['function'])
{
$o = $options[$i];
echo "
1 ? 'style="display: none" ' : '') . "id=\"accordion-$i\">\n<$list_tag>";
eval($options[$i]['function']);
echo "$list_tag>\n
\n";
}
}
}
echo '
';
echo $after_widget;
}
function widget_accordion_control()
{
$here = get_option('siteurl') . "/wp-content/plugins/accordion";
$options = $newoptions = get_option('widget_accordion');
if(!is_array($options)) $options = $newoptions = array();
if($_POST["accordion-submit"])
{
$newoptions['widget_type'] = stripslashes($_POST["accordion-widget-type"]);
$newoptions['title'] = stripslashes($_POST["accordion-title"]);
$newoptions['before_title'] = stripslashes($_POST["accordion-before-title"]);
$newoptions['after_title'] = stripslashes($_POST["accordion-after-title"]);
$newoptions['list_tag'] = stripslashes($_POST["accordion-list-tag"]);
for($i = 1; $i <= NUM_PLUGINS; $i++)
{
$newoptions[$i]['function'] = stripslashes($_POST["accordion-function-$i"]);
$newoptions[$i]['title'] = stripslashes($_POST["accordion-title-$i"]);
}
}
if ( $options != $newoptions ) {
$options = $newoptions;
update_option('widget_accordion', $options);
}
$widget_type = attribute_escape($options['widget_type']);
if(!$widget_type) $widget_type = 'tabs';
$list_tag = attribute_escape($options['list_tag']);
if(!$list_tag) $list_tag = 'ul';
$before_title = attribute_escape($options['before_title']);
if(!$before_title) $before_title = '<h3>';
$after_title = attribute_escape($options['after_title']);
if(!$after_title) $after_title = '</h3>';
?>
Configure each plugin:
Plugin $i\n";
echo '';
for($i = 1; $i <= NUM_PLUGINS; $i++)
{
$title = attribute_escape($options[$i]['title']);
$function = attribute_escape($options[$i]['function']);
?>
';
}
function widget_accordion_init()
{
add_option('widget_accordion', $options);
$options = get_option('widget_accordion');
if(!function_exists('register_sidebar_widget')) return;
widget_accordion_register();
}
function accordion_head()
{
$options = get_option('widget_accordion');
$here = get_option('siteurl') . "/wp-content/plugins/accordion";
if($options['widget_type'] == 'accordion')
{
echo '
';
echo '
';
}
else
echo '
';
}
add_action('plugins_loaded', 'widget_accordion_init');
add_action('wp_head', 'accordion_head');
function widget_accordion_register() {
register_sidebar_widget("Accordion", 'widget_accordion');
register_widget_control("Accordion", 'widget_accordion_control', 350, 340);
}
?>