Commit 920a3ca6 authored by Erick Hitter's avatar Erick Hitter
Browse files

Merge branch 'fix/phpcs' into 'master'

Fix all PHPCS issues

See merge request !2
parents daedadf2 b3381726
Pipeline #841 passed with stages
in 3 minutes and 51 seconds
...@@ -25,9 +25,9 @@ before_script: ...@@ -25,9 +25,9 @@ before_script:
- composer global require phpcompatibility/phpcompatibility-wp - composer global require phpcompatibility/phpcompatibility-wp
- phpcs --config-set installed_paths $HOME/.composer/vendor/wp-coding-standards/wpcs,$HOME/.composer/vendor/automattic/vipwpcs,$HOME/.composer/vendor/phpcompatibility/php-compatibility,$HOME/.composer/vendor/phpcompatibility/phpcompatibility-paragonie,$HOME/.composer/vendor/phpcompatibility/phpcompatibility-wp - phpcs --config-set installed_paths $HOME/.composer/vendor/wp-coding-standards/wpcs,$HOME/.composer/vendor/automattic/vipwpcs,$HOME/.composer/vendor/phpcompatibility/php-compatibility,$HOME/.composer/vendor/phpcompatibility/phpcompatibility-paragonie,$HOME/.composer/vendor/phpcompatibility/phpcompatibility-wp
PHPunit:PHP7.3:MySQL: PHP5.3:
stage: test stage: test
image: containers.ethitter.com:443/docker/images/php:7.3 image: containers.ethitter.com:443/docker/images/php:5.3
services: services:
- mysql:5.6 - mysql:5.6
script: script:
...@@ -36,6 +36,56 @@ PHPunit:PHP7.3:MySQL: ...@@ -36,6 +36,56 @@ PHPunit:PHP7.3:MySQL:
- phpunit - phpunit
allow_failure: true allow_failure: true
PHP5.6:
stage: test
image: containers.ethitter.com:443/docker/images/php:5.6
services:
- mysql:5.6
script:
- find . -type "f" -iname "*.php" | xargs -L "1" php -l
- phpcs -n
- phpunit
PHP7.0:
stage: test
image: containers.ethitter.com:443/docker/images/php:7.0
services:
- mysql:5.6
script:
- find . -type "f" -iname "*.php" | xargs -L "1" php -l
- phpcs -n
- phpunit
PHP7.1:
stage: test
image: containers.ethitter.com:443/docker/images/php:7.1
services:
- mysql:5.6
script:
- find . -type "f" -iname "*.php" | xargs -L "1" php -l
- phpcs -n
- phpunit
PHP7.2:
stage: test
image: containers.ethitter.com:443/docker/images/php:7.2
services:
- mysql:5.6
script:
- find . -type "f" -iname "*.php" | xargs -L "1" php -l
- phpcs -n
- phpunit
PHP7.3:
stage: test
image: containers.ethitter.com:443/docker/images/php:7.3
services:
- mysql:5.6
script:
- find . -type "f" -iname "*.php" | xargs -L "1" php -l
- phpcs -n
- phpunit
PluginSVN: PluginSVN:
stage: deploy stage: deploy
image: containers.ethitter.com:443/docker/images/php:7.3 image: containers.ethitter.com:443/docker/images/php:7.3
......
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
<!-- Rules: Check PHP version compatibility --> <!-- Rules: Check PHP version compatibility -->
<!-- https://github.com/PHPCompatibility/PHPCompatibility#sniffing-your-code-for-compatibility-with-specific-php-versions --> <!-- https://github.com/PHPCompatibility/PHPCompatibility#sniffing-your-code-for-compatibility-with-specific-php-versions -->
<config name="testVersion" value="5.6-"/> <config name="testVersion" value="5.2-"/>
<!-- https://github.com/PHPCompatibility/PHPCompatibilityWP --> <!-- https://github.com/PHPCompatibility/PHPCompatibilityWP -->
<rule ref="PHPCompatibilityWP"/> <rule ref="PHPCompatibilityWP"/>
...@@ -27,19 +27,21 @@ ...@@ -27,19 +27,21 @@
<!-- https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards --> <!-- https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards -->
<!-- https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards/wiki/Customizable-sniff-properties --> <!-- https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards/wiki/Customizable-sniff-properties -->
<config name="minimum_supported_wp_version" value="3.0"/> <config name="minimum_supported_wp_version" value="3.0"/>
<rule ref="WordPress" /> <rule ref="WordPress">
<exclude name="WordPress.Files.FileName.InvalidClassFileName" />
</rule>
<rule ref="WordPressVIPMinimum" /> <rule ref="WordPressVIPMinimum" />
<rule ref="WordPress-VIP-Go" /> <rule ref="WordPress-VIP-Go" />
<rule ref="WordPress.NamingConventions.PrefixAllGlobals"> <rule ref="WordPress.NamingConventions.PrefixAllGlobals">
<properties> <properties>
<!-- Value: replace the function, class, and variable prefixes used. Separate multiple prefixes with a comma. --> <!-- Value: replace the function, class, and variable prefixes used. Separate multiple prefixes with a comma. -->
<property name="prefixes" type="array" value="external_permalinks_redux"/> <property name="prefixes" type="array" value="external_permalinks_redux, epr_"/>
</properties> </properties>
</rule> </rule>
<rule ref="WordPress.WP.I18n"> <rule ref="WordPress.WP.I18n">
<properties> <properties>
<!-- Value: replace the text domain used. --> <!-- Value: replace the text domain used. -->
<property name="text_domain" type="array" value="external_permalinks_redux"/> <property name="text_domain" type="array" value="external-permalinks-redux"/>
</properties> </properties>
</rule> </rule>
<rule ref="WordPress.WhiteSpace.ControlStructureSpacing"> <rule ref="WordPress.WhiteSpace.ControlStructureSpacing">
......
<?php <?php
/* /**
Plugin Name: External Permalinks Redux * Plugin Name: External Permalinks Redux
Plugin URI: http://www.thinkoomph.com/plugins-modules/external-permalinks-redux/ * Plugin URI: http://www.thinkoomph.com/plugins-modules/external-permalinks-redux/
Description: Allows users to point WordPress objects (posts, pages, custom post types) to a URL of your choosing. Inspired by and backwards-compatible with <a href="http://txfx.net/wordpress-plugins/page-links-to/">Page Links To</a> by Mark Jaquith. Written for use on WordPress.com VIP. * Description: Allows users to point WordPress objects (posts, pages, custom post types) to a URL of your choosing. Inspired by and backwards-compatible with <a href="http://txfx.net/wordpress-plugins/page-links-to/">Page Links To</a> by Mark Jaquith. Written for use on WordPress.com VIP.
Version: 1.1 * Version: 1.1
Author: Erick Hitter & Oomph, Inc. * Author: Erick Hitter & Oomph, Inc.
Author URI: http://www.thinkoomph.com/ * Author URI: http://www.thinkoomph.com/
*
This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or * the Free Software Foundation; either version 2 of the License, or
(at your option) any later version. * (at your option) any later version.
*
This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details. * GNU General Public License for more details.
*
You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/ *
* @package External_Permalinks_Redux
*/
/**
* Class external_permalinks_redux.
*/
// phpcs:ignore PEAR.NamingConventions.ValidClassName, Squiz.Commenting.ClassComment.Missing
class external_permalinks_redux { class external_permalinks_redux {
/** /**
* Class variables * Singleton!
*
* @var self
*/ */
protected static $instance; protected static $instance;
var $meta_key_target = '_links_to'; /**
var $meta_key_type = '_links_to_type'; * Redirect URL meta key.
var $status_codes; *
* @var string
*/
public $meta_key_target = '_links_to';
/** /**
* Instantiate class as a singleton * Redirect type meta key.
*
* @var string
*/
public $meta_key_type = '_links_to_type';
/**
* Supported redirect codes.
*
* @var array
*/
public $status_codes;
/**
* Instantiate class as a singleton.
* *
* @return object * @return object
*/ */
static function get_instance() { public static function get_instance() {
if ( ! isset( self::$instance ) ) if ( ! isset( self::$instance ) ) {
self::$instance = new self; self::$instance = new self();
}
return self::$instance; return self::$instance;
} }
/** /**
* Register actions and filters * Register actions and filters.
*
* @uses add_action
* @uses add_filter
* @return null
*/ */
private function __construct() { private function __construct() {
add_action( 'init', array( $this, 'action_init' ), 0 ); // other init actions may rely on permalinks so filter early add_action( 'init', array( $this, 'action_init' ), 0 ); // Other init actions may rely on permalinks so filter early.
add_action( 'admin_init', array( $this, 'action_admin_init' ) ); add_action( 'admin_init', array( $this, 'action_admin_init' ) );
add_action( 'save_post', array( $this, 'action_save_post' ) ); add_action( 'save_post', array( $this, 'action_save_post' ) );
...@@ -63,17 +85,15 @@ class external_permalinks_redux { ...@@ -63,17 +85,15 @@ class external_permalinks_redux {
} }
/** /**
* Register plugin keys and status codes * Register plugin keys and status codes.
* *
* @uses apply_filters
* @action init * @action init
* @return null
*/ */
function action_init() { public function action_init() {
$this->meta_key_target = apply_filters( 'epr_meta_key_target', $this->meta_key_target ); $this->meta_key_target = apply_filters( 'epr_meta_key_target', $this->meta_key_target );
$this->meta_key_type = apply_filters( 'epr_meta_key_type', $this->meta_key_type ); $this->meta_key_type = apply_filters( 'epr_meta_key_type', $this->meta_key_type );
$status_codes = array( $status_codes = array(
302 => __( 'Temporary (302)', 'external-permalinks-redux' ), 302 => __( 'Temporary (302)', 'external-permalinks-redux' ),
301 => __( 'Permanent (301)', 'external-permalinks-redux' ), 301 => __( 'Permanent (301)', 'external-permalinks-redux' ),
); );
...@@ -81,25 +101,21 @@ class external_permalinks_redux { ...@@ -81,25 +101,21 @@ class external_permalinks_redux {
} }
/** /**
* Add meta box * Add meta box.
*
* @uses apply_filters
* @uses __
* @uses add_meta_box
* @action admin_init
* @return null
*/ */
function action_admin_init() { public function action_admin_init() {
$post_types = apply_filters( 'epr_post_types', array( 'post', 'page' ) ); $post_types = apply_filters( 'epr_post_types', array( 'post', 'page' ) );
if ( ! is_array( $post_types ) ) if ( ! is_array( $post_types ) ) {
return; return;
}
foreach( $post_types as $post_type ) { foreach ( $post_types as $post_type ) {
$title = apply_filters( 'epr_metabox_title', '', $post_type ); $title = apply_filters( 'epr_metabox_title', '', $post_type );
if ( ! $title ) if ( ! $title ) {
$title = __( 'External Permalinks Redux', 'external-permalinks-redux' ); $title = __( 'External Permalinks Redux', 'external-permalinks-redux' );
}
add_meta_box( 'external-permalinks-redux', $title, array( $this, 'meta_box' ), $post_type, 'normal' ); add_meta_box( 'external-permalinks-redux', $title, array( $this, 'meta_box' ), $post_type, 'normal' );
...@@ -109,146 +125,139 @@ class external_permalinks_redux { ...@@ -109,146 +125,139 @@ class external_permalinks_redux {
/** /**
* Render meta box * Render meta box.
* *
* @param object $post * @param object $post Post object.
* @uses get_post_meta
* @uses _e
* @uses esc_attr
* @uses esc_url
* @uses selected
* @uses wp_nonce_field
* @return string
*/ */
function meta_box( $post ) { public function meta_box( $post ) {
$type = get_post_meta( $post->ID, $this->meta_key_type, true ); $type = get_post_meta( $post->ID, $this->meta_key_type, true );
?> ?>
<p class="epr-destination"> <p class="epr-destination">
<label for="epr-url"><?php _e( 'Destination Address:', 'external-permalinks-redux' ); ?></label><br /> <label for="epr-url"><?php esc_html_e( 'Destination Address:', 'external-permalinks-redux' ); ?></label><br />
<input name="<?php echo esc_attr( $this->meta_key_target ); ?>_url" class="large-text code" id="epr-url" type="text" value="<?php echo esc_url( get_post_meta( $post->ID, $this->meta_key_target, true ) ); ?>" /> <input name="<?php echo esc_attr( $this->meta_key_target ); ?>_url" class="large-text code" id="epr-url" type="text" value="<?php echo esc_url( get_post_meta( $post->ID, $this->meta_key_target, true ) ); ?>" />
</p> </p>
<p class="description"><?php _e( 'To restore the original permalink, remove the link entered above.', 'external-permalinks-redux' ); ?></p> <p class="description"><?php esc_html_e( 'To restore the original permalink, remove the link entered above.', 'external-permalinks-redux' ); ?></p>
<p class="epr-separator">&nbsp;</p> <p class="epr-separator">&nbsp;</p>
<p class="epr-redirect-type"> <p class="epr-redirect-type">
<label for="epr-type"><?php _e( 'Redirect Type:', 'external-permalinks-redux' ); ?></label> <label for="epr-type"><?php esc_html_e( 'Redirect Type:', 'external-permalinks-redux' ); ?></label>
<select name="<?php echo esc_attr( $this->meta_key_target ); ?>_type" id="epr-type"> <select name="<?php echo esc_attr( $this->meta_key_target ); ?>_type" id="epr-type">
<option value=""><?php _e( '-- Select --', 'external-permalinks-redux' ); ?></option> <option value=""><?php esc_html_e( '-- Select --', 'external-permalinks-redux' ); ?></option>
<?php foreach ( $this->status_codes as $status_code => $explanation ) { <?php
foreach ( $this->status_codes as $status_code => $explanation ) {
echo '<option value="' . esc_attr( $status_code ) . '"'; echo '<option value="' . esc_attr( $status_code ) . '"';
selected( $status_code, intval( $type ) ); selected( $status_code, (int) $type );
echo '>' . esc_attr( $explanation ) . '</option>'; echo '>' . esc_attr( $explanation ) . '</option>';
} ?> }
?>
</select> </select>
</p> </p>
<?php <?php
wp_nonce_field( 'external-permalinks-redux', $this->meta_key_target . '_nonce', false ); wp_nonce_field( 'external-permalinks-redux', $this->meta_key_target . '_nonce', false );
} }
/** /**
* Save meta box input * Save meta box input.
* *
* @param int $post_id * @param int $post_id Post ID.
* @uses wp_verify_nonce
* @uses esc_url_raw
* @uses update_post_meta
* @uses delete_post_meta
* @action save_post
* @return null
*/ */
function action_save_post( $post_id ) { public function action_save_post( $post_id ) {
if ( isset( $_POST[ $this->meta_key_target . '_nonce' ] ) && wp_verify_nonce( $_POST[ $this->meta_key_target . '_nonce' ], 'external-permalinks-redux' ) ) { if ( isset( $_POST[ $this->meta_key_target . '_nonce' ] ) && wp_verify_nonce( sanitize_text_field( $_POST[ $this->meta_key_target . '_nonce' ] ), 'external-permalinks-redux' ) ) {
//Target // Target.
$url = esc_url_raw( $_POST[ $this->meta_key_target . '_url' ] ); $url = isset( $_POST[ $this->meta_key_target . '_url' ] ) ? esc_url_raw( $_POST[ $this->meta_key_target . '_url' ] ) : '';
if ( ! empty( $url ) ) if ( ! empty( $url ) ) {
update_post_meta( $post_id, $this->meta_key_target, $url ); update_post_meta( $post_id, $this->meta_key_target, $url );
else } else {
delete_post_meta( $post_id, $this->meta_key_target, $url ); delete_post_meta( $post_id, $this->meta_key_target, $url );
}
//Redirect type // Redirect type.
$type = intval( $_POST[ $this->meta_key_target . '_type' ] ); $type = isset( $_POST[ $this->meta_key_target . '_type' ] ) ? (int) $_POST[ $this->meta_key_target . '_type' ] : '';
if ( ! empty( $url ) && array_key_exists( $type, $this->status_codes ) ) if ( ! empty( $url ) && array_key_exists( $type, $this->status_codes ) ) {
update_post_meta( $post_id, $this->meta_key_type, $type ); update_post_meta( $post_id, $this->meta_key_type, $type );
else } else {
delete_post_meta( $post_id, $this->meta_key_type ); delete_post_meta( $post_id, $this->meta_key_type );
}
} }
} }
/** /**
* Filter post and custom post type permalinks * Filter post and custom post type permalinks.
* *
* @param string $permalink * @param string $permalink Post permalinks.
* @param object $post * @param object $post Post object.
* @uses get_post_meta
* @filter post_link
* @uses post_type_link
* @return string * @return string
*/ */
function filter_post_permalink( $permalink, $post ) { public function filter_post_permalink( $permalink, $post ) {
if ( $external_link = get_post_meta( $post->ID, $this->meta_key_target, true ) ) $external_link = get_post_meta( $post->ID, $this->meta_key_target, true );
if ( ! empty( $external_link ) ) {
$permalink = $external_link; $permalink = $external_link;
}
return $permalink; return $permalink;
} }
/** /**
* Filter page permalinks * Filter page permalinks.
* *
* @param string $link * @param string $link Page permalink.
* @param int $id * @param int $id Post ID.
* @uses get_post_meta
* @filter page_link
* @return string * @return string
*/ */
function filter_page_link( $link, $id ) { public function filter_page_link( $link, $id ) {
if ( $external_link = get_post_meta( $id, $this->meta_key_target, true ) ) $external_link = get_post_meta( $id, $this->meta_key_target, true );
if ( ! empty( $external_link ) ) {
$link = $external_link; $link = $external_link;
}
return $link; return $link;
} }
/** /**
* Redirect to external link if object requested directly. * Redirect to external link if object requested directly.
*
* @global $post
* @uses is_singular
* @uses get_post_meta
* @uses apply_filters
* @uses wp_redirect
* @action wp
* @return null
*/ */
function action_wp() { public function action_wp() {
global $post; global $post;
if ( is_singular() && ( $link = get_post_meta( $post->ID, $this->meta_key_target, true ) ) ) { if ( ! is_singular() ) {
$type = intval( get_post_meta( $post->ID, $this->meta_key_type, true ) ); return;
}
$link = get_post_meta( $post->ID, $this->meta_key_target, true );
if ( ! empty( $link ) ) {
$type = (int) get_post_meta( $post->ID, $this->meta_key_type, true );
$type = apply_filters( 'epr_status_code', $type, $link, $post ); $type = apply_filters( 'epr_status_code', $type, $link, $post );
if ( ! $type ) if ( ! $type ) {
$type = 302; $type = 302;
}
// Unreasonable to validate redirect destination.
// phpcs:ignore WordPress.Security.SafeRedirect.wp_redirect_wp_redirect
wp_redirect( $link, $type ); wp_redirect( $link, $type );
exit; exit;
} }
} }
} }
// Initialize the plugin if it hasn't already // Initialize the plugin if it hasn't already.
external_permalinks_redux::get_instance(); external_permalinks_redux::get_instance();
/** /**
* Wrapper for meta box function * Wrapper for meta box function.
* Can be used as an alternative to the epr_post_types filter found in the plugin classes's action_admin_init function. *
* Can be used as an alternative to the `epr_post_types` filter
* found in the plugin class's `action_admin_init` function.
* *
* @param object $post * @param object $post Post object.
* @uses external_permalinks_redux
* @return string
*/ */
function external_permalinks_redux_meta_box( $post ) { function external_permalinks_redux_meta_box( $post ) {
external_permalinks_redux::get_instance()->meta_box( $post ); external_permalinks_redux::get_instance()->meta_box( $post );
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment