Version Description
- developer-oriented update to support building themes that use this code as a composer package
Download this release
Release Info
| Developer | mlwilkerson |
| Plugin | |
| Version | 4.0.0-rc20 |
| Comparing to | |
| See all releases | |
Code changes from version 4.0.0-rc19 to 4.0.0-rc20
- defines.php +20 -3
- font-awesome.php +19 -23
- includes/class-fontawesome-api-controller.php +1 -1
- includes/class-fontawesome.php +3 -13
- index.php +1 -1
- readme.txt +5 -1
defines.php
CHANGED
|
@@ -31,8 +31,8 @@ if ( ! defined( 'FONTAWESOME_DIR_URL' ) ) {
|
|
| 31 |
/**
|
| 32 |
* Active Font Awesome plugin installation directory URL.
|
| 33 |
*
|
| 34 |
-
* The
|
| 35 |
-
*
|
| 36 |
*
|
| 37 |
* For example, if the example plugin under `integrations/plugins/plugin-sigma`
|
| 38 |
* in this repo were installed, activated, and its copy of the Font Awesome
|
|
@@ -46,9 +46,26 @@ if ( ! defined( 'FONTAWESOME_DIR_URL' ) ) {
|
|
| 46 |
* of this constant would look more like this:
|
| 47 |
* `http://localhost:8765/wp-content/plugins/font-awesome/`
|
| 48 |
*
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 49 |
* @since 4.0.0
|
| 50 |
*/
|
| 51 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 52 |
}
|
| 53 |
|
| 54 |
if ( ! defined( 'FONTAWESOME_ENV' ) ) {
|
| 31 |
/**
|
| 32 |
* Active Font Awesome plugin installation directory URL.
|
| 33 |
*
|
| 34 |
+
* The url that corresponds to the top level of the executing installation
|
| 35 |
+
* of the Font Awesome plugin (where the `defines.php` file lives).
|
| 36 |
*
|
| 37 |
* For example, if the example plugin under `integrations/plugins/plugin-sigma`
|
| 38 |
* in this repo were installed, activated, and its copy of the Font Awesome
|
| 46 |
* of this constant would look more like this:
|
| 47 |
* `http://localhost:8765/wp-content/plugins/font-awesome/`
|
| 48 |
*
|
| 49 |
+
* This also accounts for the possibility that current Font Awesome is installed
|
| 50 |
+
* as a composer package required by the current theme. For example, if the
|
| 51 |
+
* example theme under `integrations/themes/plugin-mu` in this repo were installed,
|
| 52 |
+
* activated, and its copy of the Font Awesome plugin were the one selected for execution,
|
| 53 |
+
* then the value of this constant would be something like this:
|
| 54 |
+
* `http://localhost:8765/wp-content/themes/theme-mu/vendor/fortawesome/wordpress-fontawesome/`
|
| 55 |
+
*
|
| 56 |
* @since 4.0.0
|
| 57 |
*/
|
| 58 |
+
$ss_dir = get_stylesheet_directory();
|
| 59 |
+
/**
|
| 60 |
+
* If the current file path begins with the stylesheet directory, then we
|
| 61 |
+
* know that Font Awesome is being loaded as a dependency of a theme.
|
| 62 |
+
*/
|
| 63 |
+
if ( substr( __FILE__, 0, strlen( $ss_dir ) ) === $ss_dir ) {
|
| 64 |
+
$fa_sub_path = substr( __DIR__, strlen( $ss_dir ) );
|
| 65 |
+
define( 'FONTAWESOME_DIR_URL', untrailingslashit( get_stylesheet_directory_uri() ) . '/' . trailingslashit( $fa_sub_path ) );
|
| 66 |
+
} else {
|
| 67 |
+
define( 'FONTAWESOME_DIR_URL', plugin_dir_url( __FILE__ ) );
|
| 68 |
+
}
|
| 69 |
}
|
| 70 |
|
| 71 |
if ( ! defined( 'FONTAWESOME_ENV' ) ) {
|
font-awesome.php
CHANGED
|
@@ -123,7 +123,7 @@ if ( ! class_exists( 'FortAwesome\FontAwesome_Loader' ) ) :
|
|
| 123 |
* @internal
|
| 124 |
*/
|
| 125 |
private function __construct() {
|
| 126 |
-
add_action( '
|
| 127 |
add_action( 'activate_' . FONTAWESOME_PLUGIN_FILE, [ &$this, 'activate_plugin' ], -1 );
|
| 128 |
}
|
| 129 |
|
|
@@ -137,18 +137,16 @@ if ( ! class_exists( 'FortAwesome\FontAwesome_Loader' ) ) :
|
|
| 137 |
* @throws Exception
|
| 138 |
*/
|
| 139 |
private function select_latest_version_plugin_installation() {
|
| 140 |
-
if ( count( self::$_loaded ) > 0 ) {
|
| 141 |
return;
|
| 142 |
}
|
| 143 |
|
| 144 |
-
$versions = array_keys( self::$data );
|
| 145 |
-
|
| 146 |
usort(
|
| 147 |
-
|
| 148 |
function( $a, $b ) {
|
| 149 |
-
if ( version_compare( $a, $b, '=' ) ) {
|
| 150 |
return 0;
|
| 151 |
-
} elseif ( version_compare( $a, $b, 'gt' ) ) {
|
| 152 |
return -1;
|
| 153 |
} else {
|
| 154 |
return 1;
|
|
@@ -156,10 +154,9 @@ if ( ! class_exists( 'FortAwesome\FontAwesome_Loader' ) ) :
|
|
| 156 |
}
|
| 157 |
);
|
| 158 |
|
| 159 |
-
$
|
| 160 |
-
$info = ( isset( self::$data[ $latest_version ] ) ) ? self::$data[ $latest_version ] : [];
|
| 161 |
|
| 162 |
-
if ( empty( $
|
| 163 |
throw new Exception(
|
| 164 |
sprintf(
|
| 165 |
esc_html__(
|
|
@@ -187,14 +184,11 @@ if ( ! class_exists( 'FortAwesome\FontAwesome_Loader' ) ) :
|
|
| 187 |
);
|
| 188 |
}
|
| 189 |
|
| 190 |
-
self::$_loaded =
|
| 191 |
-
'path' => $info,
|
| 192 |
-
'version' => $latest_version,
|
| 193 |
-
);
|
| 194 |
}
|
| 195 |
|
| 196 |
/**
|
| 197 |
-
*
|
| 198 |
*
|
| 199 |
* This is public because it's a callback, but should not be considered
|
| 200 |
* part of this plugin's API.
|
|
@@ -206,7 +200,7 @@ if ( ! class_exists( 'FortAwesome\FontAwesome_Loader' ) ) :
|
|
| 206 |
* @internal
|
| 207 |
* @ignore
|
| 208 |
*/
|
| 209 |
-
public function
|
| 210 |
try {
|
| 211 |
$this->select_latest_version_plugin_installation();
|
| 212 |
require self::$_loaded['path'] . 'font-awesome-init.php';
|
|
@@ -442,9 +436,7 @@ if ( ! class_exists( 'FortAwesome\FontAwesome_Loader' ) ) :
|
|
| 442 |
// If there's only installation in the list, then it's
|
| 443 |
// the one that has invoked this function and is is about to
|
| 444 |
// go away, so it's safe to clean up.
|
| 445 |
-
|
| 446 |
-
|
| 447 |
-
require_once trailingslashit( self::$data[ $version_key ] ) . 'includes/class-fontawesome-deactivator.php';
|
| 448 |
FontAwesome_Deactivator::uninstall();
|
| 449 |
}
|
| 450 |
}
|
|
@@ -471,9 +463,7 @@ if ( ! class_exists( 'FortAwesome\FontAwesome_Loader' ) ) :
|
|
| 471 |
*/
|
| 472 |
public static function maybe_deactivate() {
|
| 473 |
if ( count( self::$data ) === 1 ) {
|
| 474 |
-
|
| 475 |
-
|
| 476 |
-
require_once trailingslashit( self::$data[ $version_key ] ) . 'includes/class-fontawesome-deactivator.php';
|
| 477 |
FontAwesome_Deactivator::deactivate();
|
| 478 |
}
|
| 479 |
}
|
|
@@ -517,7 +507,13 @@ if ( ! class_exists( 'FortAwesome\FontAwesome_Loader' ) ) :
|
|
| 517 |
$args = get_file_data( trailingslashit( $data ) . 'index.php', array( 'version' => 'Version' ) );
|
| 518 |
$version = ( isset( $args['version'] ) && ! empty( $args['version'] ) ) ? $args['version'] : $version;
|
| 519 |
}
|
| 520 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 521 |
}
|
| 522 |
return $this;
|
| 523 |
}
|
| 123 |
* @internal
|
| 124 |
*/
|
| 125 |
private function __construct() {
|
| 126 |
+
add_action( 'wp_loaded', [ &$this, 'run_plugin' ], -1 );
|
| 127 |
add_action( 'activate_' . FONTAWESOME_PLUGIN_FILE, [ &$this, 'activate_plugin' ], -1 );
|
| 128 |
}
|
| 129 |
|
| 137 |
* @throws Exception
|
| 138 |
*/
|
| 139 |
private function select_latest_version_plugin_installation() {
|
| 140 |
+
if ( count( self::$_loaded ) > 0 || count( self::$data ) === 0 ) {
|
| 141 |
return;
|
| 142 |
}
|
| 143 |
|
|
|
|
|
|
|
| 144 |
usort(
|
| 145 |
+
self::$data,
|
| 146 |
function( $a, $b ) {
|
| 147 |
+
if ( version_compare( $a['version'], $b['version'], '=' ) ) {
|
| 148 |
return 0;
|
| 149 |
+
} elseif ( version_compare( $a['version'], $b['version'], 'gt' ) ) {
|
| 150 |
return -1;
|
| 151 |
} else {
|
| 152 |
return 1;
|
| 154 |
}
|
| 155 |
);
|
| 156 |
|
| 157 |
+
$selected_installation = self::$data[0];
|
|
|
|
| 158 |
|
| 159 |
+
if ( empty( $selected_installation ) ) {
|
| 160 |
throw new Exception(
|
| 161 |
sprintf(
|
| 162 |
esc_html__(
|
| 184 |
);
|
| 185 |
}
|
| 186 |
|
| 187 |
+
self::$_loaded = $selected_installation;
|
|
|
|
|
|
|
|
|
|
| 188 |
}
|
| 189 |
|
| 190 |
/**
|
| 191 |
+
* Runs the main plugin logic from the installation that has been selected.
|
| 192 |
*
|
| 193 |
* This is public because it's a callback, but should not be considered
|
| 194 |
* part of this plugin's API.
|
| 200 |
* @internal
|
| 201 |
* @ignore
|
| 202 |
*/
|
| 203 |
+
public function run_plugin() {
|
| 204 |
try {
|
| 205 |
$this->select_latest_version_plugin_installation();
|
| 206 |
require self::$_loaded['path'] . 'font-awesome-init.php';
|
| 436 |
// If there's only installation in the list, then it's
|
| 437 |
// the one that has invoked this function and is is about to
|
| 438 |
// go away, so it's safe to clean up.
|
| 439 |
+
require_once trailingslashit( self::$data[0]['path'] ) . 'includes/class-fontawesome-deactivator.php';
|
|
|
|
|
|
|
| 440 |
FontAwesome_Deactivator::uninstall();
|
| 441 |
}
|
| 442 |
}
|
| 463 |
*/
|
| 464 |
public static function maybe_deactivate() {
|
| 465 |
if ( count( self::$data ) === 1 ) {
|
| 466 |
+
require_once trailingslashit( self::$data[0]['path'] ) . 'includes/class-fontawesome-deactivator.php';
|
|
|
|
|
|
|
| 467 |
FontAwesome_Deactivator::deactivate();
|
| 468 |
}
|
| 469 |
}
|
| 507 |
$args = get_file_data( trailingslashit( $data ) . 'index.php', array( 'version' => 'Version' ) );
|
| 508 |
$version = ( isset( $args['version'] ) && ! empty( $args['version'] ) ) ? $args['version'] : $version;
|
| 509 |
}
|
| 510 |
+
array_push(
|
| 511 |
+
self::$data,
|
| 512 |
+
[
|
| 513 |
+
'version' => $version,
|
| 514 |
+
'path' => trailingslashit( $data ),
|
| 515 |
+
]
|
| 516 |
+
);
|
| 517 |
}
|
| 518 |
return $this;
|
| 519 |
}
|
includes/class-fontawesome-api-controller.php
CHANGED
|
@@ -32,7 +32,7 @@ use \WP_REST_Controller, \WP_Error, \Error, \Exception;
|
|
| 32 |
* version numbers:
|
| 33 |
*
|
| 34 |
* ```
|
| 35 |
-
* query {
|
| 36 |
* ```
|
| 37 |
*
|
| 38 |
* <h3>Internal Use vs. Public API</h3>
|
| 32 |
* version numbers:
|
| 33 |
*
|
| 34 |
* ```
|
| 35 |
+
* query { releases { version } }
|
| 36 |
* ```
|
| 37 |
*
|
| 38 |
* <h3>Internal Use vs. Public API</h3>
|
includes/class-fontawesome.php
CHANGED
|
@@ -126,7 +126,7 @@ class FontAwesome {
|
|
| 126 |
*
|
| 127 |
* @since 4.0.0
|
| 128 |
*/
|
| 129 |
-
const PLUGIN_VERSION = '4.0.0-
|
| 130 |
/**
|
| 131 |
* The namespace for this plugin's REST API.
|
| 132 |
*
|
|
@@ -344,17 +344,7 @@ class FontAwesome {
|
|
| 344 |
* @ignore
|
| 345 |
*/
|
| 346 |
public function run() {
|
| 347 |
-
|
| 348 |
-
'init',
|
| 349 |
-
[ $this, 'init' ],
|
| 350 |
-
10,
|
| 351 |
-
/**
|
| 352 |
-
* Explicitly indicate to the init action hook that 0 args should be passed in when invoking the
|
| 353 |
-
* callback function, so that the default parameter will be used.
|
| 354 |
-
* Otherwise, the callback seems to be called with a single empty string parameter, which confuses it.
|
| 355 |
-
*/
|
| 356 |
-
0
|
| 357 |
-
);
|
| 358 |
|
| 359 |
$this->initialize_rest_api();
|
| 360 |
|
|
@@ -2342,7 +2332,7 @@ EOT;
|
|
| 2342 |
/**
|
| 2343 |
* Runs a GraphQL query against the Font Awesome GraphQL API.
|
| 2344 |
*
|
| 2345 |
-
* It accepts a GraphQL query string like 'query {
|
| 2346 |
* the json encoded body of response from the API server when the response
|
| 2347 |
* has an HTTP status of 200. Otherwise, it throws an exception whose
|
| 2348 |
* message, if non-null, is appropriate for displaying in the WordPress admin ui
|
| 126 |
*
|
| 127 |
* @since 4.0.0
|
| 128 |
*/
|
| 129 |
+
const PLUGIN_VERSION = '4.0.0-rc20';
|
| 130 |
/**
|
| 131 |
* The namespace for this plugin's REST API.
|
| 132 |
*
|
| 344 |
* @ignore
|
| 345 |
*/
|
| 346 |
public function run() {
|
| 347 |
+
$this->init();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 348 |
|
| 349 |
$this->initialize_rest_api();
|
| 350 |
|
| 2332 |
/**
|
| 2333 |
* Runs a GraphQL query against the Font Awesome GraphQL API.
|
| 2334 |
*
|
| 2335 |
+
* It accepts a GraphQL query string like 'query { releases { version } }' and returns
|
| 2336 |
* the json encoded body of response from the API server when the response
|
| 2337 |
* has an HTTP status of 200. Otherwise, it throws an exception whose
|
| 2338 |
* message, if non-null, is appropriate for displaying in the WordPress admin ui
|
index.php
CHANGED
|
@@ -3,7 +3,7 @@
|
|
| 3 |
* Plugin Name: Font Awesome
|
| 4 |
* Plugin URI: https://fontawesome.com/how-to-use/on-the-web/using-with/wordpress
|
| 5 |
* Description: The official way to use Font Awesome Free or Pro icons on your site, brought to you by the Font Awesome team.
|
| 6 |
-
* Version: 4.0.0-
|
| 7 |
* Author: Font Awesome
|
| 8 |
* Author URI: https://fontawesome.com/
|
| 9 |
* License: GPLv2 (or later)
|
| 3 |
* Plugin Name: Font Awesome
|
| 4 |
* Plugin URI: https://fontawesome.com/how-to-use/on-the-web/using-with/wordpress
|
| 5 |
* Description: The official way to use Font Awesome Free or Pro icons on your site, brought to you by the Font Awesome team.
|
| 6 |
+
* Version: 4.0.0-rc20
|
| 7 |
* Author: Font Awesome
|
| 8 |
* Author URI: https://fontawesome.com/
|
| 9 |
* License: GPLv2 (or later)
|
readme.txt
CHANGED
|
@@ -1,6 +1,6 @@
|
|
| 1 |
=== Font Awesome ===
|
| 2 |
Contributors: fontawesome, mlwilkerson, robmadole, frrrances, deathnfudge
|
| 3 |
-
Stable tag: 4.0.0-
|
| 4 |
Tags: font, awesome, fontawesome, font-awesome, icon, svg, webfont
|
| 5 |
Requires at least: 4.7
|
| 6 |
Tested up to: 5.4
|
|
@@ -132,6 +132,10 @@ Once you activate the Font Awesome plugin, you will see a top-level menu item fo
|
|
| 132 |
|
| 133 |
== Changelog ==
|
| 134 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 135 |
= 4.0.0-rc19 =
|
| 136 |
|
| 137 |
* another minor update with additional error logging
|
| 1 |
=== Font Awesome ===
|
| 2 |
Contributors: fontawesome, mlwilkerson, robmadole, frrrances, deathnfudge
|
| 3 |
+
Stable tag: 4.0.0-rc20
|
| 4 |
Tags: font, awesome, fontawesome, font-awesome, icon, svg, webfont
|
| 5 |
Requires at least: 4.7
|
| 6 |
Tested up to: 5.4
|
| 132 |
|
| 133 |
== Changelog ==
|
| 134 |
|
| 135 |
+
= 4.0.0-rc20 =
|
| 136 |
+
|
| 137 |
+
* developer-oriented update to support building themes that use this code as a composer package
|
| 138 |
+
|
| 139 |
= 4.0.0-rc19 =
|
| 140 |
|
| 141 |
* another minor update with additional error logging
|
