bluesky-Connector/templates/settings-page.php

167 lines
8.3 KiB
PHP
Raw Permalink Normal View History

2024-11-21 09:05:37 +00:00
<div class="wrap">
<h1><?php echo esc_html(get_admin_page_title()); ?></h1>
<?php if (!empty($settings['connection_status'])) : ?>
<?php if ($settings['connection_status'] === 'connected') : ?>
<div class="notice notice-success">
<p><?php _e('Successfully connected to Bluesky!', 'bluesky-connector'); ?></p>
</div>
<?php else : ?>
<div class="notice notice-error">
<p><?php printf(__('Connection error: %s', 'bluesky-connector'), esc_html($settings['last_error'])); ?></p>
</div>
<?php endif; ?>
<?php endif; ?>
<div class="card">
<h2><?php _e('Connection Settings', 'bluesky-connector'); ?></h2>
<form method="post" action="">
<?php wp_nonce_field('bluesky_connector_settings'); ?>
<input type="hidden" name="action" value="update_bluesky_settings">
<table class="form-table" role="presentation">
<tr>
<th scope="row">
<label for="bluesky_domain"><?php _e('Bluesky Domain', 'bluesky-connector'); ?></label>
</th>
<td>
<input name="bluesky_domain"
type="url"
id="bluesky_domain"
value="https://bsky.social"
class="regular-text"
readonly>
<p class="description">
<?php _e('The Bluesky API domain (fixed to https://bsky.social)', 'bluesky-connector'); ?>
</p>
</td>
</tr>
<tr>
<th scope="row">
<label for="bluesky_identifier"><?php _e('Bluesky Handle', 'bluesky-connector'); ?></label>
</th>
<td>
<input name="bluesky_identifier"
type="text"
id="bluesky_identifier"
value="<?php echo esc_attr($settings['identifier']); ?>"
class="regular-text"
placeholder="username.bsky.social"
required>
<p class="description">
<?php _e('Your full Bluesky handle (e.g., username.bsky.social)', 'bluesky-connector'); ?>
</p>
</td>
</tr>
<tr>
<th scope="row">
<label for="bluesky_password"><?php _e('App Password', 'bluesky-connector'); ?></label>
</th>
<td>
<input name="bluesky_password"
type="password"
id="bluesky_password"
class="regular-text"
<?php echo empty($settings['identifier']) ? 'required' : ''; ?>>
<p class="description">
<?php _e('Your Bluesky app password (will not be stored)', 'bluesky-connector'); ?>
</p>
</td>
</tr>
</table>
<?php submit_button(__('Save Connection Settings', 'bluesky-connector')); ?>
</form>
</div>
<?php if (!empty($settings['connection_status']) && $settings['connection_status'] === 'connected') : ?>
<div class="card" style="margin-top: 20px;">
<h2><?php _e('Post Format Settings', 'bluesky-connector'); ?></h2>
<form method="post" action="options.php">
<?php settings_fields('bluesky_connector_settings'); ?>
<table class="form-table" role="presentation">
<tr>
<th scope="row">
<label for="bluesky_post_format"><?php _e('Post Layout', 'bluesky-connector'); ?></label>
</th>
<td>
<select name="bluesky_post_format" id="bluesky_post_format">
<option value="title-excerpt-link" <?php selected(get_option('bluesky_post_format'), 'title-excerpt-link'); ?>>
<?php _e('Title + Excerpt + Link (No Image)', 'bluesky-connector'); ?>
</option>
<option value="image-title-excerpt-link" <?php selected(get_option('bluesky_post_format'), 'image-title-excerpt-link'); ?>>
<?php _e('Image + Title + Excerpt + Link (Image will appear at top)', 'bluesky-connector'); ?>
</option>
</select>
<p class="description">
<?php _e('Note: When including images, Bluesky will always display them at the top of the post regardless of format selection.', 'bluesky-connector'); ?>
</p>
</td>
</tr>
<tr>
<th scope="row">
<label for="bluesky_include_title"><?php _e('Title Options', 'bluesky-connector'); ?></label>
</th>
<td>
<label>
<input type="checkbox"
name="bluesky_include_title"
id="bluesky_include_title"
value="1"
<?php checked(get_option('bluesky_include_title', true)); ?>>
<?php _e('Include post title when format includes title', 'bluesky-connector'); ?>
</label>
<p class="description">
<?php _e('When enabled, the post title will be included at the beginning of the post text.', 'bluesky-connector'); ?>
</p>
</td>
</tr>
</table>
<?php submit_button(__('Save Format Settings', 'bluesky-connector')); ?>
</form>
</div>
<div class="card" style="margin-top: 20px;">
<h2><?php _e('Queue Management', 'bluesky-connector'); ?></h2>
<?php
$queue = get_option('bluesky_post_queue', array());
$queue_count = count($queue);
?>
<p>
<?php printf(
_n(
'There is %s post in the queue.',
'There are %s posts in the queue.',
$queue_count,
'bluesky-connector'
),
number_format_i18n($queue_count)
); ?>
</p>
<?php if ($queue_count > 0) : ?>
<form method="post" style="margin-top: 10px;">
<?php wp_nonce_field('bluesky_process_queue'); ?>
<input type="submit" name="process_queue_now" class="button button-primary"
value="<?php esc_attr_e('Process Queue Now', 'bluesky-connector'); ?>">
</form>
<?php endif; ?>
</div>
<?php if (WP_DEBUG) : ?>
<div class="card" style="margin-top: 20px;">
<h2><?php _e('Connection Status', 'bluesky-connector'); ?></h2>
<table class="form-table" role="presentation">
<tr>
<th scope="row"><?php _e('DID', 'bluesky-connector'); ?></th>
<td><code><?php echo esc_html(get_option('bluesky_did')); ?></code></td>
</tr>
<tr>
<th scope="row"><?php _e('Last Token Refresh', 'bluesky-connector'); ?></th>
<td><?php echo esc_html(get_option('bluesky_token_created') ? date_i18n(get_option('date_format') . ' ' . get_option('time_format'), get_option('bluesky_token_created')) : __('Never', 'bluesky-connector')); ?></td>
</tr>
</table>
</div>
<?php endif; ?>
<?php endif; ?>
</div>