this is a php code when i check this code on "online php checker" it gives an error "Parse error: syntax error, unexpected T_STRING" on line 1708
how to solve this please give some advice
<?php
class PopUp_Domination {
var $base_name = '';
var $theme_path = '';
var $theme_url = '';
var $plugin_url = '';
var $plugin_path = '';
var $opts_url = '';
var $themes = array();
var $natypes = array('.original.php','.original.htm','.original.html','.original.css','.original.txt');
var $atypes = array('.php','.htm','.html','.css','.txt');
var $is_preview = false;
function PopUp_Domination(){
$this->base_name = plugin_basename(__FILE__);
$this->plugin_url = WP_PLUGIN_URL.'/'.dirname($this->base_name).'/';
$this->plugin_path = WP_PLUGIN_DIR.'/'.dirname($this->base_name).'/';
$this->theme_url = $this->plugin_url.'themes/';
$this->theme_path = $this->plugin_path.'themes/';
if(function_exists("admin_url"))
$url = admin_url("options-general.php?page=" . $this->base_name);
else
$url = $_SERVER['PHP_SELF'] . "?page=" . $this->base_name;
$this->opts_url = $url;
if(is_admin()){
wp_admin_css( 'theme-editor' );
wp_register_style('popup-domination', $this->plugin_url.'admin_styles.css');
add_action('admin_menu', array(&$this, 'admin_menu'));
add_filter('plugin_action_links', array(&$this, 'plugin_action_links'), 10, 2);
}
if($ins = $this->option('installed')){
add_action('wp_print_scripts', array(&$this, 'wp_print_scripts'));
if(is_admin()){
add_action('wp_ajax_popup_domination_file_upload', array(&$this, 'upload_file'));
add_action('wp_ajax_popup_domination_activation', array(&$this, 'activate'));
add_action('wp_ajax_popup_domination_clear_cookie', array(&$this, 'clear_cookie'));
add_action('wp_ajax_popup_domination_preview', array(&$this, 'preview'));
} else {
add_action('wp_print_styles', array(&$this, 'wp_print_styles'));
}
}
}
function clear_cookie(){
if(wp_verify_nonce($_GET['_wpnonce'], 'update-options')){
setcookie('popup_domination_hide_lightbox','',time()-60*60*24*100,COOKIEPATH);
echo '{"done":"done"}';
} else {
echo '{"error":"Verification failed, please refresh the page and try again."}';
}
exit;
}
function preview(){
if(!wp_verify_nonce($_POST['_wpnonce'], 'update-options')){
exit('<p>You do not have permission to view this</p>');
}
$this->is_preview = true;
$prev = $_POST['popup_domination'];
$prevnew = array();
foreach($prev as $a => $b){
$prevnew[$a] = stripslashes($b);
}
$prev = $prevnew;
$t = $prev['template'];
$target = (isset($prev['new_window']) && $prev['new_window'] == 'Y') ? ' target="_blank"':'';
if(!$themeopts = $this->get_theme_info($t)){
exit('<p>The theme you have chosen could not be found.</p>');
}
if(isset($themeopts['colors']) && !($color = $this->option('color'))){
exit('<p>You must first select a color for your theme.</p>');
}
if(isset($prev['color']))
$color = $prev['color'];
$clickbank = '';
if(isset($prev['promote'])){
$promote = $prev['promote'];
if($promote == 'Y'){
$clickbank = (isset($prev['clickbank']))?$prev['clickbank']:'';
}
} else {
$promote = 'N';
}
$inputs = array('name'=>$prev['name_box'],
'email'=>$prev['email_box']);
$tmp_fields = $_POST['popup_domination_fields'];
$fields = array();
foreach($tmp_fields as $a => $b)
$fields[$a] = $this->encode(stripslashes($b));
$inputs['hidden'] = '';
if(isset($_POST['field_name']) && isset($_POST['field_vals']) && count($_POST['field_name']) == count($_POST['field_vals'])){
$fl = count($_POST['field_name']);
for($i=0;$i<$fl;$i++){
$_POST['field_name'][$i] = stripslashes($_POST['field_name'][$i]);
$_POST['field_vals'][$i] = stripslashes($_POST['field_vals'][$i]);
if(!empty($_POST['field_name'][$i]) && $inputs['name'] != $_POST['field_name'][$i] && $inputs['email'] != $_POST['field_name'][$i]){
$inputs['hidden'] .= '<input type="hidden" name="'.$this->input_val($_POST['field_name'][$i]).'" value="'.$this->input_val($_POST['field_vals'][$i]).'" />';
}
}
}
if(isset($_POST['field_img']) && count($_POST['field_img'])){
$fl = count($_POST['field_img']);
for($i=0;$i<$fl;$i++){
if(!empty($_POST['field_img'][$i])){
$inputs['hidden'] .= '<div style="display:none"><img src="'.stripslashes($_POST['field_img'][$i]).'" alt="" width="1" height="1" /></div>';
}
}
}
$form_action = $this->encode($prev['action']);
$list_items = array();
if(isset($_POST['list_item'])){
$tmp_items = $_POST['list_item'];
foreach($tmp_items as $tmp)
$list_items[] = $this->encode(stripslashes($tmp));
}
$disable_name = 'N';
if(isset($prev['disable_name']) && $prev['disable_name'] == 'Y'){
$disable_name = 'Y';
}
$delay = $prev['delay'];
$center = $themeopts['center'];
$show_opt = $prev['show_opt'];
$unload_msg = $prev['unload_msg'];
$delay_hide = '';
$button_color = isset($prev['button_color']) ? $prev['button_color'] : '';
$base = dirname($this->base_name);
$theme_url = $this->theme_url.$t.'/';
$lightbox_id = 'popup_domination_lightbox_wrapper';
$lightbox_close_id = 'popup_domination_lightbox_close';
$cookie_time = $icount = 0;
$arr = array();
if($disable_name == 'N'){
$arr[] = array('class'=>'name','default'=>((isset($fields['name_default'])) ? $fields['name_default'] : ''), 'name'=>((isset($inputs['name']))?$inputs['name']:''));
}
$arr[] = array('class'=>'email','default'=>((isset($fields['email_default'])) ? $fields['email_default'] : ''), 'name'=>((isset($inputs['email']))?$inputs['email']:''));
$fstr = ''; $js = array();
foreach($arr as $a){
if(!empty($a['name']) && !empty($a['default'])){
$js[$a['name']] = $a['default'];
}
$fstr .= '<input type="text" class="'.$a['class'].'" value="'.$a['default'].'" name="'.$a['name'].'" />';
}
$arr = array('defaults'=>$js,'delay'=>floatval($delay),'cookie_time'=>floatval($cookie_time),'center'=>$center,'cookie_path'=>COOKIEPATH,'show_opt'=>$show_opt,'unload_msg'=>$unload_msg,'impression_count'=>intval($icount),'output'=>$output);
$promote_link = (($promote=='Y') ? '<p class="powered"><a href="'.((!empty($clickbank))?'http://'.$clickbank.'.popdom.hop.clickbank.net/':'http://www.popupdomination.com/').'" target="_blank">Powered By PopUp Domination</a></p>':'');
ob_start();
include $this->theme_path.$t.'/template.php';
$output = ob_get_contents();
ob_end_clean();
echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="en-US">
<head profile="http://gmpg.org/xfn/11">
<style type="text/css">
* { margin: 0; padding: 0; outline: 0 }
</style>
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript" src="'.$this->plugin_url.'lightbox-preview.js"></script>
<link rel="stylesheet" type="text/css" href="'.$this->theme_url.$t.'/lightbox.css" />
<script type="text/javascript">
var popup_domination = '.json_encode($arr).';
</script>
</head><body><p style="text-align:center"><a href="#open">Re-open lightbox</a></p>'.$output.'</body></html>';
exit;
}
function load_lightbox(){
if(!$enabled = $this->option('enabled'))
return false;
if($enabled != 'Y')
return false;
if(!$t = $this->option('template'))
return false;
if(!$themeopts = $this->get_theme_info($t))
return false;
if(isset($themeopts['colors']) && !($color = $this->option('color')))
return false;
$clickbank = '';
if($promote = $this->option('promote')){
if($promote == 'Y'){
$clickbank = $this->option('clickbank');
}
} else {
$promote = 'N';
}
$target = $this->option('new_window') == 'Y' ? ' target="_blank"':'';
$disable_name = 'N';
if($disable = $this->option('disable_name')){
if($disable == 'Y'){
$disable_name = 'Y';
}
}
$inputs = array('email'=>$this->option('email_box'));
if($disable_name == 'N'){
$inputs['name'] = $this->option('name_box');
}
$fields = '';
if($f = $this->option('fields',false)){
if(!empty($f)){
$fieldsarr = unserialize($f);
foreach($fieldsarr as $a => $b){
if(!in_array($a,$inputs))
$fields .= '<input type="hidden" name="'.$this->input_val($a).'" value="'.$this->input_val($b).'" />';
}
}
}
if($f = $this->option('images',false)){
if(!empty($f)){
$fieldsarr = unserialize($f);
foreach($fieldsarr as $b){
$fields .= '<div style="display:none"><img src="'.$this->input_val($b).'" alt="" height="1" width="1" /></div>';
}
}
}
$inputs['hidden'] = $fields;
$form_action = $this->option('action');
$list_items = array();
if($l = $this->option('listitems',false)){
if(!empty($l)){
$l = unserialize($l);
foreach($l as $litem){
$list_items[] = $this->encode($litem);
}
}
}
$fields = array();
if(isset($themeopts['fields']) && count($themeopts['fields']) > 0){
foreach($themeopts['fields'] as $a => $b){
$val = $this->option('field_'.$b['field_opts']['id']);
$fields[$b['field_opts']['id']] = $this->encode($val);
}
}
$center = $themeopts['center'];
$delay = $this->option('delay');
$delay_hide = ' style="display:none"';
$button_color = $this->option('button_color');
$cookie_time = $this->option('cookie_time');
$base = dirname($this->base_name);
$theme_url = $this->theme_url.$t.'/';
$lightbox_id = 'popup_domination_lightbox_wrapper';
$lightbox_close_id = 'popup_domination_lightbox_close';
$icount = $this->option('impression_count');
$show_opt = $this->option('show_opt');
$unload_msg = $this->option('unload_msg');
$arr = array();
if($disable_name == 'N'){
$arr[] = array('class'=>'name','default'=>((isset($fields['name_default'])) ? $fields['name_default'] : ''), 'name'=>((isset($inputs['name']))?$inputs['name']:''));
}
$arr[] = array('class'=>'email','default'=>((isset($fields['email_default'])) ? $fields['email_default'] : ''), 'name'=>((isset($inputs['email']))?$inputs['email']:''));
$fstr = ''; $js = array();
foreach($arr as $a){
if(!empty($a['name']) && !empty($a['default'])){
$js[$a['name']] = $a['default'];
}
$fstr .= '<input type="text" class="'.$a['class'].'" value="'.$a['default'].'" name="'.$a['name'].'" />';
}
$promote_link = (($promote=='Y') ? '<p class="powered"><a href="'.((!empty($clickbank))?'http://'.$clickbank.'.popdom.hop.clickbank.net/':'http://www.popupdomination.com/').'" target="_blank">Powered By PopUp Domination</a></p>':'');
ob_start();
include $this->theme_path.$t.'/template.php';
$output = ob_get_contents();
ob_end_clean();
$arr = array('defaults'=>$js,'delay'=>floatval($delay),'cookie_time'=>floatval($cookie_time),'center'=>$center,'cookie_path'=>COOKIEPATH,'show_opt'=>$show_opt,'unload_msg'=>$unload_msg,'impression_count'=>intval($icount),'output'=>$output);
?>
<script type="text/javascript">
var popup_domination = <?php echo json_encode($arr); ?>;
</script><?php
}
function wp_print_scripts(){
global $plugin_page;
if(is_admin()){
if(isset($plugin_page) && $plugin_page == $this->base_name){
wp_enqueue_script('ajax-upload',$this->plugin_url.'ajaxupload.js',array('jquery'),'1.0');
wp_enqueue_script('popup_domination',$this->plugin_url.'admin_lightbox.js',array('jquery','ajax-upload'),'1.0');
}
} else {
if(!$this->is_enabled())
return false;
if(!$this->should_show())
return false;
wp_enqueue_script('popup_domination',$this->plugin_url.'lightbox.js',array('jquery'),'1.0');
$this->load_lightbox();
}
}
function is_enabled(){
static $enabled;
if(!isset($enabled)){
if(!$e = $this->option('enabled'))
return false;
if($this->is_mobile()){
return false;
}
$enabled = $e;
}
return $enabled == 'Y' ? true : false;
}
function should_show(){
global $wp_query;
$show = $this->show_var();
if(isset($show['everywhere']))
return true;
if(isset($show['front']) && is_front_page())
return true;
if(isset($show['pageid']) && is_page() && in_array($wp_query->post->ID,$show['pageid']))
return true;
if(isset($show['caton']) && isset($show['catid']) && is_array($show['catid'])){
$checkcat = $checkpost = false;
switch($show['caton']){
case 0: $checkcat = $checkpost = true; break;
case 1: $checkcat = true; break;
case 2: $checkpost = true; break;
}
if($checkcat){
foreach($show['catid'] as $c){
if(is_category($c)){
return true;
}
}
}
if($checkpost && is_single() && ($cats = get_the_category())){
foreach($cats as $c){
if(in_array($c->cat_ID,$show['catid'])){
return true;
}
}
}
}
return false;
}
function show_var($backup=false){
$var = 'show';
if($backup)
$var .= '_backup';
$$var = array();
if($s = $this->option($var,false)){
if(!empty($s)){
if(is_array($s))
$$var = $s;
else
$$var = unserialize($s);
}
}
return $$var;
}
function wp_print_styles(){
if(!$this->is_enabled())
return false;
if(!$this->should_show())
return false;
if(!$t = $this->option('template'))
return false;
wp_enqueue_style('popup_domination',$this->theme_url.$t.'/lightbox.css');
}
function admin_menu(){
$page = add_options_page('PopUp Domination', 'PopUp Domination', 9, $this->base_name, array(&$this, 'admin_page'));
add_action('admin_print_styles-'.$page, array(&$this, 'admin_styles'));
}
function admin_styles(){
wp_enqueue_style('popup-domination');
}
function plugin_action_links($links, $file){
if($file == $this->base_name){
$settings_link = '<a href="options-general.php?page='.$file.'">'.__('Settings').'</a>';
array_unshift($links,$settings_link);
}
return $links;
}
function activate(){
if(wp_verify_nonce($_GET['_wpnonce'], 'update-options')){
$update = $_GET['todo'] == 'turn-on' ? 'Y' : 'N';
$this->update('enabled',$update);
echo '{"active":"'.$update.'"}';
} else {
echo '{"error":"Verification failed, please refresh the page and try again."}';
}
exit;
}
function upload_file(){
if(wp_verify_nonce($_POST['_wpnonce'], 'update-options') && isset($_POST['template']) && $t = $this->get_theme_info($_POST['template'])){
if(isset($_POST['fieldid'])){
if($field = $this->get_field($t,$_POST['fieldid'])){
$uploads = wp_upload_dir();
$fileobj = $_FILES['userfile'];
if(!empty($fileobj['tmp_name']) && file_is_displayable_image($fileobj['tmp_name'])){
if($file = wp_handle_upload($fileobj,array('test_form'=>false,'action'=>'wp_handle_upload'))){
$sizes = array();
if(isset($field['field_opts'])){
$opts = $field['field_opts'];
if(isset($opts['max_w']) && isset($opts['max_h']))
$sizes = array($opts['max_w'],$opts['max_h']);
}
$image_url = $file['url'];
if(count($sizes) == 2){
$resized = image_make_intermediate_size($file['file'],$sizes[0],$sizes[1]);
if($resized)
$image_url = $uploads['url'].'/'.$resized['file'];
}
$attachment = array('post_title' => $fileobj['name'],
'post_content' => '',
'post_status' => 'inherit',
'post_mime_type' => $file['type'],
'guid' => $image_url);
$aid = wp_insert_attachment($attachment,$file['file'],0);
if(!is_wp_error($aid)){
wp_update_attachment_metadata($aid,wp_generate_attachment_metadata($aid,$file['file']));
echo $image_url.'|'.$aid.'|';
} else {
echo 'error|<strong>Upload Error:</strong> ' . $aid->get_error_message();
}
exit;
}
} else {
echo 'error|<strong>Upload Error:</strong> The file you tried to upload is not a valid image.';
exit;
}
}
}
}
echo 'error|<strong>Upload Error:</strong> There was an error finding the field.';
die();
}
function sort_array($a,$b){
if($a['name'] == $b['name'])
return 0;
return ($a['name'] < $b['name']) ? -1 : 1;
}
function get_field($theme,$field){
if(empty($field))
return false;
if(!isset($theme['fields']))
return false;
foreach($theme['fields'] as $f){
if($f['field_opts']['id'] == $field)
return $f;
}
return false;
}
function option($key,$enc=true){
return (($enc)?$this->encode(get_option('popup_domination_'.$key)):get_option('popup_domination_'.$key));
}
function update($key,$val,$enc=true){
update_option( 'popup_domination_'.$key,(($enc)?$this->encode($val):$val));
}
function encode($str,$striptags=true){
if($striptags){
$str = strip_tags($str,'<b><strong><em><i><br>');
$str = preg_replace('{<br\s*>}si','<br />',$str);
}
return $str;
}
function encode2($str){
$str = preg_replace('{<style[^>]*>.*</style>}si','',$str);
$str = preg_replace('{<script[^>]*>.*</script>}si','',$str);
return utf8_encode(stripslashes($str));
}
function check_file_type($file,$types=array(),$natypes=array()){
if(empty($file))
return false;
if(count($types) == 0 && count($natypes) == 0)
return true;
$lower = strtolower($file); $fl = strlen($file);
if(count($natypes) > 0){
foreach($natypes as $n){
$nl = strlen($n);
$tmp = substr($lower,($fl-$nl),$nl);
if($tmp == $n)
return false;
}
}
if(count($types) > 0){
foreach($types as $t){
$tl = strlen($t);
$tmp = substr($lower,($fl-$tl),$tl);
if($tmp == $t)
return true;
}
}
return false;
}
function get_file_list($dir,$dirs=false,$types=array(),$natypes=array()){
$t_dir = @opendir($dir);
if(!$t_dir)
return false;
$na = array('','.','..');
$files = array();
while(($file = readdir($t_dir)) !== false){
if(!in_array($file,$na)){
if($dirs){
if(is_dir($dir.$file))
$files[] = $file;
} else {
if(!is_dir($dir.$file)){
if($this->check_file_type($file,$types,$natypes))
$files[] = $file;
}
}
}
}
if($t_dir)
@closedir($t_dir);
return $files;
}
function get_theme_info($t){
$files = $this->get_file_list($this->theme_path.$t);
if(in_array('theme.txt',$files)){
$template_data = implode( '', file( $this->theme_path.$t.'/theme.txt' ));
$name = '';
$opts = array();
if(preg_match('|Template Name:(.*)$|mi', $template_data, $name)){
$opts['name'] = _cleanup_header_comment($name[1]);
$opts['center'] = 'N';
if(preg_match( '|Center:(.*)$|mi', $template_data, $size))
$opts['center'] = _cleanup_header_comment($size[1]);
if(preg_match( '|Preview Size:(.*)$|mi', $template_data, $size))
$opts['size'] = array_filter(explode('x',_cleanup_header_comment($size[1])));
$opts['ext'] = 'png';
if(preg_match( '|Preview Ext:(.*)$|mi', $template_data, $ext))
$opts['ext'] = _cleanup_header_comment($ext[1]);
if(preg_match( '|Colors:(.*)$|mi', $template_data, $color)){
$opts['colors'] = $this->color_opts($t,$opts['ext'],array_filter(explode(' | ',_cleanup_header_comment($color[1]))));
} else {
if(file_exists($this->theme_path.$t.'/preview.'.$opts['ext']))
$opts['img'] = $t.'/preview.'.$opts['ext'];
}
if(preg_match('|Button Colors:(.*)$|mi',$template_data, $colors))
$opts['button_colors'] = $this->button_colors($t,array_filter(explode('|',_cleanup_header_comment($colors[1]))));
if(preg_match( '|List Items:(.*)$|mi', $template_data, $list))
$opts['list'] = intval(_cleanup_header_comment($list[1]));
if(preg_match( '|Fields:(.*)$|mi', $template_data, $fields))
$opts['fields'] = $this->field_opts(array_filter(explode('|',_cleanup_header_comment($fields[1]))));
$opts['theme'] = $t;
return $opts;
}
}
return false;
}
function field_opts($fields=array()){
if(is_array($fields) && count($fields) > 0){
$arr = array();
foreach($fields as $f){
$tmp_arr = array();
$f2 = explode('[',$f);
$tmp_arr['name'] = $f2[0];
$f2 = explode(']',$f2[1]);
$f2 = array_filter(explode(',',$f2[0]));
$tmp_arr['field_opts'] = array();
foreach($f2 as $a => $b){
$f3 = explode(':',$b);
if(count($f3) > 1){
$tmp_arr['field_opts'][$f3[0]] = $f3[1];
}
}
$arr[] = $tmp_arr;
}
return $arr;
}
return false;
}
function color_opts($t,$ext,$colors=array()){
if(is_array($colors) && count($colors) > 0){
$arr = array();
foreach($colors as $c){
$tmp_arr = array();
$c2 = explode('[',$c);
$tmp_arr['name'] = $c2[0];
$c2 = explode(']',$c2[1]);
$info = array_filter(explode(':',$c2[0]));
$file = $t.'/previews/'.$info[0].'.'.$ext;
if(file_exists($this->theme_path.$file) && is_file($this->theme_path.$file)){
$info[2] = $file;
}
$tmp_arr['info'] = $info;
$arr[] = $tmp_arr;
}
return $arr;
}
return false;
}
function button_colors($t,$colors=array()){
if(is_array($colors) && count($colors) > 0){
$arr = array();
foreach($colors as $c){
$tmp_arr = array();
$c2 = explode('[',$c);
$tmp_arr['name'] = $c2[0];
$c2 = explode(']',$c2[1]);
$tmp_arr['color_id'] = $c2[0];
$arr[] = $tmp_arr;
}
usort($arr,array(&$this,'sort_array'));
return $arr;
}
return false;
}
function get_themes(){
if(count($this->themes) == 0){
$themes = $this->get_file_list($this->theme_path,true);
$this->themes = array();
foreach($themes as $t){
if($t = $this->get_theme_info($t))
$this->themes[] = $t;
}
usort($this->themes,array(&$this,'sort_array'));
}
return $this->themes;
}
function show_lightbox(){
echo $this->load_lightbox();
}
function page_list_recursive($parentid=0,$exclude='',$selected=array()){
$pages = get_pages('parent='.$parentid.'&child_of='.$parentid.'&exclude='.$exclude);
if(count($pages) > 0){
$str = '
<ul class="children">';
foreach($pages as $p){
$sel = false;
if(isset($selected['pageid']) && in_array($p->ID,$selected['pageid']))
$sel = true;
$str .= '
<li><input type="checkbox" name="popup_domination_show[pageid][]" value="'.$p->ID.'" id="pageid_'.$p->ID.'"'.(($sel)?' checked="checked"':'').' /> <label for="pageid_'.$p->ID.'">'.wp_specialchars($p->post_title).'</label>'.$this->page_list_recursive($p->ID,$exclude,$selected).'</li>';
}
$str .= '
</ul>';
return $str;
}
}
function cat_list_recursive($parentid=0,$selected=array()){
$cats = get_categories('hide_empty=0&child_of='.$parentid.'&parent='.$parentid);
if(count($cats) > 0){
$str = '
<ul class="children">';
foreach($cats as $c){
$sel = false;
if(isset($selected['catid']) && in_array($c->cat_ID,$selected['catid']))
$sel = true;
$str .= '
<li><input type="checkbox" name="popup_domination_show[catid][]" value="'.$c->cat_ID.'" id="catid_'.$c->cat_ID.'"'.(($sel)?' checked="checked"':'').' /> <label for="catid_'.$c->cat_ID.'">'.wp_specialchars($c->cat_name).'</label>'.$this->cat_list_recursive($c->cat_ID,$selected).'</li>';
}
$str .= '</ul>';
return $str;
}
return '';
}
function page_list(){
$selected = $this->show_var();
$front = get_option('page_on_front');
$ex_pages = '';
if(get_option('show_on_front') == 'page' && $front){
$ex_pages = $front;
}
$catstr = ''; $selectedcat = isset($selected['caton']) ? $selected['caton'] : 0;
$opts = array('Both','Category page','Post page within the categories');
foreach($opts as $a => $b){
$catstr .= '
<option value="'.$a.'"'.(($a==$selectedcat)?' selected="selected"':'').'>'.$b.'</option>';
}
$cats = $this->cat_list_recursive(0,$selected);
$str = '
<ul class="page_list">
<li class="everywhere"><input type="checkbox" name="popup_domination_show[everywhere]" id="popup_domination_show_everywhere" value="Y"'.((isset($selected['everywhere']))?' checked="checked"':'').' /> <label for="popup_domination_show_everywhere">Everywhere</label></li>
<li class="home"><input type="checkbox" name="popup_domination_show[front]" id="popup_domination_show_front" value="Y"'.((isset($selected['front']))?' checked="checked"':'').' /> <label for="popup_domination_show_front">Front Page</label></li>
<li>Pages:'.$this->page_list_recursive(0,$ex_pages,$selected).'</li>';
if(!empty($cats)){
$str .= '
<li><label>Categories:</label>
<label for="popup_domination_show_caton">Show on:</label>
<select name="popup_domination_show[caton]" id="popup_domination_show_caton">'.$catstr.'
</select>
'.$cats.'
</li>';
}
$str .= '
</ul>';
echo $str;
}
function maxlength_txt($f,$val){
if(isset($f['field_opts']['max'])){
$max = intval($f['field_opts']['max']);
$len = strlen($val);
$txt = ' Recommended '.$max;
$class = 'green';
$msg = 'remaining <span>'.($max-$len).'</span>';
if(strlen($val) > $f['field_opts']['max']){
$class = 'red';
$msg = 'hmm, you\'re over the limit, it might look bad';
}
return '<span class="recommended"><span class="'.$class.'">'.$txt.'</span> <span class="note">('.$msg.')</span></span>';
}
return '';
}
function admin_page(){
global $wp_version;
if(!$ins = $this->option('installed')){
$showform = true;
$check = $install = false;
$key = '';
if(isset($_POST['action']) && strtolower($_POST['action']) == 'check-receipt' && wp_verify_nonce($_POST['_wpnonce'], 'check-receipt')){
if(isset($_POST['receipt_key']) && !empty($_POST['receipt_key'])){
$key = $_POST['receipt_key'];
if($key == 'XPD10000'){
$install = true;
$showform = false;
} else {
$url = 'http://www.popupdomination.com/thanks-secure/check_receipt.php?receipt_key='.urlencode(base64_encode($_POST['receipt_key'])).'&url='.urlencode(base64_encode($this->plugin_url)).'&type=plugin';
if(function_exists('curl_init')){
$ch = curl_init();
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (compatible; Konqueror/4.0; Microsoft Windows) KHTML/4.0.80 (like Gecko)");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPGET, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
$resp = curl_exec($ch);
if(!$resp){
$response = @file_get_contents($url);
if(!$response){
echo '<div class="updated"><p>cURL Error: '.curl_error($ch).'</p></div>';
} else {
$check = true;
}
} else {
$check = true;
}
curl_close($ch);
} else {
$response = @file_get_contents($url);
if(!$response){
echo '<div class="updated"><p>Error: cURL is not installed on this server. file_get_contents failed.</p></div>';
} else {
$check = true;
}
}
}
if($check){
if(substr($resp,0,4) == 'true'){
$showform = false;
$install = true;
}
}
if($install){
$defaults = array('template' => 'lightbox',
'color' => 'blue',
'cookie_time' => 7,
'delay' => 0,
'button_color' => 'red',
'show' => serialize(array('everywhere' => 'Y')),
'show_opt' => 'open',
'unload_msg' => 'Would you like to signup to the newsletter before you go?',
'impression_count' => 0,
'new_window' => 'N',
'promote' => 'Y',
'installed' => 'Y');
foreach($defaults as $a => $b){
if(!$this->option($a))
$this->update($a,$b);
}
echo '
<div class="wrap" id="poststuff">
<h2>PopUp Domination Installed</h2>
<a href="'.$this->opts_url.'">Click here to finish setting up.</a>
</div>';
} else {
echo '<div class="updated"><p>The order number you entered is invalid. Please contact support.</p></div>';
}
}
}
if($showform === true){
echo '
<div class="wrap" id="poststuff">
<h2>PopUp Domination Installation</h2>
<form action="'.$this->opts_url.'" method="post">
<label for="receipt">Order Number: <input type="text" name="receipt_key" id="receipt" /></label>
<input type="submit" name="submit" value="Submit" />
<input type="hidden" name="action" value="check-receipt" />'.wp_nonce_field('check-receipt', '_wpnonce', true , false).'
</form>
</div>';
}
} else {
echo '
<div class="wrap" id="poststuff">
<h2>PopUp Domination Settings</h2>';
if(isset($_POST['action']) && strtolower($_POST['action']) == 'theme-editor'):
$this->save_theme_file();
else:
if(isset($_POST['popup_domination'])){
if(wp_verify_nonce($_POST['_wpnonce'], 'update-options')){
$update = $_POST['popup_domination'];
$tmparr = array('template', 'color', 'name_box', 'email_box', 'action', 'cookie_time',
'delay', 'button_color', 'promote', 'clickbank', 'disable_name',
'show_opt', 'unload_msg', 'impression_count', 'new_window');
$tmparr2 = array('clickbank' => $this->option('clickbank'), 'disable_name' => 'N',
'unload_msg' => $this->option('unload_msg'), 'new_window' => 'N');
$arr = array();
foreach($tmparr as $t){
if(!isset($update[$t])){
$update[$t] = '';
if(isset($tmparr2[$t]) && $tmparr2[$t])
$update[$t] = $tmparr2[$t];
}
$arr[$t] = stripslashes($update[$t]);
}
$t = $this->get_theme_info($update['template']);
if(isset($t['fields']) && count($t['fields']) > 0 && isset($_POST['popup_domination_fields'])){
foreach($t['fields'] as $f){
$arr['field_'.$f['field_opts']['id']] = stripslashes($_POST['popup_domination_fields'][$f['field_opts']['id']]);
}
}
foreach($arr as $a => $b)
$this->update($a,$b);
$this->update('formhtml',$this->encode2($update['formhtml']),false);
$fields = array();
if(isset($_POST['field_name']) && isset($_POST['field_vals']) && count($_POST['field_name']) == count($_POST['field_vals'])){
$fl = count($_POST['field_name']);
for($i=0;$i<$fl;$i++){
if(!empty($_POST['field_name'][$i])){
$fields[$_POST['field_name'][$i]] = $_POST['field_vals'][$i];
}
}
}
$this->update('fields',serialize($fields),false);
$images = array();
if(isset($_POST['field_img']) && count($_POST['field_img'])){
$img = $_POST['field_img'];
$fl = count($img);
for($i=0;$i<$fl;$i++){
if(!empty($img[$i])){
$images[] = $img[$i];
}
}
}
$this->update('images',serialize($images),false);
$list = array();
if(isset($_POST['list_item']) && count($_POST['list_item']) > 0){
foreach($_POST['list_item'] as $l){
$list[] = stripslashes($l);
}
}
$this->update('listitems',serialize($list),false);
$show = array(); $origshow = $this->show_var();
if(isset($_POST['popup_domination_show'])){
$sch = $_POST['popup_domination_show'];
if(isset($sch['everywhere'])){
$show['everywhere'] = 'Y';
if(!isset($origshow['everywhere']) || $origshow['everywhere'] != 'Y'){
$this->update('show_backup',serialize($origshow),false);
}
} else {
$this->update('show_backup',serialize($origshow),false);
}
if(isset($sch['front']))
$show['front'] = 'Y';
$show['pageid'] = array();
if(isset($sch['pageid']) && is_array($sch['pageid'])){
foreach($sch['pageid'] as $s)
$show['pageid'][] = $s;
}
$show['catid'] = array();
if(isset($sch['catid']) && is_array($sch['catid'])){
foreach($sch['catid'] as $s)
$show['catid'][] = $s;
}
$show['caton'] = $sch['caton'];
}
$this->update('show',serialize($show),false);
echo '
<div class="updated fade"><p><strong>'.__('Settings saved.').'</strong></p></div>';
} else {
echo '
<div class="updated fade"><p><strong>'.__('Could not save settings due to verification problems. Please try again.').'</strong></p></div>';
}
}
endif;
$templates = $this->get_themes();
$js = '{'; $counter = 0; $opts = $opts2 = $field_str = $cur_preview = '';
$val = $this->option('template');
$valc = $this->option('color');
$cur_theme = $cur_size = array();
foreach($templates as $t){
$selected = false;
if($t['theme'] == $val){
$selected = true;
if(isset($t['colors'])){
foreach($t['colors'] as $c){
$selected2 = false;
if($valc == $c['info'][0]){
$selected2 = true;
$cur_preview = (isset($c['info'][2])) ? $c['info'][2] : '';
if(isset($t['size']))
$cur_size = $t['size'];
}
$opts2 .= '<li'.(($selected2)?' class="selected"':'').'><a href="#'.$c['info'][0].'"><span class="preview_icon" style="background:'.$c['info'][1].'"></span><span>'.$c['name'].'</span>'.(($selected2)?'<span class="selected_txt">(selected)</span>':'').'</a></li>';
}
} elseif(isset($t['img'])){
$cur_preview = $t['img'];
}
}
$opts .= '<option value="'.$t['theme'].'"'.(($t['theme']==$val)?' selected="selected"':'').'>'.$t['name'].'</option>';
$js .= (($counter>0)?',':'').'"'.$t['theme'].'":{';
if(count($t['colors']) > 0){
$js .= '"colors":[';
$count = 0;
foreach($t['colors'] as $c){
$js .= (($count > 0)?',':'').'{"name":"'.$this->input_val($c['name']).'","options":["'.$this->input_val($c['info'][0]).'","'.$this->input_val($c['info'][1]).'"]'.((isset($c['info'][2]))?',"preview":"'.$this->input_val($c['info'][2]).'"':'').'}';
$count++;
}
$js .= '],';
} elseif(isset($t['img'])){
$js .= '"preview_image":"'.$t['img'].'",';
}
if(isset($t['button_colors']) && count($t['button_colors']) > 0){
$js .= '"button_colors":[';
$count = 0;
foreach($t['button_colors'] as $c){
$js .= (($count>0)?',':'').'{"name":"'.$c['name'].'","color_id":"'.$c['color_id'].'"}';
$count++;
}
$js .= '],';
}
if(isset($t['fields']) && is_array($t['fields']) && count($t['fields']) > 0){
$js .= '"fields":[';
$count = 0;
foreach($t['fields'] as $f){
$type = 'text';
if(isset($f['field_opts']['type'])){
$type = $f['field_opts']['type'];
}
$tmp = array('"type":"'.$type.'"');
if($selected){
$field_str .= '<p id="popup_domination_field_'.$f['field_opts']['id'].'">';
$fieldid = 'popup_domination_field_'.$f['field_opts']['id'].'_field';
$field_str .= '<label for="'.$fieldid.'"><strong>'.$f['name'].'</strong></label>';
if(!$val = $this->option('field_'.$f['field_opts']['id'])){
$val = ((isset($f['field_opts']['default_val']))?$f['field_opts']['default_val']:'');
}
switch($type){
case 'textarea':
$field_str .= $this->maxlength_txt($f,$val).'<br /><textarea cols="60" rows="5" name="popup_domination_fields['.$f['field_opts']['id'].']" id="'.$fieldid.'">'.$this->input_val($val).';
}
function save_theme_file(){
if(isset($_POST['theme']) && ($t = $this->get_theme_info($_POST['theme']))){
if(isset($_POST['file']) && file_exists($this->theme_path.$t['theme'].'/'.$_POST['file']) && $this->check_file_type($_POST['file'],$this->atypes,$this->natypes)){
$f = explode('.',$_POST['file']);
$orig = $this->theme_path.$t['theme'].'/'.$f[0].'.original.'.$f[1];
$filename = $this->theme_path.$t['theme'].'/'.$f[0].'.'.$f[1];
if(!file_exists($orig)){
if($fopen = fopen($orig,'w')){
fwrite($fopen,file_get_contents($filename));
fclose($fopen);
}
}
if($fopen = fopen($filename,'w')){
fwrite($fopen,$this->encode(stripslashes($_POST['newcontent']),false));
fclose($fopen);
}
}
}
}
function get_theme_editor(){
$editable = true;
if(isset($_REQUEST['theme']) && ($t = $this->get_theme_info($_REQUEST['theme']))){
$cur_theme = $_REQUEST['theme'];
} elseif($t = $this->option('template')){
if($t = $this->get_theme_info($t)){
$cur_theme = $t['theme'];
}
}
$file_content = $codepress_lang = '';
$file = ' ';
if(isset($cur_theme) && isset($_REQUEST['file']) && $this->check_file_type($_REQUEST['file'],$this->atypes,$this->natypes)){
$file = basename($_REQUEST['file']);
$realfile = $this->theme_path.$cur_theme.'/'.$file;
if(file_exists($realfile)){
if($_REQUEST['action'] == 'restore' && ($f = $this->get_original_file($cur_theme,$file))){
if($fopen = fopen($realfile,'w')){
fwrite($fopen,file_get_contents($f));
fclose($fopen);
unlink($f);
}
}
$file_content = file_get_contents($realfile);
}
}
$themes = $this->get_themes();
$themestr = '';
if(count($themes) > 0){
foreach($themes as $t){
$themestr .= '<option value="'.$t['theme'].'"'.(($cur_theme==$t['theme'])?' selected="selected"':'').'>'.$t['name'].'</option>';
}
}
include $this->plugin_path.'tpl/editor.php';
}
function get_original_file($t,$file){
$path = $this->theme_path.$t.'/';
$f = explode('.',$file);
if(count($f) > 1){
$ext = array_pop($f);
$f = implode('.',$f).'.original.'.$ext;
if(file_exists($path.$f) && is_file($path.$f))
return $path.$f;
}
return false;
}
function is_mobile(){
static $browser;
if(!isset($browser)){
$mobile = array('2.0 MMP','240x320','400X240','Android','AvantGo','BlackBerry','BlackBerry9530','Blazer','Cellphone','Danger','DoCoMo',
'Elaine/3.0','EudoraWeb','Googlebot-Mobile','hiptop','IEMobile','iPhone','iPod','KYOCERA/WX310K','LGE VX','LG/U990',
'LG-TU915 Obigo','MIDP-2.','MMEF20','MOT-V','NetFront','Newt','Nintendo Wii','Nitro','Nokia','Nokia5800','Opera Mini',
'Palm','PlayStation Portable','portalmmm','Proxinet','ProxiNet','SHARP-TQ-GX10','SHG-i900','Small','SonyEricsson',
'Symbian OS','SymbianOS','TS21i-10','UP.Browser','UP.Link','webOS','Windows CE','WinWAP','YahooSeeker/M1A1-R2D2');
$browser = '';
if(isset($_SERVER['HTTP_USER_AGENT'])){
foreach($mobile as $m){
if(!empty($m) && strpos($_SERVER['HTTP_USER_AGENT'], trim($m)) !== false){
$browser = $m;
break;
}
}
}
}
return $browser == '' ? false : true;
}
function input_val($str){
$str = htmlspecialchars($str);
$str = str_replace(array("'",'"'),array(''','"'),$str);
return $str;
}
}
if(!function_exists('_cleanup_header_comment')){
function _cleanup_header_comment($str){
return trim(preg_replace("/\s*(?:\*\/|\?>).*/", '', $str));
}
}
$popup_domination = new PopUp_Domination();
?>