2.3.2 - change theme from premium to free

This commit is contained in:
AlxMedia 2022-08-25 18:14:55 +02:00
parent 0f999cec12
commit e3e1709a14
14 changed files with 261 additions and 1081 deletions

View file

@ -9,11 +9,11 @@
<?php if ( have_posts() ) : ?> <?php if ( have_posts() ) : ?>
<?php if ( get_theme_mod('blog-layout','blog-grid') == 'blog-grid' ) : ?> <?php if ( get_theme_mod('blog-layout','blog-grid') == 'blog-grid' ) : ?>
<ul class="flex-contain group"> <ul class="grid-contain">
<?php while ( have_posts() ): the_post(); ?> <?php while ( have_posts() ): the_post(); ?>
<?php get_template_part('content'); ?> <?php get_template_part('content'); ?>
<?php endwhile; ?> <?php endwhile; ?>
</ul><!--/.flex-contain--> </ul><!--/.grid-contain-->
<?php elseif ( get_theme_mod('blog-layout','blog-grid') == 'blog-list' ) : ?> <?php elseif ( get_theme_mod('blog-layout','blog-grid') == 'blog-list' ) : ?>
<ul class="flex-list group"> <ul class="flex-list group">
<?php while ( have_posts() ): the_post(); ?> <?php while ( have_posts() ): the_post(); ?>

View file

@ -77,11 +77,11 @@
?> ?>
<?php if ( get_theme_mod('blog-layout','blog-grid') == 'blog-grid' ) : ?> <?php if ( get_theme_mod('blog-layout','blog-grid') == 'blog-grid' ) : ?>
<ul class="flex-contain group"> <ul class="grid-contain">
<?php while( $custom_query->have_posts() ) : $custom_query->the_post(); ?> <?php while( $custom_query->have_posts() ) : $custom_query->the_post(); ?>
<?php get_template_part('content'); ?> <?php get_template_part('content'); ?>
<?php endwhile; ?> <?php endwhile; ?>
</ul><!--/.flex-contain--> </ul><!--/.grid-contain-->
<?php elseif ( get_theme_mod('blog-layout','blog-grid') == 'blog-list' ) : ?> <?php elseif ( get_theme_mod('blog-layout','blog-grid') == 'blog-list' ) : ?>
<ul class="flex-list group"> <ul class="flex-list group">
<?php while( $custom_query->have_posts() ) : $custom_query->the_post(); ?> <?php while( $custom_query->have_posts() ) : $custom_query->the_post(); ?>

View file

@ -14,12 +14,6 @@
// Load Kirki // Load Kirki
include( get_template_directory() . '/functions/kirki/kirki.php' ); include( get_template_directory() . '/functions/kirki/kirki.php' );
// Load theme updater functions
function agnar_theme_updater() {
require( get_template_directory() . '/functions/updater/theme-updater.php' );
}
add_action( 'after_setup_theme', 'agnar_theme_updater' );
if ( ! function_exists( 'agnar_load' ) ) { if ( ! function_exists( 'agnar_load' ) ) {
function agnar_load() { function agnar_load() {

View file

@ -93,7 +93,7 @@ if ( ! function_exists( 'agnar_dynamic_css' ) ) {
if ( get_theme_mod( 'font' ) == 'tahoma' ) { $styles .= 'body { font-family: Tahoma, sans-serif; }'."\n"; } if ( get_theme_mod( 'font' ) == 'tahoma' ) { $styles .= 'body { font-family: Tahoma, sans-serif; }'."\n"; }
// container width // container width
if ( get_theme_mod('container-width','1920') != '1920' ) { if ( get_theme_mod('container-width','1400') != '1400' ) {
if ( get_theme_mod( 'boxed' ) ) { if ( get_theme_mod( 'boxed' ) ) {
$styles .= '.boxed #wrapper, .container-inner { max-width: '.esc_attr( get_theme_mod('container-width') ).'px; }'."\n"; $styles .= '.boxed #wrapper, .container-inner { max-width: '.esc_attr( get_theme_mod('container-width') ).'px; }'."\n";
} }

View file

@ -10,6 +10,24 @@ Kirki::add_config( 'agnar', array(
'option_type' => 'theme_mod', 'option_type' => 'theme_mod',
) ); ) );
/* Add Links
/* ------------------------------------ */
Kirki::add_section( 'morelink', array(
'title' => esc_html__( 'AlxMedia', 'agnar' ),
'type' => 'link',
'button_text' => esc_html__( 'View More Themes', 'agnar' ),
'button_url' => 'http://alx.media/themes/',
'priority' => 13,
) );
Kirki::add_section( 'reviewlink', array(
'title' => esc_html__( 'Like This Theme?', 'agnar' ),
'panel' => 'options',
'type' => 'link',
'button_text' => esc_html__( 'Write a Review', 'agnar' ),
'button_url' => 'https://wordpress.org/support/theme/agnar/reviews/#new-post',
'priority' => 1,
) );
/* Add Panels /* Add Panels
/* ------------------------------------ */ /* ------------------------------------ */
Kirki::add_panel( 'options', array( Kirki::add_panel( 'options', array(
@ -683,7 +701,7 @@ Kirki::add_field( 'agnar_theme', array(
'label' => esc_html__( 'Website Max-width', 'agnar' ), 'label' => esc_html__( 'Website Max-width', 'agnar' ),
'description' => esc_html__( 'Max-width of the container', 'agnar' ), 'description' => esc_html__( 'Max-width of the container', 'agnar' ),
'section' => 'styling', 'section' => 'styling',
'default' => '1920', 'default' => '1400',
'choices' => array( 'choices' => array(
'min' => '1024', 'min' => '1024',
'max' => '1920', 'max' => '1920',

View file

@ -1,626 +0,0 @@
<?php
/**
* Theme updater admin page and functions.
*
* @package EDD Sample Theme
*/
class EDD_Theme_Updater_Admin {
/**
* Variables required for the theme updater
*
* @since 1.0.0
* @type string
*/
protected $remote_api_url = null;
protected $theme_slug = null;
protected $version = null;
protected $author = null;
protected $download_id = null;
protected $renew_url = null;
protected $strings = null;
/**
* Initialize the class.
*
* @since 1.0.0
*/
function __construct( $config = array(), $strings = array() ) {
$config = wp_parse_args( $config, array(
'remote_api_url' => 'http://easydigitaldownloads.com',
'theme_slug' => get_template(),
'item_name' => '',
'license' => '',
'version' => '',
'author' => '',
'download_id' => '',
'renew_url' => '',
'beta' => false,
) );
/**
* Fires after the theme $config is setup.
*
* @since x.x.x
*
* @param array $config Array of EDD SL theme data.
*/
do_action( 'post_edd_sl_theme_updater_setup', $config );
// Set config arguments
$this->remote_api_url = $config['remote_api_url'];
$this->item_name = $config['item_name'];
$this->theme_slug = sanitize_key( $config['theme_slug'] );
$this->version = $config['version'];
$this->author = $config['author'];
$this->download_id = $config['download_id'];
$this->renew_url = $config['renew_url'];
$this->beta = $config['beta'];
// Populate version fallback
if ( '' == $config['version'] ) {
$theme = wp_get_theme( $this->theme_slug );
$this->version = $theme->get( 'Version' );
}
// Strings passed in from the updater config
$this->strings = $strings;
add_action( 'init', array( $this, 'updater' ) );
add_action( 'admin_init', array( $this, 'register_option' ) );
add_action( 'admin_init', array( $this, 'license_action' ) );
add_action( 'admin_menu', array( $this, 'license_menu' ) );
add_action( 'update_option_' . $this->theme_slug . '_license_key', array( $this, 'activate_license' ), 10, 2 );
add_filter( 'http_request_args', array( $this, 'disable_wporg_request' ), 5, 2 );
}
/**
* Creates the updater class.
*
* since 1.0.0
*/
function updater() {
if ( ! current_user_can( 'manage_options' ) ) {
return;
}
/* If there is no valid license key status, don't allow updates. */
if ( get_option( $this->theme_slug . '_license_key_status', false) != 'valid' ) {
return;
}
if ( !class_exists( 'EDD_Theme_Updater' ) ) {
// Load our custom theme updater
include( dirname( __FILE__ ) . '/theme-updater-class.php' );
}
new EDD_Theme_Updater(
array(
'remote_api_url' => $this->remote_api_url,
'version' => $this->version,
'license' => trim( get_option( $this->theme_slug . '_license_key' ) ),
'item_name' => $this->item_name,
'author' => $this->author,
'beta' => $this->beta
),
$this->strings
);
}
/**
* Adds a menu item for the theme license under the appearance menu.
*
* since 1.0.0
*/
function license_menu() {
$strings = $this->strings;
add_theme_page(
$strings['theme-license'],
$strings['theme-license'],
'manage_options',
$this->theme_slug . '-license',
array( $this, 'license_page' )
);
}
/**
* Outputs the markup used on the theme license page.
*
* since 1.0.0
*/
function license_page() {
$strings = $this->strings;
$license = trim( get_option( $this->theme_slug . '_license_key' ) );
$status = get_option( $this->theme_slug . '_license_key_status', false );
// Checks license status to display under license key
if ( ! $license ) {
$message = $strings['enter-key'];
} else {
// delete_transient( $this->theme_slug . '_license_message' );
if ( ! get_transient( $this->theme_slug . '_license_message', false ) ) {
set_transient( $this->theme_slug . '_license_message', $this->check_license(), ( 60 * 60 * 24 ) );
}
$message = get_transient( $this->theme_slug . '_license_message' );
}
?>
<div class="wrap">
<h2><?php echo $strings['theme-license'] ?></h2>
<form method="post" action="options.php">
<?php settings_fields( $this->theme_slug . '-license' ); ?>
<table class="form-table">
<tbody>
<tr valign="top">
<th scope="row" valign="top">
<?php echo $strings['license-key']; ?>
</th>
<td>
<input id="<?php echo $this->theme_slug; ?>_license_key" name="<?php echo $this->theme_slug; ?>_license_key" type="text" class="regular-text" value="<?php echo esc_attr( $license ); ?>" />
<p class="description">
<?php echo $message; ?>
</p>
</td>
</tr>
<?php if ( $license ) { ?>
<tr valign="top">
<th scope="row" valign="top">
<?php echo $strings['license-action']; ?>
</th>
<td>
<?php
wp_nonce_field( $this->theme_slug . '_nonce', $this->theme_slug . '_nonce' );
if ( 'valid' == $status ) { ?>
<input type="submit" class="button-secondary" name="<?php echo $this->theme_slug; ?>_license_deactivate" value="<?php esc_attr_e( $strings['deactivate-license'] ); ?>"/>
<?php } else { ?>
<input type="submit" class="button-secondary" name="<?php echo $this->theme_slug; ?>_license_activate" value="<?php esc_attr_e( $strings['activate-license'] ); ?>"/>
<?php }
?>
</td>
</tr>
<?php } ?>
</tbody>
</table>
<?php submit_button(); ?>
</form>
<?php
}
/**
* Registers the option used to store the license key in the options table.
*
* since 1.0.0
*/
function register_option() {
register_setting(
$this->theme_slug . '-license',
$this->theme_slug . '_license_key',
array( $this, 'sanitize_license' )
);
}
/**
* Sanitizes the license key.
*
* since 1.0.0
*
* @param string $new License key that was submitted.
* @return string $new Sanitized license key.
*/
function sanitize_license( $new ) {
$old = get_option( $this->theme_slug . '_license_key' );
if ( $old && $old != $new ) {
// New license has been entered, so must reactivate
delete_option( $this->theme_slug . '_license_key_status' );
delete_transient( $this->theme_slug . '_license_message' );
}
return $new;
}
/**
* Makes a call to the API.
*
* @since 1.0.0
*
* @param array $api_params to be used for wp_remote_get.
* @return array $response decoded JSON response.
*/
function get_api_response( $api_params ) {
// Call the custom API.
$verify_ssl = (bool) apply_filters( 'edd_sl_api_request_verify_ssl', true );
$response = wp_remote_post( $this->remote_api_url, array( 'timeout' => 15, 'sslverify' => $verify_ssl, 'body' => $api_params ) );
return $response;
}
/**
* Activates the license key.
*
* @since 1.0.0
*/
function activate_license() {
$license = trim( get_option( $this->theme_slug . '_license_key' ) );
// Data to send in our API request.
$api_params = array(
'edd_action' => 'activate_license',
'license' => $license,
'item_name' => urlencode( $this->item_name ),
'url' => home_url()
);
$response = $this->get_api_response( $api_params );
// make sure the response came back okay
if ( is_wp_error( $response ) || 200 !== wp_remote_retrieve_response_code( $response ) ) {
if ( is_wp_error( $response ) ) {
$message = $response->get_error_message();
} else {
$message = __( 'An error occurred, please try again.' );
}
$base_url = admin_url( 'themes.php?page=' . $this->theme_slug . '-license' );
$redirect = add_query_arg( array( 'sl_theme_activation' => 'false', 'message' => urlencode( $message ) ), $base_url );
wp_redirect( $redirect );
exit();
} else {
$license_data = json_decode( wp_remote_retrieve_body( $response ) );
if ( false === $license_data->success ) {
switch( $license_data->error ) {
case 'expired' :
$message = sprintf(
__( 'Your license key expired on %s.' ),
date_i18n( get_option( 'date_format' ), strtotime( $license_data->expires, current_time( 'timestamp' ) ) )
);
break;
case 'disabled':
case 'revoked' :
$message = __( 'Your license key has been disabled.' );
break;
case 'missing' :
$message = __( 'Invalid license.' );
break;
case 'invalid' :
case 'site_inactive' :
$message = __( 'Your license is not active for this URL.' );
break;
case 'item_name_mismatch' :
$message = sprintf( __( 'This appears to be an invalid license key for %s.' ), $this->item_name );
break;
case 'no_activations_left':
$message = __( 'Your license key has reached its activation limit.' );
break;
default :
$message = __( 'An error occurred, please try again.' );
break;
}
if ( ! empty( $message ) ) {
$base_url = admin_url( 'themes.php?page=' . $this->theme_slug . '-license' );
$redirect = add_query_arg( array( 'sl_theme_activation' => 'false', 'message' => urlencode( $message ) ), $base_url );
wp_redirect( $redirect );
exit();
}
}
}
// $response->license will be either "active" or "inactive"
if ( $license_data && isset( $license_data->license ) ) {
update_option( $this->theme_slug . '_license_key_status', $license_data->license );
delete_transient( $this->theme_slug . '_license_message' );
}
wp_redirect( admin_url( 'themes.php?page=' . $this->theme_slug . '-license' ) );
exit();
}
/**
* Deactivates the license key.
*
* @since 1.0.0
*/
function deactivate_license() {
// Retrieve the license from the database.
$license = trim( get_option( $this->theme_slug . '_license_key' ) );
// Data to send in our API request.
$api_params = array(
'edd_action' => 'deactivate_license',
'license' => $license,
'item_name' => urlencode( $this->item_name ),
'url' => home_url()
);
$response = $this->get_api_response( $api_params );
// make sure the response came back okay
if ( is_wp_error( $response ) || 200 !== wp_remote_retrieve_response_code( $response ) ) {
if ( is_wp_error( $response ) ) {
$message = $response->get_error_message();
} else {
$message = __( 'An error occurred, please try again.' );
}
$base_url = admin_url( 'themes.php?page=' . $this->theme_slug . '-license' );
$redirect = add_query_arg( array( 'sl_theme_activation' => 'false', 'message' => urlencode( $message ) ), $base_url );
wp_redirect( $redirect );
exit();
} else {
$license_data = json_decode( wp_remote_retrieve_body( $response ) );
// $license_data->license will be either "deactivated" or "failed"
if ( $license_data && ( $license_data->license == 'deactivated' ) ) {
delete_option( $this->theme_slug . '_license_key_status' );
delete_transient( $this->theme_slug . '_license_message' );
}
}
if ( ! empty( $message ) ) {
$base_url = admin_url( 'themes.php?page=' . $this->theme_slug . '-license' );
$redirect = add_query_arg( array( 'sl_theme_activation' => 'false', 'message' => urlencode( $message ) ), $base_url );
wp_redirect( $redirect );
exit();
}
wp_redirect( admin_url( 'themes.php?page=' . $this->theme_slug . '-license' ) );
exit();
}
/**
* Constructs a renewal link
*
* @since 1.0.0
*/
function get_renewal_link() {
// If a renewal link was passed in the config, use that
if ( '' != $this->renew_url ) {
return $this->renew_url;
}
// If download_id was passed in the config, a renewal link can be constructed
$license_key = trim( get_option( $this->theme_slug . '_license_key', false ) );
if ( '' != $this->download_id && $license_key ) {
$url = esc_url( $this->remote_api_url );
$url .= '/checkout/?edd_license_key=' . $license_key . '&download_id=' . $this->download_id;
return $url;
}
// Otherwise return the remote_api_url
return $this->remote_api_url;
}
/**
* Checks if a license action was submitted.
*
* @since 1.0.0
*/
function license_action() {
if ( isset( $_POST[ $this->theme_slug . '_license_activate' ] ) ) {
if ( check_admin_referer( $this->theme_slug . '_nonce', $this->theme_slug . '_nonce' ) ) {
$this->activate_license();
}
}
if ( isset( $_POST[$this->theme_slug . '_license_deactivate'] ) ) {
if ( check_admin_referer( $this->theme_slug . '_nonce', $this->theme_slug . '_nonce' ) ) {
$this->deactivate_license();
}
}
}
/**
* Checks if license is valid and gets expire date.
*
* @since 1.0.0
*
* @return string $message License status message.
*/
function check_license() {
$license = trim( get_option( $this->theme_slug . '_license_key' ) );
$strings = $this->strings;
$api_params = array(
'edd_action' => 'check_license',
'license' => $license,
'item_name' => urlencode( $this->item_name ),
'url' => home_url()
);
$response = $this->get_api_response( $api_params );
// make sure the response came back okay
if ( is_wp_error( $response ) || 200 !== wp_remote_retrieve_response_code( $response ) ) {
if ( is_wp_error( $response ) ) {
$message = $response->get_error_message();
} else {
$message = $strings['license-status-unknown'];
}
$base_url = admin_url( 'themes.php?page=' . $this->theme_slug . '-license' );
$redirect = add_query_arg( array( 'sl_theme_activation' => 'false', 'message' => urlencode( $message ) ), $base_url );
wp_redirect( $redirect );
exit();
} else {
$license_data = json_decode( wp_remote_retrieve_body( $response ) );
// If response doesn't include license data, return
if ( !isset( $license_data->license ) ) {
$message = $strings['license-status-unknown'];
return $message;
}
// We need to update the license status at the same time the message is updated
if ( $license_data && isset( $license_data->license ) ) {
update_option( $this->theme_slug . '_license_key_status', $license_data->license );
}
// Get expire date
$expires = false;
if ( isset( $license_data->expires ) && 'lifetime' != $license_data->expires ) {
$expires = date_i18n( get_option( 'date_format' ), strtotime( $license_data->expires, current_time( 'timestamp' ) ) );
$renew_link = '<a href="' . esc_url( $this->get_renewal_link() ) . '" target="_blank">' . $strings['renew'] . '</a>';
} elseif ( isset( $license_data->expires ) && 'lifetime' == $license_data->expires ) {
$expires = 'lifetime';
}
// Get site counts
$site_count = $license_data->site_count;
$license_limit = $license_data->license_limit;
// If unlimited
if ( 0 == $license_limit ) {
$license_limit = $strings['unlimited'];
}
if ( $license_data->license == 'valid' ) {
$message = $strings['license-key-is-active'] . ' ';
if ( isset( $expires ) && 'lifetime' != $expires ) {
$message .= sprintf( $strings['expires%s'], $expires ) . ' ';
}
if ( isset( $expires ) && 'lifetime' == $expires ) {
$message .= $strings['expires-never'];
}
if ( $site_count && $license_limit ) {
$message .= sprintf( $strings['%1$s/%2$-sites'], $site_count, $license_limit );
}
} else if ( $license_data->license == 'expired' ) {
if ( $expires ) {
$message = sprintf( $strings['license-key-expired-%s'], $expires );
} else {
$message = $strings['license-key-expired'];
}
if ( $renew_link ) {
$message .= ' ' . $renew_link;
}
} else if ( $license_data->license == 'invalid' ) {
$message = $strings['license-keys-do-not-match'];
} else if ( $license_data->license == 'inactive' ) {
$message = $strings['license-is-inactive'];
} else if ( $license_data->license == 'disabled' ) {
$message = $strings['license-key-is-disabled'];
} else if ( $license_data->license == 'site_inactive' ) {
// Site is inactive
$message = $strings['site-is-inactive'];
} else {
$message = $strings['license-status-unknown'];
}
}
return $message;
}
/**
* Disable requests to wp.org repository for this theme.
*
* @since 1.0.0
*/
function disable_wporg_request( $r, $url ) {
// If it's not a theme update request, bail.
if ( 0 !== strpos( $url, 'https://api.wordpress.org/themes/update-check/1.1/' ) ) {
return $r;
}
// Decode the JSON response
$themes = json_decode( $r['body']['themes'] );
// Remove the active parent and child themes from the check
$parent = get_option( 'template' );
$child = get_option( 'stylesheet' );
unset( $themes->themes->$parent );
unset( $themes->themes->$child );
// Encode the updated JSON response
$r['body']['themes'] = json_encode( $themes );
return $r;
}
}
/**
* This is a means of catching errors from the activation method above and displyaing it to the customer
*/
function edd_sample_theme_admin_notices() {
if ( isset( $_GET['sl_theme_activation'] ) && ! empty( $_GET['message'] ) ) {
switch( $_GET['sl_theme_activation'] ) {
case 'false':
$message = urldecode( $_GET['message'] );
?>
<div class="error">
<p><?php echo $message; ?></p>
</div>
<?php
break;
case 'true':
default:
break;
}
}
}
add_action( 'admin_notices', 'edd_sample_theme_admin_notices' );

View file

@ -1,192 +0,0 @@
<?php
/**
* Theme updater class.
*
* @package EDD Sample Theme
* @version 1.0.3
*/
class EDD_Theme_Updater {
private $remote_api_url;
private $request_data;
private $response_key;
private $theme_slug;
private $license_key;
private $version;
private $author;
protected $strings = null;
/**
* Initiate the Theme updater
*
* @param array $args Array of arguments from the theme requesting an update check
* @param array $strings Strings for the update process
*/
function __construct( $args = array(), $strings = array() ) {
$defaults = array(
'remote_api_url' => 'http://easydigitaldownloads.com',
'request_data' => array(),
'theme_slug' => get_template(), // use get_stylesheet() for child theme updates
'item_name' => '',
'license' => '',
'version' => '',
'author' => '',
'beta' => false,
);
$args = wp_parse_args( $args, $defaults );
$this->license = $args['license'];
$this->item_name = $args['item_name'];
$this->version = $args['version'];
$this->theme_slug = sanitize_key( $args['theme_slug'] );
$this->author = $args['author'];
$this->beta = $args['beta'];
$this->remote_api_url = $args['remote_api_url'];
$this->response_key = $this->theme_slug . '-' . $this->beta . '-update-response';
$this->strings = $strings;
add_filter( 'site_transient_update_themes', array( $this, 'theme_update_transient' ) );
add_filter( 'delete_site_transient_update_themes', array( $this, 'delete_theme_update_transient' ) );
add_action( 'load-update-core.php', array( $this, 'delete_theme_update_transient' ) );
add_action( 'load-themes.php', array( $this, 'delete_theme_update_transient' ) );
add_action( 'load-themes.php', array( $this, 'load_themes_screen' ) );
}
/**
* Show the update notification when neecessary
*
* @return void
*/
function load_themes_screen() {
add_thickbox();
add_action( 'admin_notices', array( $this, 'update_nag' ) );
}
/**
* Display the update notifications
*
* @return void
*/
function update_nag() {
$strings = $this->strings;
$theme = wp_get_theme( $this->theme_slug );
$api_response = get_transient( $this->response_key );
if ( false === $api_response ) {
return;
}
$update_url = wp_nonce_url( 'update.php?action=upgrade-theme&amp;theme=' . urlencode( $this->theme_slug ), 'upgrade-theme_' . $this->theme_slug );
$update_onclick = ' onclick="if ( confirm(\'' . esc_js( $strings['update-notice'] ) . '\') ) {return true;}return false;"';
if ( version_compare( $this->version, $api_response->new_version, '<' ) ) {
echo '<div id="update-nag">';
printf(
$strings['update-available'],
$theme->get( 'Name' ),
$api_response->new_version,
'#TB_inline?width=640&amp;inlineId=' . $this->theme_slug . '_changelog',
$theme->get( 'Name' ),
$update_url,
$update_onclick
);
echo '</div>';
echo '<div id="' . $this->theme_slug . '_' . 'changelog" style="display:none;">';
echo wpautop( $api_response->sections['changelog'] );
echo '</div>';
}
}
/**
* Update the theme update transient with the response from the version check
*
* @param array $value The default update values.
* @return array|boolean If an update is available, returns the update parameters, if no update is needed returns false, if
* the request fails returns false.
*/
function theme_update_transient( $value ) {
$update_data = $this->check_for_update();
if ( $update_data ) {
// Make sure the theme property is set. See issue 1463 on Github in the Software Licensing Repo.
$update_data['theme'] = $this->theme_slug;
$value->response[ $this->theme_slug ] = $update_data;
}
return $value;
}
/**
* Remove the update data for the theme
*
* @return void
*/
function delete_theme_update_transient() {
delete_transient( $this->response_key );
}
/**
* Call the EDD SL API (using the URL in the construct) to get the latest version information
*
* @return array|boolean If an update is available, returns the update parameters, if no update is needed returns false, if
* the request fails returns false.
*/
function check_for_update() {
$update_data = get_transient( $this->response_key );
if ( false === $update_data ) {
$failed = false;
$api_params = array(
'edd_action' => 'get_version',
'license' => $this->license,
'name' => $this->item_name,
'slug' => $this->theme_slug,
'version' => $this->version,
'author' => $this->author,
'beta' => $this->beta
);
$response = wp_remote_post( $this->remote_api_url, array( 'timeout' => 15, 'body' => $api_params ) );
// Make sure the response was successful
if ( is_wp_error( $response ) || 200 != wp_remote_retrieve_response_code( $response ) ) {
$failed = true;
}
$update_data = json_decode( wp_remote_retrieve_body( $response ) );
if ( ! is_object( $update_data ) ) {
$failed = true;
}
// If the response failed, try again in 30 minutes
if ( $failed ) {
$data = new stdClass;
$data->new_version = $this->version;
set_transient( $this->response_key, $data, strtotime( '+30 minutes', time() ) );
return false;
}
// If the status is 'ok', return the update arguments
if ( ! $failed ) {
$update_data->sections = maybe_unserialize( $update_data->sections );
set_transient( $this->response_key, $update_data, strtotime( '+12 hours', time() ) );
}
}
if ( version_compare( $this->version, $update_data->new_version, '>=' ) ) {
return false;
}
return (array) $update_data;
}
}

View file

@ -1,54 +0,0 @@
<?php
/**
* Easy Digital Downloads Theme Updater
*
* @package EDD Sample Theme
*/
// Includes the files needed for the theme updater
if ( !class_exists( 'EDD_Theme_Updater_Admin' ) ) {
include( dirname( __FILE__ ) . '/theme-updater-admin.php' );
}
// Loads the updater classes
$updater = new EDD_Theme_Updater_Admin(
// Config settings
$config = array(
'remote_api_url' => 'https://alx.media', // Site where EDD is hosted
'item_name' => 'Agnar', // Name of theme
'theme_slug' => 'agnar', // Theme slug
'version' => '2.3.1', // The current version of this theme
'author' => 'AlxMedia', // The author of this theme
'download_id' => '', // Optional, used for generating a license renewal link
'renew_url' => '', // Optional, allows for a custom license renewal link
'beta' => false, // Optional, set to true to opt into beta versions
),
// Strings
$strings = array(
'theme-license' => __( 'Theme License', 'agnar' ),
'enter-key' => __( 'Enter your theme license key.', 'agnar' ),
'license-key' => __( 'License Key', 'agnar' ),
'license-action' => __( 'License Action', 'agnar' ),
'deactivate-license' => __( 'Deactivate License', 'agnar' ),
'activate-license' => __( 'Activate License', 'agnar' ),
'status-unknown' => __( 'License status is unknown.', 'agnar' ),
'renew' => __( 'Renew?', 'agnar' ),
'unlimited' => __( 'unlimited', 'agnar' ),
'license-key-is-active' => __( 'License key is active.', 'agnar' ),
'expires%s' => __( 'Expires %s.', 'agnar' ),
'expires-never' => __( 'Lifetime License.', 'agnar' ),
'%1$s/%2$-sites' => __( 'You have %1$s / %2$s sites activated.', 'agnar' ),
'license-key-expired-%s' => __( 'License key expired %s.', 'agnar' ),
'license-key-expired' => __( 'License key has expired.', 'agnar' ),
'license-keys-do-not-match' => __( 'License keys do not match.', 'agnar' ),
'license-is-inactive' => __( 'License is inactive.', 'agnar' ),
'license-key-is-disabled' => __( 'License key is disabled.', 'agnar' ),
'site-is-inactive' => __( 'Site is inactive.', 'agnar' ),
'license-status-unknown' => __( 'License status is unknown.', 'agnar' ),
'update-notice' => __( "Updating this theme will lose any customizations you have made. 'Cancel' to stop, 'OK' to update.", 'agnar' ),
'update-available' => __('<strong>%1$s %2$s</strong> is available. <a href="%3$s" class="thickbox" title="%4s">Check out what\'s new</a> or <a href="%5$s"%6$s>update now</a>.', 'agnar' ),
)
);

View file

@ -11,11 +11,11 @@
<?php if ( have_posts() ) : ?> <?php if ( have_posts() ) : ?>
<?php if ( get_theme_mod('blog-layout','blog-grid') == 'blog-grid' ) : ?> <?php if ( get_theme_mod('blog-layout','blog-grid') == 'blog-grid' ) : ?>
<ul class="flex-contain group"> <ul class="grid-contain">
<?php while ( have_posts() ): the_post(); ?> <?php while ( have_posts() ): the_post(); ?>
<?php get_template_part('content'); ?> <?php get_template_part('content'); ?>
<?php endwhile; ?> <?php endwhile; ?>
</ul><!--/.flex-contain--> </ul><!--/.grid-contain-->
<?php elseif ( get_theme_mod('blog-layout','blog-grid') == 'blog-list' ) : ?> <?php elseif ( get_theme_mod('blog-layout','blog-grid') == 'blog-list' ) : ?>
<ul class="flex-list group"> <ul class="flex-list group">
<?php while ( have_posts() ): the_post(); ?> <?php while ( have_posts() ): the_post(); ?>

View file

@ -2,7 +2,7 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Agnar\n" "Project-Id-Version: Agnar\n"
"POT-Creation-Date: 2021-07-23 18:30+0200\n" "POT-Creation-Date: 2022-08-25 18:05+0200\n"
"PO-Revision-Date: 2018-09-21 21:27+0100\n" "PO-Revision-Date: 2018-09-21 21:27+0100\n"
"Last-Translator: \n" "Last-Translator: \n"
"Language-Team: \n" "Language-Team: \n"
@ -10,7 +10,7 @@ msgstr ""
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Generator: Poedit 2.4.2\n" "X-Generator: Poedit 3.0\n"
"X-Poedit-KeywordsList: __;_e;_x;_ex;_n;_nx;_n_noop;_nx_noop;" "X-Poedit-KeywordsList: __;_e;_x;_ex;_n;_nx;_n_noop;_nx_noop;"
"translate_nooped_plural;number_format_i18n;date_i18n;esc_html__;esc_html_e;" "translate_nooped_plural;number_format_i18n;date_i18n;esc_html__;esc_html_e;"
"esc_html_x;esc_attr__;esc_attr_e;esc_attr_x\n" "esc_html_x;esc_attr__;esc_attr_e;esc_attr_x\n"
@ -62,99 +62,99 @@ msgstr ""
msgid "Theme by" msgid "Theme by"
msgstr "" msgstr ""
#: functions.php:89 #: functions.php:83
msgid "Mobile" msgid "Mobile"
msgstr "" msgstr ""
#: functions.php:90 #: functions.php:84
msgid "Topbar" msgid "Topbar"
msgstr "" msgstr ""
#: functions.php:91 functions/theme-options.php:34 #: functions.php:85 functions/theme-options.php:52
msgid "Header" msgid "Header"
msgstr "" msgstr ""
#: functions.php:92 functions/theme-options.php:39 #: functions.php:86 functions/theme-options.php:57
msgid "Footer" msgid "Footer"
msgstr "" msgstr ""
#: functions.php:187 #: functions.php:181
msgid "Primary" msgid "Primary"
msgstr "" msgstr ""
#: functions.php:187 #: functions.php:181
msgid "Normal full width sidebar" msgid "Normal full width sidebar"
msgstr "" msgstr ""
#: functions.php:189 functions/theme-options.php:289 #: functions.php:183 functions/theme-options.php:307
msgid "Header Ads" msgid "Header Ads"
msgstr "" msgstr ""
#: functions.php:190 functions/theme-options.php:316 #: functions.php:184 functions/theme-options.php:334
msgid "Footer Ads" msgid "Footer Ads"
msgstr "" msgstr ""
#: functions.php:190 #: functions.php:184
msgid "Footer ads area" msgid "Footer ads area"
msgstr "" msgstr ""
#: functions.php:192 #: functions.php:186
msgid "Frontpage Top 1" msgid "Frontpage Top 1"
msgstr "" msgstr ""
#: functions.php:192 functions.php:193 functions.php:194 functions.php:195 #: functions.php:186 functions.php:187 functions.php:188 functions.php:189
msgid "Frontpage area" msgid "Frontpage area"
msgstr "" msgstr ""
#: functions.php:193 #: functions.php:187
msgid "Frontpage Top 2" msgid "Frontpage Top 2"
msgstr "" msgstr ""
#: functions.php:194 #: functions.php:188
msgid "Frontpage Bottom 1" msgid "Frontpage Bottom 1"
msgstr "" msgstr ""
#: functions.php:195 #: functions.php:189
msgid "Frontpage Bottom 2" msgid "Frontpage Bottom 2"
msgstr "" msgstr ""
#: functions.php:197 #: functions.php:191
msgid "Footer 1" msgid "Footer 1"
msgstr "" msgstr ""
#: functions.php:197 functions.php:198 functions.php:199 functions.php:200 #: functions.php:191 functions.php:192 functions.php:193 functions.php:194
msgid "Widgetized footer" msgid "Widgetized footer"
msgstr "" msgstr ""
#: functions.php:198 #: functions.php:192
msgid "Footer 2" msgid "Footer 2"
msgstr "" msgstr ""
#: functions.php:199 #: functions.php:193
msgid "Footer 3" msgid "Footer 3"
msgstr "" msgstr ""
#: functions.php:200 #: functions.php:194
msgid "Footer 4" msgid "Footer 4"
msgstr "" msgstr ""
#: functions.php:692 #: functions.php:686
msgid "Alx Extensions" msgid "Alx Extensions"
msgstr "" msgstr ""
#: functions.php:696 #: functions.php:690
msgid "Meta Box" msgid "Meta Box"
msgstr "" msgstr ""
#: functions.php:700 #: functions.php:694
msgid "Regenerate Thumbnails" msgid "Regenerate Thumbnails"
msgstr "" msgstr ""
#: functions.php:704 #: functions.php:698
msgid "WP-PageNavi" msgid "WP-PageNavi"
msgstr "" msgstr ""
#: functions.php:708 #: functions.php:702
msgid "BJ Lazy Load" msgid "BJ Lazy Load"
msgstr "" msgstr ""
@ -167,15 +167,15 @@ msgid "Primary Sidebar"
msgstr "" msgstr ""
#: functions/meta-boxes.php:31 functions/meta-boxes.php:65 #: functions/meta-boxes.php:31 functions/meta-boxes.php:65
#: functions/theme-options.php:515 functions/theme-options.php:525 #: functions/theme-options.php:533 functions/theme-options.php:543
#: functions/theme-options.php:535 functions/theme-options.php:545 #: functions/theme-options.php:553 functions/theme-options.php:563
#: functions/theme-options.php:555 functions/theme-options.php:565 #: functions/theme-options.php:573 functions/theme-options.php:583
#: functions/theme-options.php:575 #: functions/theme-options.php:593
msgid "Select a sidebar" msgid "Select a sidebar"
msgstr "" msgstr ""
#: functions/meta-boxes.php:37 functions/meta-boxes.php:71 #: functions/meta-boxes.php:37 functions/meta-boxes.php:71
#: functions/theme-options.php:44 #: functions/theme-options.php:62
msgid "Layout" msgid "Layout"
msgstr "" msgstr ""
@ -204,639 +204,655 @@ msgstr ""
msgid "Current Page Parent" msgid "Current Page Parent"
msgstr "" msgstr ""
#: functions/theme-options.php:17 #: functions/theme-options.php:16
msgid "AlxMedia"
msgstr ""
#: functions/theme-options.php:18
msgid "View More Themes"
msgstr ""
#: functions/theme-options.php:23
msgid "Like This Theme?"
msgstr ""
#: functions/theme-options.php:26
msgid "Write a Review"
msgstr ""
#: functions/theme-options.php:35
msgid "Theme Options" msgid "Theme Options"
msgstr "" msgstr ""
#: functions/theme-options.php:24 #: functions/theme-options.php:42
msgid "General" msgid "General"
msgstr "" msgstr ""
#: functions/theme-options.php:29 #: functions/theme-options.php:47
msgid "Blog" msgid "Blog"
msgstr "" msgstr ""
#: functions/theme-options.php:49 #: functions/theme-options.php:67
msgid "Sidebars" msgid "Sidebars"
msgstr "" msgstr ""
#: functions/theme-options.php:54 #: functions/theme-options.php:72
msgid "Social Links" msgid "Social Links"
msgstr "" msgstr ""
#: functions/theme-options.php:59 #: functions/theme-options.php:77
msgid "Styling" msgid "Styling"
msgstr "" msgstr ""
#: functions/theme-options.php:70 #: functions/theme-options.php:88
msgid "Mobile Sidebar Content" msgid "Mobile Sidebar Content"
msgstr "" msgstr ""
#: functions/theme-options.php:71 #: functions/theme-options.php:89
msgid "Sidebar content on low-resolution mobile devices (320px)" msgid "Sidebar content on low-resolution mobile devices (320px)"
msgstr "" msgstr ""
#: functions/theme-options.php:79 #: functions/theme-options.php:97
msgid "Post Comments" msgid "Post Comments"
msgstr "" msgstr ""
#: functions/theme-options.php:80 #: functions/theme-options.php:98
msgid "Comments on posts" msgid "Comments on posts"
msgstr "" msgstr ""
#: functions/theme-options.php:88 #: functions/theme-options.php:106
msgid "Page Comments" msgid "Page Comments"
msgstr "" msgstr ""
#: functions/theme-options.php:89 #: functions/theme-options.php:107
msgid "Comments on pages" msgid "Comments on pages"
msgstr "" msgstr ""
#: functions/theme-options.php:97 #: functions/theme-options.php:115
msgid "Recommended Plugins" msgid "Recommended Plugins"
msgstr "" msgstr ""
#: functions/theme-options.php:98 #: functions/theme-options.php:116
msgid "Enable or disable the recommended plugins notice" msgid "Enable or disable the recommended plugins notice"
msgstr "" msgstr ""
#: functions/theme-options.php:106 #: functions/theme-options.php:124
msgid "Blog Layout" msgid "Blog Layout"
msgstr "" msgstr ""
#: functions/theme-options.php:110 #: functions/theme-options.php:128
msgid "Grid" msgid "Grid"
msgstr "" msgstr ""
#: functions/theme-options.php:111 #: functions/theme-options.php:129
msgid "List" msgid "List"
msgstr "" msgstr ""
#: functions/theme-options.php:118 #: functions/theme-options.php:136
msgid "Heading" msgid "Heading"
msgstr "" msgstr ""
#: functions/theme-options.php:119 #: functions/theme-options.php:137
msgid "Your blog heading" msgid "Your blog heading"
msgstr "" msgstr ""
#: functions/theme-options.php:127 #: functions/theme-options.php:145
msgid "Subheading" msgid "Subheading"
msgstr "" msgstr ""
#: functions/theme-options.php:128 #: functions/theme-options.php:146
msgid "Your blog subheading" msgid "Your blog subheading"
msgstr "" msgstr ""
#: functions/theme-options.php:136 #: functions/theme-options.php:154
msgid "Featured Title" msgid "Featured Title"
msgstr "" msgstr ""
#: functions/theme-options.php:137 #: functions/theme-options.php:155
msgid "Your home header text" msgid "Your home header text"
msgstr "" msgstr ""
#: functions/theme-options.php:145 #: functions/theme-options.php:163
msgid "Featured Post Count (Home)" msgid "Featured Post Count (Home)"
msgstr "" msgstr ""
#: functions/theme-options.php:146 #: functions/theme-options.php:164
msgid "" msgid ""
"Max number of featured posts to display on the homepage. Set it to 0 to " "Max number of featured posts to display on the homepage. Set it to 0 to "
"disable." "disable."
msgstr "" msgstr ""
#: functions/theme-options.php:159 #: functions/theme-options.php:177
msgid "Featured Post Count (Category)" msgid "Featured Post Count (Category)"
msgstr "" msgstr ""
#: functions/theme-options.php:160 #: functions/theme-options.php:178
msgid "" msgid ""
"Max number of featured posts to display on category pages. Set it to 0 to " "Max number of featured posts to display on category pages. Set it to 0 to "
"disable." "disable."
msgstr "" msgstr ""
#: functions/theme-options.php:173 #: functions/theme-options.php:191
msgid "Featured Category" msgid "Featured Category"
msgstr "" msgstr ""
#: functions/theme-options.php:174 #: functions/theme-options.php:192
msgid "" msgid ""
"By not selecting a category, it will show your latest post(s) from all " "By not selecting a category, it will show your latest post(s) from all "
"categories" "categories"
msgstr "" msgstr ""
#: functions/theme-options.php:178 #: functions/theme-options.php:196
msgid "Select a category" msgid "Select a category"
msgstr "" msgstr ""
#: functions/theme-options.php:184 #: functions/theme-options.php:202
msgid "Featured Posts" msgid "Featured Posts"
msgstr "" msgstr ""
#: functions/theme-options.php:185 #: functions/theme-options.php:203
msgid "" msgid ""
"To show featured posts in the slider AND the content below. Usually not " "To show featured posts in the slider AND the content below. Usually not "
"recommended." "recommended."
msgstr "" msgstr ""
#: functions/theme-options.php:193 #: functions/theme-options.php:211
msgid "Frontpage Widgets Top" msgid "Frontpage Widgets Top"
msgstr "" msgstr ""
#: functions/theme-options.php:194 functions/theme-options.php:203 #: functions/theme-options.php:212 functions/theme-options.php:221
msgid "2 columns of widgets" msgid "2 columns of widgets"
msgstr "" msgstr ""
#: functions/theme-options.php:202 #: functions/theme-options.php:220
msgid "Frontpage Widgets Bottom" msgid "Frontpage Widgets Bottom"
msgstr "" msgstr ""
#: functions/theme-options.php:211 #: functions/theme-options.php:229
msgid "Thumbnail Comment Count" msgid "Thumbnail Comment Count"
msgstr "" msgstr ""
#: functions/theme-options.php:212 #: functions/theme-options.php:230
msgid "Comment count on thumbnails" msgid "Comment count on thumbnails"
msgstr "" msgstr ""
#: functions/theme-options.php:220 #: functions/theme-options.php:238
msgid "Excerpt Length" msgid "Excerpt Length"
msgstr "" msgstr ""
#: functions/theme-options.php:221 #: functions/theme-options.php:239
msgid "Max number of words. Set it to 0 to disable." msgid "Max number of words. Set it to 0 to disable."
msgstr "" msgstr ""
#: functions/theme-options.php:234 #: functions/theme-options.php:252
msgid "Post Format Icons" msgid "Post Format Icons"
msgstr "" msgstr ""
#: functions/theme-options.php:235 functions/theme-options.php:244 #: functions/theme-options.php:253 functions/theme-options.php:262
msgid "Shown on post hover" msgid "Shown on post hover"
msgstr "" msgstr ""
#: functions/theme-options.php:243 #: functions/theme-options.php:261
msgid "Author Avatars" msgid "Author Avatars"
msgstr "" msgstr ""
#: functions/theme-options.php:252 #: functions/theme-options.php:270
msgid "Single - Author Bio" msgid "Single - Author Bio"
msgstr "" msgstr ""
#: functions/theme-options.php:253 #: functions/theme-options.php:271
msgid "Shows post author description, if it exists" msgid "Shows post author description, if it exists"
msgstr "" msgstr ""
#: functions/theme-options.php:261 #: functions/theme-options.php:279
msgid "Single - Related Posts" msgid "Single - Related Posts"
msgstr "" msgstr ""
#: functions/theme-options.php:262 #: functions/theme-options.php:280
msgid "Shows randomized related articles below the post" msgid "Shows randomized related articles below the post"
msgstr "" msgstr ""
#: functions/theme-options.php:266 functions/theme-options.php:280 #: functions/theme-options.php:284 functions/theme-options.php:298
msgid "Disable" msgid "Disable"
msgstr "" msgstr ""
#: functions/theme-options.php:267 #: functions/theme-options.php:285
msgid "Related by categories" msgid "Related by categories"
msgstr "" msgstr ""
#: functions/theme-options.php:268 #: functions/theme-options.php:286
msgid "Related by tags" msgid "Related by tags"
msgstr "" msgstr ""
#: functions/theme-options.php:275 #: functions/theme-options.php:293
msgid "Single - Post Navigation" msgid "Single - Post Navigation"
msgstr "" msgstr ""
#: functions/theme-options.php:276 #: functions/theme-options.php:294
msgid "Shows links to the next and previous article" msgid "Shows links to the next and previous article"
msgstr "" msgstr ""
#: functions/theme-options.php:281 #: functions/theme-options.php:299
msgid "Sidebar Primary" msgid "Sidebar Primary"
msgstr "" msgstr ""
#: functions/theme-options.php:282 #: functions/theme-options.php:300
msgid "Below content" msgid "Below content"
msgstr "" msgstr ""
#: functions/theme-options.php:290 #: functions/theme-options.php:308
msgid "Header widget ads area" msgid "Header widget ads area"
msgstr "" msgstr ""
#: functions/theme-options.php:298 #: functions/theme-options.php:316
msgid "Header Search" msgid "Header Search"
msgstr "" msgstr ""
#: functions/theme-options.php:299 #: functions/theme-options.php:317
msgid "Header search button" msgid "Header search button"
msgstr "" msgstr ""
#: functions/theme-options.php:307 #: functions/theme-options.php:325
msgid "Header Social Links" msgid "Header Social Links"
msgstr "" msgstr ""
#: functions/theme-options.php:308 functions/theme-options.php:342 #: functions/theme-options.php:326 functions/theme-options.php:360
msgid "Social link icon buttons" msgid "Social link icon buttons"
msgstr "" msgstr ""
#: functions/theme-options.php:317 #: functions/theme-options.php:335
msgid "Footer widget ads area" msgid "Footer widget ads area"
msgstr "" msgstr ""
#: functions/theme-options.php:325 #: functions/theme-options.php:343
msgid "Footer Widget Columns" msgid "Footer Widget Columns"
msgstr "" msgstr ""
#: functions/theme-options.php:326 #: functions/theme-options.php:344
msgid "Select columns to enable footer widgets. Recommended number: 3" msgid "Select columns to enable footer widgets. Recommended number: 3"
msgstr "" msgstr ""
#: functions/theme-options.php:341 #: functions/theme-options.php:359
msgid "Footer Social Links" msgid "Footer Social Links"
msgstr "" msgstr ""
#: functions/theme-options.php:350 #: functions/theme-options.php:368
msgid "Footer Logo" msgid "Footer Logo"
msgstr "" msgstr ""
#: functions/theme-options.php:351 #: functions/theme-options.php:369
msgid "Upload your custom logo image" msgid "Upload your custom logo image"
msgstr "" msgstr ""
#: functions/theme-options.php:359 #: functions/theme-options.php:377
msgid "Footer Copyright" msgid "Footer Copyright"
msgstr "" msgstr ""
#: functions/theme-options.php:360 #: functions/theme-options.php:378
msgid "Replace the footer copyright text" msgid "Replace the footer copyright text"
msgstr "" msgstr ""
#: functions/theme-options.php:368 #: functions/theme-options.php:386
msgid "Footer Credit" msgid "Footer Credit"
msgstr "" msgstr ""
#: functions/theme-options.php:369 #: functions/theme-options.php:387
msgid "Footer credit text" msgid "Footer credit text"
msgstr "" msgstr ""
#: functions/theme-options.php:377 #: functions/theme-options.php:395
msgid "Global Layout" msgid "Global Layout"
msgstr "" msgstr ""
#: functions/theme-options.php:378 #: functions/theme-options.php:396
msgid "Other layouts will override this option if they are set" msgid "Other layouts will override this option if they are set"
msgstr "" msgstr ""
#: functions/theme-options.php:391 functions/theme-options.php:510 #: functions/theme-options.php:409 functions/theme-options.php:528
msgid "Home" msgid "Home"
msgstr "" msgstr ""
#: functions/theme-options.php:392 #: functions/theme-options.php:410
msgid "(is_home) Posts homepage layout" msgid "(is_home) Posts homepage layout"
msgstr "" msgstr ""
#: functions/theme-options.php:406 functions/theme-options.php:520 #: functions/theme-options.php:424 functions/theme-options.php:538
msgid "Single" msgid "Single"
msgstr "" msgstr ""
#: functions/theme-options.php:407 #: functions/theme-options.php:425
msgid "" msgid ""
"(is_single) Single post layout - If a post has a set layout, it will " "(is_single) Single post layout - If a post has a set layout, it will "
"override this." "override this."
msgstr "" msgstr ""
#: functions/theme-options.php:421 functions/theme-options.php:530 #: functions/theme-options.php:439 functions/theme-options.php:548
msgid "Archive" msgid "Archive"
msgstr "" msgstr ""
#: functions/theme-options.php:422 #: functions/theme-options.php:440
msgid "(is_archive) Category, date, tag and author archive layout" msgid "(is_archive) Category, date, tag and author archive layout"
msgstr "" msgstr ""
#: functions/theme-options.php:436 functions/theme-options.php:540 #: functions/theme-options.php:454 functions/theme-options.php:558
msgid "Archive - Category" msgid "Archive - Category"
msgstr "" msgstr ""
#: functions/theme-options.php:437 #: functions/theme-options.php:455
msgid "(is_category) Category archive layout" msgid "(is_category) Category archive layout"
msgstr "" msgstr ""
#: functions/theme-options.php:451 functions/theme-options.php:550 #: functions/theme-options.php:469 functions/theme-options.php:568
msgid "Search" msgid "Search"
msgstr "" msgstr ""
#: functions/theme-options.php:452 #: functions/theme-options.php:470
msgid "(is_search) Search page layout" msgid "(is_search) Search page layout"
msgstr "" msgstr ""
#: functions/theme-options.php:466 functions/theme-options.php:560 #: functions/theme-options.php:484 functions/theme-options.php:578
msgid "Error 404" msgid "Error 404"
msgstr "" msgstr ""
#: functions/theme-options.php:467 #: functions/theme-options.php:485
msgid "(is_404) Error 404 page layout" msgid "(is_404) Error 404 page layout"
msgstr "" msgstr ""
#: functions/theme-options.php:481 functions/theme-options.php:570 #: functions/theme-options.php:499 functions/theme-options.php:588
msgid "Default Page" msgid "Default Page"
msgstr "" msgstr ""
#: functions/theme-options.php:482 #: functions/theme-options.php:500
msgid "" msgid ""
"(is_page) Default page layout - If a page has a set layout, it will override " "(is_page) Default page layout - If a page has a set layout, it will override "
"this." "this."
msgstr "" msgstr ""
#: functions/theme-options.php:511 #: functions/theme-options.php:529
msgid "(is_home) Primary" msgid "(is_home) Primary"
msgstr "" msgstr ""
#: functions/theme-options.php:521 #: functions/theme-options.php:539
msgid "" msgid ""
"(is_single) Primary - If a single post has a unique sidebar, it will " "(is_single) Primary - If a single post has a unique sidebar, it will "
"override this." "override this."
msgstr "" msgstr ""
#: functions/theme-options.php:531 #: functions/theme-options.php:549
msgid "(is_archive) Primary" msgid "(is_archive) Primary"
msgstr "" msgstr ""
#: functions/theme-options.php:541 #: functions/theme-options.php:559
msgid "(is_category) Primary" msgid "(is_category) Primary"
msgstr "" msgstr ""
#: functions/theme-options.php:551 #: functions/theme-options.php:569
msgid "(is_search) Primary" msgid "(is_search) Primary"
msgstr "" msgstr ""
#: functions/theme-options.php:561 #: functions/theme-options.php:579
msgid "(is_404) Primary" msgid "(is_404) Primary"
msgstr "" msgstr ""
#: functions/theme-options.php:571 #: functions/theme-options.php:589
msgid "" msgid ""
"(is_page) Primary - If a page has a unique sidebar, it will override this." "(is_page) Primary - If a page has a unique sidebar, it will override this."
msgstr "" msgstr ""
#: functions/theme-options.php:584 #: functions/theme-options.php:602
msgid "Create Social Links" msgid "Create Social Links"
msgstr "" msgstr ""
#: functions/theme-options.php:585 #: functions/theme-options.php:603
msgid "Create and organize your social links" msgid "Create and organize your social links"
msgstr "" msgstr ""
#: functions/theme-options.php:587 #: functions/theme-options.php:605
msgid "Font Awesome names:" msgid "Font Awesome names:"
msgstr "" msgstr ""
#: functions/theme-options.php:587 functions/theme-options.php:604 #: functions/theme-options.php:605 functions/theme-options.php:622
msgid "View All" msgid "View All"
msgstr "" msgstr ""
#: functions/theme-options.php:590 #: functions/theme-options.php:608
msgid "social link" msgid "social link"
msgstr "" msgstr ""
#: functions/theme-options.php:597 #: functions/theme-options.php:615
msgid "Title" msgid "Title"
msgstr "" msgstr ""
#: functions/theme-options.php:598 #: functions/theme-options.php:616
msgid "Ex: Facebook" msgid "Ex: Facebook"
msgstr "" msgstr ""
#: functions/theme-options.php:603 #: functions/theme-options.php:621
msgid "Icon Name" msgid "Icon Name"
msgstr "" msgstr ""
#: functions/theme-options.php:604 #: functions/theme-options.php:622
msgid "Font Awesome icons. Ex: fa-facebook " msgid "Font Awesome icons. Ex: fa-facebook "
msgstr "" msgstr ""
#: functions/theme-options.php:609 inc/page-title.php:69 #: functions/theme-options.php:627 inc/page-title.php:69
msgid "Link" msgid "Link"
msgstr "" msgstr ""
#: functions/theme-options.php:610 #: functions/theme-options.php:628
msgid "Enter the full url for your icon button" msgid "Enter the full url for your icon button"
msgstr "" msgstr ""
#: functions/theme-options.php:615 #: functions/theme-options.php:633
msgid "Icon Color" msgid "Icon Color"
msgstr "" msgstr ""
#: functions/theme-options.php:616 #: functions/theme-options.php:634
msgid "Set a unique color for your icon (optional)" msgid "Set a unique color for your icon (optional)"
msgstr "" msgstr ""
#: functions/theme-options.php:621 #: functions/theme-options.php:639
msgid "Open in new window" msgid "Open in new window"
msgstr "" msgstr ""
#: functions/theme-options.php:630 #: functions/theme-options.php:648
msgid "Dynamic Styles" msgid "Dynamic Styles"
msgstr "" msgstr ""
#: functions/theme-options.php:631 #: functions/theme-options.php:649
msgid "Turn on to use the styling options below" msgid "Turn on to use the styling options below"
msgstr "" msgstr ""
#: functions/theme-options.php:639 #: functions/theme-options.php:657
msgid "Boxed Layout" msgid "Boxed Layout"
msgstr "" msgstr ""
#: functions/theme-options.php:640 #: functions/theme-options.php:658
msgid "Use a boxed layout" msgid "Use a boxed layout"
msgstr "" msgstr ""
#: functions/theme-options.php:648 #: functions/theme-options.php:666
msgid "Font" msgid "Font"
msgstr "" msgstr ""
#: functions/theme-options.php:649 #: functions/theme-options.php:667
msgid "Select font for the theme" msgid "Select font for the theme"
msgstr "" msgstr ""
#: functions/theme-options.php:653 #: functions/theme-options.php:671
msgid "Titillium Web, Latin (Self-hosted)" msgid "Titillium Web, Latin (Self-hosted)"
msgstr "" msgstr ""
#: functions/theme-options.php:654 #: functions/theme-options.php:672
msgid "Titillium Web, Latin-Ext" msgid "Titillium Web, Latin-Ext"
msgstr "" msgstr ""
#: functions/theme-options.php:655 #: functions/theme-options.php:673
msgid "Droid Serif, Latin" msgid "Droid Serif, Latin"
msgstr "" msgstr ""
#: functions/theme-options.php:656 #: functions/theme-options.php:674
msgid "Source Sans Pro, Latin-Ext" msgid "Source Sans Pro, Latin-Ext"
msgstr "" msgstr ""
#: functions/theme-options.php:657 #: functions/theme-options.php:675
msgid "Lato, Latin" msgid "Lato, Latin"
msgstr "" msgstr ""
#: functions/theme-options.php:658 #: functions/theme-options.php:676
msgid "Raleway, Latin" msgid "Raleway, Latin"
msgstr "" msgstr ""
#: functions/theme-options.php:659 #: functions/theme-options.php:677
msgid "Ubuntu, Latin-Ext" msgid "Ubuntu, Latin-Ext"
msgstr "" msgstr ""
#: functions/theme-options.php:660 #: functions/theme-options.php:678
msgid "Ubuntu, Latin / Cyrillic-Ext" msgid "Ubuntu, Latin / Cyrillic-Ext"
msgstr "" msgstr ""
#: functions/theme-options.php:661 #: functions/theme-options.php:679
msgid "Roboto, Latin-Ext" msgid "Roboto, Latin-Ext"
msgstr "" msgstr ""
#: functions/theme-options.php:662 #: functions/theme-options.php:680
msgid "Roboto, Latin / Cyrillic-Ext" msgid "Roboto, Latin / Cyrillic-Ext"
msgstr "" msgstr ""
#: functions/theme-options.php:663 #: functions/theme-options.php:681
msgid "Roboto Condensed, Latin-Ext" msgid "Roboto Condensed, Latin-Ext"
msgstr "" msgstr ""
#: functions/theme-options.php:664 #: functions/theme-options.php:682
msgid "Roboto Condensed, Latin / Cyrillic-Ext" msgid "Roboto Condensed, Latin / Cyrillic-Ext"
msgstr "" msgstr ""
#: functions/theme-options.php:665 #: functions/theme-options.php:683
msgid "Roboto Slab, Latin-Ext" msgid "Roboto Slab, Latin-Ext"
msgstr "" msgstr ""
#: functions/theme-options.php:666 #: functions/theme-options.php:684
msgid "Roboto Slab, Latin / Cyrillic-Ext" msgid "Roboto Slab, Latin / Cyrillic-Ext"
msgstr "" msgstr ""
#: functions/theme-options.php:667 #: functions/theme-options.php:685
msgid "Playfair Display, Latin-Ext" msgid "Playfair Display, Latin-Ext"
msgstr "" msgstr ""
#: functions/theme-options.php:668 #: functions/theme-options.php:686
msgid "Playfair Display, Latin / Cyrillic" msgid "Playfair Display, Latin / Cyrillic"
msgstr "" msgstr ""
#: functions/theme-options.php:669 #: functions/theme-options.php:687
msgid "Open Sans, Latin-Ext" msgid "Open Sans, Latin-Ext"
msgstr "" msgstr ""
#: functions/theme-options.php:670 #: functions/theme-options.php:688
msgid "Open Sans, Latin / Cyrillic-Ext" msgid "Open Sans, Latin / Cyrillic-Ext"
msgstr "" msgstr ""
#: functions/theme-options.php:671 #: functions/theme-options.php:689
msgid "PT Serif, Latin-Ext" msgid "PT Serif, Latin-Ext"
msgstr "" msgstr ""
#: functions/theme-options.php:672 #: functions/theme-options.php:690
msgid "PT Serif, Latin / Cyrillic-Ext" msgid "PT Serif, Latin / Cyrillic-Ext"
msgstr "" msgstr ""
#: functions/theme-options.php:673 #: functions/theme-options.php:691
msgid "Arial" msgid "Arial"
msgstr "" msgstr ""
#: functions/theme-options.php:674 #: functions/theme-options.php:692
msgid "Georgia" msgid "Georgia"
msgstr "" msgstr ""
#: functions/theme-options.php:675 #: functions/theme-options.php:693
msgid "Verdana" msgid "Verdana"
msgstr "" msgstr ""
#: functions/theme-options.php:676 #: functions/theme-options.php:694
msgid "Tahoma" msgid "Tahoma"
msgstr "" msgstr ""
#: functions/theme-options.php:683 #: functions/theme-options.php:701
msgid "Website Max-width" msgid "Website Max-width"
msgstr "" msgstr ""
#: functions/theme-options.php:684 #: functions/theme-options.php:702
msgid "Max-width of the container" msgid "Max-width of the container"
msgstr "" msgstr ""
#: functions/theme-options.php:697 #: functions/theme-options.php:715
msgid "Featured Section Height" msgid "Featured Section Height"
msgstr "" msgstr ""
#: functions/theme-options.php:698 #: functions/theme-options.php:716
msgid "Height of the featured posts section" msgid "Height of the featured posts section"
msgstr "" msgstr ""
#: functions/theme-options.php:711 #: functions/theme-options.php:729
msgid "Primary Color" msgid "Primary Color"
msgstr "" msgstr ""
#: functions/theme-options.php:719 #: functions/theme-options.php:737
msgid "Mobile Menu Color" msgid "Mobile Menu Color"
msgstr "" msgstr ""
#: functions/theme-options.php:727 #: functions/theme-options.php:745
msgid "Topbar Menu Color" msgid "Topbar Menu Color"
msgstr "" msgstr ""
#: functions/theme-options.php:735 #: functions/theme-options.php:753
msgid "Header Border Line" msgid "Header Border Line"
msgstr "" msgstr ""
#: functions/theme-options.php:743 #: functions/theme-options.php:761
msgid "Header Border Line Height" msgid "Header Border Line Height"
msgstr "" msgstr ""
#: functions/theme-options.php:744 #: functions/theme-options.php:762
msgid "Set to 0 to disable" msgid "Set to 0 to disable"
msgstr "" msgstr ""
#: functions/theme-options.php:757 #: functions/theme-options.php:775
msgid "Header Color" msgid "Header Color"
msgstr "" msgstr ""
#: functions/theme-options.php:765 #: functions/theme-options.php:783
msgid "Header Logo Image Max-height" msgid "Header Logo Image Max-height"
msgstr "" msgstr ""
#: functions/theme-options.php:766 functions/theme-options.php:810 #: functions/theme-options.php:784 functions/theme-options.php:828
msgid "" msgid ""
"Your logo image should have the double height of this to be high resolution" "Your logo image should have the double height of this to be high resolution"
msgstr "" msgstr ""
#: functions/theme-options.php:779 #: functions/theme-options.php:797
msgid "Site Description Top Margin" msgid "Site Description Top Margin"
msgstr "" msgstr ""
#: functions/theme-options.php:780 #: functions/theme-options.php:798
msgid "The distance to the top for your site description" msgid "The distance to the top for your site description"
msgstr "" msgstr ""
#: functions/theme-options.php:793 #: functions/theme-options.php:811
msgid "Footer Menu Color" msgid "Footer Menu Color"
msgstr "" msgstr ""
#: functions/theme-options.php:801 #: functions/theme-options.php:819
msgid "Footer Color" msgid "Footer Color"
msgstr "" msgstr ""
#: functions/theme-options.php:809 #: functions/theme-options.php:827
msgid "Footer Logo Image Max-height" msgid "Footer Logo Image Max-height"
msgstr "" msgstr ""
#: functions/theme-options.php:823 #: functions/theme-options.php:841
msgid "Image Border Radius" msgid "Image Border Radius"
msgstr "" msgstr ""
#: functions/theme-options.php:824 #: functions/theme-options.php:842
msgid "Give your thumbnails and layout images rounded corners" msgid "Give your thumbnails and layout images rounded corners"
msgstr "" msgstr ""

View file

@ -4,11 +4,11 @@ Requires at least: 5.0
Tested up to: 6.0 Tested up to: 6.0
License: GPLv3 License: GPLv3
License URI: http://www.gnu.org/licenses/gpl-3.0.html License URI: http://www.gnu.org/licenses/gpl-3.0.html
Tags: blog, one-column, two-columns, right-sidebar, left-sidebar, custom-colors, custom-menu, featured-images, flexible-header, full-width-template, post-formats, sticky-post, theme-options, threaded-comments, translation-ready, custom-logo, custom-header, custom-background Tags: blog, one-column, two-columns, right-sidebar, left-sidebar, custom-colors, custom-menu, featured-images, flexible-header, full-width-template, post-formats, sticky-post, theme-options, threaded-comments, translation-ready, custom-logo, custom-header, custom-background, news, entertainment, footer-widgets
== Description == == Description ==
Agnar is a flexible theme for magazines and blogs. What makes it special is how well it scales all the way up to 1920px width and fill the entire screen beautifully, with a wall of visual posts. Agnar is a flexible theme for magazines and blogs. It comes packed with plenty of options to make it easy for you to customize it as you want. Demo: http://demo.alx.media/x/?theme=Agnar
== Installation == == Installation ==
@ -67,8 +67,27 @@ Screenshot images
License: CC0 1.0 Universal (CC0 1.0) License: CC0 1.0 Universal (CC0 1.0)
Source: https://stocksnap.io Source: https://stocksnap.io
Header images
1. https://stocksnap.io/photo/TNK87N7464 - CC0 1.0 Universal (CC0 1.0)
2. https://stocksnap.io/photo/SA20YXQRC4 - CC0 1.0 Universal (CC0 1.0)
3. https://stocksnap.io/photo/RKS9M8PY0X - CC0 1.0 Universal (CC0 1.0)
4. https://stocksnap.io/photo/EPNK1H7KBP - CC0 1.0 Universal (CC0 1.0)
Content images
1. https://stocksnap.io/photo/23H66MTGXA - CC0 1.0 Universal (CC0 1.0)
2. https://stocksnap.io/photo/Y01VDYAX63 - CC0 1.0 Universal (CC0 1.0)
3. https://stocksnap.io/photo/DGYLV0KMUY - CC0 1.0 Universal (CC0 1.0)
Sidebar images
1. https://stocksnap.io/photo/23H66MTGXA - CC0 1.0 Universal (CC0 1.0)
2. https://stocksnap.io/photo/Y01VDYAX63 - CC0 1.0 Universal (CC0 1.0)
3. https://stocksnap.io/photo/DGYLV0KMUY - CC0 1.0 Universal (CC0 1.0)
== Changelog == == Changelog ==
= 2.3.2 - 2022-08-26 =
* Changed theme from premium to free
= 2.3.1 - 2022-05-30 = = 2.3.1 - 2022-05-30 =
* Fixed ol and ul box-sizing content-box styling for WP 6.0 * Fixed ol and ul box-sizing content-box styling for WP 6.0
* Updated to Kirki 4.0.24 * Updated to Kirki 4.0.24

Binary file not shown.

Before

Width:  |  Height:  |  Size: 599 KiB

After

Width:  |  Height:  |  Size: 572 KiB

Before After
Before After

View file

@ -21,11 +21,11 @@
<?php if ( have_posts() ) : ?> <?php if ( have_posts() ) : ?>
<?php if ( get_theme_mod('blog-layout','blog-grid') == 'blog-grid' ) : ?> <?php if ( get_theme_mod('blog-layout','blog-grid') == 'blog-grid' ) : ?>
<ul class="flex-contain group"> <ul class="grid-contain group">
<?php while ( have_posts() ): the_post(); ?> <?php while ( have_posts() ): the_post(); ?>
<?php get_template_part('content'); ?> <?php get_template_part('content'); ?>
<?php endwhile; ?> <?php endwhile; ?>
</ul><!--/.flex-contain--> </ul><!--/.grid-contain-->
<?php elseif ( get_theme_mod('blog-layout','blog-grid') == 'blog-list' ) : ?> <?php elseif ( get_theme_mod('blog-layout','blog-grid') == 'blog-list' ) : ?>
<ul class="flex-list group"> <ul class="flex-list group">
<?php while ( have_posts() ): the_post(); ?> <?php while ( have_posts() ): the_post(); ?>

View file

@ -1,14 +1,14 @@
/* /*
Theme Name: Agnar Theme Name: Agnar
Theme URI: http://alx.media/themes/agnar/ Theme URI: http://alx.media/themes/agnar/
Version: 2.3.1 Version: 2.3.2
Requires at least: 5.0 Requires at least: 5.0
Requires PHP: 5.6 Requires PHP: 5.6
Tested up to: 6.0 Tested up to: 6.0
Description: <a href="http://alx.media/themes/agnar/">Agnar</a> is a flexible theme for magazines and blogs. What makes it special is how well it scales all the way up to 1920px width and fill the entire screen beautifully, with a wall of visual posts. Description: <a href="http://alx.media/themes/agnar/">Agnar</a> is a flexible theme for magazines and blogs. It comes packed with plenty of options to make it easy for you to customize it as you want. Demo: http://demo.alx.media/x/?theme=Agnar
Author: Alexander Agnarson Author: Alexander Agnarson
Author URI: http://alx.media Author URI: http://alx.media
Tags: blog, one-column, two-columns, right-sidebar, left-sidebar, custom-colors, custom-menu, featured-images, flexible-header, full-width-template, post-formats, sticky-post, theme-options, threaded-comments, translation-ready, custom-logo, custom-header, custom-background Tags: blog, one-column, two-columns, right-sidebar, left-sidebar, custom-colors, custom-menu, featured-images, flexible-header, full-width-template, post-formats, sticky-post, theme-options, threaded-comments, translation-ready, custom-logo, custom-header, custom-background, news, entertainment, footer-widgets
Text Domain: agnar Text Domain: agnar
Copyright: (c) 2018 Alexander "Alx" Agnarson Copyright: (c) 2018 Alexander "Alx" Agnarson
@ -244,6 +244,7 @@ input, textarea, button, select, label { font-family: inherit; }
/* base : entry /* base : entry
/* ------------------------------------ */ /* ------------------------------------ */
.entry { font-size: 17px; line-height: 1.6em; } .entry { font-size: 17px; line-height: 1.6em; }
.entry a { text-decoration: underline; }
.entry p, .entry p,
.entry dd { margin-bottom: 1em; } .entry dd { margin-bottom: 1em; }
.entry dt { color: #222; } .entry dt { color: #222; }
@ -369,7 +370,7 @@ h1, h2, h3, h4, h5, h6 { color: #000; font-weight: 600; -ms-word-wrap: break-wor
/* ------------------------------------ */ /* ------------------------------------ */
#wrapper { background: #f5f5f5; min-width: 1024px; height: 100%; margin: 0 auto; } #wrapper { background: #f5f5f5; min-width: 1024px; height: 100%; margin: 0 auto; }
.container { position: relative; } .container { position: relative; }
.container-inner { margin: 0 auto; max-width: 1920px; } .container-inner { margin: 0 auto; max-width: 1400px; }
.pad { padding: 30px; } .pad { padding: 30px; }
/* boxed */ /* boxed */
@ -521,6 +522,7 @@ border-radius: 3px; }
.toggle-search #svg-close { display: none; } .toggle-search #svg-close { display: none; }
.toggle-search.active #svg-search { display: none; } .toggle-search.active #svg-search { display: none; }
.toggle-search.active #svg-close { display: block; } .toggle-search.active #svg-close { display: block; }
.toggle-search:focus { box-shadow: inset 0 0 20px rgba(0,0,0,0.06); }
/* ------------------------------------------------------------------------- * /* ------------------------------------------------------------------------- *
@ -623,6 +625,8 @@ border-radius: 3px; }
.nav-menu.mobile.toggled > div > ul.menu ul.sub-menu { visibility: hidden; transition: all 0.3s ease; } .nav-menu.mobile.toggled > div > ul.menu ul.sub-menu { visibility: hidden; transition: all 0.3s ease; }
.nav-menu.mobile.toggled > div > ul.menu, .nav-menu.mobile.toggled > div > ul.menu,
.nav-menu.mobile.toggled > div > ul.menu ul.sub-menu.active { visibility: visible; } .nav-menu.mobile.toggled > div > ul.menu ul.sub-menu.active { visibility: visible; }
.nav-menu.mobile button:focus,
.menu-toggle:focus { background: rgba(0,0,0,0.04); }
/* menu styling */ /* menu styling */
.nav-menu a { color: #fff; } .nav-menu a { color: #fff; }
@ -926,6 +930,7 @@ border-radius: 0 0 3px 3px; }
/* post : grid /* post : grid
/* ------------------------------------ */ /* ------------------------------------ */
.grid-contain { display: grid; grid-template-columns: repeat(auto-fill,minmax(300px,1fr)); gap: 0; }
.flex-contain { display: flex; flex: 1 1 auto; flex-wrap: wrap; } .flex-contain { display: flex; flex: 1 1 auto; flex-wrap: wrap; }
.flex-item { background: #fff; position: relative; border: 1px solid #ddd; flex: 1 1 240px; min-width: 240px; margin: 10px; transition: all .3s ease; } .flex-item { background: #fff; position: relative; border: 1px solid #ddd; flex: 1 1 240px; min-width: 240px; margin: 10px; transition: all .3s ease; }
.flex-item:hover { box-shadow: 0 10px 10px rgba(0,0,0,0.1), 0 2px 2px rgba(0,0,0,0.1); border-color: #ccc; } .flex-item:hover { box-shadow: 0 10px 10px rgba(0,0,0,0.1), 0 2px 2px rgba(0,0,0,0.1); border-color: #ccc; }
@ -1725,6 +1730,6 @@ html[xmlns] .slides { display: block; }
/* ------------------------------------------------------------------------- */ /* ------------------------------------------------------------------------- */
/* Text meant only for screen readers. */ /* Text meant only for screen readers. */
.screen-reader-text{ border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute!important; width: 1px; word-wrap: normal!important; } .screen-reader-text{ border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute!important; width: 1px; word-wrap: normal!important; }
.screen-reader-text:focus { background-color: #fff; border-radius: 3px; box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.1); clip: auto!important; clip-path: none; color: #333; display: block; font-size: 14px; font-size: 0.875rem; font-weight: bold; height: auto; right: 5px; line-height: normal; padding: 15px 23px 14px; text-decoration: none; top: 5px; width: auto; z-index: 100000; } .screen-reader-text:focus { background-color: #fff; border-radius: 3px; box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.1); clip: auto!important; clip-path: none; color: #333; display: block; font-size: 14px; font-size: 0.875rem; font-weight: bold; height: auto; left: auto; right: 5px; line-height: normal; padding: 15px 23px 14px; text-decoration: none; top: 5px; width: auto; z-index: 100000; }
/* Do not show the outline on the skip link target. */ /* Do not show the outline on the skip link target. */
#page[tabindex="-1"]:focus{ outline: 0; } #page[tabindex="-1"]:focus{ outline: 0; }