ok
Direktori : /var/softaculous/sitepad/editor/site-admin/ |
Current File : //var/softaculous/sitepad/editor/site-admin/themes_setup.php |
<?php /** * Themes administration panel. * * @package WordPress * @subpackage Administration */ /** WordPress Administration Bootstrap */ require_once(dirname(__FILE__) . '/admin.php'); $selected_theme = get_option('sp_setup_selected_theme'); if (!current_user_can('switch_themes') && !current_user_can('edit_theme_options')) { wp_die('<h1>' . __('Cheatin’ uh?') . '</h1>' . '<p>' . __('You are not allowed to edit theme options on this site.') . '</p>', 403); } global $sitepad; $title = __('Manage Themes'); $parent_file = 'setup.php'; if (current_user_can('switch_themes')) { $themes = wp_prepare_themes_for_js(); } else { $themes = wp_prepare_themes_for_js(array(wp_get_theme())); } // r_print($themes); require_once(ABSPATH . 'site-admin/admin-header.php'); //r_print($themes); $category = optGET('category'); echo ' <div class="wrap"> <div class="bg col-md-12"> <div class="theme-browser"> <div class="row"> <div class="col-lg-2 col-md-2 submenu-item" style="border-left:1px #222 solid;"> <p style="color:#f2ffff;margin-top:8px;margin-bottom:8px;font-size:16px;">Categories</p> <ul class="navbar-nav mr-auto" id="navigation-list"> <li id="category_list_all" class="nav-item"><a class="all nav-link category-button' . (empty($category) ? ' active' : '') . '" style="font-size:14px;color:#aaaaaa;" href="' . admin_url('setup.php') . '" name="all">' . __('All') . '</a></li>'; foreach($GLOBALS['sp_category'] as $slug => $cat){ $cat_lang_slug = 'ThemeCategory_' . $slug; $cat_name = __($cat['en']); echo '<li id="category_list_' . $slug . '" class="nav-item mb-2"><a class="' . $slug . ' nav-link category-button p-0' . (!empty($category) && $category == $slug ? ' active' : '') . '" href="' . admin_url('setup.php?category=' . $slug) . '" style="color:#aaaaaa;font-size:14px;" name="' . $slug . '">' . $cat_name . '</a></li>'; } echo '</ul> </div> <div class="themes-data col-lg-10 col-md-10">'; ?> <center> <h1 class="mb-2"> <span class="dashicons-before sme-dash-header dashicons-admin-appearance"></span> <?php esc_html_e('Select a Theme'); ?> <span class="badge badge-secondary" style="font-size:15px;font-weight:300;top:-15px;"> <?php echo count($themes); ?> </span> </h1> </center> <form id="theme-filter" method="post"> <div class="row mb-2"> <div class="col-sm-12 col-md-4" style="position:relative;"> <input type="search" name="search" class="search-input form-control" value="<?php echo optREQ('q');?>" placeholder="Search Themes" autocomplete="off"/> <div id="suggestion_list" class="suggestion_list" style="position:absolute !important; width:calc(100% - 30px);"></div> </div> <div class="col-sm-12 col-md-8 mt-2"> <div class="pavigation-menu"> <div class="pagination-ui float-right"> <?php // Filter the themes as per category selected $pagedurl = ''; if (!empty($category)) { $pagedurl .= 'category=' . $category . '&'; foreach ($themes as $id => $theme) { if ($category != strtolower($theme['category'])) { unset($themes[$id]); } } } // Filter the themes by search query $query = optGET('q'); $query = rawurldecode($query); $searched = array(); if (!empty($query)) { $pagedurl .= 'q=' . $query . '&'; foreach ($themes as $id => $theme) { // Search by theme name if (substr(strtolower($theme['name']), 0, strlen($query)) === $query) { $searched[$id] = $theme; } // Search by Slug if (substr($theme['id'], 0, strlen($query)) === $query) { $searched[$id] = $theme; } // Search by tags $tags = explode(',', $theme['tags']); foreach ($tags as $x => $v) { if (substr($v, 0, strlen($query)) === $query) { $searched[$id] = $theme; } } } } // Pagination $paged = (int) optGET('paged'); $perpage = 21; // Don't Show Pagination if search value less than perpage if (!empty($searched)) { $total_pages = ceil(count($searched) / $perpage); } else { $total_pages = ceil(count($themes) / $perpage); } $current_page = 1; // Is it a valid page if (!empty($paged)) { $current_page = $paged; } if ($paged > $total_pages) { $current_page = $paged = 1; } if ($total_pages > 1) { echo '<ul class="pagination">'; $pagedurl .= 'paged='; $previous = $current_page - 1; $next = $current_page + 1; if ($current_page > 1) { echo '<li class="page-item"><a href="' . admin_url('setup.php') . '" data-page="1" title="First" class="page-link" >«</a></li><li class="page-item"><a href="' . admin_url('setup.php' . ($previous > 1 ? '?' . $pagedurl . $previous : '')) . '" data-page="' . $previous . '" title="Previous" class="page-link" ><</a></li>'; } $start = 1; if ($current_page > 1) { $start = $current_page - 1; } $end = $current_page + 1; if ($end >= $total_pages) { $end = $total_pages; } for ($start; $start <= $end; $start++) { echo '<li class="page-item ' . ($start == $current_page ? ' active' : '') . '" ><a href="' . admin_url('setup.php' . ($start > 1 ? '?' . $pagedurl . $start : '')) . '" data-page="' . $start . '" title="' . $start . '" class="page-link" >' . $start . '</a></li>'; } if ($current_page < $total_pages) { echo '<li class="page-item"><a href="' . admin_url('setup.php?' . $pagedurl . $next) . '" data-page="' . $next . '" title="Next" class="page-link" >></a></li><li><a href="' . admin_url('setup.php?' . $pagedurl . $total_pages) . '" data-page="' . $total_pages . '" title="Last" class="page-link" >»</a></li>'; } echo '</ul>'; } // Pagination ends ?> </div> </div> </div> </div> </form> <?php echo error_handle($error, '100%', false, false, 'offset-sm-3 col-sm-6'); ?> <?php if (isset($_GET['activated'])): delete_option('todo_site_addr'); if (isset($_GET['previewed'])) { ?> <div id="message2" class="updated notice is-dismissible"><p><?php printf(__('Settings saved and theme activated. <a href="%s">Visit site</a>'), home_url('/')); ?></p></div> <?php } else { $setup_done = get_option('sm_setup_done'); // Is the setup and theme activation within 2 minutes ? Then we assume its just activated for the first time $just_activated = (time() - $setup_done) < 120 ? true : false; if (!empty($just_activated)) { $homepage = get_page_by_path('home'); echo ' <div class="notice notice-success is-dismissible"> <p>' . __('Your new theme has been activated. You will now be redirected to the') . ' ' . BRAND_SM_EDITOR . '</p> </div> <script> var gotourl = "' . admin_url('edit-page?post=' . $homepage->ID . '&action=edit') . '"; //alert(gotourl); window.location = gotourl; </script>'; } else { ?> <div id="message2" class="updated notice is-dismissible"><p><?php printf(__('New theme activated. <a href="%s">Visit site</a>'), home_url('/')); ?></p></div><?php } } elseif (isset($_GET['deleted'])): ?> <div id="message3" class="updated notice is-dismissible"><p><?php _e('Theme deleted.'); ?></p></div> <?php elseif (isset($_GET['delete-active-child'])): ?> <div id="message4" class="error"><p><?php _e('You cannot delete a theme while it has an active child theme.'); ?></p></div> <?php endif; echo ' <div class="themes">'; /* * This PHP is synchronized with the tmpl-theme template below! */ if (empty($paged)) $paged = 1; $skip = ($paged - 1) * $perpage; $count = 0; $skipped = 0; // Display Search Query (condition added to search from all themes and not only search results) if(!empty($searched)){ $show_themes = $searched; } else { $show_themes = $themes; } // r_print($themes); $selected_themes = $unselected_themes = array(); // Show the selected theme 1st and then others foreach($show_themes as $key => $theme){ if($theme['id'] == $selected_theme){ $selected_themes[] = $theme; }else{ $unselected_themes[] = $theme; } } $show_themes = array_merge($selected_themes, $unselected_themes); // r_print($show_themes); foreach($show_themes as $theme): $aria_action = esc_attr($theme['id'] . '-action'); $aria_name = esc_attr($theme['id'] . '-name'); // We have already displayed themes allowed per page if ($count >= $perpage) { break; } // Are we to skip themes until we reach the themes for desired page if (!empty($skip) && $skipped < $skip) { $skipped++; continue; } $count++; $needs_premium = 0; if($theme['type'] > $sitepad['features']['themes']){ $needs_premium = 1; } ?> <div class="theme<?php echo ($theme['id'] == $selected_theme ? ' active' : '');?>" tabindex="0" id="<?php echo $theme['id'];?>" style="cursor:zoom-in"> <?php if(!empty($needs_premium)){ echo '<div class="premium_themes">'.$sitepad['theme_levels'][$theme['type']].'</div>'; } echo '<div id="'.$theme['id'].'" class="themes_details">'; if(!empty($theme['screenshot'][0])){ echo '<div class="theme-screenshot"><img src="'.$theme['screenshot'][0].'" alt="" /></div>'; }else{ echo '<div class="theme-screenshot blank"></div>'; } if ($theme['id'] == $selected_theme) { echo '<h2 class="theme-name" style="height:auto" id="'.$aria_name.'">'; /* translators: %s: theme name */ printf(__('Selected: %s'), $theme['name']); echo '</h2>'; } else { echo '<h2 class="theme-name" style="height:auto" id="'.$aria_name.'">'.$theme['name'].' <div style="float:right;margin-top:-5px;margin-bottom:-5px;">'; if ($theme['id'] != $selected_theme) { if (!empty($needs_premium)) { echo '<a class="button button-secondary activate" href="'.admin_url('plans.php').'">'.__('View Plans').'</a>'; } else { $active_url = str_replace('themes.php', 'setup.php', $theme['actions']['activate']); ?> <form method="post"> <input type="submit" id="theme_name" class="button button-secondary" name="select_theme" value="<?php _e( 'Select' ) ?>" /> <input type="hidden" name="theme_name" value="<?php echo $theme['id']; ?>"> </form> <?php } } echo ' </div> </h2>'; } ?> </div> <div class="theme-actions display_button_yes" id="theme_action" style="width:100%;height:82%;text-align:center;top:41%"> <span class="more-theme-details text-center" style="top: 50%;position: absolute;width: 50%;" ><?php _e('Theme Details'); ?></span> </div> </div> <?php endforeach; ?> <br class="clear" /> </div> </div> </div> </div> <div class="theme-overlay"></div> <div class="modal fade" id="details_modal" role="dialog"> <div class="modal-dialog modal-lg" style="max-height:90vh;max-width:90vh;"> <!-- Modal content--> <div class="modal-content"> <div class="modal-body pt-0 pb-0" style="padding:3vh;"> <button type="button" class="close" data-dismiss="modal" > <span class="dashicons dashicons-dismiss" style="position:absolute;top:-5%;right:-3%;font-size:25px;color:#FFFFFF"></span> </button> <div class="p-0 detail_prev" style="border:2px solid #ffffff;border-radius:50%;background-color:#000000;position:absolute;top:50%;left:5vh;width:35px;height:35px;" id="" > <span class="dashicons dashicons-arrow-left-alt2" style="font-size:27px;color:#ffffff;cursor:pointer;"></span> </div> <div class="p-0 detail_next" style="border:2px solid #ffffff;border-radius:50%;background-color:#000000;position:absolute;top:50%;right:5vh;width:35px;height:35px;" id="" > <span class="dashicons dashicons-arrow-right-alt2" style="font-size:27px;color:#ffffff;padding-left: 2px;cursor:pointer;"></span> </div> <div class="row m-0 pt-3"> <img src="" id="detail_img" style="max-height:84vh;min-height:84vh;min-width:84vh;max-height:84vh;"> </div> <div class="row" style="border-top:1px solid #bcbcbc;padding:10px;"> <div class="col-lg-8 col-md-8"> <p class="detail_name theme-name mt-1" style="display:inline;font-size:20px;"></p> <p class="detail_category" style="display:inline;font-size:16px;"></p> </div> <div class="col-lg-2 col-md-2"> <?php if(empty($SESS['no_demos'])){ ?> <a class="button button-secondary activate mt-1 detail_demo" style="background-color:#337AB7;color:#ffffff"href="" target="_blank"><?php _e('Demo');?></a> <?php } ?> </div> <div class="col-lg-2 col-md-2"> <form method="post"> <input type="submit" id="theme_name" class="button button-secondary mt-1" name="select_theme" value="<?php _e( 'Select' ) ?>" /> <input type="hidden" name="theme_name" class="theme_name" value=""> </form> </div> </div> </div> </div> </div> </div> <script> var data_details = <?php echo json_encode($themes, JSON_PRETTY_PRINT); ?>; var sp_category = <?php echo json_encode($GLOBALS['sp_category'], JSON_PRETTY_PRINT); ?>; var setup_url = <?php echo '"'.admin_url('setup.php').'"'; ?>; $(".detail_prev").on("click", function(){ var curid =$(this).attr('id'); sp_theme_details(curid); }); $(".detail_next").on("click", function(){ var curid =$(this).attr('id'); sp_theme_details(curid); }); $(".theme").on("click", function(){ var curid =$(this).attr('id'); sp_theme_details(curid); $("#details_modal").modal("show"); }); $(".theme input").on("click", function(){ //stop the event bubbling up to the parent event.stopPropagation(); }); function sp_theme_details(el) { for (x in data_details) { var data = new Object(); var cur = parseInt(x); if (el == data_details[x].id) { data.screenshot = data_details[x].screenshot[0]; data.category = sp_category[data_details[x].category].en; data.active = data_details[x].active; data.actions = data_details[x].actions; data.actions.activate = data_details[x].actions.activate; data.name = data_details[x].name; data.description = data_details[x].description; data.version = data_details[x].version; data.tags = data_details[x].tags; data.parent = data_details[x].parent; data.actions['delete'] = data_details[x].actions.delete; data.authorAndUri = data_details[x].authorAndUri; data.demo = data.name.replace(' ', '_'); if (data_details[cur - 1]) { $(".detail_prev").attr("id",data_details[cur - 1].id); } if (data_details[cur + 1]) { $(".detail_next").attr("id",data_details[cur + 1].id); } var select_url = data_details[x].actions.activate.replace("themes.php", "setup.php"); $("#detail_img").attr("src",data.screenshot); $(".detail_name").text(data_details[x].name); $(".theme_name").val(data_details[x].id); $(".detail_category").text('/ '+ sp_category[data_details[x].category].en); $(".detail_select").attr("href", select_url); var demo_url = '<?php echo BRAND_SM_DEMOS; ?>'; $(".detail_demo").attr("href", demo_url + data.name.replace(' ', '_')); } } } function close_smdetails() { jQuery(".theme-overlay").css('display', 'none'); } function submit_search() { var a = jQuery(".search-input").val(); if (a) { a = a.split(" "); show_searched_theme(a); } return false; } jQuery('.search-input').on('keyup', function (e) { var timer = null; clearTimeout(timer); var a = this.value; // On enter we will refresh the page and show only the themes matching search criteria if (e.keyCode == 13) { window.location.href = setup_url+"?q=" + a; return true; } // check value only after user stops typing timer = setTimeout(function () { if (e.keyCode == 8) { if (!a) { document.getElementById("suggestion_list").style.display = "none"; } } if (a) { jQuery('#sm_assistant01').fadeOut('slow').css('margin-top', '20px'); } if (a) { a = a.split(" ");//split if has space show_searched_theme(a); //search for theme } }, 1000); }); function show_searched_theme(val) { var data = new Array(); var arr = new Array(); var vale = val.join(" "); // join split file var vale_slug = val.join(""); //join for slug vale_slug = vale_slug.toLowerCase(); vale = vale.toLowerCase(); //val = jQuery.trim(val); for (x in data_details) { var slug = data_details[x].id; var tags = data_details[x].tags; //search by theme name if ((data_details[x].name.substring(0, vale.length) === vale)) { data.push(data_details[x].id); arr.push(data_details[x].name); } //search by slug if ((data_details[x].id.substring(0, vale_slug.length) === vale_slug)) { data.push(data_details[x].id); arr.push(data_details[x].name); } tags_split = tags.split(","); //search by tags for (z in tags_split) { tags_split[z] = tags_split[z].trim(); tags_split[z] = tags_split[z].toLowerCase(); if (tags_split[z].lastIndexOf(vale, 0) === 0) { if (data.indexOf(data_details[x].id) == -1 && arr.indexOf(data_details[x].name) == -1) { data.push(data_details[x].id); arr.push(data_details[x].name); } } } } var txt = ""; // from here add value for search suggestion txt = '<ul id="list-suggestion" style="padding: 0px;margin-bottom:0 !important">'; if (!jQuery.isEmptyObject(data)) { for (i in data) { txt += '<a href="'+setup_url+'?q='+data[i]+'" style="text-decoration: none;cursor:pointer;"><li>' + arr[i] + '</li></a>'; } } else { txt += '<a class="inliner" href="javascript:void(0);"><li value="no-suggestion">No themes found with this search criteria</li></a>'; } txt += '</ul>'; document.getElementById("suggestion_list").innerHTML = txt; document.getElementById("suggestion_list").style.display = "block"; } jQuery(document).ready(function () { var show_theme = "<?php echo optGET('theme'); ?>"; if (show_theme) { smtheme_details(show_theme); } }); </script> <p class="no-themes"><?php _e('No themes found. Try a different search.'); ?></p> </div><!-- .wrap --> <?php require(ABSPATH . 'site-admin/admin-footer.php');