"vtm_clr",
'style-prefix' => "vtm-clr",
'text-domain' =>'vtmclr',
);
return $cfg[$name];
}
function & getAdminOptions($option_name='')
{
static $vtm_clr_admin_options = null;
if (!$vtm_clr_admin_options)
{
include (str_replace('//','/',dirname(__FILE__)).'/admin.options.php');
}
if ($option_name) return $vtm_clr_admin_options[$option_name];
return $vtm_clr_admin_options;
}
function & getOptions($option_name='', $renew = false)
{
static $options = null;
static $i = 0;
$i++;
if ($renew) {$options = null;}
//echo $i.'. getOptions ('.$options['vtm_clr_normal_thumbnail_size_x'].') ';
if (!$options)
{
//echo 'RENEW ';
$options = get_option('vtm_clr_options');
$defaults = & self::getDefaults();
//if ($renew) {echo "!----";print_r($defaults);}
//if (is_admin())
{
foreach ($defaults as $id=>$value)
{
if (!isset($options[$id]))
{
$options[$id] = $value;
}
}
update_option('vtm_clr_options', $options);
}
//echo "!----";print_r($options);
if (!is_array($options))
{
$options = & self::getDefaults();
update_option('vtm_clr_options', $options);
}
//print_r($options);
}
//echo 'end getOptions ('.$options['vtm_clr_normal_thumbnail_size_x'].') ';
if ($option_name) return $options[$option_name];
return $options;
}
function & getValueSets($valueset_name='')
{
static $value_sets = null;
if (!$value_sets)
{
include (str_replace('//','/',dirname(__FILE__)).'/value_sets.php');
}
if ($valueset_name) return $value_sets[$valueset_name];
return $value_sets;
}
function & getDefaults()
{
static $default_values = null;
if (!$default_values)
{
$vtm_clr_admin_options = & self::getAdminOptions();
foreach ($vtm_clr_admin_options as $k=>$v)
{
if (is_array($v['std']) && is_array($v['valueset']))
{
foreach ($v['std'] as $sub_key=>$sub_value)
{
if (is_array($sub_value))
{
foreach ($sub_value as $arr_key => $arr_value)
{
$default_values [$k.'_'.$sub_key.'_'.$arr_key] = $arr_value;
}
}
else
{
$default_values [$k.'_'.$sub_key] = $sub_value;
}
}
}
else
{
if (is_array($v['std']))
{
foreach ($v['std'] as $arr_key => $arr_value)
{
$default_values [$k.'_'.$arr_key] = $arr_value;
}
} else
$default_values [$k] = $v['std'];
}
if (isset($v['inherit']['std']))
{
$default_values [$k.'_inherit'] = $v['inherit']['std'];
}
}
}
//if ($option_name) return $options[$default_values];
return $default_values;
}
function & getOptionsCategories()
{
static $options_categories = null;
if (!$options_categories)
{
include (str_replace('//','/',dirname(__FILE__)).'/options_categories.php');
if (!$options_categories)
{
$admin_options = & self::getAdminOptions();
foreach ($admin_options as $v)
$options_categories[$v['category']]=array('description'=>null);
}
}
return $options_categories;
}
function getInherited($option_name,$sub_option_key)
{
$inherided = self::getInheritedOption($option_name,$sub_option_key);
return $inherided['value'];
}
function echoInherited($option_name,$sub_option_key)
{
$inherided = self::getInherited($option_name,$sub_option_key);
echo $inherided;
}
function getInheritedOption($option_name,$sub_option_key, $level=1)
{
//echo 'level='.$level.' ';
//echo '$option_name='.$option_name.' ';
//echo '$option_name='.print_r(debug_backtrace(),true).' ';
$value='Inherited value not found';
$option_name_full = $option_name . (($sub_option_key)? '_' . $sub_option_key : '');
$option = & self::getOptions($option_name_full);
$admin_option = & self::getAdminOptions($option_name);
$inherit_option = & self::getOptions($admin_option['id'] . '_inherit');
if (!$inherit_option && isset($admin_option['inherit']['std'])) $inherit_option = $admin_option['inherit']['std'];
//echo '$inherit_option='.$inherit_option.' ';
$valueset_name = ($sub_option_key)?$admin_option['valueset'][$sub_option_key] : $admin_option['valueset'];
if (isset ($inherit_option) && $inherit_option !=='none' &&
(
isset($admin_option['inherit']['from'][$inherit_option][$sub_option_key])
||
!is_array($admin_option['inherit']['from'][$inherit_option])
)
)
{
//echo 'INHERITED'.' ';
$parent_admin_option = & self::getAdminOptions($inherit_option);
//echo '$parent_admin_option='.print_r($parent_admin_option,true).' ';
$parent_inherit_option = & self::getOptions($parent_admin_option['id'] . '_inherit');
//echo '$parent_inherit_option='.$parent_inherit_option.' ';
$parent_sub_option_key = ((is_array($admin_option['inherit']['from'][$inherit_option])?($admin_option['inherit']['from'][$inherit_option][$sub_option_key]):$admin_option['inherit']['from'][$inherit_option]));
if (isset ($parent_inherit_option) && $parent_inherit_option !=='none' &&
(
isset($parent_admin_option['inherit']['from'][$parent_inherit_option][$parent_sub_option_key])
||
!is_array($parent_admin_option['inherit']['from'][$parent_inherit_option])
)
)
{
if ($level<10) $value = self::getInheritedOption($inherit_option,$parent_sub_option_key, $level+1);
}
else
{
$valueset_name = ($parent_sub_option_key)?$parent_admin_option['valueset'][$parent_sub_option_key] : $parent_admin_option['valueset'];
$value = self::getOptions($parent_admin_option['id'] . (($parent_sub_option_key)? '_' . $parent_sub_option_key : ''));
}
}
else
{
$value=$option;
}
//echo 'value='.print_r($value,true).' ';
return is_array($value)?$value:array('value'=>$value,'valueset_name'=>$valueset_name);
}
function displaySingleOptionField($valueset,$admin_option,$sub_option_key)
{
$option_name = $admin_option['id'] . (($sub_option_key)? '_' . $sub_option_key : '');
$std = (($sub_option_key)? $admin_option['std'][$sub_option_key] : $admin_option['std']);
$option = & self::getOptions($option_name);
//$options = & self::getOptions('',true);
//echo "option=$option |";
//echo "option=${options[$option_name]} |";
$inherit_option = & self::getOptions($admin_option['id'] . '_inherit');
$template_url = get_bloginfo ('template_url');
$class='';
//$inherit_option = & self::getAdminOptions($shortname . $inherit_option_name);
if (isset ($inherit_option) && $inherit_option !=='none' &&
(
isset($admin_option['inherit']['from'][$inherit_option][$sub_option_key])
||
!is_array($admin_option['inherit']['from'][$inherit_option])
)
)
{
//print_r ($admin_option);
$class='class="mouse-over-opacity"';
}
echo '
';
if (isset($admin_option['before']))
{
$before = ((is_array($admin_option['before']))?
((isset($admin_option['before'][$sub_option_key]))?$admin_option['before'][$sub_option_key]:'')
:
((isset($admin_option['before']))?$admin_option['before']:''));
}
if (!empty($before))
{
echo '
';
echo $before.' ';
echo '
';
}
switch ($valueset['input_type'])
{
case 'select':
echo '
';
$selected = (($option)? $option : $std);
foreach ($valueset['values'] as $value => $diplay_text)
{
echo ''.$diplay_text.' ';
}
echo ' '."\n";
break;
case 'text':
if (isset($admin_option['width']))
{
$width = (isset($admin_option['width'][$sub_option_key]))?$admin_option['width'][$sub_option_key]
:((!is_array($admin_option['width']))?$admin_option['width']:'');
} else $width = 8;
echo '
';
break;
case 'checkbox':
$width = (isset($admin_option['width'][$sub_option_key]))?$admin_option['width'][$sub_option_key]
:((!is_array($admin_option['width']))?$admin_option['width']:'');
$column_width = (isset($admin_option['column_width'][$sub_option_key]))?$admin_option['column_width'][$sub_option_key]
:((!is_array($admin_option['column_width']))?$admin_option['column_width']:'');
echo "
";
foreach ($valueset['values'] as $value => $diplay_text)
{
$option = & self::getOptions($option_name . '_' . $value);
$std_value = (is_array($std))?((isset($std[$value]))?$std[$value]:0):$std;
$field_name = $option_name . '_'.$value;
$checked = (($option)? $option : $std_value);
$checked = ($checked === 'on')?' checked="checked" ':'';
echo "
"
. ' '
. ''.$diplay_text . '
';
}
echo '
';
break;
case 'textarea':
$cols = (isset($admin_option['cols'][$sub_option_key]))?$admin_option['cols'][$sub_option_key]
:((isset($admin_option['cols']) && !is_array($admin_option['cols']))?$admin_option['cols']:'60');
$rows = (isset($admin_option['rows'][$sub_option_key]))?$admin_option['rows'][$sub_option_key]
:((isset($admin_option['rows']) && !is_array($admin_option['rows']))?$admin_option['rows']:'2');
echo '
';
break;
case 'radio_image':
echo '
';
$selected = ((!is_null($option))?$option:$std);
foreach ($valueset['values'] as $value => $img_file_name)
{
echo '
';
echo '
';
echo '
'."\n";
}
echo '
';
echo '
'."\n";
echo '
';
break;
case 'color':
echo '
';
echo '
';
?>
';
echo $after.' ';
echo '';
}
echo '
';
}
function displaySingleInheritedField($valueset,$admin_option,$sub_option_key)
{
$valuesets = & self::getValueSets();
$option_name = $admin_option['id'] . (($sub_option_key)? '_' . $sub_option_key : '');
$option = & self::getOptions($option_name);
$inherited = self::getInheritedOption($admin_option['id'],$sub_option_key);
echo '';
switch ($valueset['input_type'])
{
case 'text':
echo $inherited['value'];
break;
case 'select':
echo $inherited['value'];
break;
case 'radio_image':
echo $valuesets[$inherited['valueset_name']]['alt'][$inherited['value']];
break;
case 'color':
echo ''.$inherited['value'].' ';
break;
}
//echo '---------------------------------------'.$admin_option['id'].','.$sub_option_key.'-';
//echo '='.self::getInheritedOption($admin_option['id'],$sub_option_key).'=';
echo '
';
}
function displaySingleAdminOption($option_name)
{
static $desc;
if (!$desc)
{
include (str_replace('//','/',dirname(__FILE__)).'/option_descriptions.php');
$desc = $option_descriptions;
//var_dump($desc);
}
$valuesets = & self::getValueSets();
$options = & self::getOptions();
$admin_option = & self::getAdminOptions($option_name);
$shortname = & self::cfg('shortname');
echo ''; // start of a single admin option
echo '
'
. ((isset($desc[$admin_option['id']]))?$desc[$admin_option['id']]['title'] :$admin_option['title']).' '
. '
';
echo '
';
if (isset ($admin_option['inherit']))
{
echo '
';
echo 'Inherit from ';
echo ''.__('none',THEME_DOMAIN).' ';
foreach ($admin_option['inherit']['from'] as $inherit_option_name =>$v)
{
$inherit_option = & self::getAdminOptions($inherit_option_name);
//$inhrit_from =
//echo $options[$option_name . '_inherit'].'='.$inherit_option['id'].' ';
echo
''.
$inherit_option['title'].
//gettype($options[$option_name . '_inherit']).'='.gettype($inherit_option['id']).
' ';
}
echo ' ';
echo '
';
if (isset($options[$option_name . '_inherit']) && $options[$option_name . '_inherit'] !=='none')
{
$sub_options = $admin_option['inherit']['from'][$options[$option_name . '_inherit']];
if (is_array($sub_options))
{
foreach ($sub_options as $sub_option_key =>$inherit_sub_option_key)
{
$valueset_name = ($sub_option_key)?$admin_option['valueset'][$sub_option_key] : $admin_option['valueset'];
self::displaySingleInheritedField($valuesets[$valueset_name],$admin_option,$sub_option_key);
}
}
else
{
//TODO:
$valueset_name = ($sub_option_key)?$admin_option['valueset'][$sub_option_key] : $admin_option['valueset'];
self::displaySingleInheritedField($valuesets[$valueset_name],$admin_option,'');
}
}
echo '
'."\n";
}
if (is_array($admin_option['valueset']))
{
foreach( $admin_option['valueset'] as $sub_option_key=>$valueset_name)
self::displaySingleOptionField($valuesets[$valueset_name],$admin_option,$sub_option_key);
}
else
self::displaySingleOptionField($valuesets[$admin_option['valueset']],$admin_option, '');
//echo '
'."\n";
echo '
'."\n"; //admin-option-value
echo '
'."\n";
echo '
';
if (isset($desc[$admin_option['id']]) && isset($desc[$admin_option['id']]['desc'])) echo $desc[$admin_option['id']]['desc'];
elseif (isset($admin_option['description'])) echo $admin_option['description'];
echo '
'; //admin-option-descr
echo '
';
echo '
'."\n"; // end of a single admin option
}
function displayCategoryAdminOptions($category)
{
$admin_options = & self::getAdminOptions();
$categories = & self::getOptionsCategories();
echo '';
if ($categories[$category]['description'])
{
echo '
';
echo ($categories[$category]['description']);
echo '
';
}
foreach ($admin_options as $option_name => $option)
{
if ($option['category'] === $category)
self::displaySingleAdminOption($option_name);
}
echo '
';
}
function countOptions()
{
$admin_options = & self::getAdminOptions();
$a['size'] = sizeof($admin_options);
$total_count=0;
foreach ($admin_options as $k=>$v)
{
$total_count += sizeof($v['valueset']);
}
$a['total_count'] = $total_count;
return $a;
}
function displayAdminOptions()
{
$categories = & self::getOptionsCategories();
$options = & self::getOptions('');
echo '';
?>
0) return intval($new_value);
return $std;
break;
case 'string':
return (string)$new_value;
break;
}
}
function getLayoutCSS()
{
global $wp_query;
if (strpos($_SERVER["SERVER_NAME"], 'wp-themes.com') !== false) return '4_right_sidebars';
$page_templates = array(
'pg-tpl-1-left-sidebar.php'=>'left_sidebar',
'pg-tpl-1-right-sidebar.php'=>'right_sidebar',
'pg-tpl-2-left-sidebars.php'=>'2_left_sidebars',
'pg-tpl-2-right-sidebars.php'=>'2_right_sidebars',
'pg-tpl-4-left-sidebars.php'=>'4_left_sidebars',
'pg-tpl-4-right-sidebars.php'=>'4_right_sidebars',
'pg-tpl-left-right-sidebars.php'=>'left_right_sidebars',
'pg-tpl-no-sidebars.php'=>'no_sidebars',
);
$options = & self::getOptions();
$shortname = self::cfg('shortname');
if (is_home() || is_front_page() ) return self::getInherited($shortname.'_index_sidebars','');
if (is_single()) return self::getInherited($shortname.'_single_post_sidebars','');
if (is_page())
{
$id = (int) $wp_query->get_queried_object_id();
$template = get_post_meta($id, '_wp_page_template', true);
if (isset($page_templates[$template])) return $page_templates[$template];
//else
return self::getInherited($shortname.'_single_page_sidebars','');
}
if (is_category()) return self::getInherited($shortname.'_category_sidebars','');
if (is_tag()) return self::getInherited($shortname.'_tag_sidebars','');
if (is_search()) return self::getInherited($shortname.'_search_sidebars','');
if (is_404()) return self::getInherited($shortname.'_404_sidebars','');
if (is_date()) return self::getInherited($shortname.'_archive_sidebars','');
if (is_author()) return self::getInherited($shortname.'_category_sidebars','');
return self::getInherited($shortname.'_other_sidebars','');;
}
function resetOptions()
{
$shortname = self::cfg('shortname');
delete_option($shortname .'_options');
//echo 'RESET ';
}
function echoOptionDescriptions()
{
include (str_replace('//','/',dirname(__FILE__)).'/option_descriptions.php');
header('Content-Type: text/plain');
$admin_options = & self::getAdminOptions();
$shortname = self::cfg('shortname');
$sl = strlen($shortname);
//$option_descriptions = array();
echo '$option_descriptions = array('."\n";
foreach ($admin_options as $id => $option)
{
$option_descriptions[$id]['desc'] = str_replace("\r\n", "\n", $option_descriptions[$id]['desc']);
$truncated_id = substr($id, $sl);
echo "\t".'$shortname . \'' . $truncated_id .'\' => array('."\n";
echo "\t\t".'\'title\' => __(\''. addcslashes(stripslashes(($option_descriptions[$id]['title'])?$option_descriptions[$id]['title']:$option['title']), "'") .'\', THEME_DOMAIN),'."\n";
echo "\t\t".'\'desc\' => __(\''. addcslashes(stripslashes(($option_descriptions[$id]['desc'])?$option_descriptions[$id]['desc']:$option['description']), "'") .'\', THEME_DOMAIN),'."\n";
echo "\t),\n";
}
echo ');';
}
function adminMenu()
{
$shortname = self::cfg('shortname');
if(isset($_POST[$shortname . '_reset_options']))
{
self::resetOptions();
}
if(isset($_POST[$shortname . '_show_options_decription']))
{
//developer
self::echoOptionDescriptions();
die();
}
$options = & self::getOptions('', true);
$admin_options = & self::getAdminOptions();
$valuesets = & self::getValueSets();
if(isset($_POST[$shortname . '_save_options']))
{
//print_r($_POST);
// meta
//echo 'SAVED ';
foreach ($admin_options as $option_name => $admin_option)
{
//print_r ( $admin_option); echo " \n\n";
if (!is_array($admin_option['valueset']))
{
//if ($admin_option['valueset']=='SOCIAL') echo '!is_array($admin_option[valueset])';
$valueset_name = $admin_option['valueset'];
if (isset($valuesets[$valueset_name]['multiselect']) && $valuesets[$valueset_name]['multiselect'])
{
foreach ($valuesets[$valueset_name]['values'] as $k=>$v)
{
//if ($admin_option['valueset']=='SOCIAL') echo $k.'-';
$option_value = $_POST[$option_name . '_' .$k];
if (!$option_value) $option_value = 'off';
//if ($admin_option['valueset']=='SOCIAL') echo "option_value = $option_value $option_value | ";
$options[$option_name . '_'.$k] =
self::getOptionNewValue($option_name . '_'.$k, $option_value,$valueset_name,$admin_option['std'][$k]);
}
}
else
{
$option_value = $_POST[$option_name];
$options[$option_name] = self::getOptionNewValue($option_name, $option_value, $admin_option['valueset'], $admin_option['std']);
}
} else
{
foreach($admin_option['valueset'] as $sub_name=>$valueset_name)
{
//echo "$sub_name" ;print_r ( $valueset_name); echo " \n\n";
if (isset($valuesets[$valueset_name]['multiselect']) && $valuesets[$valueset_name]['multiselect'])
{
foreach ($valuesets[$valueset_name]['values'] as $k=>$v)
{
$option_value = isset($_POST[$option_name . '_' . $sub_name . '_'.$k])?$_POST[$option_name . '_' . $sub_name . '_'.$k]:'off';
if (!$option_value) $option_value = 'off';
$options[$option_name . '_' . $sub_name. '_'.$k] =
self::getOptionNewValue($option_name . '_' . $sub_name. '_'.$k, $option_value,$valueset_name,$admin_option['std'][$sub_name][$k]);
}
}
else
{
$option_value = $_POST[$option_name . '_' . $sub_name];
$options[$option_name . '_' . $sub_name] =
self::getOptionNewValue($option_name . '_' . $sub_name, $option_value,$valueset_name,$admin_option['std'][$sub_name]);
}
}
}
if (isset($admin_option['inherit'])) //TODO: inherit checkbox valuesets
{
$option_value = $_POST[$admin_option['id'].'_inherit'];
$options[$admin_option['id'].'_inherit'] = ($option_value)?$option_value:$admin_option['inherit']['std'];
}
}
//$options[$shortname .'_blog_title_font_size'] = (int)($_POST[$shortname .'_blog_title_font_size']);
//print_r($options);
$options['last_update_time'] = time();
update_option('vtm_clr_options', $options);
//$options = & self::getOptions('', true);
//print_r(self::getOptions());
}
add_theme_page(__("Clear Line Theme Options"), __("Clear Line Theme Options"),
'edit_themes', basename(__FILE__), array('ClearLineOptions', 'displayAdminOptions'));
}
}