?><?php
/*-----------------------------------------------------------------------------------*/
# Custom Admin Bar Menus
/*-----------------------------------------------------------------------------------*/
function tc_admin_bar() {
global $wp_admin_bar;
if ( current_user_can( 'switch_themes' ) ){
$wp_admin_bar->add_menu( array(
'parent' => 0,
'id' => 'mpanel_page',
'title' => theme_name ,
'href' => admin_url( 'admin.php?page=panel')
) );
}
}
add_action( 'wp_before_admin_bar_render', 'tc_admin_bar' );
/*-----------------------------------------------------------------------------------*/
# Register main Scripts and Styles
/*-----------------------------------------------------------------------------------*/
function tc_admin_register() {
wp_register_script( 'tc-admin-slider', get_template_directory_uri() . '/panel/js/jquery.ui.slider.js', array( 'jquery', 'jquery-ui-core', 'jquery-ui-widget', 'jquery-ui-mouse', 'jquery-ui-sortable' ) , false , false );
wp_register_script( 'tc-admin-checkbox', get_template_directory_uri() . '/panel/js/checkbox.min.js', array( 'jquery' ) , false , false );
wp_register_script( 'tc-admin-main', get_template_directory_uri() . '/panel/js/tc.js', array( 'jquery' ) , false , false );
wp_register_script( 'tc-admin-colorpicker', get_template_directory_uri() . '/panel/js/colorpicker.js', array( 'jquery' ) , false , false );
wp_register_script( 'tc-admin-eye', get_template_directory_uri() . '/panel/js/eye.js', array( 'jquery' ) , false , false );
wp_register_script( 'tc-admin-utils', get_template_directory_uri() . '/panel/js/utils.js', array( 'jquery' ) , false , false );
wp_register_script( 'tc-admin-layout', get_template_directory_uri() . '/panel/js/layout.js', array( 'jquery' ) , false , false );
wp_register_style( 'tc-style', get_template_directory_uri().'/panel/style.css', array(), '20120208', 'all' );
if ( isset( $_GET['page'] ) && $_GET['page'] == 'panel' ) {
wp_enqueue_script( 'tc-admin-colorpicker');
wp_enqueue_script( 'tc-admin-eye' );
wp_enqueue_script( 'tc-admin-utils' );
wp_enqueue_script( 'tc-admin-layout' );
wp_enqueue_script( 'tc-admin-slider' );
wp_enqueue_script( 'tc-admin-checkbox' );
}
wp_enqueue_script( 'tc-admin-main' );
wp_enqueue_style( 'tc-style' );
}
add_action( 'admin_enqueue_scripts', 'tc_admin_register' );
/*-----------------------------------------------------------------------------------*/
# To change Insert into Post Text
/*-----------------------------------------------------------------------------------*/
function tc_options_setup() {
global $pagenow;
if ( 'media-upload.php' == $pagenow || 'async-upload.php' == $pagenow )
add_filter( 'gettext', 'tc_replace_thickbox_text' , 1, 3 );
}
add_action( 'admin_init', 'tc_options_setup' );
function tc_replace_thickbox_text($translated_text, $text, $domain) {
if ('Insert into Post' == $text) {
$referer = strpos( wp_get_referer(), 'tc-settings' );
if ( $referer != '' )
return __('Use this image', 'tc' );
}
return $translated_text;
}
/*-----------------------------------------------------------------------------------*/
# get Google Fonts
/*-----------------------------------------------------------------------------------*/
require ('google-fonts.php');
$google_font_array = json_decode ($google_api_output,true) ;
$items = $google_font_array['items'];
$options_fonts=array();
array_push($options_fonts, "Default Font");
$fontID = 0;
foreach ($items as $item) {
$fontID++;
$variants='';
$variantCount=0;
foreach ($item['variants'] as $variant) {
$variantCount++;
if ($variantCount>1) { $variants .= '|'; }
$variants .= $variant;
}
$variantText = ' (' . $variantCount . ' Varaints' . ')';
if ($variantCount <= 1) $variantText = '';
$options_fonts[ $item['family'] . ':' . $variants ] = $item['family']. $variantText;
}
/*-----------------------------------------------------------------------------------*/
# Clean options before store it in DB
/*-----------------------------------------------------------------------------------*/
function tc_clean_options(&$value) {
$value = htmlspecialchars(stripslashes($value));
}
/*-----------------------------------------------------------------------------------*/
# Options Array
/*-----------------------------------------------------------------------------------*/
$array_options =
array(
"tc_home_cats",
"tc_options"
);
/*-----------------------------------------------------------------------------------*/
# Save Theme Settings
/*-----------------------------------------------------------------------------------*/
function tc_save_settings ( $data , $refresh = 0 ) {
global $array_options ;
foreach( $array_options as $option ){
if( isset( $data[$option] )){
array_walk_recursive( $data[$option] , 'tc_clean_options');
update_option( $option , $data[$option] );
}
elseif( !isset( $data[$option] ) && $option != 'tc_options' ){
delete_option($option);
}
}
if( $refresh == 2 ) die('2');
elseif( $refresh == 1 ) die('1');
}
/*-----------------------------------------------------------------------------------*/
# Save Options
/*-----------------------------------------------------------------------------------*/
add_action('wp_ajax_test_theme_data_save', 'tc_save_ajax');
function tc_save_ajax() {
check_ajax_referer('test-theme-data', 'security');
$data = $_POST;
$refresh = 1;
if( $data['tc_import'] ){
$refresh = 2;
$data = unserialize(base64_decode( $data['tc_import'] ));
}
tc_save_settings ($data , $refresh );
}
/*-----------------------------------------------------------------------------------*/
# Add Panel Page
/*-----------------------------------------------------------------------------------*/
function tc_add_admin() {
$current_page = isset( $_REQUEST['page'] ) ? $_REQUEST['page'] : '';
$icon = get_template_directory_uri().'/panel/images/general.png';
add_menu_page(theme_name.' Settings', theme_name ,'install_themes', 'panel' , 'panel_options', $icon );
$theme_page = add_submenu_page('panel',theme_name.' Settings', theme_name.' Settings','install_themes', 'panel' , 'panel_options');
add_action( 'admin_head-'. $theme_page, 'tc_admin_head' );
function tc_admin_head(){
?>
<script type="text/javascript">
jQuery(document).ready(function($) {
jQuery('.on-of').checkbox({empty:'<?php echo get_template_directory_uri(); ?>/panel/images/empty.png'});
jQuery('form#tc_form').submit(function() {
var data = jQuery(this).serialize();
jQuery.post(ajaxurl, data, function(response) {
if(response == 1) {
jQuery('#save-alert').addClass('save-done');
t = setTimeout('fade_message()', 1000);
}
else if( response == 2 ){
location.reload();
}
else {
jQuery('#save-alert').addClass('save-error');
t = setTimeout('fade_message()', 1000);
}
});
return false;
});
});
function fade_message() {
jQuery('#save-alert').fadeOut(function() {
jQuery('#save-alert').removeClass('save-done');
});
clearTimeout(t);
}
jQuery(function() {
jQuery( "#cat_sortable" ).sortable({placeholder: "ui-state-highlight"});
jQuery( "#customList" ).sortable({placeholder: "ui-state-highlight"});
jQuery( "#tabs_cats" ).sortable({placeholder: "ui-state-highlight"});
});
</script>
<?php
wp_print_scripts('media-upload');
wp_enqueue_script('thickbox');
wp_enqueue_style('thickbox');
do_action('admin_print_styles');
}
if( isset( $_REQUEST['action'] ) ){
if( 'reset' == $_REQUEST['action'] && $current_page == 'panel' && check_admin_referer('reset-action-code' , 'resetnonce') ) {
global $default_data;
tc_save_settings( $default_data );
header("Location: admin.php?page=panel&reset=true");
die;
}
}
}
/*-----------------------------------------------------------------------------------*/
# Add Options
/*-----------------------------------------------------------------------------------*/
function tc_options($value){
global $options_fonts;
?>
<div class="option-item" id="<?php echo $value['id'] ?>-item">
<span class="label"><?php echo $value['name']; ?></span>
<?php
switch ( $value['type'] ) {
case 'text': ?>
<input name="tc_options[<?php echo $value['id']; ?>]" id="<?php echo $value['id']; ?>" type="text" value="<?php echo tc_get_option( $value['id'] ); ?>" />
<?php if( isset( $value['extra_text'] ) ) : ?><span class="extra-text"><?php echo $value['extra_text'] ?></span><?php endif; ?>
<?php
if( $value['id']=="slider_tag" || $value['id']=="home_query_tag"){
$tags = get_tags('orderby=count&order=desc&number=50'); ?>
<a style="cursor:pointer" title="Choose from the most used tags" onclick="toggleVisibility('<?php echo $value['id']; ?>_tags');"><img src="<?php echo get_template_directory_uri(); ?>/panel/images/expand.png" alt="" /></a>
<span class="tags-list" id="<?php echo $value['id']; ?>_tags">
<?php foreach ($tags as $tag){?>
<a style="cursor:pointer" onclick="if(<?php echo $value['id'] ?>.value != ''){ var sep = ' , '}else{var sep = ''} <?php echo $value['id'] ?>.value=<?php echo $value['id'] ?>.value+sep+(this.rel);" rel="<?php echo $tag->name ?>"><?php echo $tag->name ?></a>
<?php } ?>
</span>
<?php } ?>
<?php
break;
case 'arrayText': $currentValue = tc_get_option( $value['id'] );?>
<input name="tc_options[<?php echo $value['id']; ?>][<?php echo $value['key']; ?>]" id="<?php echo $value['id']; ?>[<?php echo $value['key']; ?>]" type="text" value="<?php echo $currentValue[$value['key']] ?>" />
<?php
break;
case 'short-text': ?>
<input style="width:50px" name="tc_options[<?php echo $value['id']; ?>]" id="<?php echo $value['id']; ?>" type="text" value="<?php echo tc_get_option( $value['id'] ); ?>" />
<?php
break;
case 'checkbox':
if(tc_get_option($value['id'])){$checked = "checked="checked""; } else{$checked = "";} ?>
<input class="on-of" type="checkbox" name="tc_options[<?php echo $value['id'] ?>]" id="<?php echo $value['id'] ?>" value="true" <?php echo $checked; ?> />
<?php
break;
case 'radio':
?>
<div style="float:left; width: 295px;">
<?php foreach ($value['options'] as $key => $option) { ?>
<label style="display:block; margin-bottom:8px;"><input name="tc_options[<?php echo $value['id']; ?>]" id="<?php echo $value['id']; ?>" type="radio" value="<?php echo $key ?>" <?php if ( tc_get_option( $value['id'] ) == $key) { echo ' checked="checked"' ; } ?>> <?php echo $option; ?></label>
<?php } ?>
</div>
<?php
break;
case 'select':
?>
<select name="tc_options[<?php echo $value['id']; ?>]" id="<?php echo $value['id']; ?>">
<?php foreach ($value['options'] as $key => $option) { ?>
<option value="<?php echo $key ?>" <?php if ( tc_get_option( $value['id'] ) == $key) { echo ' selected="selected"' ; } ?>><?php echo $option; ?></option>
<?php } ?>
</select>
<?php
break;
case 'textarea':
?>
<textarea style="direction:ltr; text-align:left" name="tc_options[<?php echo $value['id']; ?>]" id="<?php echo $value['id']; ?>" type="textarea" cols="100%" rows="3" tabindex="4"><?php echo tc_get_option( $value['id'] ); ?></textarea>
<?php
break;
case 'upload':
?>
<input id="<?php echo $value['id']; ?>" class="img-path" type="text" size="56" style="direction:ltr; text-laign:left" name="tc_options[<?php echo $value['id']; ?>]" value="<?php echo tc_get_option($value['id']); ?>" />
<input id="upload_<?php echo $value['id']; ?>_button" type="button" class="small_button" value="Upload" />
<div id="<?php echo $value['id']; ?>-preview" class="img-preview" <?php if(!tc_get_option( $value['id'] )) echo 'style="display:none;"' ?>>
<img src="<?php if(tc_get_option( $value['id'] )) echo tc_get_option( $value['id'] ); else echo get_template_directory_uri().'/panel/images/spacer.png'; ?>" alt="" />
<a class="del-img" title="Delete"></a>
</div>
<?php
break;
case 'slider':
?>
<div id="<?php echo $value['id']; ?>-slider"></div>
<input type="text" id="<?php echo $value['id']; ?>" value="<?php echo tc_get_option($value['id']); ?>" name="tc_options[<?php echo $value['id']; ?>]" style="width:50px;" /> <?php echo $value['unit']; ?>
<script>
jQuery(document).ready(function() {
jQuery("#<?php echo $value['id']; ?>-slider").slider({
range: "min",
min: <?php echo $value['min']; ?>,
max: <?php echo $value['max']; ?>,
value: <?php if( tc_get_option($value['id']) ) echo tc_get_option($value['id']); else echo 0; ?>,
slide: function(event, ui) {
jQuery('#<?php echo $value['id']; ?>').attr('value', ui.value );
}
});
});
</script>
<?php
break;
case 'color':
?>
<div id="<?php echo $value['id']; ?>colorSelector" class="color-pic"><div style="background-color:<?php echo tc_get_option($value['id']) ; ?>"></div></div>
<input style="width:80px; margin-right:5px;" name="tc_options[<?php echo $value['id']; ?>]" id="<?php echo $value['id']; ?>" type="text" value="<?php echo tc_get_option($value['id']) ; ?>" />
<script>
jQuery('#<?php echo $value['id']; ?>colorSelector').ColorPicker({
color: '<?php echo tc_get_option($value['id']) ; ?>',
onShow: function (colpkr) {
jQuery(colpkr).fadeIn(500);
return false;
},
onHide: function (colpkr) {
jQuery(colpkr).fadeOut(500);
return false;
},
onChange: function (hsb, hex, rgb) {
jQuery('#<?php echo $value['id']; ?>colorSelector div').css('backgroundColor', '#' + hex);
jQuery('#<?php echo $value['id']; ?>').val('#'+hex);
}
});
</script>
<?php
break;
}
?>
<?php if( isset( $value['help'] ) ) : ?>
<a class="mo-help tooltip" title="<?php echo $value['help'] ?>"></a>
<?php endif; ?>
</div>
<?php
}
add_action('admin_menu', 'tc_add_admin');
?>hocam kusura bakmayın eval kısmını dikkate almamışım sanırım doğru çeviri bu eğer bi hata verirse kodların en başındaki "?>" kısımı silin bir daha deneyin