pluign updates
This commit is contained in:
@@ -46,21 +46,37 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Main content wrapper */
|
||||||
|
.igny8-main-content {
|
||||||
|
margin-left: 260px;
|
||||||
|
flex: 1;
|
||||||
|
padding: 10px 25px;
|
||||||
|
max-width: 1400px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* Page header */
|
/* Page header */
|
||||||
.igny8-page-header {
|
.igny8-page-header {
|
||||||
height: 100px;
|
/* height: 100px; */
|
||||||
|
background: linear-gradient(135deg, #3B82F6 0%, #3B82F6 100%);
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: flex-start;
|
||||||
border-radius: 8px;
|
border-radius: 8px;
|
||||||
margin: 12px 0 24px 0;
|
margin: 12px 0 24px 0;
|
||||||
|
flex-direction: column;
|
||||||
}
|
}
|
||||||
.igny8-page-header h1 {
|
.igny8-page-header h1 {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
font-size: 20px;
|
font-size: 30px;
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
color: #111827;
|
color: #fff;
|
||||||
|
}
|
||||||
|
.igny8-page-header p {
|
||||||
|
color: var(--igny8-stroke);
|
||||||
|
font-size:18px;
|
||||||
|
margin: 12px 0px 0px 0px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.igny8-module-title h2 {
|
.igny8-module-title h2 {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
font-size: 18px;
|
font-size: 18px;
|
||||||
@@ -850,4 +866,4 @@
|
|||||||
============================================ */
|
============================================ */
|
||||||
.sellvia-banner.notice.notice-info {
|
.sellvia-banner.notice.notice-info {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -55,7 +55,7 @@
|
|||||||
.igny8-admin-wrapper {
|
.igny8-admin-wrapper {
|
||||||
display: flex;
|
display: flex;
|
||||||
min-height: 100vh;
|
min-height: 100vh;
|
||||||
background: var(--igny8-surface);
|
|
||||||
margin-left: -20px;
|
margin-left: -20px;
|
||||||
margin-top: -10px;
|
margin-top: -10px;
|
||||||
}
|
}
|
||||||
@@ -71,14 +71,21 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.igny8-sidebar-logo {
|
.igny8-sidebar-logo {
|
||||||
padding: 0 24px 24px;
|
padding: 24px;
|
||||||
border-bottom: 1px solid var(--igny8-stroke);
|
text-align: center;
|
||||||
margin-bottom: 24px;
|
margin-bottom: 16px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.igny8-sidebar-logo img {
|
.igny8-sidebar-logo img {
|
||||||
height: 32px;
|
height: 32px;
|
||||||
width: auto;
|
width: auto;
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.igny8-sidebar-badge-container {
|
||||||
|
padding: 0 24px 24px;
|
||||||
|
margin-bottom: 24px;
|
||||||
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
.igny8-sidebar-nav {
|
.igny8-sidebar-nav {
|
||||||
@@ -108,22 +115,32 @@
|
|||||||
color: var(--igny8-text);
|
color: var(--igny8-text);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.igny8-sidebar-nav a:hover svg {
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
|
||||||
.igny8-sidebar-nav a.active {
|
.igny8-sidebar-nav a.active {
|
||||||
background: var(--igny8-primary-subtle);
|
background: var(--igny8-primary-subtle);
|
||||||
color: var(--igny8-primary);
|
color: var(--igny8-primary);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.igny8-sidebar-nav a.active svg {
|
||||||
|
opacity: 1;
|
||||||
|
}
|
||||||
|
|
||||||
.igny8-sidebar-nav svg {
|
.igny8-sidebar-nav svg {
|
||||||
width: 18px;
|
width: 18px;
|
||||||
height: 18px;
|
height: 18px;
|
||||||
margin-right: 12px;
|
margin-right: 12px;
|
||||||
flex-shrink: 0;
|
flex-shrink: 0;
|
||||||
|
opacity: 1;
|
||||||
|
display: block;
|
||||||
}
|
}
|
||||||
|
|
||||||
.igny8-main-content {
|
.igny8-main-content {
|
||||||
margin-left: 260px;
|
margin-left: 260px;
|
||||||
flex: 1;
|
flex: 1;
|
||||||
padding: 32px 40px;
|
padding: 10px 25px;
|
||||||
max-width: 1400px;
|
max-width: 1400px;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -131,20 +148,27 @@
|
|||||||
HEADER - Minimal Design
|
HEADER - Minimal Design
|
||||||
=================================================================== */
|
=================================================================== */
|
||||||
.igny8-page-header {
|
.igny8-page-header {
|
||||||
margin-bottom: 32px;
|
background: linear-gradient(135deg, #3B82F6 0%, #3B82F6 100%);
|
||||||
|
display: flex;
|
||||||
|
align-items: flex-start;
|
||||||
|
border-radius: 8px;
|
||||||
|
margin: 12px 0 24px 0;
|
||||||
|
flex-direction: column;
|
||||||
|
padding: 20px 24px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.igny8-page-header h1 {
|
.igny8-page-header h1 {
|
||||||
font-size: 28px;
|
font-size: 30px;
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
color: var(--igny8-text);
|
color: #fff;
|
||||||
margin: 0 0 8px 0;
|
margin: 0 0 8px 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.igny8-page-header p {
|
.igny8-page-header p {
|
||||||
color: var(--igny8-text-dim);
|
color: var(--igny8-stroke);
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
|
line-height: 1.6;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ===================================================================
|
/* ===================================================================
|
||||||
|
|||||||
Binary file not shown.
|
After Width: | Height: | Size: 1.6 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 3.0 KiB |
@@ -49,14 +49,14 @@ class Igny8Admin {
|
|||||||
* Add admin menu pages
|
* Add admin menu pages
|
||||||
*/
|
*/
|
||||||
public function add_menu_pages() {
|
public function add_menu_pages() {
|
||||||
// Add main menu page
|
// Add main menu page with dashicons (most reliable method)
|
||||||
add_menu_page(
|
add_menu_page(
|
||||||
__('IGNY8', 'igny8-bridge'),
|
__('IGNY8', 'igny8-bridge'),
|
||||||
__('IGNY8', 'igny8-bridge'),
|
__('IGNY8', 'igny8-bridge'),
|
||||||
'manage_options',
|
'manage_options',
|
||||||
'igny8-dashboard',
|
'igny8-dashboard',
|
||||||
array($this, 'render_page'),
|
array($this, 'render_page'),
|
||||||
plugins_url('admin/assets/images/logo-icon.png', IGNY8_BRIDGE_PLUGIN_FILE),
|
'dashicons-cloud-saved',
|
||||||
58
|
58
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@@ -23,7 +23,22 @@ $is_connected = !empty($api_key);
|
|||||||
<!-- Sidebar Navigation -->
|
<!-- Sidebar Navigation -->
|
||||||
<aside class="igny8-sidebar">
|
<aside class="igny8-sidebar">
|
||||||
<div class="igny8-sidebar-logo">
|
<div class="igny8-sidebar-logo">
|
||||||
<img src="<?php echo esc_url(plugins_url('assets/images/IGNY8_DARK_LOGO.png', __FILE__)); ?>" alt="IGNY8" />
|
<img src="<?php echo esc_url(plugins_url('assets/images/IGNY8_LIGHT_LOGO.png', __FILE__)); ?>" alt="IGNY8" />
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Connection Status Badge -->
|
||||||
|
<div class="igny8-sidebar-badge-container">
|
||||||
|
<?php if ($is_connected): ?>
|
||||||
|
<div class="igny8-status igny8-status-connected">
|
||||||
|
<span class="igny8-status-indicator"></span>
|
||||||
|
<?php _e('Connected', 'igny8-bridge'); ?>
|
||||||
|
</div>
|
||||||
|
<?php else: ?>
|
||||||
|
<div class="igny8-status igny8-status-disconnected">
|
||||||
|
<span class="igny8-status-indicator"></span>
|
||||||
|
<?php _e('Not Connected', 'igny8-bridge'); ?>
|
||||||
|
</div>
|
||||||
|
<?php endif; ?>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<nav>
|
<nav>
|
||||||
@@ -89,21 +104,6 @@ $is_connected = !empty($api_key);
|
|||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</nav>
|
</nav>
|
||||||
|
|
||||||
<!-- Connection Status in Sidebar -->
|
|
||||||
<div style="padding: 16px 24px; margin-top: auto; border-top: 1px solid var(--igny8-stroke);">
|
|
||||||
<?php if ($is_connected): ?>
|
|
||||||
<div class="igny8-status igny8-status-connected">
|
|
||||||
<span class="igny8-status-indicator"></span>
|
|
||||||
<?php _e('Connected', 'igny8-bridge'); ?>
|
|
||||||
</div>
|
|
||||||
<?php else: ?>
|
|
||||||
<div class="igny8-status igny8-status-disconnected">
|
|
||||||
<span class="igny8-status-indicator"></span>
|
|
||||||
<?php _e('Not Connected', 'igny8-bridge'); ?>
|
|
||||||
</div>
|
|
||||||
<?php endif; ?>
|
|
||||||
</div>
|
|
||||||
</aside>
|
</aside>
|
||||||
|
|
||||||
<!-- Main Content Area -->
|
<!-- Main Content Area -->
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
* Plugin Name: IGNY8 WordPress Bridge
|
* Plugin Name: IGNY8 WordPress Bridge
|
||||||
* Plugin URI: https://igny8.com/igny8-wp-bridge
|
* Plugin URI: https://igny8.com/igny8-wp-bridge
|
||||||
* Description: Lightweight bridge plugin that connects WordPress to IGNY8 API for one-way content publishing.
|
* Description: Lightweight bridge plugin that connects WordPress to IGNY8 API for one-way content publishing.
|
||||||
* Version: 1.2.0
|
* Version: 1.2.5
|
||||||
* Author: IGNY8
|
* Author: IGNY8
|
||||||
* Author URI: https://igny8.com/
|
* Author URI: https://igny8.com/
|
||||||
* License: GPL v2 or later
|
* License: GPL v2 or later
|
||||||
@@ -22,7 +22,7 @@ if (!defined('ABSPATH')) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Define plugin constants
|
// Define plugin constants
|
||||||
define('IGNY8_BRIDGE_VERSION', '1.2.0');
|
define('IGNY8_BRIDGE_VERSION', '1.2.5');
|
||||||
define('IGNY8_BRIDGE_PLUGIN_DIR', plugin_dir_path(__FILE__));
|
define('IGNY8_BRIDGE_PLUGIN_DIR', plugin_dir_path(__FILE__));
|
||||||
define('IGNY8_BRIDGE_PLUGIN_URL', plugin_dir_url(__FILE__));
|
define('IGNY8_BRIDGE_PLUGIN_URL', plugin_dir_url(__FILE__));
|
||||||
define('IGNY8_BRIDGE_PLUGIN_FILE', __FILE__);
|
define('IGNY8_BRIDGE_PLUGIN_FILE', __FILE__);
|
||||||
|
|||||||
@@ -57,6 +57,9 @@ class Igny8_Updater {
|
|||||||
// Hook into WordPress update system
|
// Hook into WordPress update system
|
||||||
add_filter('pre_set_site_transient_update_plugins', array($this, 'check_for_updates'));
|
add_filter('pre_set_site_transient_update_plugins', array($this, 'check_for_updates'));
|
||||||
add_filter('plugins_api', array($this, 'plugin_info'), 10, 3);
|
add_filter('plugins_api', array($this, 'plugin_info'), 10, 3);
|
||||||
|
|
||||||
|
// Add custom styling for plugin details popup
|
||||||
|
add_action('admin_enqueue_scripts', array($this, 'enqueue_plugin_details_styles'));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -73,21 +76,26 @@ class Igny8_Updater {
|
|||||||
// Get update info from IGNY8 API
|
// Get update info from IGNY8 API
|
||||||
$update_info = $this->get_update_info();
|
$update_info = $this->get_update_info();
|
||||||
|
|
||||||
if (!$update_info || !isset($update_info['update_available'])) {
|
if (!$update_info || !isset($update_info['latest_version'])) {
|
||||||
return $transient;
|
return $transient;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($update_info['update_available'] === true) {
|
$plugin_basename = plugin_basename($this->plugin_file);
|
||||||
$plugin_basename = plugin_basename($this->plugin_file);
|
$latest_version = $update_info['latest_version'];
|
||||||
|
|
||||||
|
// Only show update if latest version is actually newer than current
|
||||||
|
if (version_compare($this->version, $latest_version, '<')) {
|
||||||
$transient->response[$plugin_basename] = (object) array(
|
$transient->response[$plugin_basename] = (object) array(
|
||||||
'slug' => $this->plugin_slug,
|
'slug' => $this->plugin_slug,
|
||||||
'new_version' => $update_info['latest_version'],
|
'new_version' => $latest_version,
|
||||||
'package' => $update_info['download_url'],
|
'package' => $update_info['download_url'] ?? '',
|
||||||
'url' => $update_info['info_url'] ?? '',
|
'url' => $update_info['info_url'] ?? '',
|
||||||
'tested' => $update_info['tested'] ?? '',
|
'tested' => $update_info['tested'] ?? '',
|
||||||
'requires_php' => $update_info['requires_php'] ?? '',
|
'requires_php' => $update_info['requires_php'] ?? '',
|
||||||
);
|
);
|
||||||
|
} else {
|
||||||
|
// Remove from response if version is current or newer
|
||||||
|
unset($transient->response[$plugin_basename]);
|
||||||
}
|
}
|
||||||
|
|
||||||
return $transient;
|
return $transient;
|
||||||
@@ -121,7 +129,7 @@ class Igny8_Updater {
|
|||||||
'name' => $info['name'] ?? 'IGNY8 WordPress Bridge',
|
'name' => $info['name'] ?? 'IGNY8 WordPress Bridge',
|
||||||
'slug' => $this->plugin_slug,
|
'slug' => $this->plugin_slug,
|
||||||
'version' => $info['version'] ?? $this->version,
|
'version' => $info['version'] ?? $this->version,
|
||||||
'author' => 'IGNY8',
|
'author' => '<a href="https://igny8.com">IGNY8</a>',
|
||||||
'author_profile' => 'https://igny8.com',
|
'author_profile' => 'https://igny8.com',
|
||||||
'homepage' => 'https://igny8.com',
|
'homepage' => 'https://igny8.com',
|
||||||
'sections' => array(
|
'sections' => array(
|
||||||
@@ -134,6 +142,13 @@ class Igny8_Updater {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Enqueue custom styles for plugin details popup
|
||||||
|
*/
|
||||||
|
public function enqueue_plugin_details_styles() {
|
||||||
|
// No custom styles needed
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get update information from IGNY8 API
|
* Get update information from IGNY8 API
|
||||||
*
|
*
|
||||||
|
|||||||
Reference in New Issue
Block a user