Setup_Page
Source
File: includes/libs/admin/page/setup-page.class.php
class Setup_Page extends Page_Abstract implements Page_Interface {
/**
* @var Vimeo_Oauth
*/
private $vimeo_oauth;
/**
* @inheritDoc
*/
public function get_html() {
// The page header.
$this->the_header();
$options = Plugin::instance()->get_options();
$player_opt = Plugin::instance()->get_embed_options();
?>
<div class="wrap vimeotheque-setup">
<div class="navigator">
<div class="step">
<a href="#step-1" class="active" data-step="1">
<?php _e( 'Video posts display method', 'codeflavors-vimeo-video-post-lite' );?>
</a>
</div>
<div class="step-divider"></div>
<div class="step">
<a href="#step-2" data-step="2">
<?php _e( 'Post content', 'codeflavors-vimeo-video-post-lite' );?>
</a>
</div>
<div class="step-divider"></div>
<div class="step">
<a href="#step-3" data-step="3">
<?php _e( 'Player embed options', 'codeflavors-vimeo-video-post-lite' );?>
</a>
</div>
<div class="step-divider"></div>
<div class="step">
<a href="#step-4" data-step="4">
<?php _e( 'Vimeo API setup', 'codeflavors-vimeo-video-post-lite' );?>
</a>
</div>
</div>
<div class="container">
<form method="post" action="" id="setup-form">
<div class="step step-1" id="step-1">
<div class="title">
<h2><?php _e( 'Welcome to Vimeotheque', 'codeflavors-vimeo-video-post-lite' );?></h2>
<p>
<?php _e( 'Choose how to display your video posts.', 'codeflavors-vimeo-video-post-lite' );?>
</p>
</div>
<div class="content">
<input type="radio" name="enable_templates" value="1" id="enable_templates_yes" checked="checked" />
<label for="enable_templates_yes">
<?php _e( 'Use the WordPress templates from Vimeotheque to embed the videos (recommended).', 'codeflavors-vimeo-video-post-lite' );?>
</label>
<div class="note">
<p>
<?php _e( 'Customizable from your WordPress theme, the Vimeotheque video templates display video posts using enhanced functionality that helps increase the user engagement time on your pages.', 'codeflavors-vimeo-video-post-lite' );?>
</p>
</div>
<input type="radio" name="enable_templates" value="0" id="enable_templates_no" />
<label for="enable_templates_no">
<?php _e( 'Embed videos into the post content or replace the post featured image with the video embed.', 'codeflavors-vimeo-video-post-lite' );?>
</label>
<div class="note">
<p>
<?php _e( 'The basic, default way Vimeotheque embeds videos is by either placing the video above or below the post content or by replacing the post featured image, if set.', 'codeflavors-vimeo-video-post-lite' );?>
</p>
</div>
</div>
</div><!-- .step-1 -->
<div class="step step-2 inactive" id="step-2">
<div class="title">
<h2><?php _e( 'Post options', 'codeflavors-vimeo-video-post-lite' );?></h2>
<p>
<?php _e( 'Vimeotheque imports videos by creating WP posts.', 'codeflavors-vimeo-video-post-lite' );?><br />
<?php _e( 'Choose the data that gets imported into each video post.', 'codeflavors-vimeo-video-post-lite' );?>
</p>
</div>
<div class="content">
<table class="form-table">
<tbody>
<tr valign="top">
<th scope="row"><label for="import_date"><?php _e('Import date', 'codeflavors-vimeo-video-post-lite')?>:</label></th>
<td>
<input type="checkbox" value="1" name="import_date" id="import_date"<?php Helper_Admin::check($options['import_date']);?> />
<span class="description"><?php _e("Posts imported from Vimeo videos will have the same publishing date as the one on Vimeo.", 'codeflavors-vimeo-video-post-lite');?></span>
</td>
</tr>
<tr valign="top">
<th scope="row"><label for="import_tags"><?php _e('Import tags', 'codeflavors-vimeo-video-post-lite')?>:</label></th>
<td>
<input type="checkbox" value="1" id="import_tags" name="import_tags"<?php Helper_Admin::check($options['import_tags']);?> />
<span class="description"><?php _e('Automatically import video tags from Vimeo as WordPress post tags.', 'codeflavors-vimeo-video-post-lite');?></span>
</td>
</tr>
<tr valign="top">
<th scope="row"><label for="max_tags"><?php _e('Number of tags', 'codeflavors-vimeo-video-post-lite')?>:</label></th>
<td>
<input type="text" value="<?php echo $options['max_tags'];?>" id="max_tags" name="max_tags" size="1" />
<span class="description"><?php _e('The maximum number of tags that will be imported.', 'codeflavors-vimeo-video-post-lite');?></span>
</td>
</tr>
<?php
/**
* Action that allows other settings to be displayed in page into the Content Options tab.
*/
do_action( 'vimeotheque\admin\setup\content_options_section' );
?>
</tbody>
</table>
</div>
</div><!-- .step-2 -->
<div class="step step3 inactive" id="step-3">
<div class="title">
<h2><?php _e( 'Player aspect', 'codeflavors-vimeo-video-post-lite' );?></h2>
<p>
<?php _e( 'Each video post created by Vimeotheque will embed the video into the page.', 'codeflavors-vimeo-video-post-lite' );?><br />
<?php _e( 'Set up the player aspect for the embeds.', 'codeflavors-vimeo-video-post-lite' );?>
</p>
</div>
<div class="content">
<table class="form-table">
<tbody>
<tr>
<th><label for="cvm_width"><?php _e('Player width', 'codeflavors-vimeo-video-post-lite');?>:</label></th>
<td>
<input type="text" name="width" id="cvm_width" value="<?php echo $player_opt['width'];?>" size="2" />px
<p class="description">
<?php _e('The player embed is responsive, the width value is the maximum value that the player may have.', 'codeflavors-vimeo-video-post-lite');?>
</p>
</td>
</tr>
<tr>
<th><label for="cvm_max_height"><?php _e( 'Maximum embed height', 'codeflavors-vimeo-video-post-lite' );?></label>:</th>
<td>
<input type="text" name="max_height" id="cvm_max_height" value="<?php echo $player_opt['max_height'];?>" size="2" />px
<p class="description">
<?php _e( 'The player height is automatically calculated based on the player width and the player aspect ratio retrieved from Vimeo. This option helps set a maximum height for the player that will not be exceeded when the height is calculated automatically.', 'codeflavors-vimeo-video-post-lite' );?>
</p>
</td>
</tr>
<tr id="video-position-row">
<th><label for="cvm_video_position"><?php _e('Display video','codeflavors-vimeo-video-post-lite');?>:</label></th>
<td>
<?php
$args = [
'options' => [
'above-content' => __( 'Above post content', 'codeflavors-vimeo-video-post-lite' ),
'below-content' => __( 'Below post content', 'codeflavors-vimeo-video-post-lite' ),
'replace-featured-image' => __( 'Replace featured image', 'codeflavors-vimeo-video-post-lite' )
],
'name' => 'video_position',
'id' => 'cvm_video_position',
'selected' => $player_opt['video_position']
];
Helper_Admin::select( $args );
?>
</td>
</tr>
<tr id="video-align-row">
<th><label for="cvm_video_align"><?php _e('Align video','codeflavors-vimeo-video-post-lite');?>:</label></th>
<td>
<?php
$args = [
'options' => [
'align-left' => __('Left', 'codeflavors-vimeo-video-post-lite'),
'align-center' => __('Center', 'codeflavors-vimeo-video-post-lite'),
'align-right' => __('Right', 'codeflavors-vimeo-video-post-lite')
],
'name' => 'video_align',
'id' => 'cvm_video_align',
'selected' => $player_opt['video_align']
];
Helper_Admin::select( $args );
?>
</td>
</tr>
<tr>
<th scope="row"><label for="lazy_load"><?php _e('Lazy load videos', 'codeflavors-vimeo-video-post-lite')?>:</label></th>
<td>
<input type="checkbox" value="1" id="lazy_load" name="lazy_load"<?php Helper_Admin::check( ( bool ) $player_opt['lazy_load'] );?> />
<span class="description">
<?php _e( 'When checked, Vimeotheque will display the video featured image with a play icon above it. When the featured image is clicked, the video will be embedded into the page.', 'codeflavors-vimeo-video-post-lite' );?>
</span>
</td>
</tr>
<tr id="play-icon-color-row" class="<?php echo !$player_opt['lazy_load'] ? 'hide' : '';?>">
<th scope="row"><label for="play_icon_color"><?php _e('Lazy loaded videos icon color', 'codeflavors-vimeo-video-post-lite')?>:</label></th>
<td>
<input type="text" name="play_icon_color" id="play_icon_color" value="<?php echo $player_opt['play_icon_color'];?>" data-colorPicker="true" />
<p class="description">
<?php _e( 'The play icon color that is displayed above the featured image when video is lazy loaded.', 'codeflavors-vimeo-video-post-lite' );?>
</p>
</td>
</tr>
<?php
/**
* Action that allows other settings to be displayed in page into the Embed Options tab.
*/
do_action( 'vimeotheque\admin\setup\embed_options_section' );
?>
<tr>
<th colspan="2">
<h4><i class="dashicons dashicons-video-alt3"></i> <?php _e('Embed settings', 'codeflavors-vimeo-video-post-lite');?></h4>
<p class="description"><?php _e('General Vimeo player settings. These settings will be applied to any new video by default and can be changed individually for every imported video.', 'codeflavors-vimeo-video-post-lite');?></p>
</th>
</tr>
<tr>
<th><label for="cvm_volume"><?php _e('Volume', 'codeflavors-vimeo-video-post-lite');?></label>:</th>
<td>
<input type="number" step="1" min="0" max="100" name="volume" id="cvm_volume" value="<?php echo $player_opt['volume'];?>" />
<label for="cvm_volume">
<span class="description">
<?php _e('A number between 0 (mute) and 100 (max)', 'codeflavors-vimeo-video-post-lite');?>
</span>
</label>
</td>
</tr>
<tr valign="top">
<th scope="row"><label for="title"><?php _e('Show video title', 'codeflavors-vimeo-video-post-lite')?>:</label></th>
<td>
<input type="checkbox" value="1" id="title" name="title"<?php Helper_Admin::check( (bool )$player_opt['title'] );?> />
<span class="description">
<?php _e('The video player will display the video title.', 'codeflavors-vimeo-video-post-lite');?>
</span>
</td>
</tr>
<tr valign="top">
<th scope="row"><label for="byline"><?php _e('Show video author', 'codeflavors-vimeo-video-post-lite')?>:</label></th>
<td>
<input type="checkbox" value="1" id="byline" name="byline"<?php Helper_Admin::check( (bool )$player_opt['byline'] );?> />
<span class="description">
<?php _e('The video player will display the video author name.', 'codeflavors-vimeo-video-post-lite');?>
</span>
</td>
</tr>
<tr valign="top">
<th scope="row"><label for="portrait"><?php _e('Show author portrait', 'codeflavors-vimeo-video-post-lite')?>:</label></th>
<td>
<input type="checkbox" value="1" id="portrait" name="portrait"<?php Helper_Admin::check( (bool )$player_opt['portrait'] );?> />
<span class="description">
<?php _e('The video player will display the video author profile image.', 'codeflavors-vimeo-video-post-lite');?>
</span>
</td>
</tr>
<tr valign="top">
<th scope="row"><label for="cvm_color"><?php _e('Player color', 'codeflavors-vimeo-video-post-lite')?>:</label></th>
<td>
<input type="text" name="color" id="cvm_color" value="<?php echo $player_opt['color'];?>" data-colorPicker="true" />
<p class="description">
<?php _e('The color of the video player play button and progress bar.', 'codeflavors-vimeo-video-post-lite');?>
</p>
</td>
</tr>
<tr valign="top">
<th scope="row"><label for="transparent"><?php _e('Transparent background', 'codeflavors-vimeo-video-post-lite')?>:</label></th>
<td>
<input type="checkbox" value="1" id="transparent" name="transparent"<?php Helper_Admin::check( ( bool )$player_opt['transparent'] );?> />
<span class="description">
<?php _e('The video player will have a transparent background.', 'codeflavors-vimeo-video-post-lite');?>
</span>
</td>
</tr>
<tr valign="top">
<th scope="row"><label for="dnt"><?php _e('Do not track users', 'codeflavors-vimeo-video-post-lite')?>:</label></th>
<td>
<input type="checkbox" value="1" id="dnt" name="dnt"<?php Helper_Admin::check( (bool )$player_opt['dnt'] );?> />
<span class="description"><?php _e( 'Block the player from tracking any session data, including all cookies and stats.', 'codeflavors-vimeo-video-post-lite' );?></span>
</td>
</tr>
</tbody>
</table>
</div>
</div><!-- .step-3 -->
<div class="step step-4 inactive" id="step-4">
<div class="title">
<h2><?php _e( 'API Setup', 'codeflavors-vimeo-video-post-lite' );?></h2>
<p>
<?php _e( 'The Vimeo API requires credentials in order to allow queries for videos.', 'codeflavors-vimeo-video-post-lite' );?><br />
<?php _e( 'Setup the Vimeo API credentials for access to videos.', 'codeflavors-vimeo-video-post-lite' );?>
</p>
</div>
<?php
if(empty( $options['vimeo_consumer_key'] ) || empty( $options['vimeo_secret_key'] )):
?>
<div class="oauth-instructions">
<a href="#" class="toggler" data-toggle="#oauth-instructions" data-show_text="<?php esc_attr_e('View instructions ');?>" data-hide_text="<?php esc_attr_e('Hide instructions ');?>"><?php _e( 'View instructions','codeflavors-vimeo-video-post-lite' );?></a>
<div id="oauth-instructions">
<p><?php _e( 'In order to be able to import videos using Vimeotheque, you must register a new Vimeo App (requires a Vimeo account).', 'codeflavors-vimeo-video-post-lite' );?></p>
<p>
<?php
printf(
'The Vimeo App must be set under App Callback URL with the value: %s',
sprintf(
'<strong class="callback-url" id="callback-url-value">%s</strong>',
Plugin::instance()->get_admin()->get_admin_menu()->get_page( 'cvm_settings' )->get_menu_page(false)
)
);
?>
</p>
<p class="actions">
<?php
printf(
'%s %s',
sprintf(
'<a href="%s" target="_blank">%s</a>',
'https://developer.vimeo.com/apps/new',
__( 'Create Vimeo App', 'codeflavors-vimeo-video-post-lite' )
),
sprintf(
'<a href="%s" target="_blank">%s</a>',
Helper_Admin::docs_link( 'getting-started/vimeo-oauth-new-interface/' ),
__( 'See tutorial', 'codeflavors-vimeo-video-post-lite' )
)
)
?>
</p>
</div>
</div>
<?php endif;?>
<div class="content">
<?php
if(empty( $options['vimeo_consumer_key'] ) || empty( $options['vimeo_secret_key'] )):
?>
<div id="vimeo-oauth-response"></div>
<table class="form-table">
<tbody>
<tr>
<th scope="row"><label for="vimeo_consumer_key"><?php _e('Enter Vimeo Client Identifier', 'codeflavors-vimeo-video-post-lite')?>:</label></th>
<td>
<input type="text" name="vimeo_consumer_key" id="vimeo_consumer_key" value="<?php echo $options['vimeo_consumer_key'];?>" size="60" />
<p class="description"><?php _e('Requires an active Vimeo Account.', 'codeflavors-vimeo-video-post-lite');?></p>
</td>
</tr>
<tr>
<th scope="row"><label for="vimeo_secret_key"><?php _e('Enter Vimeo Client Secrets', 'codeflavors-vimeo-video-post-lite')?>:</label></th>
<td>
<input type="text" name="vimeo_secret_key" id="vimeo_secret_key" value="<?php echo $options['vimeo_secret_key'];?>" size="60" />
<p class="description"><?php _e('Requires an active Vimeo Account.', 'codeflavors-vimeo-video-post-lite');?></p>
</td>
</tr>
</tbody>
</table>
<?php
// API OAuth credentials were found, show the message.
else:
?>
<table class="form-table">
<tbody>
<tr>
<th scope="row"><label><?php _e('Plugin access to Vimeo account', 'codeflavors-vimeo-video-post-lite');?>:</label></th>
<td>
<p>
<?php _e( 'Your Vimeo keys are successfully installed.', 'codeflavors-vimeo-video-post-lite' );?>
</p>
<p class="description">
<?php _e( 'You can now query public videos on Vimeo and import them as WordPress posts.', 'codeflavors-vimeo-video-post-lite' );?>
</p>
<hr />
<?php
/**
* Action that allows display of additional OAuth settings.
*/
do_action( 'vimeotheque\admin\setup\api_oauth_section' );
?>
</td>
</tr>
</tbody>
</table>
<?php
endif;
?>
</div>
</div><!-- .step-4 -->
<div class="step step-success step999 inactive" id="step-success">
<div class="title">
<h2><?php _e( 'Setup complete!', 'codeflavors-vimeo-video-post-lite' );?></h2>
<p>
<?php _e( 'You have completed the setup process.', 'codeflavors-vimeo-video-post-lite' );?>
</p>
</div>
<div class="content">
<p>
<?php _e( 'Congratulations, the setup process is complete. You can now start importing your Vimeo videos into WordPress.', 'codeflavors-vimeo-video-post-lite' );?>
</p>
<a
href="<?php $this->get_admin()->get_admin_menu()->get_page( 'cvm_import' )->get_menu_page();?>"
class="button button-primary large single-line center"
>
<?php _e( 'Go to video importer', 'codeflavors-vimeo-video-post-lite' );?>
</a>
</div>
</div>
<div class="controls">
<div class="form-controls">
<a href="#" class="back"><?php _e( 'Previous step', 'codeflavors-vimeo-video-post-lite' );?></a>
<input
type="button"
class="submit-button"
value="<?php esc_attr_e( 'Next step', 'codeflavors-vimeo-video-post-lite' );?>"
data-value="<?php esc_attr_e( 'Next step', 'codeflavors-vimeo-video-post-lite' );?>"
data-loading="<?php esc_attr_e( 'Saving ...', 'codeflavors-vimeo-video-post-lite' );?>"
data-save="<?php esc_attr_e( 'Save options', 'codeflavors-vimeo-video-post-lite' );?>"
/>
</div>
<a
href="<?php menu_page_url( 'cvm_settings' );?>"
id="skip-setup"
data-message="<?php esc_attr_e( 'Are you sure you want to skip setup? You will be able to configure the plugin from the Vimeotheque Settings page.', 'codeflavors-vimeo-video-post-lite' );?>">
<?php _e( 'Skip setup', 'codeflavors-vimeo-video-post-lite' );?>
</a>
</div>
</form>
</div>
</div>
<?php
// The page footer.
$this->the_footer();
}
/**
* @inheritDoc
*/
public function on_load() {
$_GET['noheader'] = 'true';
if( !defined('IFRAME_REQUEST') ){
define('IFRAME_REQUEST', true);
}
$options = Plugin::instance()->get_options();
// you must use this instead of menu_page_url() to avoid API error
$settings_page_url = sprintf(
'edit.php?post_type=%s&page=%s',
Plugin::instance()->get_admin()->get_post_type()->get_post_type(),
Plugin::instance()->get_admin()->get_admin_menu()->get_page( 'cvm_settings' )->get_menu_slug()
);
$this->vimeo_oauth = new Vimeo_Oauth(
$options['vimeo_consumer_key'],
$options['vimeo_secret_key'],
$options['oauth_token'],
admin_url( $settings_page_url )
);
wp_enqueue_style(
'vimeotheque-setup',
VIMEOTHEQUE_URL . 'assets/back-end/css/setup-page.css',
false,
VIMEOTHEQUE_VERSION
);
wp_enqueue_script(
'vimeotheque-setup',
VIMEOTHEQUE_URL . 'assets/back-end/js/setup.js',
[ 'jquery', 'wp-color-picker' ],
VIMEOTHEQUE_VERSION
);
wp_localize_script(
'vimeotheque-setup',
'vimeotheque',
[
'restURL' => rest_url(),
'restNonce' => wp_create_nonce( 'wp_rest' )
]
);
wp_enqueue_style('wp-color-picker');
}
/**
* The page header
*
* @return void
*/
private function the_header(){
_wp_admin_html_begin();
printf('<title>%s</title>', __('Quick Setup', 'codeflavors-vimeo-video-post-lite'));
wp_enqueue_style( 'colors' );
wp_enqueue_style( 'ie' );
wp_enqueue_script( 'utils' );
wp_enqueue_script( 'buttons' );
/**
* @ignore
*/
do_action('admin_print_styles');
/**
* @ignore
*/
do_action('admin_print_scripts');
/**
* Action triggered on loading the video modal window
* @ignore
*/
do_action('vimeotheque\admin\setup_wizard_print_scripts');
echo '</head>';
echo '<body class="wp-core-ui">';
}
/**
* The page footer
*
* @return void
*/
private function the_footer() {
echo '</body>';
echo '</html>';
die();
}
}
Methods
- get_html
- on_load
- the_footer — The page footer
- the_header — The page header
