Skip to content

Commit

Permalink
Merge branch 'develop' into dependabot/npm_and_yarn/cypress/request-a…
Browse files Browse the repository at this point in the history
…nd-cypress-3.0.0
  • Loading branch information
dkotter committed Oct 13, 2023
2 parents a7f1ce0 + 681a2e1 commit 6cf7fac
Show file tree
Hide file tree
Showing 4 changed files with 244 additions and 161 deletions.
7 changes: 5 additions & 2 deletions .github/workflows/php-compatibility.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,5 +29,8 @@ jobs:
- name: Install dependencies
run: composer install

- name: Run PHP Compatibility
run: vendor/bin/phpcs insert-special-characters.php --standard=PHPCompatibilityWP --extensions=php --runtime-set testVersion 7.4-
- name: Run PHP Compatibility on all files.
run: vendor/bin/phpcs inc --standard=PHPCompatibilityWP --extensions=php --runtime-set testVersion 7.4-

- name: Run PHP Compatibility on main file.
run: vendor/bin/phpcs insert-special-characters.php --standard=PHPCompatibilityWP --extensions=php --runtime-set testVersion 5.6-
173 changes: 173 additions & 0 deletions inc/plugin.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,173 @@
<?php
/**
* Registers JS and CSS assets.
*
* @package insert-special-characters
*/

namespace InsertSpecialCharacters;

/**
* Registers JS and CSS assets.
*/
function register_assets() {
$asset_data_file = trailingslashit( ISC_PLUGIN_PATH ) . 'build/index.asset.php';

if ( ! file_exists( $asset_data_file ) ) {
return;
}

$script_data = include $asset_data_file;

wp_register_script(
'insert-special-characters',
ISC_PLUGIN_URL . 'build/index.js',
$script_data['dependencies'],
$script_data['version'],
true
);

wp_register_style(
'insert-special-characters-css',
ISC_PLUGIN_URL . 'build/index.css',
array(),
$script_data['version']
);

wp_set_script_translations( 'insert-special-characters', 'insert-special-characters', ISC_PLUGIN_PATH . 'languages' );
}

add_action( 'init', __NAMESPACE__ . '\register_assets' );


/**
* Enqueue the admin JavaScript assets.
*/
function gcm_block_enqueue_scripts() {

wp_enqueue_script( 'insert-special-characters' );

wp_enqueue_style( 'insert-special-characters-css' );

wp_add_inline_script(
'insert-special-characters',
sprintf(
'var tenupIscVars = window.tenupIscVars || {}; tenupIscVars = %1$s',
wp_json_encode(
array(
'most_read_palette' => get_most_used_palette_setting(),
)
)
)
);
}
add_action( 'enqueue_block_editor_assets', __NAMESPACE__ . '\gcm_block_enqueue_scripts' );

/**
* Registers settings fields.
*/
function register_settings_fields() {
register_setting(
'writing',
'tenup_isc_most_read_palette',
array(
'type' => 'boolean',
'show_in_rest' => true,
'default' => false,
)
);

add_settings_section(
'tenup_isc_writing_section',
esc_html__( 'Insert Special Characters', 'insert-special-characters' ),
null,
'writing'
);

add_settings_field(
'tenup_isc_most_read_palette',
esc_html__( 'Most used characters palette', 'insert-special-characters' ),
__NAMESPACE__ . '\render_isc_writing_setting',
'writing',
'tenup_isc_writing_section',
array(
'label_for' => 'tenup_isc_most_read_palette',
)
);
}
add_action( 'admin_init', __NAMESPACE__ . '\register_settings_fields' );

/**
* Renders settings fields.
*/
function render_isc_writing_setting() {
$option = get_most_used_palette_setting();
?>
<p>
<label for="tenup_isc_most_read_palette">
<input
type="checkbox"
name="tenup_isc_most_read_palette"
id="tenup_isc_most_read_palette"
<?php checked( $option, true, true ); ?>
>
<?php esc_html_e( 'Check this to enable the most used character palette.', 'insert-special-characters' ); ?>
</label>
</p>

<?php if ( $option ) : ?>
<p>
<button class="button secondary" id="isc_reset_palette" type="button" style="margin-top: 16px;">
<?php esc_html_e( 'Clear palette', 'insert-special-characters' ); ?>
</button>
&nbsp;
<?php esc_html_e( 'Press this to clear palette data.', 'insert-special-characters' ); ?>
</p>
<?php
endif;
}

/**
* Helper function to get most used character palette setting.
*
* @return boolean
*/
function get_most_used_palette_setting() {
return 'on' === get_option( 'tenup_isc_most_read_palette' );
}

/**
* Loads admin scripts.
*
* @param string $hook The current admin page.
*/
function load_admin_scripts( $hook ) {
if ( 'options-writing.php' !== $hook ) {
return;
}

$asset_data_file = trailingslashit( ISC_PLUGIN_PATH ) . 'build/admin.asset.php';

if ( ! file_exists( $asset_data_file ) ) {
return;
}

$script_data = include $asset_data_file;

wp_enqueue_script(
'insert-special-characters-admin-js',
ISC_PLUGIN_URL . 'build/admin.js',
$script_data['dependencies'],
$script_data['version'],
true
);

wp_localize_script(
'insert-special-characters-admin-js',
'tenupIscAdminVars',
array(
'palette_deleted_message' => __( 'Palette cleared', 'insert-special-characters' ),
)
);
}
add_action( 'admin_enqueue_scripts', __NAMESPACE__ . '\load_admin_scripts' );
193 changes: 42 additions & 151 deletions insert-special-characters.php
Original file line number Diff line number Diff line change
Expand Up @@ -17,167 +17,58 @@

namespace InsertSpecialCharacters;

/**
* Registers JS and CSS assets.
*/
function register_assets() {
$asset_data_file = trailingslashit( plugin_dir_path( __FILE__ ) ) . 'build/index.asset.php';

if ( ! file_exists( $asset_data_file ) ) {
return;
}

$script_data = include $asset_data_file;

wp_register_script(
'insert-special-characters',
plugin_dir_url( __FILE__ ) . 'build/index.js',
$script_data['dependencies'],
$script_data['version'],
true
);

wp_register_style(
'insert-special-characters-css',
plugin_dir_url( __FILE__ ) . 'build/index.css',
array(),
$script_data['version']
);

wp_set_script_translations( 'insert-special-characters', 'insert-special-characters', plugin_dir_path( __FILE__ ) . 'languages' );
}

add_action( 'init', __NAMESPACE__ . '\register_assets' );

define( 'ISC_PLUGIN_PATH', plugin_dir_path( __FILE__ ) );
define( 'ISC_PLUGIN_URL', plugin_dir_url( __FILE__ ) );

/**
* Enqueue the admin JavaScript assets.
*/
function gcm_block_enqueue_scripts() {

wp_enqueue_script( 'insert-special-characters' );

wp_enqueue_style( 'insert-special-characters-css' );

wp_add_inline_script(
'insert-special-characters',
sprintf(
'var tenupIscVars = window.tenupIscVars || {}; tenupIscVars = %1$s',
wp_json_encode(
array(
'most_read_palette' => get_most_used_palette_setting(),
)
)
)
);
}
add_action( 'enqueue_block_editor_assets', __NAMESPACE__ . '\gcm_block_enqueue_scripts' );

/**
* Registers settings fields.
*/
function register_settings_fields() {
register_setting(
'writing',
'tenup_isc_most_read_palette',
array(
'type' => 'boolean',
'show_in_rest' => true,
'default' => false,
)
);

add_settings_section(
'tenup_isc_writing_section',
esc_html__( 'Insert Special Characters', 'insert-special-characters' ),
null,
'writing'
);

add_settings_field(
'tenup_isc_most_read_palette',
esc_html__( 'Most used characters palette', 'insert-special-characters' ),
__NAMESPACE__ . '\render_isc_writing_setting',
'writing',
'tenup_isc_writing_section',
array(
'label_for' => 'tenup_isc_most_read_palette',
)
);
}
add_action( 'admin_init', __NAMESPACE__ . '\register_settings_fields' );

/**
* Renders settings fields.
*/
function render_isc_writing_setting() {
$option = get_most_used_palette_setting();
?>
<p>
<label for="tenup_isc_most_read_palette">
<input
type="checkbox"
name="tenup_isc_most_read_palette"
id="tenup_isc_most_read_palette"
<?php checked( $option, true, true ); ?>
>
<?php esc_html_e( 'Check this to enable the most used character palette.', 'insert-special-characters' ); ?>
</label>
</p>

<?php if ( $option ) : ?>
<p>
<button class="button secondary" id="isc_reset_palette" type="button" style="margin-top: 16px;">
<?php esc_html_e( 'Clear palette', 'insert-special-characters' ); ?>
</button>
&nbsp;
<?php esc_html_e( 'Press this to clear palette data.', 'insert-special-characters' ); ?>
</p>
<?php
endif;
}

/**
* Helper function to get most used character palette setting.
* Get the minimum version of PHP required by this plugin.
*
* @since 1.0.8
*
* @return boolean
* @return string Minimum version required.
*/
function get_most_used_palette_setting() {
return 'on' === get_option( 'tenup_isc_most_read_palette' );
function minimum_php_requirement() {
return '7.4';
}

/**
* Loads admin scripts.
* Whether PHP installation meets the minimum requirements
*
* @since 1.0.8
*
* @param string $hook The current admin page.
* @return bool True if meets minimum requirements, false otherwise.
*/
function load_admin_scripts( $hook ) {
if ( 'options-writing.php' !== $hook ) {
return;
}

$asset_data_file = trailingslashit( plugin_dir_path( __FILE__ ) ) . 'build/admin.asset.php';

if ( ! file_exists( $asset_data_file ) ) {
return;
}

$script_data = include $asset_data_file;
function site_meets_php_requirements() {
return version_compare( phpversion(), minimum_php_requirement(), '>=' );
}

wp_enqueue_script(
'insert-special-characters-admin-js',
plugin_dir_url( __FILE__ ) . 'build/admin.js',
$script_data['dependencies'],
$script_data['version'],
true
// Try to load the plugin files, ensuring our PHP version is met first.
if ( ! site_meets_php_requirements() ) {
add_action(
'admin_notices',
function() {
?>
<div class="notice notice-error">
<p>
<?php
echo wp_kses_post(
sprintf(
/* translators: %s: Minimum required PHP version */
__( 'Insert Special Characters requires PHP version %s or later. Please upgrade PHP or disable the plugin.', 'insert-special-characters' ),
esc_html( minimum_php_requirement() )
)
);
?>
</p>
</div>
<?php
}
);
return;
}

wp_localize_script(
'insert-special-characters-admin-js',
'tenupIscAdminVars',
array(
'palette_deleted_message' => __( 'Palette cleared', 'insert-special-characters' ),
)
);
if ( ! site_meets_php_requirements() ) {
return;
}
add_action( 'admin_enqueue_scripts', __NAMESPACE__ . '\load_admin_scripts' );

require_once __DIR__ . '/inc/plugin.php';
Loading

0 comments on commit 6cf7fac

Please sign in to comment.