| @@ -17,10 +17,40 @@ | ||
| 17 | 17 | |
| 18 | 18 | add_action('admin_enqueue_scripts', array($this, 'enqueue_dashboard_script')); |
| 19 | 19 | |
| 20 | 20 | add_action('admin_init', array($this, 'redirect_to_blockspare_page')); |
| 21 | + | |
| 22 | + //add_action( 'init', array($this,'blockspare_load_api_files')); | |
| 23 | + | |
| 24 | + add_filter( 'plugin_row_meta', [ $this, 'plugin_row_meta' ], 10, 2 ); | |
| 25 | + | |
| 26 | + add_filter( 'plugin_action_links_' . BLOCKSPARE_PLUGIN_BASE, [ $this, 'plugin_action_links' ] ); | |
| 21 | 27 | } |
| 22 | 28 | |
| 29 | + public function plugin_action_links( $links ) { | |
| 30 | + $settings_link = sprintf( '<a href="%1$s">%2$s</a>', admin_url( 'admin.php?page=blockspare' ), esc_html__( 'Design Library', 'blockspare' ) ); | |
| 31 | + | |
| 32 | + array_unshift( $links, $settings_link ); | |
| 33 | + | |
| 34 | + $links['bspro'] = sprintf( '<a href="%1$s" target="_blank" class="blockspare-pro-link">%2$s</a>', 'https://www.blockspare.com/pricing/', esc_html__( 'Get Blockspare Pro', 'blockspare' ) ); | |
| 35 | + | |
| 36 | + return $links; | |
| 37 | + } | |
| 38 | + public function plugin_row_meta( $plugin_meta, $plugin_file ) { | |
| 39 | + if ( BLOCKSPARE_PLUGIN_BASE === $plugin_file ) { | |
| 40 | + $row_meta = [ | |
| 41 | + 'starter' => '<a href="https://www.blockspare.com/starter-templates/" aria-label="' . esc_attr( esc_html__( 'View Blockspare Starter Templates', 'blockspare' ) ) . '" target="_blank">' . esc_html__( 'Demos', 'blockspare' ) . '</a>', | |
| 42 | + 'docs' => '<a href="https://www.blockspare.com/docs/" aria-label="' . esc_attr( esc_html__( 'View Blockspare Documentation', 'blockspare' ) ) . '" target="_blank">' . esc_html__( 'Docs', 'blockspare' ) . '</a>', | |
| 43 | + 'video' => '<a href="https://afthemes.com/all-themes-plan/" aria-label="' . esc_attr( esc_html__( 'Access All Themes and Plugins', 'blockspare' ) ) . '" target="_blank">' . esc_html__( 'All Themes & Plugins', 'blockspare' ) . '</a>', | |
| 44 | + 'support' => '<a href="https://afthemes.com/supports/" aria-label="' . esc_attr( esc_html__( 'Need help for Blockspare?', 'blockspare' ) ) . '" target="_blank">' . esc_html__( 'Need Help?', 'blockspare' ) . '</a>', | |
| 45 | + ]; | |
| 46 | + | |
| 47 | + $plugin_meta = array_merge( $plugin_meta, $row_meta ); | |
| 48 | + } | |
| 49 | + | |
| 50 | + return $plugin_meta; | |
| 51 | + } | |
| 52 | + | |
| 23 | 53 | public function add_dashboard_page() |
| 24 | 54 | { |
| 25 | 55 | |
| 26 | 56 | // @see images/blockspare-icon.svg |
| @@ -49,218 +79,60 @@ | ||
| 49 | 79 | array($this, 'blockspare_admin_dashboard'), // Action. |
| 50 | 80 | 'data:image/svg+xml;base64,' . base64_encode($svg) // Blockspare icon. |
| 51 | 81 | ); |
| 52 | 82 | |
| 83 | + | |
| 53 | 84 | // Our getting started page. |
| 54 | 85 | add_submenu_page( |
| 55 | 86 | 'blockspare', // Parent slug. |
| 56 | - __( 'Getting Started', 'blockspare' ), // Page title. | |
| 57 | - __( 'Getting Started', 'blockspare' ), // Menu title. | |
| 87 | + __('Design Library', 'blockspare'), // Page title. | |
| 88 | + __('Design Library', 'blockspare'), // Menu title. | |
| 58 | 89 | 'manage_options', // Capability. |
| 59 | 90 | 'blockspare', // Menu slug. |
| 60 | - array( $this, 'blockspare_admin_dashboard' ), // Callback function. | |
| 91 | + array($this, 'blockspare_admin_dashboard'), // Callback function. | |
| 61 | 92 | 1 // Position |
| 62 | 93 | ); |
| 94 | + | |
| 95 | + add_submenu_page( | |
| 96 | + 'blockspare', // Parent slug. | |
| 97 | + __('My Templates', 'blockspare'), // Page title. | |
| 98 | + __('My Templates', 'blockspare'), // Menu title. | |
| 99 | + 'manage_options', // Capability. | |
| 100 | + 'edit.php?post_type=bs_templates', // Menu slug. | |
| 101 | + | |
| 102 | + ); | |
| 63 | 103 | } |
| 64 | 104 | |
| 105 | + | |
| 65 | 106 | public function enqueue_dashboard_script($hook) |
| 66 | 107 | { |
| 108 | + wp_enqueue_style('blockspare-admin', BLOCKSPARE_PLUGIN_URL .'admin/assets/css/style.css','',''); | |
| 109 | + wp_enqueue_script( 'blockspare_dashboard_js', BLOCKSPARE_PLUGIN_URL. 'dist/block_admin_dashboard.js', array('react', 'react-dom', 'wp-components', 'wp-element', 'wp-api-fetch', 'wp-polyfill'), '1.0' ); | |
| 110 | + wp_enqueue_style('blockspare-admin-css',BLOCKSPARE_PLUGIN_URL.'dist/style-block_admin_dashboard.css'); | |
| 111 | + $blockspare_dashboard_logo = BLOCKSPARE_PLUGIN_URL . 'admin/assets/images/blockspare-logo.png'; | |
| 112 | + wp_localize_script( | |
| 113 | + 'blockspare_dashboard_js', | |
| 114 | + 'blockspare_dashboard', | |
| 115 | + array( | |
| 116 | + | |
| 117 | + 'logo'=>$blockspare_dashboard_logo, | |
| 118 | + "imagePath"=> "https://templatespare.com/wp-content/uploads/blockspare-demo-data/blocks/", | |
| 119 | + "static_img"=>BLOCKSPARE_PLUGIN_URL, | |
| 120 | + 'newPageUrl'=>admin_url('post-new.php?post_type=page&blockspare_create_block'), | |
| 121 | + 'adminPath'=>admin_url('post-new.php?post_type=page&blockspare_show_intro=true'), | |
| 122 | + 'pluginVesion'=>BLOCKSPARE_VERSION | |
| 123 | + | |
| 124 | + | |
| 125 | + ) | |
| 126 | + ); | |
| 67 | 127 | } |
| 68 | 128 | |
| 69 | 129 | public function blockspare_admin_dashboard() |
| 70 | 130 | { |
| 71 | 131 | ?> |
| 72 | -<div class="wrap blockspare-wrap"> | |
| 73 | - <header class="blockspare-header"> | |
| 74 | - <img src="<?php echo esc_url(plugins_url('assets/blockspare-logo.png', __FILE__)) ?>" | |
| 75 | - alt="<?php esc_attr_e('Blockspare', 'blockspare') ?>" /> | |
| 76 | - | |
| 77 | - <h1><?php _e('Blockspare', 'blockspare') ?></h1> | |
| 78 | - <h2><?php _e('Beautiful Page Building Blocks for WordPress', 'blockspare') ?></h2> | |
| 79 | - | |
| 80 | - <div class="blockspare-separator"> | |
| 81 | - <svg class="blockspare-separator-double-wave" preserveAspectRatio="none" aria-hidden="true" | |
| 82 | - xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1946 175"> | |
| 83 | - <path class="st0" | |
| 84 | - d="M-.5 27.7v146.8h1946V10.7s-170.6 20.4-265 57.2c0 0-374.1 116.7-794.2 24.7 0 0-414.1-100.9-673.1-92-.1 0-102.9 5.2-213.7 27.1z"> | |
| 85 | - </path> | |
| 86 | - <path class="st1" | |
| 87 | - d="M1945.5 69.9s-425.5-100-888 20.5c0 0-342.6 63.3-611.4 43.8 0 0-224.9-40.3-446.6-84.4V174h1946V69.9z"> | |
| 88 | - </path> | |
| 89 | - <path d="M-.5 88s425.5-100 888 20.5c0 0 342.6 63.3 611.4 43.8 0 0 224.9-20.2 446.6-64.3v87H-.5V88z"> | |
| 90 | - </path> | |
| 91 | - </svg> | |
| 92 | - </div> | |
| 93 | - </header> | |
| 94 | - <section class="blockspare-main-container"> | |
| 95 | - <article class="blockspare-intro blockspare-section"> | |
| 96 | - | |
| 97 | - <div class="blockspare-intro-col blockspare-intro-desc"> | |
| 98 | - <div class="blockspare-common-header-wrapper"> | |
| 99 | - <span class="blockspare-subtitle"><?php _e('Amazing Blocks', 'blockspare') ?></span> | |
| 100 | - <h2><?php _e('Envision Amazing Layouts with Blockspare', 'blockspare') ?></h2> | |
| 101 | - </div> | |
| 102 | - | |
| 103 | - <p><?php _e('Now you have Blockspare for your WordPress editor', 'blockspare') ?></p> | |
| 104 | - <ol> | |
| 105 | - <li> | |
| 106 | - <?php _e('Create a new page', 'blockspare') ?> | |
| 107 | - </li> | |
| 108 | - <li> | |
| 109 | - <?php _e('Click on the <span class="plus-btn-svg"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="#222"><path d="M10 1c-5 0-9 4-9 9s4 9 9 9 9-4 9-9-4-9-9-9zm0 16c-3.9 0-7-3.1-7-7s3.1-7 7-7 7 3.1 7 7-3.1 7-7 7zm1-11H9v3H6v2h3v3h2v-3h3V9h-3V6z"></path></svg></span> button to add a block', 'blockspare') ?> | |
| 110 | - </li> | |
| 111 | - <li> | |
| 112 | - <?php _e('Expand Blockspare panel!', 'blockspare') ?> | |
| 113 | - </li> | |
| 114 | - <li> | |
| 115 | - <?php _e('Select to add and customize a block!', 'blockspare') ?> | |
| 116 | - </li> | |
| 117 | - </ol> | |
| 118 | - | |
| 119 | - <a href="<?php echo esc_url(admin_url('post-new.php?post_type=page&blockspare_show_intro=true')) ?>" | |
| 120 | - class="blockspare-button" | |
| 121 | - title="<?php esc_attr_e('Try it on New Page', 'blockspare') ?>"><?php _e('Try it on New Page', 'blockspare') ?></a> | |
| 122 | - </p> | |
| 123 | - </div> | |
| 124 | - <div class="blockspare-intro-col blockspare-intro-img"> | |
| 125 | - <p><img src="<?php echo esc_url(plugins_url('assets/blockspare-adding-blocks.gif', __FILE__)) ?>" | |
| 126 | - alt="<?php esc_attr_e('Adding Blockspare', 'blockspare') ?>" class="blockspare-gif" /></p> | |
| 127 | - <p> | |
| 128 | - </div> | |
| 129 | - </article> | |
| 130 | - </section> | |
| 131 | - <section class="blockspare-body-container"> | |
| 132 | - <div class="blockspare-body"> | |
| 133 | - | |
| 134 | - <article class="blockspare-section blockspare-block-intro"> | |
| 135 | - | |
| 136 | - <div class="blockspare-common-header-wrapper"> | |
| 137 | - <span class="blockspare-subtitle"><?php _e('Enhanced set of Blocks', 'blockspare') ?></span> | |
| 138 | - <h3><?php _e('Start Creating Page using Enhanced set of Blocks in Minutes!', 'blockspare') ?></h3> | |
| 139 | - </div> | |
| 140 | - | |
| 141 | - <p><?php _e('We design an elegant series of WordPress blocks to help you create the website you always wanted with ease.', 'blockspare') ?> | |
| 142 | - </p> | |
| 143 | - <!-- We put all the block controls here. --> | |
| 144 | - <div class="blockspare-available-blocks-wrapper"> | |
| 145 | - <?php | |
| 146 | - $blockspare_blocks = blockspare_admin_blocks_list(); | |
| 147 | - if (isset($blockspare_blocks) && !empty($blockspare_blocks)): | |
| 148 | - foreach ($blockspare_blocks as $block): | |
| 149 | - $blocks_name = $block['name']; | |
| 150 | - $icon_url = plugins_url("assets/" .$block['slug'] . "-image.png", __FILE__); | |
| 151 | - $demo_url = 'https://blockspare.com/block/'.$block['slug']; | |
| 152 | - | |
| 153 | - ?> | |
| 154 | - <a class="blockspare-explore-btn" href="<?php echo esc_url($demo_url) ?>" target="_blank"> | |
| 155 | - <div class="blockspare-available-blocks"> | |
| 156 | - | |
| 157 | - <img src="<?php echo esc_attr($icon_url); ?>" alt="<?php echo esc_attr($blocks_name) ?>"> | |
| 158 | - <h4> | |
| 159 | - <?php echo esc_attr($blocks_name) ?> | |
| 160 | - </h4> | |
| 161 | - | |
| 162 | - | |
| 163 | - | |
| 164 | - </div> | |
| 165 | - </a> | |
| 166 | - <?php | |
| 167 | - endforeach; | |
| 168 | - endif; | |
| 169 | - | |
| 170 | - ?> | |
| 171 | - </div> | |
| 172 | - <div class="blocksparea-all-blocks-button"><a href="https://blockspare.com/" class="blockspare-button" | |
| 173 | - target="_blank" | |
| 174 | - title="<?php esc_attr_e('Explore All Blocks', 'blockspare') ?>"><?php _e('Explore All Blocks', 'blockspare') ?></a> | |
| 175 | - </div> | |
| 176 | - </article> | |
| 177 | - <aside class="blockspare-backward-compatibility-control-wrapper"></aside> | |
| 178 | - <?php if (BLOCKSPARE_SHOW_PRO_NOTICES): ?> | |
| 179 | - <aside class="blockspare-pro-control-wrapper"></aside> | |
| 180 | - <?php endif; ?> | |
| 181 | - </div> | |
| 182 | - <div class="blockspare-side"> | |
| 183 | - | |
| 184 | - <div class="blockspare-side-sticky"> | |
| 185 | - <?php | |
| 186 | - $blockspare_pro = true; | |
| 187 | - if ($blockspare_pro == false ) : ?> | |
| 188 | - <aside class="blockspare-section blockspare-premium-section"> | |
| 189 | - <h3><?php _e('Blockspare Pro', 'blockspare') ?></h3> | |
| 190 | - <p><?php _e('Want to use Blockspare to build an awesome site with more options and controls? Upgrade to Pro and get:', 'blockspare') ?> | |
| 191 | - </p> | |
| 192 | - <ul class="blockspare-premium-features"> | |
| 193 | - <li><?php _e('30+ Custom WordPress Blocks', 'blockspare') ?></li> | |
| 194 | - <li><?php _e('110+ Pre-designed Blocks Layouts', 'blockspare') ?></li> | |
| 195 | - <li><?php _e('Gradient Colors Effects', 'blockspare') ?></li> | |
| 196 | - <li><?php _e('Additional Block Options', 'blockspare') ?></li> | |
| 197 | - <li><?php _e('Rearrangeable Inner Blocks', 'blockspare') ?></li> | |
| 198 | - <li><?php _e('Image Masking Colors Effects and Filters ', 'blockspare') ?></li> | |
| 199 | - <li><?php _e('All Premium Effects', 'blockspare') ?></li> | |
| 200 | - <li><?php _e('Customer Email Support', 'blockspare') ?></li> | |
| 201 | - <li><?php _e('Regular Updates & Premium Support', 'blockspare') ?></li> | |
| 202 | - </ul> | |
| 203 | - </p> | |
| 204 | - <p> | |
| 205 | - <a href="https://blockspare.com/" class="blockspare-button" | |
| 206 | - title="<?php esc_attr_e('Get Blockspare Pro', 'blockspare') ?>"><?php esc_attr_e('Get Blockspare Pro', 'blockspare') ?></a> | |
| 207 | - </p> | |
| 208 | - | |
| 209 | - </aside> | |
| 210 | - <?php endif; ?> | |
| 211 | - | |
| 212 | - <aside class="blockspare-section"> | |
| 213 | - <h3><?php _e('Knowledge Base', 'blockspare') ?></h3> | |
| 214 | - <ul class="blockspare-list blockspare-knowledge-base"> | |
| 215 | - <li> | |
| 216 | - <h4 class="blockspare-sub-headings"> | |
| 217 | - <a href="https://blockspare.com/docs/"><?php esc_html_e('Documentations', 'blockspare') ?> | |
| 218 | - →</a> | |
| 219 | - </h4> | |
| 220 | - <p><?php esc_html_e('Do you have any difficulties regarding plugin setup and uses? Please visit Documentations page.', 'blockspare') ?> | |
| 221 | - </p> | |
| 222 | - </li> | |
| 223 | - <li> | |
| 224 | - <h4 class="blockspare-sub-headings"> | |
| 225 | - <a href="https://blockspare.com/block/"><?php esc_html_e('Demos', 'blockspare') ?> →</a> | |
| 226 | - </h4> | |
| 227 | - <p><?php esc_html_e('We have also designed and displayed multiple type of layouts with Blockspare. For more details please visit our site.', 'blockspare') ?> | |
| 228 | - </p> | |
| 229 | - </li> | |
| 230 | - <li> | |
| 231 | - <h4 class="blockspare-sub-headings"> | |
| 232 | - <a href="https://blockspare.com/support/"><?php esc_html_e('Support', 'blockspare') ?> | |
| 233 | - →</a> | |
| 234 | - </h4> | |
| 235 | - <p><?php esc_html_e('You directly come upon to our support guys with your valuable queries.', 'blockspare') ?> | |
| 236 | - </p> | |
| 237 | - </li> | |
| 238 | - <li> | |
| 239 | - <h4 class="blockspare-sub-headings"> | |
| 240 | - <a href="https://wordpress.org/plugins/blockspare/"><?php esc_html_e('WordPress Support Forum', 'blockspare') ?> | |
| 241 | - →</a> | |
| 242 | - </h4> | |
| 243 | - <p><?php esc_html_e('You can also go to our .org forum for any kind of support enquiries.', 'blockspare') ?> | |
| 244 | - </p> | |
| 245 | - </li> | |
| 246 | - <li> | |
| 247 | - <h4 class="blockspare-sub-headings"> | |
| 248 | - <a href="https://blockspare.com/blog/"><?php esc_html_e('Latest Blog', 'blockspare') ?> | |
| 249 | - →</a> | |
| 250 | - </h4> | |
| 251 | - <p><?php esc_html_e('Get latest articles about WordPress.', 'blockspare') ?></p> | |
| 252 | - </li> | |
| 253 | - </ul> | |
| 254 | - | |
| 255 | - </p> | |
| 256 | - </aside> | |
| 257 | - </div> | |
| 258 | - | |
| 259 | - </div> | |
| 260 | - </section> | |
| 261 | -</div> | |
| 262 | -<?php | |
| 132 | + <div id="bs-dashboard"></div> | |
| 133 | + | |
| 134 | + <?php | |
| 263 | 135 | } |
| 264 | 136 | |
| 265 | 137 | /** |
| 266 | 138 | * Adds a marker to remember to redirect after activation. |
| @@ -281,8 +153,11 @@ | ||
| 281 | 153 | wp_redirect(esc_url(admin_url('admin.php?page=blockspare'))); |
| 282 | 154 | die(); |
| 283 | 155 | } |
| 284 | 156 | } |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 285 | 160 | } |
| 286 | 161 | |
| 287 | 162 | new Blockspare_Admin_Dashboard(); |
| 288 | 163 | } |