Version Description
Download this release
Release Info
Developer | diegoquinteiro |
Plugin | Instant Articles for WP |
Version | 3.2.3 |
Comparing to | |
See all releases |
Code changes from version 3.1.4 to 3.2.3
- class-instant-articles-post.php +4 -36
- class-instant-articles-publisher.php +11 -2
- compat.php +8 -6
- compat/class-instant-articles-playbuzz.php +27 -0
- compat/playbuzz-rules-configuration.json +23 -0
- css/instant-articles-meta-box.css +6 -0
- css/instant-articles-settings-wizard.css +0 -3
- css/instant-articles-wizard.css +15 -6
- facebook-instant-articles.php +2 -2
- feed-template.php +5 -0
- js/instant-articles-meta-box.js +14 -0
- js/instant-articles-wizard.js +5 -6
- meta-box/class-instant-articles-meta-box.php +38 -4
- meta-box/meta-box-template.php +22 -1
- readme.txt +18 -1
- rules-configuration.json +49 -3
- vendor/autoload.php +1 -1
- vendor/composer/autoload_files.php +1 -1
- vendor/composer/autoload_psr4.php +1 -1
- vendor/composer/autoload_real.php +7 -7
- vendor/composer/autoload_static.php +6 -6
- vendor/composer/installed.json +78 -78
- vendor/facebook/facebook-instant-articles-sdk-php/composer.json +0 -47
- vendor/facebook/facebook-instant-articles-sdk-php/composer.lock +0 -1245
- vendor/facebook/facebook-instant-articles-sdk-php/src/Facebook/InstantArticles/Transformer/Getters/ElementGetter.php +1 -1
- vendor/facebook/facebook-instant-articles-sdk-php/src/Facebook/InstantArticles/Transformer/Rules/InstantArticleRule.php +0 -1
- vendor/facebook/facebook-instant-articles-sdk-php/src/Facebook/InstantArticles/Transformer/Rules/TimeRule.php +0 -1
- vendor/facebook/facebook-instant-articles-sdk-php/tests/Facebook/InstantArticles/Elements/SocialEmbedTest.php +0 -96
- vendor/facebook/facebook-instant-articles-sdk-php/tests/Facebook/InstantArticles/Transformer/CMS/WPTransformerTest.php +0 -98
- vendor/facebook/facebook-instant-articles-sdk-php/tests/Facebook/InstantArticles/Transformer/CMS/wp-ia.xml +0 -202
- vendor/facebook/facebook-instant-articles-sdk-php/tests/Facebook/InstantArticles/Transformer/CMS/wp-rules.json +0 -606
- vendor/facebook/facebook-instant-articles-sdk-php/tests/Facebook/InstantArticles/Transformer/CMS/wp.html +0 -221
- vendor/facebook/facebook-instant-articles-sdk-php/tests/Facebook/InstantArticles/Transformer/wp-rules.json +0 -270
- vendor/facebook/{php-sdk-v4 → graph-sdk}/LICENSE +0 -0
- vendor/facebook/{php-sdk-v4 → graph-sdk}/composer.json +4 -3
- vendor/facebook/graph-sdk/phpcs.xml.dist +7 -0
- vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/Authentication/AccessToken.php +0 -0
- vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/Authentication/AccessTokenMetadata.php +0 -0
- vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/Authentication/OAuth2Client.php +0 -0
- vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/Exceptions/FacebookAuthenticationException.php +0 -0
- vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/Exceptions/FacebookAuthorizationException.php +0 -0
- vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/Exceptions/FacebookClientException.php +0 -0
- vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/Exceptions/FacebookOtherException.php +0 -0
- vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/Exceptions/FacebookResponseException.php +0 -0
- vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/Exceptions/FacebookResumableUploadException.php +0 -0
- vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/Exceptions/FacebookSDKException.php +0 -0
- vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/Exceptions/FacebookServerException.php +0 -0
- vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/Exceptions/FacebookThrottleException.php +0 -0
- vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/Facebook.php +2 -2
- vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/FacebookApp.php +0 -0
- vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/FacebookBatchRequest.php +0 -2
- vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/FacebookBatchResponse.php +0 -0
- vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/FacebookClient.php +0 -0
- vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/FacebookRequest.php +0 -0
- vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/FacebookResponse.php +0 -0
- vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/FileUpload/FacebookFile.php +0 -0
- vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/FileUpload/FacebookResumableUploader.php +0 -0
- vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/FileUpload/FacebookTransferChunk.php +0 -0
- vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/FileUpload/FacebookVideo.php +0 -0
- vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/FileUpload/Mimetypes.php +0 -0
- vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/GraphNodes/Birthday.php +0 -0
- vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/GraphNodes/Collection.php +0 -0
- vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/GraphNodes/GraphAchievement.php +0 -1
- vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/GraphNodes/GraphAlbum.php +0 -0
- vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/GraphNodes/GraphApplication.php +0 -0
- vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/GraphNodes/GraphCoverPhoto.php +0 -0
- vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/GraphNodes/GraphEdge.php +0 -0
- vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/GraphNodes/GraphEvent.php +0 -0
- vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/GraphNodes/GraphGroup.php +0 -0
- vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/GraphNodes/GraphList.php +0 -0
- vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/GraphNodes/GraphLocation.php +0 -0
- vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/GraphNodes/GraphNode.php +0 -0
- vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/GraphNodes/GraphNodeFactory.php +0 -0
- vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/GraphNodes/GraphObject.php +0 -0
- vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/GraphNodes/GraphObjectFactory.php +0 -0
- vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/GraphNodes/GraphPage.php +22 -0
- vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/GraphNodes/GraphPicture.php +0 -0
- vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/GraphNodes/GraphSessionInfo.php +0 -0
- vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/GraphNodes/GraphUser.php +0 -0
- vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/Helpers/FacebookCanvasHelper.php +0 -0
- vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/Helpers/FacebookJavaScriptHelper.php +0 -0
- vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/Helpers/FacebookPageTabHelper.php +0 -0
- vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/Helpers/FacebookRedirectLoginHelper.php +0 -0
- vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/Helpers/FacebookSignedRequestFromInputHelper.php +0 -0
- vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/Http/GraphRawResponse.php +1 -1
- vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/Http/RequestBodyInterface.php +0 -0
- vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/Http/RequestBodyMultipart.php +0 -0
- vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/Http/RequestBodyUrlEncoded.php +0 -0
- vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/HttpClients/FacebookCurl.php +0 -0
- vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/HttpClients/FacebookCurlHttpClient.php +0 -0
- vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/HttpClients/FacebookGuzzleHttpClient.php +0 -0
- vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/HttpClients/FacebookHttpClientInterface.php +0 -0
- vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/HttpClients/FacebookStream.php +0 -0
- vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/HttpClients/FacebookStreamHttpClient.php +0 -0
- vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/HttpClients/HttpClientsFactory.php +0 -0
- vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/HttpClients/certs/DigiCertHighAssuranceEVRootCA.pem +0 -0
- vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/PersistentData/FacebookMemoryPersistentDataHandler.php +0 -0
- vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/PersistentData/FacebookSessionPersistentDataHandler.php +0 -0
- vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/PersistentData/PersistentDataFactory.php +0 -0
- vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/PersistentData/PersistentDataInterface.php +0 -0
- vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/PseudoRandomString/McryptPseudoRandomStringGenerator.php +0 -0
- vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/PseudoRandomString/OpenSslPseudoRandomStringGenerator.php +0 -0
- vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/PseudoRandomString/PseudoRandomStringGeneratorFactory.php +11 -3
- vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/PseudoRandomString/PseudoRandomStringGeneratorInterface.php +0 -0
- vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/PseudoRandomString/PseudoRandomStringGeneratorTrait.php +0 -0
- vendor/facebook/graph-sdk/src/Facebook/PseudoRandomString/RandomBytesPseudoRandomStringGenerator.php +59 -0
- vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/PseudoRandomString/UrandomPseudoRandomStringGenerator.php +0 -0
- vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/SignedRequest.php +0 -0
- vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/Url/FacebookUrlDetectionHandler.php +0 -0
- vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/Url/FacebookUrlManipulator.php +0 -0
- vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/Url/UrlDetectionInterface.php +0 -0
- vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/autoload.php +0 -0
- vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/polyfills.php +0 -0
- vendor/symfony/css-selector/Parser/Reader.php +0 -2
- wizard/class-instant-articles-option-publishing.php +4 -4
- wizard/class-instant-articles-wizard.php +95 -66
- wizard/templates/app-setup-template.php +5 -5
- wizard/templates/overview-template.php +1 -1
- wizard/templates/page-selection-template.php +3 -5
- wizard/templates/review-submission-template.php +53 -19
- wizard/templates/style-selection-template.php +3 -3
- wizard/templates/wizard-template.php +11 -8
- wpcom-helper.php +50 -0
class-instant-articles-post.php
CHANGED
@@ -86,12 +86,13 @@ class Instant_Articles_Post {
|
|
86 |
$title = $this->_post->post_title;
|
87 |
|
88 |
/**
|
89 |
-
* Apply the default filter 'the_title' for the post
|
90 |
*
|
91 |
* @since 3.1
|
92 |
* @param string $title The current post title.
|
|
|
93 |
*/
|
94 |
-
$title = apply_filters( 'the_title', $title);
|
95 |
|
96 |
/**
|
97 |
* Filter the post title for use in instant articles.
|
@@ -682,40 +683,7 @@ class Instant_Articles_Post {
|
|
682 |
$this->instant_article->withStyle( 'default' );
|
683 |
}
|
684 |
|
685 |
-
$
|
686 |
-
$document = new DOMDocument( '1.0', get_option( 'blog_charset' ) );
|
687 |
-
$content = $this->get_the_content();
|
688 |
-
|
689 |
-
// DOMDocument isn’t handling encodings too well, so let’s help it a little.
|
690 |
-
if ( function_exists( 'mb_convert_encoding' ) ) {
|
691 |
-
$content = mb_convert_encoding( $content, 'HTML-ENTITIES', get_option( 'blog_charset' ) );
|
692 |
-
} else {
|
693 |
-
$content = htmlspecialchars_decode( utf8_decode( htmlentities( $content, ENT_COMPAT, 'utf-8', false ) ) );
|
694 |
-
}
|
695 |
-
|
696 |
-
$result = $document->loadHTML( '<!doctype html><html><body>' . $content . '</body></html>' );
|
697 |
-
|
698 |
-
// We need to make sure that scripts use absolute URLs and not relative URLs.
|
699 |
-
$scripts = $document->getElementsByTagName('script');
|
700 |
-
if ( ! empty( $scripts ) ) {
|
701 |
-
foreach ( $scripts as $script ){
|
702 |
-
$src = $script->getAttribute( 'src' );
|
703 |
-
$explode_src = parse_url( $src );
|
704 |
-
if ( is_array( $explode_src ) && empty( $explode_src['scheme'] ) && ! empty( $explode_src['host'] ) && ! empty( $explode_src['path'] ) ) {
|
705 |
-
$src = 'https://' . $explode_src['host'] . $explode_src['path'];
|
706 |
-
}
|
707 |
-
$script->setAttribute( 'src' , $src );
|
708 |
-
}
|
709 |
-
}
|
710 |
-
|
711 |
-
libxml_clear_errors();
|
712 |
-
libxml_use_internal_errors( $libxml_previous_state );
|
713 |
-
|
714 |
-
$document = apply_filters( 'instant_articles_parsed_document', $document );
|
715 |
-
|
716 |
-
if ( $result ) {
|
717 |
-
$transformer->transform( $this->instant_article, $document );
|
718 |
-
}
|
719 |
|
720 |
$this->add_ads_from_settings();
|
721 |
$this->add_analytics_from_settings();
|
86 |
$title = $this->_post->post_title;
|
87 |
|
88 |
/**
|
89 |
+
* Apply the default filter 'the_title' for the post title.
|
90 |
*
|
91 |
* @since 3.1
|
92 |
* @param string $title The current post title.
|
93 |
+
* @param int $id The current post ID.
|
94 |
*/
|
95 |
+
$title = apply_filters( 'the_title', $title, $this->_post->ID );
|
96 |
|
97 |
/**
|
98 |
* Filter the post title for use in instant articles.
|
683 |
$this->instant_article->withStyle( 'default' );
|
684 |
}
|
685 |
|
686 |
+
$transformer->transformString( $this->instant_article, $this->get_the_content(), get_option( 'blog_charset' ) );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
687 |
|
688 |
$this->add_ads_from_settings();
|
689 |
$this->add_analytics_from_settings();
|
class-instant-articles-publisher.php
CHANGED
@@ -21,6 +21,7 @@ class Instant_Articles_Publisher {
|
|
21 |
* Key to store the submission status ID on meta data
|
22 |
*/
|
23 |
const SUBMISSION_ID_KEY = 'instant_articles_submission_id';
|
|
|
24 |
|
25 |
/**
|
26 |
* Inits publisher.
|
@@ -56,6 +57,11 @@ class Instant_Articles_Publisher {
|
|
56 |
// Transform the post to an Instant Article.
|
57 |
$adapter = new Instant_Articles_Post( $post );
|
58 |
|
|
|
|
|
|
|
|
|
|
|
59 |
$article = $adapter->to_instant_article();
|
60 |
|
61 |
// Skip empty articles or articles missing title.
|
@@ -71,6 +77,7 @@ class Instant_Articles_Publisher {
|
|
71 |
$fb_app_settings = Instant_Articles_Option_FB_App::get_option_decoded();
|
72 |
$fb_page_settings = Instant_Articles_Option_FB_Page::get_option_decoded();
|
73 |
$publishing_settings = Instant_Articles_Option_Publishing::get_option_decoded();
|
|
|
74 |
|
75 |
$dev_mode = isset( $publishing_settings['dev_mode'] )
|
76 |
? ( $publishing_settings['dev_mode'] ? true : false )
|
@@ -99,12 +106,14 @@ class Instant_Articles_Publisher {
|
|
99 |
|
100 |
// Don't process if contains warnings and blocker flag for transformation warnings is turned on.
|
101 |
if ( count( $adapter->transformer->getWarnings() ) > 0
|
102 |
-
&& isset( $publishing_settings['
|
103 |
-
&& $
|
|
|
104 |
|
105 |
// Unpublishes if already published
|
106 |
$client->removeArticle( $article->getCanonicalURL() );
|
107 |
delete_post_meta( $post_id, self::SUBMISSION_ID_KEY );
|
|
|
108 |
return;
|
109 |
}
|
110 |
|
21 |
* Key to store the submission status ID on meta data
|
22 |
*/
|
23 |
const SUBMISSION_ID_KEY = 'instant_articles_submission_id';
|
24 |
+
const FORCE_SUBMIT_KEY = 'instant_articles_force_submit';
|
25 |
|
26 |
/**
|
27 |
* Inits publisher.
|
57 |
// Transform the post to an Instant Article.
|
58 |
$adapter = new Instant_Articles_Post( $post );
|
59 |
|
60 |
+
// Allow to disable post submit via filter
|
61 |
+
if ( false === apply_filters( 'instant_articles_should_submit_post', true, $adapter ) ) {
|
62 |
+
return;
|
63 |
+
}
|
64 |
+
|
65 |
$article = $adapter->to_instant_article();
|
66 |
|
67 |
// Skip empty articles or articles missing title.
|
77 |
$fb_app_settings = Instant_Articles_Option_FB_App::get_option_decoded();
|
78 |
$fb_page_settings = Instant_Articles_Option_FB_Page::get_option_decoded();
|
79 |
$publishing_settings = Instant_Articles_Option_Publishing::get_option_decoded();
|
80 |
+
$force_submit = get_post_meta( $post_id, self::FORCE_SUBMIT_KEY, true );
|
81 |
|
82 |
$dev_mode = isset( $publishing_settings['dev_mode'] )
|
83 |
? ( $publishing_settings['dev_mode'] ? true : false )
|
106 |
|
107 |
// Don't process if contains warnings and blocker flag for transformation warnings is turned on.
|
108 |
if ( count( $adapter->transformer->getWarnings() ) > 0
|
109 |
+
&& ( ! isset( $publishing_settings[ 'publish_with_warnings' ] ) || ! $publishing_settings[ 'publish_with_warnings' ] )
|
110 |
+
&& ( ! $force_submit )
|
111 |
+
) {
|
112 |
|
113 |
// Unpublishes if already published
|
114 |
$client->removeArticle( $article->getCanonicalURL() );
|
115 |
delete_post_meta( $post_id, self::SUBMISSION_ID_KEY );
|
116 |
+
|
117 |
return;
|
118 |
}
|
119 |
|
compat.php
CHANGED
@@ -7,11 +7,6 @@
|
|
7 |
* @package default
|
8 |
*/
|
9 |
|
10 |
-
if ( !function_exists( 'is_plugin_active' ) ) {
|
11 |
-
require_once ( ABSPATH . '/wp-admin/includes/plugin.php' );
|
12 |
-
}
|
13 |
-
|
14 |
-
|
15 |
// Load compat layer for Co-Authors Plus.
|
16 |
if ( function_exists( 'get_coauthors' ) && ! defined( 'CAP_IA_COMPAT' ) ) {
|
17 |
include( dirname( __FILE__ ) . '/compat/class-instant-articles-co-authors-plus.php' );
|
@@ -41,8 +36,15 @@ if ( defined( 'JETPACK__VERSION' ) ) {
|
|
41 |
}
|
42 |
|
43 |
// Load support for Get The Image plugin
|
44 |
-
if (
|
45 |
include( dirname( __FILE__ ) . '/compat/class-instant-articles-get-the-image.php' );
|
46 |
$gti = new Instant_Articles_Get_The_Image;
|
47 |
$gti->init();
|
48 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7 |
* @package default
|
8 |
*/
|
9 |
|
|
|
|
|
|
|
|
|
|
|
10 |
// Load compat layer for Co-Authors Plus.
|
11 |
if ( function_exists( 'get_coauthors' ) && ! defined( 'CAP_IA_COMPAT' ) ) {
|
12 |
include( dirname( __FILE__ ) . '/compat/class-instant-articles-co-authors-plus.php' );
|
36 |
}
|
37 |
|
38 |
// Load support for Get The Image plugin
|
39 |
+
if ( function_exists( 'get_the_image' ) ) {
|
40 |
include( dirname( __FILE__ ) . '/compat/class-instant-articles-get-the-image.php' );
|
41 |
$gti = new Instant_Articles_Get_The_Image;
|
42 |
$gti->init();
|
43 |
}
|
44 |
+
|
45 |
+
// Load support for Playbuzz plugin
|
46 |
+
if ( function_exists( 'playbuzz_settings_link' ) ) {
|
47 |
+
include( dirname( __FILE__ ) . '/compat/class-instant-articles-playbuzz.php' );
|
48 |
+
$playbuzz = new Instant_Articles_Playbuzz;
|
49 |
+
$playbuzz->init();
|
50 |
+
}
|
compat/class-instant-articles-playbuzz.php
ADDED
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Support class for Playbuzz
|
5 |
+
*
|
6 |
+
* @since 3.1.1
|
7 |
+
*
|
8 |
+
*/
|
9 |
+
class Instant_Articles_Playbuzz {
|
10 |
+
|
11 |
+
/**
|
12 |
+
* Init the compat layer
|
13 |
+
*
|
14 |
+
*/
|
15 |
+
function init() {
|
16 |
+
add_filter( 'instant_articles_transformer_rules_loaded', array( 'Instant_Articles_Playbuzz', 'transformer_loaded' ) );
|
17 |
+
}
|
18 |
+
|
19 |
+
public static function transformer_loaded( $transformer ) {
|
20 |
+
// Appends more rules to transformer
|
21 |
+
$file_path = plugin_dir_path( __FILE__ ) . 'playbuzz-rules-configuration.json';
|
22 |
+
$configuration = file_get_contents( $file_path );
|
23 |
+
$transformer->loadRules( $configuration );
|
24 |
+
|
25 |
+
return $transformer;
|
26 |
+
}
|
27 |
+
}
|
compat/playbuzz-rules-configuration.json
ADDED
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"rules": [{
|
3 |
+
"class" : "IgnoreRule",
|
4 |
+
"selector": "//p/script[contains(@src,'playbuzz')]"
|
5 |
+
}, {
|
6 |
+
"class": "InteractiveRule",
|
7 |
+
"selector" : "div.pb_feed",
|
8 |
+
"properties" : {
|
9 |
+
"interactive.iframe" : {
|
10 |
+
"type" : "multiple",
|
11 |
+
"children": [{
|
12 |
+
"type": "fragment",
|
13 |
+
"fragment": "<script type='text/javascript' src='//cdn.playbuzz.com/widget/feed.js'></script>"
|
14 |
+
}, {
|
15 |
+
"type": "element",
|
16 |
+
"selector": "div.pb_feed"
|
17 |
+
}
|
18 |
+
]
|
19 |
+
}
|
20 |
+
}
|
21 |
+
}
|
22 |
+
]
|
23 |
+
}
|
css/instant-articles-meta-box.css
CHANGED
@@ -1,3 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
.instant-articles-messages {
|
2 |
margin-left: 15px;
|
3 |
margin-top: 0px;
|
1 |
+
.instant-articles-dev-mode-indicator {
|
2 |
+
float: right;
|
3 |
+
text-decoration: none;
|
4 |
+
font-size: smaller;
|
5 |
+
}
|
6 |
+
|
7 |
.instant-articles-messages {
|
8 |
margin-left: 15px;
|
9 |
margin-top: 0px;
|
css/instant-articles-settings-wizard.css
DELETED
@@ -1,3 +0,0 @@
|
|
1 |
-
.instant-articles-inline-form input[name='submit'] {
|
2 |
-
display: inline;
|
3 |
-
}
|
|
|
|
|
|
css/instant-articles-wizard.css
CHANGED
@@ -350,18 +350,27 @@ a.instant-articles-button {
|
|
350 |
font-weight: bold;
|
351 |
}
|
352 |
.instant-articles-advanced-settings {
|
353 |
-
text-decoration: none;
|
354 |
font-weight: bold;
|
355 |
margin-top: 20px;
|
356 |
-
display: block;
|
357 |
}
|
358 |
-
.instant-articles-
|
359 |
-
.instant-articles-
|
|
|
|
|
360 |
outline: none;
|
361 |
box-shadow: none;
|
362 |
}
|
363 |
-
|
364 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
365 |
display: none;
|
366 |
}
|
367 |
|
350 |
font-weight: bold;
|
351 |
}
|
352 |
.instant-articles-advanced-settings {
|
|
|
353 |
font-weight: bold;
|
354 |
margin-top: 20px;
|
|
|
355 |
}
|
356 |
+
.instant-articles-wizard-toggle a,
|
357 |
+
.instant-articles-wizard-toggle a:active,
|
358 |
+
.instant-articles-wizard-toggle a:focus {
|
359 |
+
text-decoration: none;
|
360 |
outline: none;
|
361 |
box-shadow: none;
|
362 |
}
|
363 |
+
.instant-articles-wizard-toggle-opened::before {
|
364 |
+
content: "▼ ";
|
365 |
+
}
|
366 |
+
.instant-articles-wizard-toggle-closed::before {
|
367 |
+
content: "▶︎ ";
|
368 |
+
}
|
369 |
+
.instant-articles-advanced-settings[data-state='opened'] .instant-articles-wizard-toggle-closed {
|
370 |
+
display: none;
|
371 |
+
}
|
372 |
+
.instant-articles-advanced-settings[data-state='closed'] .instant-articles-wizard-toggle-opened,
|
373 |
+
.instant-articles-advanced-settings[data-state='closed'] + .instant-articles-wizard-advanced-settings-box {
|
374 |
display: none;
|
375 |
}
|
376 |
|
facebook-instant-articles.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
* Description: Add support for Instant Articles for Facebook to your WordPress site.
|
5 |
* Author: Automattic, Dekode, Facebook
|
6 |
* Author URI: https://vip.wordpress.com/plugins/instant-articles/
|
7 |
-
* Version: 3.
|
8 |
* Text Domain: instant-articles
|
9 |
* License: GPLv2
|
10 |
* License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
@@ -61,7 +61,7 @@ if ( version_compare( PHP_VERSION, '5.4', '<' ) ) {
|
|
61 |
|
62 |
defined( 'ABSPATH' ) || die( 'Shame on you' );
|
63 |
|
64 |
-
define( 'IA_PLUGIN_VERSION', '3.
|
65 |
define( 'IA_PLUGIN_PATH_FULL', __FILE__ );
|
66 |
define( 'IA_PLUGIN_PATH', plugin_basename( __FILE__ ) );
|
67 |
define( 'IA_PLUGIN_FILE_BASENAME', pathinfo( __FILE__, PATHINFO_FILENAME ) );
|
4 |
* Description: Add support for Instant Articles for Facebook to your WordPress site.
|
5 |
* Author: Automattic, Dekode, Facebook
|
6 |
* Author URI: https://vip.wordpress.com/plugins/instant-articles/
|
7 |
+
* Version: 3.2.2
|
8 |
* Text Domain: instant-articles
|
9 |
* License: GPLv2
|
10 |
* License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
61 |
|
62 |
defined( 'ABSPATH' ) || die( 'Shame on you' );
|
63 |
|
64 |
+
define( 'IA_PLUGIN_VERSION', '3.2.2' );
|
65 |
define( 'IA_PLUGIN_PATH_FULL', __FILE__ );
|
66 |
define( 'IA_PLUGIN_PATH', plugin_basename( __FILE__ ) );
|
67 |
define( 'IA_PLUGIN_FILE_BASENAME', pathinfo( __FILE__, PATHINFO_FILENAME ) );
|
feed-template.php
CHANGED
@@ -21,6 +21,11 @@ $last_modified = null;
|
|
21 |
<?php
|
22 |
$instant_article_post = new Instant_Articles_Post( get_post( get_the_id() ) );
|
23 |
|
|
|
|
|
|
|
|
|
|
|
24 |
// If we’re OK with a limited post set: Do not include posts with empty content -- FB will complain.
|
25 |
if ( defined( 'INSTANT_ARTICLES_LIMIT_POSTS' ) && INSTANT_ARTICLES_LIMIT_POSTS && ! strlen( trim( $instant_article_post->get_the_content() ) ) ) {
|
26 |
continue;
|
21 |
<?php
|
22 |
$instant_article_post = new Instant_Articles_Post( get_post( get_the_id() ) );
|
23 |
|
24 |
+
// Allow to disable post submit via filter
|
25 |
+
if ( false === apply_filters( 'instant_articles_should_submit_post', true, $instant_article_post ) ) {
|
26 |
+
continue;
|
27 |
+
}
|
28 |
+
|
29 |
// If we’re OK with a limited post set: Do not include posts with empty content -- FB will complain.
|
30 |
if ( defined( 'INSTANT_ARTICLES_LIMIT_POSTS' ) && INSTANT_ARTICLES_LIMIT_POSTS && ! strlen( trim( $instant_article_post->get_the_content() ) ) ) {
|
31 |
continue;
|
js/instant-articles-meta-box.js
CHANGED
@@ -1,3 +1,14 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
function instant_articles_load_meta_box ( post_ID ) {
|
2 |
jQuery( document ).ready( function( $ ) {
|
3 |
var data = {
|
@@ -6,6 +17,9 @@ function instant_articles_load_meta_box ( post_ID ) {
|
|
6 |
};
|
7 |
jQuery.post( ajaxurl, data, function(response) {
|
8 |
jQuery( '#instant_article_meta_box .inside' ).html( response );
|
|
|
|
|
|
|
9 |
}, 'html' );
|
10 |
jQuery( '#instant_article_meta_box' ).delegate( '.instant-articles-toggle-debug', 'click', function () {
|
11 |
jQuery( '#instant_article_meta_box' ).toggleClass( 'instant-articles-show-debug' );
|
1 |
+
function instant_articles_force_submit ( post_ID ) {
|
2 |
+
var data = {
|
3 |
+
'action': 'instant_articles_force_submit',
|
4 |
+
'post_ID': post_ID,
|
5 |
+
'force': jQuery( '#instant_articles_force_submit' ).is( ':checked' ),
|
6 |
+
'security': jQuery( '#instant_articles_force_submit' ).attr( 'data-security' )
|
7 |
+
};
|
8 |
+
jQuery.post( ajaxurl, data, function(response) {
|
9 |
+
instant_articles_load_meta_box( post_ID );
|
10 |
+
});
|
11 |
+
}
|
12 |
function instant_articles_load_meta_box ( post_ID ) {
|
13 |
jQuery( document ).ready( function( $ ) {
|
14 |
var data = {
|
17 |
};
|
18 |
jQuery.post( ajaxurl, data, function(response) {
|
19 |
jQuery( '#instant_article_meta_box .inside' ).html( response );
|
20 |
+
jQuery( '#instant_articles_force_submit').click( function () {
|
21 |
+
instant_articles_force_submit( post_ID );
|
22 |
+
} );
|
23 |
}, 'html' );
|
24 |
jQuery( '#instant_article_meta_box' ).delegate( '.instant-articles-toggle-debug', 'click', function () {
|
25 |
jQuery( '#instant_article_meta_box' ).toggleClass( 'instant-articles-show-debug' );
|
js/instant-articles-wizard.js
CHANGED
@@ -122,15 +122,14 @@ function instant_articles_wizard_bind_events () {
|
|
122 |
jQuery( document ).ready( function () {
|
123 |
instant_articles_wizard_bind_events();
|
124 |
|
125 |
-
jQuery( '.instant-articles-wizard-toggle' ).on( 'click', function () {
|
126 |
-
|
127 |
-
if (
|
128 |
-
|
129 |
}
|
130 |
else {
|
131 |
-
|
132 |
}
|
133 |
-
jQuery( this ).text( text ).next().slideToggle();
|
134 |
return false;
|
135 |
});
|
136 |
});
|
122 |
jQuery( document ).ready( function () {
|
123 |
instant_articles_wizard_bind_events();
|
124 |
|
125 |
+
jQuery( '.instant-articles-wizard-toggle a' ).on( 'click', function () {
|
126 |
+
$advancedSettingsContainer = jQuery( '.instant-articles-advanced-settings' );
|
127 |
+
if ( $advancedSettingsContainer.attr( 'data-state') === 'closed' ) {
|
128 |
+
$advancedSettingsContainer.attr( 'data-state', 'opened' );
|
129 |
}
|
130 |
else {
|
131 |
+
$advancedSettingsContainer.attr( 'data-state', 'closed' );
|
132 |
}
|
|
|
133 |
return false;
|
134 |
});
|
135 |
});
|
meta-box/class-instant-articles-meta-box.php
CHANGED
@@ -28,6 +28,10 @@ class Instant_Articles_Meta_Box {
|
|
28 |
'wp_ajax_instant_articles_meta_box',
|
29 |
array( 'Instant_Articles_Meta_Box', 'render_meta_box' )
|
30 |
);
|
|
|
|
|
|
|
|
|
31 |
}
|
32 |
|
33 |
/**
|
@@ -38,7 +42,9 @@ class Instant_Articles_Meta_Box {
|
|
38 |
'instant_article_meta_box',
|
39 |
'Facebook Instant Articles',
|
40 |
array( 'Instant_Articles_Meta_Box', 'render_meta_box_loader' ),
|
41 |
-
|
|
|
|
|
42 |
'normal',
|
43 |
'default'
|
44 |
);
|
@@ -60,27 +66,54 @@ class Instant_Articles_Meta_Box {
|
|
60 |
/**
|
61 |
* Renderer for the Metabox.
|
62 |
*/
|
63 |
-
public static function
|
64 |
-
$post_id = intval(
|
65 |
|
66 |
if ( ! current_user_can( 'edit_post', $post_id ) ) {
|
67 |
wp_die( -1, 403 );
|
68 |
}
|
69 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
70 |
$post = get_post( $post_id );
|
71 |
$adapter = new Instant_Articles_Post( $post );
|
72 |
$article = $adapter->to_instant_article();
|
73 |
$canonical_url = $adapter->get_canonical_url();
|
74 |
$submission_status = null;
|
75 |
$published = 'publish' === $post->post_status;
|
|
|
|
|
|
|
76 |
|
77 |
Instant_Articles_Wizard::menu_items();
|
78 |
$settings_page_href = Instant_Articles_Wizard::get_url();
|
79 |
|
|
|
|
|
80 |
if ( $published ) {
|
81 |
try {
|
82 |
$fb_app_settings = Instant_Articles_Option_FB_App::get_option_decoded();
|
83 |
$fb_page_settings = Instant_Articles_Option_FB_Page::get_option_decoded();
|
|
|
|
|
|
|
|
|
|
|
84 |
|
85 |
if ( isset( $fb_app_settings['app_id'] )
|
86 |
&& isset( $fb_app_settings['app_secret'] )
|
@@ -91,7 +124,8 @@ class Instant_Articles_Meta_Box {
|
|
91 |
$fb_app_settings['app_id'],
|
92 |
$fb_app_settings['app_secret'],
|
93 |
$fb_page_settings['page_access_token'],
|
94 |
-
$fb_page_settings['page_id']
|
|
|
95 |
);
|
96 |
|
97 |
$submission_status_id = get_post_meta( $post_id, Instant_Articles_Publisher::SUBMISSION_ID_KEY, true );
|
28 |
'wp_ajax_instant_articles_meta_box',
|
29 |
array( 'Instant_Articles_Meta_Box', 'render_meta_box' )
|
30 |
);
|
31 |
+
add_action(
|
32 |
+
'wp_ajax_instant_articles_force_submit',
|
33 |
+
array( 'Instant_Articles_Meta_Box', 'force_submit' )
|
34 |
+
);
|
35 |
}
|
36 |
|
37 |
/**
|
42 |
'instant_article_meta_box',
|
43 |
'Facebook Instant Articles',
|
44 |
array( 'Instant_Articles_Meta_Box', 'render_meta_box_loader' ),
|
45 |
+
|
46 |
+
/** This filter is defined in facebook-instant-articles.php. */
|
47 |
+
apply_filters( 'instant_articles_post_types', array( 'post' ) ),
|
48 |
'normal',
|
49 |
'default'
|
50 |
);
|
66 |
/**
|
67 |
* Renderer for the Metabox.
|
68 |
*/
|
69 |
+
public static function force_submit() {
|
70 |
+
$post_id = intval( $_POST[ 'post_ID' ] );
|
71 |
|
72 |
if ( ! current_user_can( 'edit_post', $post_id ) ) {
|
73 |
wp_die( -1, 403 );
|
74 |
}
|
75 |
|
76 |
+
check_ajax_referer( 'instant-articles-force-submit-' . $post_id, 'security' );
|
77 |
+
$force = sanitize_text_field( $_POST[ 'force' ] ) === 'true';
|
78 |
+
update_post_meta( $post_id, Instant_Articles_Publisher::FORCE_SUBMIT_KEY, $force );
|
79 |
+
Instant_Articles_Publisher::submit_article( $post_id, get_post( $post_id ) );
|
80 |
+
}
|
81 |
+
|
82 |
+
/**
|
83 |
+
* Renderer for the Metabox.
|
84 |
+
*/
|
85 |
+
public static function render_meta_box() {
|
86 |
+
$post_id = intval( $_POST[ 'post_ID' ] );
|
87 |
+
|
88 |
+
if ( !current_user_can( 'edit_post', $post_id ) ) {
|
89 |
+
wp_die( -1, 403 );
|
90 |
+
}
|
91 |
+
|
92 |
+
$ajax_nonce = wp_create_nonce( "instant-articles-force-submit-" . $post_id );
|
93 |
$post = get_post( $post_id );
|
94 |
$adapter = new Instant_Articles_Post( $post );
|
95 |
$article = $adapter->to_instant_article();
|
96 |
$canonical_url = $adapter->get_canonical_url();
|
97 |
$submission_status = null;
|
98 |
$published = 'publish' === $post->post_status;
|
99 |
+
$dev_mode = false;
|
100 |
+
$force_submit = get_post_meta( $post_id, Instant_Articles_Publisher::FORCE_SUBMIT_KEY, true );
|
101 |
+
$should_submit_post = apply_filters( 'instant_articles_should_submit_post', true, $adapter );
|
102 |
|
103 |
Instant_Articles_Wizard::menu_items();
|
104 |
$settings_page_href = Instant_Articles_Wizard::get_url();
|
105 |
|
106 |
+
$publishing_settings = Instant_Articles_Option_Publishing::get_option_decoded();
|
107 |
+
$publish_with_warnings = $publishing_settings[ 'publish_with_warnings' ];
|
108 |
if ( $published ) {
|
109 |
try {
|
110 |
$fb_app_settings = Instant_Articles_Option_FB_App::get_option_decoded();
|
111 |
$fb_page_settings = Instant_Articles_Option_FB_Page::get_option_decoded();
|
112 |
+
$publishing_settings = Instant_Articles_Option_Publishing::get_option_decoded();
|
113 |
+
|
114 |
+
$dev_mode = isset( $publishing_settings['dev_mode'] )
|
115 |
+
? ( $publishing_settings['dev_mode'] ? true : false )
|
116 |
+
: false;
|
117 |
|
118 |
if ( isset( $fb_app_settings['app_id'] )
|
119 |
&& isset( $fb_app_settings['app_secret'] )
|
124 |
$fb_app_settings['app_id'],
|
125 |
$fb_app_settings['app_secret'],
|
126 |
$fb_page_settings['page_access_token'],
|
127 |
+
$fb_page_settings['page_id'],
|
128 |
+
$dev_mode
|
129 |
);
|
130 |
|
131 |
$submission_status_id = get_post_meta( $post_id, Instant_Articles_Publisher::SUBMISSION_ID_KEY, true );
|
meta-box/meta-box-template.php
CHANGED
@@ -11,7 +11,21 @@ use Facebook\InstantArticles\Client\InstantArticleStatus;
|
|
11 |
use Facebook\InstantArticles\Client\ServerMessage;
|
12 |
?>
|
13 |
|
14 |
-
<?php if (
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
15 |
<p>
|
16 |
<b>
|
17 |
<span class="dashicons dashicons-media-document"></span>
|
@@ -163,6 +177,13 @@ use Facebook\InstantArticles\Client\ServerMessage;
|
|
163 |
</li>
|
164 |
<?php endforeach; ?>
|
165 |
</ul>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
166 |
|
167 |
<?php else : ?>
|
168 |
<p>
|
11 |
use Facebook\InstantArticles\Client\ServerMessage;
|
12 |
?>
|
13 |
|
14 |
+
<?php if ( $dev_mode ) : ?>
|
15 |
+
<a href="<?php echo esc_url( $settings_page_href ); ?>" class="instant-articles-dev-mode-indicator">
|
16 |
+
<span class="dashicons dashicons-admin-tools"></span>
|
17 |
+
Development Mode
|
18 |
+
</a>
|
19 |
+
<?php endif; ?>
|
20 |
+
|
21 |
+
<?php if ( ! $should_submit_post ) : ?>
|
22 |
+
<p>
|
23 |
+
<b>
|
24 |
+
<span class="dashicons dashicons-no-alt"></span>
|
25 |
+
This post will not be submitted to Instant Articles due to a rule created in your site.
|
26 |
+
</b>
|
27 |
+
</p>
|
28 |
+
<?php elseif ( ! $published ) : ?>
|
29 |
<p>
|
30 |
<b>
|
31 |
<span class="dashicons dashicons-media-document"></span>
|
177 |
</li>
|
178 |
<?php endforeach; ?>
|
179 |
</ul>
|
180 |
+
<?php if ( ! $publish_with_warnings ) : ?>
|
181 |
+
<hr />
|
182 |
+
<p>
|
183 |
+
<input type="checkbox" id="instant_articles_force_submit" data-security="<?php echo $ajax_nonce; ?>" <?php checked( $force_submit , 1 ); ?> />
|
184 |
+
Submit this article even with warnings
|
185 |
+
</p>
|
186 |
+
<?php endif; ?>
|
187 |
|
188 |
<?php else : ?>
|
189 |
<p>
|
readme.txt
CHANGED
@@ -3,7 +3,7 @@ Contributors: trrine, olethomas, bjornjohansen, dekode, automattic, facebook
|
|
3 |
Tags: instant articles, facebook, mobile
|
4 |
Requires at least: 4.3
|
5 |
Tested up to: 4.6
|
6 |
-
Stable tag: 3.
|
7 |
License: GPLv2 or later
|
8 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
9 |
|
@@ -85,6 +85,23 @@ Usually simply visiting the permalinks settings page in the WordPress dashboard
|
|
85 |
|
86 |
== Changelog ==
|
87 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
88 |
= 3.1.3 =
|
89 |
* Fix for expiring token issue
|
90 |
* Fix missing icons
|
3 |
Tags: instant articles, facebook, mobile
|
4 |
Requires at least: 4.3
|
5 |
Tested up to: 4.6
|
6 |
+
Stable tag: 3.2.2
|
7 |
License: GPLv2 or later
|
8 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
9 |
|
85 |
|
86 |
== Changelog ==
|
87 |
|
88 |
+
= 3.2 =
|
89 |
+
* Adds development mode support to post meta box (props simonengelhardt)
|
90 |
+
* Adds rule configuration for Instagram blockquotes (props everton-rosario)
|
91 |
+
* Adds rules for galleries (props everton-rosario)
|
92 |
+
* Migrates some unit tests (props everton-rosario)
|
93 |
+
* Switches to Facebook Graph SDK (props everton-rosario)
|
94 |
+
* Improves token invalidation flow (props everton-rosario)
|
95 |
+
* Fixes use of `the_title` filter (props srtfisher)
|
96 |
+
* Improves encoding handling (props yssk22)
|
97 |
+
* Adds post type filter to the post meta box (props technosailor)
|
98 |
+
* Adds Playbuzz support (props everton-rosario)
|
99 |
+
* Rename SDK getter to avert apocalypse (props diegoquinteiro)
|
100 |
+
* Wizard copy improvements (props demoive)
|
101 |
+
* Fixes issue with captions (props everton-rosario)
|
102 |
+
* Adds publication block for articles with transformation warnings (props everton-rosario)
|
103 |
+
* Fix https src attribute on some scripts (props goldenapples)
|
104 |
+
|
105 |
= 3.1.3 =
|
106 |
* Fix for expiring token issue
|
107 |
* Fix missing icons
|
rules-configuration.json
CHANGED
@@ -120,6 +120,26 @@
|
|
120 |
}, {
|
121 |
"class": "H2Rule",
|
122 |
"selector" : "h3,h4,h5,h6"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
123 |
}, {
|
124 |
"class": "InteractiveRule",
|
125 |
"selector" : "iframe",
|
@@ -397,8 +417,10 @@
|
|
397 |
}, {
|
398 |
"class": "CaptionRule",
|
399 |
"selector" : "figcaption"
|
400 |
-
},
|
401 |
-
|
|
|
|
|
402 |
"class": "ImageRule",
|
403 |
"selector" : "figure",
|
404 |
"properties" : {
|
@@ -424,5 +446,29 @@
|
|
424 |
"attribute": "type"
|
425 |
}
|
426 |
}
|
427 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
428 |
}
|
120 |
}, {
|
121 |
"class": "H2Rule",
|
122 |
"selector" : "h3,h4,h5,h6"
|
123 |
+
}, {
|
124 |
+
"class": "InteractiveRule",
|
125 |
+
"selector" : "blockquote.instagram-media",
|
126 |
+
"properties" : {
|
127 |
+
"interactive.iframe" : {
|
128 |
+
"type" : "multiple",
|
129 |
+
"children": [
|
130 |
+
{
|
131 |
+
"type": "element",
|
132 |
+
"selector": "blockquote"
|
133 |
+
}, {
|
134 |
+
"type": "next-sibling-element-of",
|
135 |
+
"selector": "blockquote"
|
136 |
+
}
|
137 |
+
]
|
138 |
+
}
|
139 |
+
}
|
140 |
+
}, {
|
141 |
+
"class": "IgnoreRule",
|
142 |
+
"selector" : "script"
|
143 |
}, {
|
144 |
"class": "InteractiveRule",
|
145 |
"selector" : "iframe",
|
417 |
}, {
|
418 |
"class": "CaptionRule",
|
419 |
"selector" : "figcaption"
|
420 |
+
}, {
|
421 |
+
"class": "CaptionRule",
|
422 |
+
"selector" : "p.wp-caption-text"
|
423 |
+
}, {
|
424 |
"class": "ImageRule",
|
425 |
"selector" : "figure",
|
426 |
"properties" : {
|
446 |
"attribute": "type"
|
447 |
}
|
448 |
}
|
449 |
+
}, {
|
450 |
+
"class" : "PassThroughRule",
|
451 |
+
"selector" : "div.vce-gallery-big"
|
452 |
+
}, {
|
453 |
+
"class" : "PassThroughRule",
|
454 |
+
"selector" : "div.vce-gallery-small"
|
455 |
+
}, {
|
456 |
+
"class" : "IgnoreRule",
|
457 |
+
"selector" : "div.vce-gallery-slider"
|
458 |
+
}, {
|
459 |
+
"class": "SlideshowImageRule",
|
460 |
+
"selector" : "div.big-gallery-item",
|
461 |
+
"properties" : {
|
462 |
+
"image.url" : {
|
463 |
+
"type" : "string",
|
464 |
+
"selector" : "img",
|
465 |
+
"attribute": "src"
|
466 |
+
},
|
467 |
+
"caption.title" : {
|
468 |
+
"type" : "string",
|
469 |
+
"selector" : "figcaption.wp-caption-text"
|
470 |
+
}
|
471 |
+
}
|
472 |
+
}
|
473 |
+
]
|
474 |
}
|
vendor/autoload.php
CHANGED
@@ -4,4 +4,4 @@
|
|
4 |
|
5 |
require_once __DIR__ . '/composer' . '/autoload_real.php';
|
6 |
|
7 |
-
return
|
4 |
|
5 |
require_once __DIR__ . '/composer' . '/autoload_real.php';
|
6 |
|
7 |
+
return ComposerAutoloaderInitfa8bfc5d2717dd9298c7d3347cfeea3b::getLoader();
|
vendor/composer/autoload_files.php
CHANGED
@@ -6,5 +6,5 @@ $vendorDir = dirname(dirname(__FILE__));
|
|
6 |
$baseDir = dirname($vendorDir);
|
7 |
|
8 |
return array(
|
9 |
-
'
|
10 |
);
|
6 |
$baseDir = dirname($vendorDir);
|
7 |
|
8 |
return array(
|
9 |
+
'c65d09b6820da036953a371c8c73a9b1' => $vendorDir . '/facebook/graph-sdk/src/Facebook/polyfills.php',
|
10 |
);
|
vendor/composer/autoload_psr4.php
CHANGED
@@ -8,5 +8,5 @@ $baseDir = dirname($vendorDir);
|
|
8 |
return array(
|
9 |
'Symfony\\Component\\CssSelector\\' => array($vendorDir . '/symfony/css-selector'),
|
10 |
'Facebook\\InstantArticles\\' => array($vendorDir . '/facebook/facebook-instant-articles-sdk-php/src/Facebook/InstantArticles'),
|
11 |
-
'Facebook\\' => array($vendorDir . '/facebook/
|
12 |
);
|
8 |
return array(
|
9 |
'Symfony\\Component\\CssSelector\\' => array($vendorDir . '/symfony/css-selector'),
|
10 |
'Facebook\\InstantArticles\\' => array($vendorDir . '/facebook/facebook-instant-articles-sdk-php/src/Facebook/InstantArticles'),
|
11 |
+
'Facebook\\' => array($vendorDir . '/facebook/graph-sdk/src/Facebook'),
|
12 |
);
|
vendor/composer/autoload_real.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
|
3 |
// autoload_real.php @generated by Composer
|
4 |
|
5 |
-
class
|
6 |
{
|
7 |
private static $loader;
|
8 |
|
@@ -19,15 +19,15 @@ class ComposerAutoloaderInit337744729a91b1fdea5f68820e3d1dfe
|
|
19 |
return self::$loader;
|
20 |
}
|
21 |
|
22 |
-
spl_autoload_register(array('
|
23 |
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
|
24 |
-
spl_autoload_unregister(array('
|
25 |
|
26 |
$useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION');
|
27 |
if ($useStaticLoader) {
|
28 |
require_once __DIR__ . '/autoload_static.php';
|
29 |
|
30 |
-
call_user_func(\Composer\Autoload\
|
31 |
} else {
|
32 |
$map = require __DIR__ . '/autoload_namespaces.php';
|
33 |
foreach ($map as $namespace => $path) {
|
@@ -48,19 +48,19 @@ class ComposerAutoloaderInit337744729a91b1fdea5f68820e3d1dfe
|
|
48 |
$loader->register(true);
|
49 |
|
50 |
if ($useStaticLoader) {
|
51 |
-
$includeFiles = Composer\Autoload\
|
52 |
} else {
|
53 |
$includeFiles = require __DIR__ . '/autoload_files.php';
|
54 |
}
|
55 |
foreach ($includeFiles as $fileIdentifier => $file) {
|
56 |
-
|
57 |
}
|
58 |
|
59 |
return $loader;
|
60 |
}
|
61 |
}
|
62 |
|
63 |
-
function
|
64 |
{
|
65 |
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
|
66 |
require $file;
|
2 |
|
3 |
// autoload_real.php @generated by Composer
|
4 |
|
5 |
+
class ComposerAutoloaderInitfa8bfc5d2717dd9298c7d3347cfeea3b
|
6 |
{
|
7 |
private static $loader;
|
8 |
|
19 |
return self::$loader;
|
20 |
}
|
21 |
|
22 |
+
spl_autoload_register(array('ComposerAutoloaderInitfa8bfc5d2717dd9298c7d3347cfeea3b', 'loadClassLoader'), true, true);
|
23 |
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
|
24 |
+
spl_autoload_unregister(array('ComposerAutoloaderInitfa8bfc5d2717dd9298c7d3347cfeea3b', 'loadClassLoader'));
|
25 |
|
26 |
$useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION');
|
27 |
if ($useStaticLoader) {
|
28 |
require_once __DIR__ . '/autoload_static.php';
|
29 |
|
30 |
+
call_user_func(\Composer\Autoload\ComposerStaticInitfa8bfc5d2717dd9298c7d3347cfeea3b::getInitializer($loader));
|
31 |
} else {
|
32 |
$map = require __DIR__ . '/autoload_namespaces.php';
|
33 |
foreach ($map as $namespace => $path) {
|
48 |
$loader->register(true);
|
49 |
|
50 |
if ($useStaticLoader) {
|
51 |
+
$includeFiles = Composer\Autoload\ComposerStaticInitfa8bfc5d2717dd9298c7d3347cfeea3b::$files;
|
52 |
} else {
|
53 |
$includeFiles = require __DIR__ . '/autoload_files.php';
|
54 |
}
|
55 |
foreach ($includeFiles as $fileIdentifier => $file) {
|
56 |
+
composerRequirefa8bfc5d2717dd9298c7d3347cfeea3b($fileIdentifier, $file);
|
57 |
}
|
58 |
|
59 |
return $loader;
|
60 |
}
|
61 |
}
|
62 |
|
63 |
+
function composerRequirefa8bfc5d2717dd9298c7d3347cfeea3b($fileIdentifier, $file)
|
64 |
{
|
65 |
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
|
66 |
require $file;
|
vendor/composer/autoload_static.php
CHANGED
@@ -4,10 +4,10 @@
|
|
4 |
|
5 |
namespace Composer\Autoload;
|
6 |
|
7 |
-
class
|
8 |
{
|
9 |
public static $files = array (
|
10 |
-
'
|
11 |
);
|
12 |
|
13 |
public static $prefixLengthsPsr4 = array (
|
@@ -33,7 +33,7 @@ class ComposerStaticInit337744729a91b1fdea5f68820e3d1dfe
|
|
33 |
),
|
34 |
'Facebook\\' =>
|
35 |
array (
|
36 |
-
0 => __DIR__ . '/..' . '/facebook/
|
37 |
),
|
38 |
);
|
39 |
|
@@ -122,9 +122,9 @@ class ComposerStaticInit337744729a91b1fdea5f68820e3d1dfe
|
|
122 |
public static function getInitializer(ClassLoader $loader)
|
123 |
{
|
124 |
return \Closure::bind(function () use ($loader) {
|
125 |
-
$loader->prefixLengthsPsr4 =
|
126 |
-
$loader->prefixDirsPsr4 =
|
127 |
-
$loader->classMap =
|
128 |
|
129 |
}, null, ClassLoader::class);
|
130 |
}
|
4 |
|
5 |
namespace Composer\Autoload;
|
6 |
|
7 |
+
class ComposerStaticInitfa8bfc5d2717dd9298c7d3347cfeea3b
|
8 |
{
|
9 |
public static $files = array (
|
10 |
+
'c65d09b6820da036953a371c8c73a9b1' => __DIR__ . '/..' . '/facebook/graph-sdk/src/Facebook/polyfills.php',
|
11 |
);
|
12 |
|
13 |
public static $prefixLengthsPsr4 = array (
|
33 |
),
|
34 |
'Facebook\\' =>
|
35 |
array (
|
36 |
+
0 => __DIR__ . '/..' . '/facebook/graph-sdk/src/Facebook',
|
37 |
),
|
38 |
);
|
39 |
|
122 |
public static function getInitializer(ClassLoader $loader)
|
123 |
{
|
124 |
return \Closure::bind(function () use ($loader) {
|
125 |
+
$loader->prefixLengthsPsr4 = ComposerStaticInitfa8bfc5d2717dd9298c7d3347cfeea3b::$prefixLengthsPsr4;
|
126 |
+
$loader->prefixDirsPsr4 = ComposerStaticInitfa8bfc5d2717dd9298c7d3347cfeea3b::$prefixDirsPsr4;
|
127 |
+
$loader->classMap = ComposerStaticInitfa8bfc5d2717dd9298c7d3347cfeea3b::$classMap;
|
128 |
|
129 |
}, null, ClassLoader::class);
|
130 |
}
|
vendor/composer/installed.json
CHANGED
@@ -1,49 +1,72 @@
|
|
1 |
[
|
2 |
{
|
3 |
-
"name": "
|
4 |
-
"version": "
|
5 |
-
"version_normalized": "2.
|
6 |
"source": {
|
7 |
"type": "git",
|
8 |
-
"url": "https://
|
9 |
-
"reference": "
|
|
|
|
|
|
|
|
|
|
|
|
|
10 |
},
|
11 |
"require": {
|
12 |
-
"php": ">=5.
|
13 |
},
|
14 |
-
"time": "
|
15 |
"type": "library",
|
16 |
-
"
|
|
|
|
|
|
|
|
|
|
|
17 |
"autoload": {
|
18 |
-
"
|
19 |
-
"
|
|
|
|
|
|
|
20 |
]
|
21 |
},
|
22 |
"notification-url": "https://packagist.org/downloads/",
|
23 |
"license": [
|
24 |
-
"
|
25 |
],
|
26 |
-
"
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
33 |
},
|
34 |
{
|
35 |
-
"name": "facebook/
|
36 |
-
"version": "5.
|
37 |
-
"version_normalized": "5.
|
38 |
"source": {
|
39 |
"type": "git",
|
40 |
"url": "https://github.com/facebook/php-graph-sdk.git",
|
41 |
-
"reference": "
|
42 |
},
|
43 |
"dist": {
|
44 |
"type": "zip",
|
45 |
-
"url": "https://api.github.com/repos/facebook/php-graph-sdk/zipball/
|
46 |
-
"reference": "
|
47 |
"shasum": ""
|
48 |
},
|
49 |
"require": {
|
@@ -55,9 +78,10 @@
|
|
55 |
"phpunit/phpunit": "~4.0"
|
56 |
},
|
57 |
"suggest": {
|
58 |
-
"guzzlehttp/guzzle": "Allows for implementation of the Guzzle HTTP client"
|
|
|
59 |
},
|
60 |
-
"time": "2016-
|
61 |
"type": "library",
|
62 |
"extra": {
|
63 |
"branch-alias": {
|
@@ -80,90 +104,66 @@
|
|
80 |
"authors": [
|
81 |
{
|
82 |
"name": "Facebook",
|
83 |
-
"homepage": "https://github.com/facebook/
|
84 |
}
|
85 |
],
|
86 |
"description": "Facebook SDK for PHP",
|
87 |
-
"homepage": "https://github.com/facebook/
|
88 |
"keywords": [
|
89 |
"facebook",
|
90 |
"sdk"
|
91 |
-
]
|
92 |
-
"abandoned": "facebook/graph-sdk"
|
93 |
},
|
94 |
{
|
95 |
-
"name": "
|
96 |
-
"version": "
|
97 |
-
"version_normalized": "2.
|
98 |
"source": {
|
99 |
"type": "git",
|
100 |
-
"url": "https://
|
101 |
-
"reference": "
|
102 |
-
},
|
103 |
-
"dist": {
|
104 |
-
"type": "zip",
|
105 |
-
"url": "https://api.github.com/repos/symfony/css-selector/zipball/71c8c3a04c126300c37089b1baa7c6322dfb845f",
|
106 |
-
"reference": "71c8c3a04c126300c37089b1baa7c6322dfb845f",
|
107 |
-
"shasum": ""
|
108 |
},
|
109 |
"require": {
|
110 |
-
"php": ">=5.
|
111 |
},
|
112 |
-
"time": "
|
113 |
"type": "library",
|
114 |
-
"
|
115 |
-
"branch-alias": {
|
116 |
-
"dev-master": "2.8-dev"
|
117 |
-
}
|
118 |
-
},
|
119 |
-
"installation-source": "dist",
|
120 |
"autoload": {
|
121 |
-
"
|
122 |
-
"
|
123 |
-
},
|
124 |
-
"exclude-from-classmap": [
|
125 |
-
"/Tests/"
|
126 |
]
|
127 |
},
|
128 |
"notification-url": "https://packagist.org/downloads/",
|
129 |
"license": [
|
130 |
-
"
|
131 |
-
],
|
132 |
-
"authors": [
|
133 |
-
{
|
134 |
-
"name": "Jean-François Simon",
|
135 |
-
"email": "jeanfrancois.simon@sensiolabs.com"
|
136 |
-
},
|
137 |
-
{
|
138 |
-
"name": "Fabien Potencier",
|
139 |
-
"email": "fabien@symfony.com"
|
140 |
-
},
|
141 |
-
{
|
142 |
-
"name": "Symfony Community",
|
143 |
-
"homepage": "https://symfony.com/contributors"
|
144 |
-
}
|
145 |
],
|
146 |
-
"description": "
|
147 |
-
"homepage": "
|
|
|
|
|
|
|
|
|
|
|
148 |
},
|
149 |
{
|
150 |
"name": "facebook/facebook-instant-articles-sdk-php",
|
151 |
-
"version": "v1.5.
|
152 |
-
"version_normalized": "1.5.
|
153 |
"source": {
|
154 |
"type": "git",
|
155 |
"url": "https://github.com/facebook/facebook-instant-articles-sdk-php.git",
|
156 |
-
"reference": "
|
157 |
},
|
158 |
"dist": {
|
159 |
"type": "zip",
|
160 |
-
"url": "https://api.github.com/repos/facebook/facebook-instant-articles-sdk-php/zipball/
|
161 |
-
"reference": "
|
162 |
"shasum": ""
|
163 |
},
|
164 |
"require": {
|
165 |
"apache/log4php": "2.3.0",
|
166 |
-
"facebook/
|
167 |
"php": "^5.4 || ^7.0",
|
168 |
"symfony/css-selector": "2.8.*"
|
169 |
},
|
@@ -172,7 +172,7 @@
|
|
172 |
"phpunit/phpunit": "^4.8",
|
173 |
"squizlabs/php_codesniffer": "^2.6.0"
|
174 |
},
|
175 |
-
"time": "2016-
|
176 |
"type": "library",
|
177 |
"installation-source": "dist",
|
178 |
"autoload": {
|
1 |
[
|
2 |
{
|
3 |
+
"name": "symfony/css-selector",
|
4 |
+
"version": "v2.8.14",
|
5 |
+
"version_normalized": "2.8.14.0",
|
6 |
"source": {
|
7 |
"type": "git",
|
8 |
+
"url": "https://github.com/symfony/css-selector.git",
|
9 |
+
"reference": "981abbbd6ba49af338a98490cbe29e7f39ca9fa9"
|
10 |
+
},
|
11 |
+
"dist": {
|
12 |
+
"type": "zip",
|
13 |
+
"url": "https://api.github.com/repos/symfony/css-selector/zipball/981abbbd6ba49af338a98490cbe29e7f39ca9fa9",
|
14 |
+
"reference": "981abbbd6ba49af338a98490cbe29e7f39ca9fa9",
|
15 |
+
"shasum": ""
|
16 |
},
|
17 |
"require": {
|
18 |
+
"php": ">=5.3.9"
|
19 |
},
|
20 |
+
"time": "2016-11-03 07:52:58",
|
21 |
"type": "library",
|
22 |
+
"extra": {
|
23 |
+
"branch-alias": {
|
24 |
+
"dev-master": "2.8-dev"
|
25 |
+
}
|
26 |
+
},
|
27 |
+
"installation-source": "dist",
|
28 |
"autoload": {
|
29 |
+
"psr-4": {
|
30 |
+
"Symfony\\Component\\CssSelector\\": ""
|
31 |
+
},
|
32 |
+
"exclude-from-classmap": [
|
33 |
+
"/Tests/"
|
34 |
]
|
35 |
},
|
36 |
"notification-url": "https://packagist.org/downloads/",
|
37 |
"license": [
|
38 |
+
"MIT"
|
39 |
],
|
40 |
+
"authors": [
|
41 |
+
{
|
42 |
+
"name": "Jean-François Simon",
|
43 |
+
"email": "jeanfrancois.simon@sensiolabs.com"
|
44 |
+
},
|
45 |
+
{
|
46 |
+
"name": "Fabien Potencier",
|
47 |
+
"email": "fabien@symfony.com"
|
48 |
+
},
|
49 |
+
{
|
50 |
+
"name": "Symfony Community",
|
51 |
+
"homepage": "https://symfony.com/contributors"
|
52 |
+
}
|
53 |
+
],
|
54 |
+
"description": "Symfony CssSelector Component",
|
55 |
+
"homepage": "https://symfony.com"
|
56 |
},
|
57 |
{
|
58 |
+
"name": "facebook/graph-sdk",
|
59 |
+
"version": "5.4.2",
|
60 |
+
"version_normalized": "5.4.2.0",
|
61 |
"source": {
|
62 |
"type": "git",
|
63 |
"url": "https://github.com/facebook/php-graph-sdk.git",
|
64 |
+
"reference": "2839246e971aef150650196acbb46d47e5207370"
|
65 |
},
|
66 |
"dist": {
|
67 |
"type": "zip",
|
68 |
+
"url": "https://api.github.com/repos/facebook/php-graph-sdk/zipball/2839246e971aef150650196acbb46d47e5207370",
|
69 |
+
"reference": "2839246e971aef150650196acbb46d47e5207370",
|
70 |
"shasum": ""
|
71 |
},
|
72 |
"require": {
|
78 |
"phpunit/phpunit": "~4.0"
|
79 |
},
|
80 |
"suggest": {
|
81 |
+
"guzzlehttp/guzzle": "Allows for implementation of the Guzzle HTTP client",
|
82 |
+
"paragonie/random_compat": "Provides a better CSPRNG option in PHP 5"
|
83 |
},
|
84 |
+
"time": "2016-11-15 14:34:16",
|
85 |
"type": "library",
|
86 |
"extra": {
|
87 |
"branch-alias": {
|
104 |
"authors": [
|
105 |
{
|
106 |
"name": "Facebook",
|
107 |
+
"homepage": "https://github.com/facebook/php-graph-sdk/contributors"
|
108 |
}
|
109 |
],
|
110 |
"description": "Facebook SDK for PHP",
|
111 |
+
"homepage": "https://github.com/facebook/php-graph-sdk",
|
112 |
"keywords": [
|
113 |
"facebook",
|
114 |
"sdk"
|
115 |
+
]
|
|
|
116 |
},
|
117 |
{
|
118 |
+
"name": "apache/log4php",
|
119 |
+
"version": "2.3.0",
|
120 |
+
"version_normalized": "2.3.0.0",
|
121 |
"source": {
|
122 |
"type": "git",
|
123 |
+
"url": "https://git-wip-us.apache.org/repos/asf/logging-log4php.git",
|
124 |
+
"reference": "8c6df2481cd68d0d211d38f700406c5f0a9de0c2"
|
|
|
|
|
|
|
|
|
|
|
|
|
125 |
},
|
126 |
"require": {
|
127 |
+
"php": ">=5.2.7"
|
128 |
},
|
129 |
+
"time": "2012-10-26 09:13:25",
|
130 |
"type": "library",
|
131 |
+
"installation-source": "source",
|
|
|
|
|
|
|
|
|
|
|
132 |
"autoload": {
|
133 |
+
"classmap": [
|
134 |
+
"src/main/php/"
|
|
|
|
|
|
|
135 |
]
|
136 |
},
|
137 |
"notification-url": "https://packagist.org/downloads/",
|
138 |
"license": [
|
139 |
+
"Apache-2.0"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
140 |
],
|
141 |
+
"description": "A versatile logging framework for PHP",
|
142 |
+
"homepage": "http://logging.apache.org/log4php/",
|
143 |
+
"keywords": [
|
144 |
+
"log",
|
145 |
+
"logging",
|
146 |
+
"php"
|
147 |
+
]
|
148 |
},
|
149 |
{
|
150 |
"name": "facebook/facebook-instant-articles-sdk-php",
|
151 |
+
"version": "v1.5.2",
|
152 |
+
"version_normalized": "1.5.2.0",
|
153 |
"source": {
|
154 |
"type": "git",
|
155 |
"url": "https://github.com/facebook/facebook-instant-articles-sdk-php.git",
|
156 |
+
"reference": "563726feebd4c3a0132d33bb5b946d4b460a9fa7"
|
157 |
},
|
158 |
"dist": {
|
159 |
"type": "zip",
|
160 |
+
"url": "https://api.github.com/repos/facebook/facebook-instant-articles-sdk-php/zipball/563726feebd4c3a0132d33bb5b946d4b460a9fa7",
|
161 |
+
"reference": "563726feebd4c3a0132d33bb5b946d4b460a9fa7",
|
162 |
"shasum": ""
|
163 |
},
|
164 |
"require": {
|
165 |
"apache/log4php": "2.3.0",
|
166 |
+
"facebook/graph-sdk": "~5.0",
|
167 |
"php": "^5.4 || ^7.0",
|
168 |
"symfony/css-selector": "2.8.*"
|
169 |
},
|
172 |
"phpunit/phpunit": "^4.8",
|
173 |
"squizlabs/php_codesniffer": "^2.6.0"
|
174 |
},
|
175 |
+
"time": "2016-10-07 18:26:43",
|
176 |
"type": "library",
|
177 |
"installation-source": "dist",
|
178 |
"autoload": {
|
vendor/facebook/facebook-instant-articles-sdk-php/composer.json
DELETED
@@ -1,47 +0,0 @@
|
|
1 |
-
{
|
2 |
-
"name": "facebook/facebook-instant-articles-sdk-php",
|
3 |
-
"description": "Facebook Instant Articles SDK for PHP",
|
4 |
-
"keywords": ["facebook", "sdk", "instant", "articles"],
|
5 |
-
"type": "library",
|
6 |
-
"homepage": "https://github.com/facebook/facebook-instant-articles-sdk-php",
|
7 |
-
"license": "proprietary",
|
8 |
-
"authors": [{
|
9 |
-
"name": "Facebook",
|
10 |
-
"homepage": "https://github.com/facebook/facebook-instant-articles-sdk-php/contributors"
|
11 |
-
}],
|
12 |
-
"require": {
|
13 |
-
"php": "^5.4 || ^7.0",
|
14 |
-
"symfony/css-selector": "2.8.*",
|
15 |
-
"facebook/php-sdk-v4": "~5.0",
|
16 |
-
"apache/log4php": "2.3.0"
|
17 |
-
},
|
18 |
-
"require-dev": {
|
19 |
-
"fzaninotto/faker": "^1.6.0",
|
20 |
-
"phpunit/phpunit": "^4.8",
|
21 |
-
"squizlabs/php_codesniffer": "^2.6.0"
|
22 |
-
},
|
23 |
-
"autoload": {
|
24 |
-
"psr-4": {
|
25 |
-
"Facebook\\InstantArticles\\": "src/Facebook/InstantArticles/"
|
26 |
-
}
|
27 |
-
},
|
28 |
-
"autoload-dev": {
|
29 |
-
"psr-4": {
|
30 |
-
"Facebook\\InstantArticles\\": "tests/Facebook/InstantArticles/"
|
31 |
-
}
|
32 |
-
},
|
33 |
-
"scripts": {
|
34 |
-
"all": [
|
35 |
-
"@cs",
|
36 |
-
"@test"
|
37 |
-
],
|
38 |
-
"cs": [
|
39 |
-
"composer install",
|
40 |
-
"phpcbf --standard=phpcs.xml -p || phpcs --standard=phpcs.xml -p"
|
41 |
-
],
|
42 |
-
"test": [
|
43 |
-
"composer install",
|
44 |
-
"phpunit"
|
45 |
-
]
|
46 |
-
}
|
47 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/facebook/facebook-instant-articles-sdk-php/composer.lock
DELETED
@@ -1,1245 +0,0 @@
|
|
1 |
-
{
|
2 |
-
"_readme": [
|
3 |
-
"This file locks the dependencies of your project to a known state",
|
4 |
-
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
|
5 |
-
"This file is @generated automatically"
|
6 |
-
],
|
7 |
-
"hash": "1cb48da59b04851b1ddcce5ac4a16e91",
|
8 |
-
"content-hash": "e47809dbb41d3cf5a6049a4db9fe2301",
|
9 |
-
"packages": [
|
10 |
-
{
|
11 |
-
"name": "apache/log4php",
|
12 |
-
"version": "2.3.0",
|
13 |
-
"source": {
|
14 |
-
"type": "git",
|
15 |
-
"url": "https://git-wip-us.apache.org/repos/asf/logging-log4php.git",
|
16 |
-
"reference": "8c6df2481cd68d0d211d38f700406c5f0a9de0c2"
|
17 |
-
},
|
18 |
-
"require": {
|
19 |
-
"php": ">=5.2.7"
|
20 |
-
},
|
21 |
-
"type": "library",
|
22 |
-
"autoload": {
|
23 |
-
"classmap": [
|
24 |
-
"src/main/php/"
|
25 |
-
]
|
26 |
-
},
|
27 |
-
"notification-url": "https://packagist.org/downloads/",
|
28 |
-
"license": [
|
29 |
-
"Apache-2.0"
|
30 |
-
],
|
31 |
-
"description": "A versatile logging framework for PHP",
|
32 |
-
"homepage": "http://logging.apache.org/log4php/",
|
33 |
-
"keywords": [
|
34 |
-
"log",
|
35 |
-
"logging",
|
36 |
-
"php"
|
37 |
-
],
|
38 |
-
"time": "2012-10-26 09:13:25"
|
39 |
-
},
|
40 |
-
{
|
41 |
-
"name": "facebook/php-sdk-v4",
|
42 |
-
"version": "5.2.0",
|
43 |
-
"source": {
|
44 |
-
"type": "git",
|
45 |
-
"url": "https://github.com/facebook/facebook-php-sdk-v4.git",
|
46 |
-
"reference": "c60fba1fe1de62db1e0776d32fc2fb778189459c"
|
47 |
-
},
|
48 |
-
"dist": {
|
49 |
-
"type": "zip",
|
50 |
-
"url": "https://api.github.com/repos/facebook/facebook-php-sdk-v4/zipball/c60fba1fe1de62db1e0776d32fc2fb778189459c",
|
51 |
-
"reference": "c60fba1fe1de62db1e0776d32fc2fb778189459c",
|
52 |
-
"shasum": ""
|
53 |
-
},
|
54 |
-
"require": {
|
55 |
-
"php": "^5.4|^7.0"
|
56 |
-
},
|
57 |
-
"require-dev": {
|
58 |
-
"guzzlehttp/guzzle": "~5.0",
|
59 |
-
"mockery/mockery": "~0.8",
|
60 |
-
"phpunit/phpunit": "~4.0"
|
61 |
-
},
|
62 |
-
"suggest": {
|
63 |
-
"guzzlehttp/guzzle": "Allows for implementation of the Guzzle HTTP client"
|
64 |
-
},
|
65 |
-
"type": "library",
|
66 |
-
"extra": {
|
67 |
-
"branch-alias": {
|
68 |
-
"dev-master": "5.x-dev"
|
69 |
-
}
|
70 |
-
},
|
71 |
-
"autoload": {
|
72 |
-
"psr-4": {
|
73 |
-
"Facebook\\": "src/Facebook/"
|
74 |
-
},
|
75 |
-
"files": [
|
76 |
-
"src/Facebook/polyfills.php"
|
77 |
-
]
|
78 |
-
},
|
79 |
-
"notification-url": "https://packagist.org/downloads/",
|
80 |
-
"license": [
|
81 |
-
"Facebook Platform"
|
82 |
-
],
|
83 |
-
"authors": [
|
84 |
-
{
|
85 |
-
"name": "Facebook",
|
86 |
-
"homepage": "https://github.com/facebook/facebook-php-sdk-v4/contributors"
|
87 |
-
}
|
88 |
-
],
|
89 |
-
"description": "Facebook SDK for PHP",
|
90 |
-
"homepage": "https://github.com/facebook/facebook-php-sdk-v4",
|
91 |
-
"keywords": [
|
92 |
-
"facebook",
|
93 |
-
"sdk"
|
94 |
-
],
|
95 |
-
"time": "2016-05-18 22:04:36"
|
96 |
-
},
|
97 |
-
{
|
98 |
-
"name": "symfony/css-selector",
|
99 |
-
"version": "v2.8.7",
|
100 |
-
"source": {
|
101 |
-
"type": "git",
|
102 |
-
"url": "https://github.com/symfony/css-selector.git",
|
103 |
-
"reference": "9a0b2649328297fb6acd0c823789d92efcbd36ad"
|
104 |
-
},
|
105 |
-
"dist": {
|
106 |
-
"type": "zip",
|
107 |
-
"url": "https://api.github.com/repos/symfony/css-selector/zipball/9a0b2649328297fb6acd0c823789d92efcbd36ad",
|
108 |
-
"reference": "9a0b2649328297fb6acd0c823789d92efcbd36ad",
|
109 |
-
"shasum": ""
|
110 |
-
},
|
111 |
-
"require": {
|
112 |
-
"php": ">=5.3.9"
|
113 |
-
},
|
114 |
-
"type": "library",
|
115 |
-
"extra": {
|
116 |
-
"branch-alias": {
|
117 |
-
"dev-master": "2.8-dev"
|
118 |
-
}
|
119 |
-
},
|
120 |
-
"autoload": {
|
121 |
-
"psr-4": {
|
122 |
-
"Symfony\\Component\\CssSelector\\": ""
|
123 |
-
},
|
124 |
-
"exclude-from-classmap": [
|
125 |
-
"/Tests/"
|
126 |
-
]
|
127 |
-
},
|
128 |
-
"notification-url": "https://packagist.org/downloads/",
|
129 |
-
"license": [
|
130 |
-
"MIT"
|
131 |
-
],
|
132 |
-
"authors": [
|
133 |
-
{
|
134 |
-
"name": "Jean-François Simon",
|
135 |
-
"email": "jeanfrancois.simon@sensiolabs.com"
|
136 |
-
},
|
137 |
-
{
|
138 |
-
"name": "Fabien Potencier",
|
139 |
-
"email": "fabien@symfony.com"
|
140 |
-
},
|
141 |
-
{
|
142 |
-
"name": "Symfony Community",
|
143 |
-
"homepage": "https://symfony.com/contributors"
|
144 |
-
}
|
145 |
-
],
|
146 |
-
"description": "Symfony CssSelector Component",
|
147 |
-
"homepage": "https://symfony.com",
|
148 |
-
"time": "2016-06-06 11:11:27"
|
149 |
-
}
|
150 |
-
],
|
151 |
-
"packages-dev": [
|
152 |
-
{
|
153 |
-
"name": "doctrine/instantiator",
|
154 |
-
"version": "1.0.5",
|
155 |
-
"source": {
|
156 |
-
"type": "git",
|
157 |
-
"url": "https://github.com/doctrine/instantiator.git",
|
158 |
-
"reference": "8e884e78f9f0eb1329e445619e04456e64d8051d"
|
159 |
-
},
|
160 |
-
"dist": {
|
161 |
-
"type": "zip",
|
162 |
-
"url": "https://api.github.com/repos/doctrine/instantiator/zipball/8e884e78f9f0eb1329e445619e04456e64d8051d",
|
163 |
-
"reference": "8e884e78f9f0eb1329e445619e04456e64d8051d",
|
164 |
-
"shasum": ""
|
165 |
-
},
|
166 |
-
"require": {
|
167 |
-
"php": ">=5.3,<8.0-DEV"
|
168 |
-
},
|
169 |
-
"require-dev": {
|
170 |
-
"athletic/athletic": "~0.1.8",
|
171 |
-
"ext-pdo": "*",
|
172 |
-
"ext-phar": "*",
|
173 |
-
"phpunit/phpunit": "~4.0",
|
174 |
-
"squizlabs/php_codesniffer": "~2.0"
|
175 |
-
},
|
176 |
-
"type": "library",
|
177 |
-
"extra": {
|
178 |
-
"branch-alias": {
|
179 |
-
"dev-master": "1.0.x-dev"
|
180 |
-
}
|
181 |
-
},
|
182 |
-
"autoload": {
|
183 |
-
"psr-4": {
|
184 |
-
"Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/"
|
185 |
-
}
|
186 |
-
},
|
187 |
-
"notification-url": "https://packagist.org/downloads/",
|
188 |
-
"license": [
|
189 |
-
"MIT"
|
190 |
-
],
|
191 |
-
"authors": [
|
192 |
-
{
|
193 |
-
"name": "Marco Pivetta",
|
194 |
-
"email": "ocramius@gmail.com",
|
195 |
-
"homepage": "http://ocramius.github.com/"
|
196 |
-
}
|
197 |
-
],
|
198 |
-
"description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors",
|
199 |
-
"homepage": "https://github.com/doctrine/instantiator",
|
200 |
-
"keywords": [
|
201 |
-
"constructor",
|
202 |
-
"instantiate"
|
203 |
-
],
|
204 |
-
"time": "2015-06-14 21:17:01"
|
205 |
-
},
|
206 |
-
{
|
207 |
-
"name": "fzaninotto/faker",
|
208 |
-
"version": "v1.6.0",
|
209 |
-
"source": {
|
210 |
-
"type": "git",
|
211 |
-
"url": "https://github.com/fzaninotto/Faker.git",
|
212 |
-
"reference": "44f9a286a04b80c76a4e5fb7aad8bb539b920123"
|
213 |
-
},
|
214 |
-
"dist": {
|
215 |
-
"type": "zip",
|
216 |
-
"url": "https://api.github.com/repos/fzaninotto/Faker/zipball/44f9a286a04b80c76a4e5fb7aad8bb539b920123",
|
217 |
-
"reference": "44f9a286a04b80c76a4e5fb7aad8bb539b920123",
|
218 |
-
"shasum": ""
|
219 |
-
},
|
220 |
-
"require": {
|
221 |
-
"php": "^5.3.3|^7.0"
|
222 |
-
},
|
223 |
-
"require-dev": {
|
224 |
-
"ext-intl": "*",
|
225 |
-
"phpunit/phpunit": "~4.0",
|
226 |
-
"squizlabs/php_codesniffer": "~1.5"
|
227 |
-
},
|
228 |
-
"type": "library",
|
229 |
-
"extra": {
|
230 |
-
"branch-alias": []
|
231 |
-
},
|
232 |
-
"autoload": {
|
233 |
-
"psr-4": {
|
234 |
-
"Faker\\": "src/Faker/"
|
235 |
-
}
|
236 |
-
},
|
237 |
-
"notification-url": "https://packagist.org/downloads/",
|
238 |
-
"license": [
|
239 |
-
"MIT"
|
240 |
-
],
|
241 |
-
"authors": [
|
242 |
-
{
|
243 |
-
"name": "François Zaninotto"
|
244 |
-
}
|
245 |
-
],
|
246 |
-
"description": "Faker is a PHP library that generates fake data for you.",
|
247 |
-
"keywords": [
|
248 |
-
"data",
|
249 |
-
"faker",
|
250 |
-
"fixtures"
|
251 |
-
],
|
252 |
-
"time": "2016-04-29 12:21:54"
|
253 |
-
},
|
254 |
-
{
|
255 |
-
"name": "phpdocumentor/reflection-docblock",
|
256 |
-
"version": "2.0.4",
|
257 |
-
"source": {
|
258 |
-
"type": "git",
|
259 |
-
"url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
|
260 |
-
"reference": "d68dbdc53dc358a816f00b300704702b2eaff7b8"
|
261 |
-
},
|
262 |
-
"dist": {
|
263 |
-
"type": "zip",
|
264 |
-
"url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/d68dbdc53dc358a816f00b300704702b2eaff7b8",
|
265 |
-
"reference": "d68dbdc53dc358a816f00b300704702b2eaff7b8",
|
266 |
-
"shasum": ""
|
267 |
-
},
|
268 |
-
"require": {
|
269 |
-
"php": ">=5.3.3"
|
270 |
-
},
|
271 |
-
"require-dev": {
|
272 |
-
"phpunit/phpunit": "~4.0"
|
273 |
-
},
|
274 |
-
"suggest": {
|
275 |
-
"dflydev/markdown": "~1.0",
|
276 |
-
"erusev/parsedown": "~1.0"
|
277 |
-
},
|
278 |
-
"type": "library",
|
279 |
-
"extra": {
|
280 |
-
"branch-alias": {
|
281 |
-
"dev-master": "2.0.x-dev"
|
282 |
-
}
|
283 |
-
},
|
284 |
-
"autoload": {
|
285 |
-
"psr-0": {
|
286 |
-
"phpDocumentor": [
|
287 |
-
"src/"
|
288 |
-
]
|
289 |
-
}
|
290 |
-
},
|
291 |
-
"notification-url": "https://packagist.org/downloads/",
|
292 |
-
"license": [
|
293 |
-
"MIT"
|
294 |
-
],
|
295 |
-
"authors": [
|
296 |
-
{
|
297 |
-
"name": "Mike van Riel",
|
298 |
-
"email": "mike.vanriel@naenius.com"
|
299 |
-
}
|
300 |
-
],
|
301 |
-
"time": "2015-02-03 12:10:50"
|
302 |
-
},
|
303 |
-
{
|
304 |
-
"name": "phpspec/prophecy",
|
305 |
-
"version": "v1.6.1",
|
306 |
-
"source": {
|
307 |
-
"type": "git",
|
308 |
-
"url": "https://github.com/phpspec/prophecy.git",
|
309 |
-
"reference": "58a8137754bc24b25740d4281399a4a3596058e0"
|
310 |
-
},
|
311 |
-
"dist": {
|
312 |
-
"type": "zip",
|
313 |
-
"url": "https://api.github.com/repos/phpspec/prophecy/zipball/58a8137754bc24b25740d4281399a4a3596058e0",
|
314 |
-
"reference": "58a8137754bc24b25740d4281399a4a3596058e0",
|
315 |
-
"shasum": ""
|
316 |
-
},
|
317 |
-
"require": {
|
318 |
-
"doctrine/instantiator": "^1.0.2",
|
319 |
-
"php": "^5.3|^7.0",
|
320 |
-
"phpdocumentor/reflection-docblock": "^2.0|^3.0.2",
|
321 |
-
"sebastian/comparator": "^1.1",
|
322 |
-
"sebastian/recursion-context": "^1.0"
|
323 |
-
},
|
324 |
-
"require-dev": {
|
325 |
-
"phpspec/phpspec": "^2.0"
|
326 |
-
},
|
327 |
-
"type": "library",
|
328 |
-
"extra": {
|
329 |
-
"branch-alias": {
|
330 |
-
"dev-master": "1.6.x-dev"
|
331 |
-
}
|
332 |
-
},
|
333 |
-
"autoload": {
|
334 |
-
"psr-0": {
|
335 |
-
"Prophecy\\": "src/"
|
336 |
-
}
|
337 |
-
},
|
338 |
-
"notification-url": "https://packagist.org/downloads/",
|
339 |
-
"license": [
|
340 |
-
"MIT"
|
341 |
-
],
|
342 |
-
"authors": [
|
343 |
-
{
|
344 |
-
"name": "Konstantin Kudryashov",
|
345 |
-
"email": "ever.zet@gmail.com",
|
346 |
-
"homepage": "http://everzet.com"
|
347 |
-
},
|
348 |
-
{
|
349 |
-
"name": "Marcello Duarte",
|
350 |
-
"email": "marcello.duarte@gmail.com"
|
351 |
-
}
|
352 |
-
],
|
353 |
-
"description": "Highly opinionated mocking framework for PHP 5.3+",
|
354 |
-
"homepage": "https://github.com/phpspec/prophecy",
|
355 |
-
"keywords": [
|
356 |
-
"Double",
|
357 |
-
"Dummy",
|
358 |
-
"fake",
|
359 |
-
"mock",
|
360 |
-
"spy",
|
361 |
-
"stub"
|
362 |
-
],
|
363 |
-
"time": "2016-06-07 08:13:47"
|
364 |
-
},
|
365 |
-
{
|
366 |
-
"name": "phpunit/php-code-coverage",
|
367 |
-
"version": "2.2.4",
|
368 |
-
"source": {
|
369 |
-
"type": "git",
|
370 |
-
"url": "https://github.com/sebastianbergmann/php-code-coverage.git",
|
371 |
-
"reference": "eabf68b476ac7d0f73793aada060f1c1a9bf8979"
|
372 |
-
},
|
373 |
-
"dist": {
|
374 |
-
"type": "zip",
|
375 |
-
"url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/eabf68b476ac7d0f73793aada060f1c1a9bf8979",
|
376 |
-
"reference": "eabf68b476ac7d0f73793aada060f1c1a9bf8979",
|
377 |
-
"shasum": ""
|
378 |
-
},
|
379 |
-
"require": {
|
380 |
-
"php": ">=5.3.3",
|
381 |
-
"phpunit/php-file-iterator": "~1.3",
|
382 |
-
"phpunit/php-text-template": "~1.2",
|
383 |
-
"phpunit/php-token-stream": "~1.3",
|
384 |
-
"sebastian/environment": "^1.3.2",
|
385 |
-
"sebastian/version": "~1.0"
|
386 |
-
},
|
387 |
-
"require-dev": {
|
388 |
-
"ext-xdebug": ">=2.1.4",
|
389 |
-
"phpunit/phpunit": "~4"
|
390 |
-
},
|
391 |
-
"suggest": {
|
392 |
-
"ext-dom": "*",
|
393 |
-
"ext-xdebug": ">=2.2.1",
|
394 |
-
"ext-xmlwriter": "*"
|
395 |
-
},
|
396 |
-
"type": "library",
|
397 |
-
"extra": {
|
398 |
-
"branch-alias": {
|
399 |
-
"dev-master": "2.2.x-dev"
|
400 |
-
}
|
401 |
-
},
|
402 |
-
"autoload": {
|
403 |
-
"classmap": [
|
404 |
-
"src/"
|
405 |
-
]
|
406 |
-
},
|
407 |
-
"notification-url": "https://packagist.org/downloads/",
|
408 |
-
"license": [
|
409 |
-
"BSD-3-Clause"
|
410 |
-
],
|
411 |
-
"authors": [
|
412 |
-
{
|
413 |
-
"name": "Sebastian Bergmann",
|
414 |
-
"email": "sb@sebastian-bergmann.de",
|
415 |
-
"role": "lead"
|
416 |
-
}
|
417 |
-
],
|
418 |
-
"description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.",
|
419 |
-
"homepage": "https://github.com/sebastianbergmann/php-code-coverage",
|
420 |
-
"keywords": [
|
421 |
-
"coverage",
|
422 |
-
"testing",
|
423 |
-
"xunit"
|
424 |
-
],
|
425 |
-
"time": "2015-10-06 15:47:00"
|
426 |
-
},
|
427 |
-
{
|
428 |
-
"name": "phpunit/php-file-iterator",
|
429 |
-
"version": "1.4.1",
|
430 |
-
"source": {
|
431 |
-
"type": "git",
|
432 |
-
"url": "https://github.com/sebastianbergmann/php-file-iterator.git",
|
433 |
-
"reference": "6150bf2c35d3fc379e50c7602b75caceaa39dbf0"
|
434 |
-
},
|
435 |
-
"dist": {
|
436 |
-
"type": "zip",
|
437 |
-
"url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/6150bf2c35d3fc379e50c7602b75caceaa39dbf0",
|
438 |
-
"reference": "6150bf2c35d3fc379e50c7602b75caceaa39dbf0",
|
439 |
-
"shasum": ""
|
440 |
-
},
|
441 |
-
"require": {
|
442 |
-
"php": ">=5.3.3"
|
443 |
-
},
|
444 |
-
"type": "library",
|
445 |
-
"extra": {
|
446 |
-
"branch-alias": {
|
447 |
-
"dev-master": "1.4.x-dev"
|
448 |
-
}
|
449 |
-
},
|
450 |
-
"autoload": {
|
451 |
-
"classmap": [
|
452 |
-
"src/"
|
453 |
-
]
|
454 |
-
},
|
455 |
-
"notification-url": "https://packagist.org/downloads/",
|
456 |
-
"license": [
|
457 |
-
"BSD-3-Clause"
|
458 |
-
],
|
459 |
-
"authors": [
|
460 |
-
{
|
461 |
-
"name": "Sebastian Bergmann",
|
462 |
-
"email": "sb@sebastian-bergmann.de",
|
463 |
-
"role": "lead"
|
464 |
-
}
|
465 |
-
],
|
466 |
-
"description": "FilterIterator implementation that filters files based on a list of suffixes.",
|
467 |
-
"homepage": "https://github.com/sebastianbergmann/php-file-iterator/",
|
468 |
-
"keywords": [
|
469 |
-
"filesystem",
|
470 |
-
"iterator"
|
471 |
-
],
|
472 |
-
"time": "2015-06-21 13:08:43"
|
473 |
-
},
|
474 |
-
{
|
475 |
-
"name": "phpunit/php-text-template",
|
476 |
-
"version": "1.2.1",
|
477 |
-
"source": {
|
478 |
-
"type": "git",
|
479 |
-
"url": "https://github.com/sebastianbergmann/php-text-template.git",
|
480 |
-
"reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686"
|
481 |
-
},
|
482 |
-
"dist": {
|
483 |
-
"type": "zip",
|
484 |
-
"url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686",
|
485 |
-
"reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686",
|
486 |
-
"shasum": ""
|
487 |
-
},
|
488 |
-
"require": {
|
489 |
-
"php": ">=5.3.3"
|
490 |
-
},
|
491 |
-
"type": "library",
|
492 |
-
"autoload": {
|
493 |
-
"classmap": [
|
494 |
-
"src/"
|
495 |
-
]
|
496 |
-
},
|
497 |
-
"notification-url": "https://packagist.org/downloads/",
|
498 |
-
"license": [
|
499 |
-
"BSD-3-Clause"
|
500 |
-
],
|
501 |
-
"authors": [
|
502 |
-
{
|
503 |
-
"name": "Sebastian Bergmann",
|
504 |
-
"email": "sebastian@phpunit.de",
|
505 |
-
"role": "lead"
|
506 |
-
}
|
507 |
-
],
|
508 |
-
"description": "Simple template engine.",
|
509 |
-
"homepage": "https://github.com/sebastianbergmann/php-text-template/",
|
510 |
-
"keywords": [
|
511 |
-
"template"
|
512 |
-
],
|
513 |
-
"time": "2015-06-21 13:50:34"
|
514 |
-
},
|
515 |
-
{
|
516 |
-
"name": "phpunit/php-timer",
|
517 |
-
"version": "1.0.8",
|
518 |
-
"source": {
|
519 |
-
"type": "git",
|
520 |
-
"url": "https://github.com/sebastianbergmann/php-timer.git",
|
521 |
-
"reference": "38e9124049cf1a164f1e4537caf19c99bf1eb260"
|
522 |
-
},
|
523 |
-
"dist": {
|
524 |
-
"type": "zip",
|
525 |
-
"url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/38e9124049cf1a164f1e4537caf19c99bf1eb260",
|
526 |
-
"reference": "38e9124049cf1a164f1e4537caf19c99bf1eb260",
|
527 |
-
"shasum": ""
|
528 |
-
},
|
529 |
-
"require": {
|
530 |
-
"php": ">=5.3.3"
|
531 |
-
},
|
532 |
-
"require-dev": {
|
533 |
-
"phpunit/phpunit": "~4|~5"
|
534 |
-
},
|
535 |
-
"type": "library",
|
536 |
-
"autoload": {
|
537 |
-
"classmap": [
|
538 |
-
"src/"
|
539 |
-
]
|
540 |
-
},
|
541 |
-
"notification-url": "https://packagist.org/downloads/",
|
542 |
-
"license": [
|
543 |
-
"BSD-3-Clause"
|
544 |
-
],
|
545 |
-
"authors": [
|
546 |
-
{
|
547 |
-
"name": "Sebastian Bergmann",
|
548 |
-
"email": "sb@sebastian-bergmann.de",
|
549 |
-
"role": "lead"
|
550 |
-
}
|
551 |
-
],
|
552 |
-
"description": "Utility class for timing",
|
553 |
-
"homepage": "https://github.com/sebastianbergmann/php-timer/",
|
554 |
-
"keywords": [
|
555 |
-
"timer"
|
556 |
-
],
|
557 |
-
"time": "2016-05-12 18:03:57"
|
558 |
-
},
|
559 |
-
{
|
560 |
-
"name": "phpunit/php-token-stream",
|
561 |
-
"version": "1.4.8",
|
562 |
-
"source": {
|
563 |
-
"type": "git",
|
564 |
-
"url": "https://github.com/sebastianbergmann/php-token-stream.git",
|
565 |
-
"reference": "3144ae21711fb6cac0b1ab4cbe63b75ce3d4e8da"
|
566 |
-
},
|
567 |
-
"dist": {
|
568 |
-
"type": "zip",
|
569 |
-
"url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/3144ae21711fb6cac0b1ab4cbe63b75ce3d4e8da",
|
570 |
-
"reference": "3144ae21711fb6cac0b1ab4cbe63b75ce3d4e8da",
|
571 |
-
"shasum": ""
|
572 |
-
},
|
573 |
-
"require": {
|
574 |
-
"ext-tokenizer": "*",
|
575 |
-
"php": ">=5.3.3"
|
576 |
-
},
|
577 |
-
"require-dev": {
|
578 |
-
"phpunit/phpunit": "~4.2"
|
579 |
-
},
|
580 |
-
"type": "library",
|
581 |
-
"extra": {
|
582 |
-
"branch-alias": {
|
583 |
-
"dev-master": "1.4-dev"
|
584 |
-
}
|
585 |
-
},
|
586 |
-
"autoload": {
|
587 |
-
"classmap": [
|
588 |
-
"src/"
|
589 |
-
]
|
590 |
-
},
|
591 |
-
"notification-url": "https://packagist.org/downloads/",
|
592 |
-
"license": [
|
593 |
-
"BSD-3-Clause"
|
594 |
-
],
|
595 |
-
"authors": [
|
596 |
-
{
|
597 |
-
"name": "Sebastian Bergmann",
|
598 |
-
"email": "sebastian@phpunit.de"
|
599 |
-
}
|
600 |
-
],
|
601 |
-
"description": "Wrapper around PHP's tokenizer extension.",
|
602 |
-
"homepage": "https://github.com/sebastianbergmann/php-token-stream/",
|
603 |
-
"keywords": [
|
604 |
-
"tokenizer"
|
605 |
-
],
|
606 |
-
"time": "2015-09-15 10:49:45"
|
607 |
-
},
|
608 |
-
{
|
609 |
-
"name": "phpunit/phpunit",
|
610 |
-
"version": "4.8.26",
|
611 |
-
"source": {
|
612 |
-
"type": "git",
|
613 |
-
"url": "https://github.com/sebastianbergmann/phpunit.git",
|
614 |
-
"reference": "fc1d8cd5b5de11625979125c5639347896ac2c74"
|
615 |
-
},
|
616 |
-
"dist": {
|
617 |
-
"type": "zip",
|
618 |
-
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/fc1d8cd5b5de11625979125c5639347896ac2c74",
|
619 |
-
"reference": "fc1d8cd5b5de11625979125c5639347896ac2c74",
|
620 |
-
"shasum": ""
|
621 |
-
},
|
622 |
-
"require": {
|
623 |
-
"ext-dom": "*",
|
624 |
-
"ext-json": "*",
|
625 |
-
"ext-pcre": "*",
|
626 |
-
"ext-reflection": "*",
|
627 |
-
"ext-spl": "*",
|
628 |
-
"php": ">=5.3.3",
|
629 |
-
"phpspec/prophecy": "^1.3.1",
|
630 |
-
"phpunit/php-code-coverage": "~2.1",
|
631 |
-
"phpunit/php-file-iterator": "~1.4",
|
632 |
-
"phpunit/php-text-template": "~1.2",
|
633 |
-
"phpunit/php-timer": "^1.0.6",
|
634 |
-
"phpunit/phpunit-mock-objects": "~2.3",
|
635 |
-
"sebastian/comparator": "~1.1",
|
636 |
-
"sebastian/diff": "~1.2",
|
637 |
-
"sebastian/environment": "~1.3",
|
638 |
-
"sebastian/exporter": "~1.2",
|
639 |
-
"sebastian/global-state": "~1.0",
|
640 |
-
"sebastian/version": "~1.0",
|
641 |
-
"symfony/yaml": "~2.1|~3.0"
|
642 |
-
},
|
643 |
-
"suggest": {
|
644 |
-
"phpunit/php-invoker": "~1.1"
|
645 |
-
},
|
646 |
-
"bin": [
|
647 |
-
"phpunit"
|
648 |
-
],
|
649 |
-
"type": "library",
|
650 |
-
"extra": {
|
651 |
-
"branch-alias": {
|
652 |
-
"dev-master": "4.8.x-dev"
|
653 |
-
}
|
654 |
-
},
|
655 |
-
"autoload": {
|
656 |
-
"classmap": [
|
657 |
-
"src/"
|
658 |
-
]
|
659 |
-
},
|
660 |
-
"notification-url": "https://packagist.org/downloads/",
|
661 |
-
"license": [
|
662 |
-
"BSD-3-Clause"
|
663 |
-
],
|
664 |
-
"authors": [
|
665 |
-
{
|
666 |
-
"name": "Sebastian Bergmann",
|
667 |
-
"email": "sebastian@phpunit.de",
|
668 |
-
"role": "lead"
|
669 |
-
}
|
670 |
-
],
|
671 |
-
"description": "The PHP Unit Testing framework.",
|
672 |
-
"homepage": "https://phpunit.de/",
|
673 |
-
"keywords": [
|
674 |
-
"phpunit",
|
675 |
-
"testing",
|
676 |
-
"xunit"
|
677 |
-
],
|
678 |
-
"time": "2016-05-17 03:09:28"
|
679 |
-
},
|
680 |
-
{
|
681 |
-
"name": "phpunit/phpunit-mock-objects",
|
682 |
-
"version": "2.3.8",
|
683 |
-
"source": {
|
684 |
-
"type": "git",
|
685 |
-
"url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git",
|
686 |
-
"reference": "ac8e7a3db35738d56ee9a76e78a4e03d97628983"
|
687 |
-
},
|
688 |
-
"dist": {
|
689 |
-
"type": "zip",
|
690 |
-
"url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/ac8e7a3db35738d56ee9a76e78a4e03d97628983",
|
691 |
-
"reference": "ac8e7a3db35738d56ee9a76e78a4e03d97628983",
|
692 |
-
"shasum": ""
|
693 |
-
},
|
694 |
-
"require": {
|
695 |
-
"doctrine/instantiator": "^1.0.2",
|
696 |
-
"php": ">=5.3.3",
|
697 |
-
"phpunit/php-text-template": "~1.2",
|
698 |
-
"sebastian/exporter": "~1.2"
|
699 |
-
},
|
700 |
-
"require-dev": {
|
701 |
-
"phpunit/phpunit": "~4.4"
|
702 |
-
},
|
703 |
-
"suggest": {
|
704 |
-
"ext-soap": "*"
|
705 |
-
},
|
706 |
-
"type": "library",
|
707 |
-
"extra": {
|
708 |
-
"branch-alias": {
|
709 |
-
"dev-master": "2.3.x-dev"
|
710 |
-
}
|
711 |
-
},
|
712 |
-
"autoload": {
|
713 |
-
"classmap": [
|
714 |
-
"src/"
|
715 |
-
]
|
716 |
-
},
|
717 |
-
"notification-url": "https://packagist.org/downloads/",
|
718 |
-
"license": [
|
719 |
-
"BSD-3-Clause"
|
720 |
-
],
|
721 |
-
"authors": [
|
722 |
-
{
|
723 |
-
"name": "Sebastian Bergmann",
|
724 |
-
"email": "sb@sebastian-bergmann.de",
|
725 |
-
"role": "lead"
|
726 |
-
}
|
727 |
-
],
|
728 |
-
"description": "Mock Object library for PHPUnit",
|
729 |
-
"homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/",
|
730 |
-
"keywords": [
|
731 |
-
"mock",
|
732 |
-
"xunit"
|
733 |
-
],
|
734 |
-
"time": "2015-10-02 06:51:40"
|
735 |
-
},
|
736 |
-
{
|
737 |
-
"name": "sebastian/comparator",
|
738 |
-
"version": "1.2.0",
|
739 |
-
"source": {
|
740 |
-
"type": "git",
|
741 |
-
"url": "https://github.com/sebastianbergmann/comparator.git",
|
742 |
-
"reference": "937efb279bd37a375bcadf584dec0726f84dbf22"
|
743 |
-
},
|
744 |
-
"dist": {
|
745 |
-
"type": "zip",
|
746 |
-
"url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/937efb279bd37a375bcadf584dec0726f84dbf22",
|
747 |
-
"reference": "937efb279bd37a375bcadf584dec0726f84dbf22",
|
748 |
-
"shasum": ""
|
749 |
-
},
|
750 |
-
"require": {
|
751 |
-
"php": ">=5.3.3",
|
752 |
-
"sebastian/diff": "~1.2",
|
753 |
-
"sebastian/exporter": "~1.2"
|
754 |
-
},
|
755 |
-
"require-dev": {
|
756 |
-
"phpunit/phpunit": "~4.4"
|
757 |
-
},
|
758 |
-
"type": "library",
|
759 |
-
"extra": {
|
760 |
-
"branch-alias": {
|
761 |
-
"dev-master": "1.2.x-dev"
|
762 |
-
}
|
763 |
-
},
|
764 |
-
"autoload": {
|
765 |
-
"classmap": [
|
766 |
-
"src/"
|
767 |
-
]
|
768 |
-
},
|
769 |
-
"notification-url": "https://packagist.org/downloads/",
|
770 |
-
"license": [
|
771 |
-
"BSD-3-Clause"
|
772 |
-
],
|
773 |
-
"authors": [
|
774 |
-
{
|
775 |
-
"name": "Jeff Welch",
|
776 |
-
"email": "whatthejeff@gmail.com"
|
777 |
-
},
|
778 |
-
{
|
779 |
-
"name": "Volker Dusch",
|
780 |
-
"email": "github@wallbash.com"
|
781 |
-
},
|
782 |
-
{
|
783 |
-
"name": "Bernhard Schussek",
|
784 |
-
"email": "bschussek@2bepublished.at"
|
785 |
-
},
|
786 |
-
{
|
787 |
-
"name": "Sebastian Bergmann",
|
788 |
-
"email": "sebastian@phpunit.de"
|
789 |
-
}
|
790 |
-
],
|
791 |
-
"description": "Provides the functionality to compare PHP values for equality",
|
792 |
-
"homepage": "http://www.github.com/sebastianbergmann/comparator",
|
793 |
-
"keywords": [
|
794 |
-
"comparator",
|
795 |
-
"compare",
|
796 |
-
"equality"
|
797 |
-
],
|
798 |
-
"time": "2015-07-26 15:48:44"
|
799 |
-
},
|
800 |
-
{
|
801 |
-
"name": "sebastian/diff",
|
802 |
-
"version": "1.4.1",
|
803 |
-
"source": {
|
804 |
-
"type": "git",
|
805 |
-
"url": "https://github.com/sebastianbergmann/diff.git",
|
806 |
-
"reference": "13edfd8706462032c2f52b4b862974dd46b71c9e"
|
807 |
-
},
|
808 |
-
"dist": {
|
809 |
-
"type": "zip",
|
810 |
-
"url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/13edfd8706462032c2f52b4b862974dd46b71c9e",
|
811 |
-
"reference": "13edfd8706462032c2f52b4b862974dd46b71c9e",
|
812 |
-
"shasum": ""
|
813 |
-
},
|
814 |
-
"require": {
|
815 |
-
"php": ">=5.3.3"
|
816 |
-
},
|
817 |
-
"require-dev": {
|
818 |
-
"phpunit/phpunit": "~4.8"
|
819 |
-
},
|
820 |
-
"type": "library",
|
821 |
-
"extra": {
|
822 |
-
"branch-alias": {
|
823 |
-
"dev-master": "1.4-dev"
|
824 |
-
}
|
825 |
-
},
|
826 |
-
"autoload": {
|
827 |
-
"classmap": [
|
828 |
-
"src/"
|
829 |
-
]
|
830 |
-
},
|
831 |
-
"notification-url": "https://packagist.org/downloads/",
|
832 |
-
"license": [
|
833 |
-
"BSD-3-Clause"
|
834 |
-
],
|
835 |
-
"authors": [
|
836 |
-
{
|
837 |
-
"name": "Kore Nordmann",
|
838 |
-
"email": "mail@kore-nordmann.de"
|
839 |
-
},
|
840 |
-
{
|
841 |
-
"name": "Sebastian Bergmann",
|
842 |
-
"email": "sebastian@phpunit.de"
|
843 |
-
}
|
844 |
-
],
|
845 |
-
"description": "Diff implementation",
|
846 |
-
"homepage": "https://github.com/sebastianbergmann/diff",
|
847 |
-
"keywords": [
|
848 |
-
"diff"
|
849 |
-
],
|
850 |
-
"time": "2015-12-08 07:14:41"
|
851 |
-
},
|
852 |
-
{
|
853 |
-
"name": "sebastian/environment",
|
854 |
-
"version": "1.3.7",
|
855 |
-
"source": {
|
856 |
-
"type": "git",
|
857 |
-
"url": "https://github.com/sebastianbergmann/environment.git",
|
858 |
-
"reference": "4e8f0da10ac5802913afc151413bc8c53b6c2716"
|
859 |
-
},
|
860 |
-
"dist": {
|
861 |
-
"type": "zip",
|
862 |
-
"url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/4e8f0da10ac5802913afc151413bc8c53b6c2716",
|
863 |
-
"reference": "4e8f0da10ac5802913afc151413bc8c53b6c2716",
|
864 |
-
"shasum": ""
|
865 |
-
},
|
866 |
-
"require": {
|
867 |
-
"php": ">=5.3.3"
|
868 |
-
},
|
869 |
-
"require-dev": {
|
870 |
-
"phpunit/phpunit": "~4.4"
|
871 |
-
},
|
872 |
-
"type": "library",
|
873 |
-
"extra": {
|
874 |
-
"branch-alias": {
|
875 |
-
"dev-master": "1.3.x-dev"
|
876 |
-
}
|
877 |
-
},
|
878 |
-
"autoload": {
|
879 |
-
"classmap": [
|
880 |
-
"src/"
|
881 |
-
]
|
882 |
-
},
|
883 |
-
"notification-url": "https://packagist.org/downloads/",
|
884 |
-
"license": [
|
885 |
-
"BSD-3-Clause"
|
886 |
-
],
|
887 |
-
"authors": [
|
888 |
-
{
|
889 |
-
"name": "Sebastian Bergmann",
|
890 |
-
"email": "sebastian@phpunit.de"
|
891 |
-
}
|
892 |
-
],
|
893 |
-
"description": "Provides functionality to handle HHVM/PHP environments",
|
894 |
-
"homepage": "http://www.github.com/sebastianbergmann/environment",
|
895 |
-
"keywords": [
|
896 |
-
"Xdebug",
|
897 |
-
"environment",
|
898 |
-
"hhvm"
|
899 |
-
],
|
900 |
-
"time": "2016-05-17 03:18:57"
|
901 |
-
},
|
902 |
-
{
|
903 |
-
"name": "sebastian/exporter",
|
904 |
-
"version": "1.2.2",
|
905 |
-
"source": {
|
906 |
-
"type": "git",
|
907 |
-
"url": "https://github.com/sebastianbergmann/exporter.git",
|
908 |
-
"reference": "42c4c2eec485ee3e159ec9884f95b431287edde4"
|
909 |
-
},
|
910 |
-
"dist": {
|
911 |
-
"type": "zip",
|
912 |
-
"url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/42c4c2eec485ee3e159ec9884f95b431287edde4",
|
913 |
-
"reference": "42c4c2eec485ee3e159ec9884f95b431287edde4",
|
914 |
-
"shasum": ""
|
915 |
-
},
|
916 |
-
"require": {
|
917 |
-
"php": ">=5.3.3",
|
918 |
-
"sebastian/recursion-context": "~1.0"
|
919 |
-
},
|
920 |
-
"require-dev": {
|
921 |
-
"ext-mbstring": "*",
|
922 |
-
"phpunit/phpunit": "~4.4"
|
923 |
-
},
|
924 |
-
"type": "library",
|
925 |
-
"extra": {
|
926 |
-
"branch-alias": {
|
927 |
-
"dev-master": "1.3.x-dev"
|
928 |
-
}
|
929 |
-
},
|
930 |
-
"autoload": {
|
931 |
-
"classmap": [
|
932 |
-
"src/"
|
933 |
-
]
|
934 |
-
},
|
935 |
-
"notification-url": "https://packagist.org/downloads/",
|
936 |
-
"license": [
|
937 |
-
"BSD-3-Clause"
|
938 |
-
],
|
939 |
-
"authors": [
|
940 |
-
{
|
941 |
-
"name": "Jeff Welch",
|
942 |
-
"email": "whatthejeff@gmail.com"
|
943 |
-
},
|
944 |
-
{
|
945 |
-
"name": "Volker Dusch",
|
946 |
-
"email": "github@wallbash.com"
|
947 |
-
},
|
948 |
-
{
|
949 |
-
"name": "Bernhard Schussek",
|
950 |
-
"email": "bschussek@2bepublished.at"
|
951 |
-
},
|
952 |
-
{
|
953 |
-
"name": "Sebastian Bergmann",
|
954 |
-
"email": "sebastian@phpunit.de"
|
955 |
-
},
|
956 |
-
{
|
957 |
-
"name": "Adam Harvey",
|
958 |
-
"email": "aharvey@php.net"
|
959 |
-
}
|
960 |
-
],
|
961 |
-
"description": "Provides the functionality to export PHP variables for visualization",
|
962 |
-
"homepage": "http://www.github.com/sebastianbergmann/exporter",
|
963 |
-
"keywords": [
|
964 |
-
"export",
|
965 |
-
"exporter"
|
966 |
-
],
|
967 |
-
"time": "2016-06-17 09:04:28"
|
968 |
-
},
|
969 |
-
{
|
970 |
-
"name": "sebastian/global-state",
|
971 |
-
"version": "1.1.1",
|
972 |
-
"source": {
|
973 |
-
"type": "git",
|
974 |
-
"url": "https://github.com/sebastianbergmann/global-state.git",
|
975 |
-
"reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4"
|
976 |
-
},
|
977 |
-
"dist": {
|
978 |
-
"type": "zip",
|
979 |
-
"url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bc37d50fea7d017d3d340f230811c9f1d7280af4",
|
980 |
-
"reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4",
|
981 |
-
"shasum": ""
|
982 |
-
},
|
983 |
-
"require": {
|
984 |
-
"php": ">=5.3.3"
|
985 |
-
},
|
986 |
-
"require-dev": {
|
987 |
-
"phpunit/phpunit": "~4.2"
|
988 |
-
},
|
989 |
-
"suggest": {
|
990 |
-
"ext-uopz": "*"
|
991 |
-
},
|
992 |
-
"type": "library",
|
993 |
-
"extra": {
|
994 |
-
"branch-alias": {
|
995 |
-
"dev-master": "1.0-dev"
|
996 |
-
}
|
997 |
-
},
|
998 |
-
"autoload": {
|
999 |
-
"classmap": [
|
1000 |
-
"src/"
|
1001 |
-
]
|
1002 |
-
},
|
1003 |
-
"notification-url": "https://packagist.org/downloads/",
|
1004 |
-
"license": [
|
1005 |
-
"BSD-3-Clause"
|
1006 |
-
],
|
1007 |
-
"authors": [
|
1008 |
-
{
|
1009 |
-
"name": "Sebastian Bergmann",
|
1010 |
-
"email": "sebastian@phpunit.de"
|
1011 |
-
}
|
1012 |
-
],
|
1013 |
-
"description": "Snapshotting of global state",
|
1014 |
-
"homepage": "http://www.github.com/sebastianbergmann/global-state",
|
1015 |
-
"keywords": [
|
1016 |
-
"global state"
|
1017 |
-
],
|
1018 |
-
"time": "2015-10-12 03:26:01"
|
1019 |
-
},
|
1020 |
-
{
|
1021 |
-
"name": "sebastian/recursion-context",
|
1022 |
-
"version": "1.0.2",
|
1023 |
-
"source": {
|
1024 |
-
"type": "git",
|
1025 |
-
"url": "https://github.com/sebastianbergmann/recursion-context.git",
|
1026 |
-
"reference": "913401df809e99e4f47b27cdd781f4a258d58791"
|
1027 |
-
},
|
1028 |
-
"dist": {
|
1029 |
-
"type": "zip",
|
1030 |
-
"url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/913401df809e99e4f47b27cdd781f4a258d58791",
|
1031 |
-
"reference": "913401df809e99e4f47b27cdd781f4a258d58791",
|
1032 |
-
"shasum": ""
|
1033 |
-
},
|
1034 |
-
"require": {
|
1035 |
-
"php": ">=5.3.3"
|
1036 |
-
},
|
1037 |
-
"require-dev": {
|
1038 |
-
"phpunit/phpunit": "~4.4"
|
1039 |
-
},
|
1040 |
-
"type": "library",
|
1041 |
-
"extra": {
|
1042 |
-
"branch-alias": {
|
1043 |
-
"dev-master": "1.0.x-dev"
|
1044 |
-
}
|
1045 |
-
},
|
1046 |
-
"autoload": {
|
1047 |
-
"classmap": [
|
1048 |
-
"src/"
|
1049 |
-
]
|
1050 |
-
},
|
1051 |
-
"notification-url": "https://packagist.org/downloads/",
|
1052 |
-
"license": [
|
1053 |
-
"BSD-3-Clause"
|
1054 |
-
],
|
1055 |
-
"authors": [
|
1056 |
-
{
|
1057 |
-
"name": "Jeff Welch",
|
1058 |
-
"email": "whatthejeff@gmail.com"
|
1059 |
-
},
|
1060 |
-
{
|
1061 |
-
"name": "Sebastian Bergmann",
|
1062 |
-
"email": "sebastian@phpunit.de"
|
1063 |
-
},
|
1064 |
-
{
|
1065 |
-
"name": "Adam Harvey",
|
1066 |
-
"email": "aharvey@php.net"
|
1067 |
-
}
|
1068 |
-
],
|
1069 |
-
"description": "Provides functionality to recursively process PHP variables",
|
1070 |
-
"homepage": "http://www.github.com/sebastianbergmann/recursion-context",
|
1071 |
-
"time": "2015-11-11 19:50:13"
|
1072 |
-
},
|
1073 |
-
{
|
1074 |
-
"name": "sebastian/version",
|
1075 |
-
"version": "1.0.6",
|
1076 |
-
"source": {
|
1077 |
-
"type": "git",
|
1078 |
-
"url": "https://github.com/sebastianbergmann/version.git",
|
1079 |
-
"reference": "58b3a85e7999757d6ad81c787a1fbf5ff6c628c6"
|
1080 |
-
},
|
1081 |
-
"dist": {
|
1082 |
-
"type": "zip",
|
1083 |
-
"url": "https://api.github.com/repos/sebastianbergmann/version/zipball/58b3a85e7999757d6ad81c787a1fbf5ff6c628c6",
|
1084 |
-
"reference": "58b3a85e7999757d6ad81c787a1fbf5ff6c628c6",
|
1085 |
-
"shasum": ""
|
1086 |
-
},
|
1087 |
-
"type": "library",
|
1088 |
-
"autoload": {
|
1089 |
-
"classmap": [
|
1090 |
-
"src/"
|
1091 |
-
]
|
1092 |
-
},
|
1093 |
-
"notification-url": "https://packagist.org/downloads/",
|
1094 |
-
"license": [
|
1095 |
-
"BSD-3-Clause"
|
1096 |
-
],
|
1097 |
-
"authors": [
|
1098 |
-
{
|
1099 |
-
"name": "Sebastian Bergmann",
|
1100 |
-
"email": "sebastian@phpunit.de",
|
1101 |
-
"role": "lead"
|
1102 |
-
}
|
1103 |
-
],
|
1104 |
-
"description": "Library that helps with managing the version number of Git-hosted PHP projects",
|
1105 |
-
"homepage": "https://github.com/sebastianbergmann/version",
|
1106 |
-
"time": "2015-06-21 13:59:46"
|
1107 |
-
},
|
1108 |
-
{
|
1109 |
-
"name": "squizlabs/php_codesniffer",
|
1110 |
-
"version": "2.6.1",
|
1111 |
-
"source": {
|
1112 |
-
"type": "git",
|
1113 |
-
"url": "https://github.com/squizlabs/PHP_CodeSniffer.git",
|
1114 |
-
"reference": "fb72ed32f8418db5e7770be1653e62e0d6f5dd3d"
|
1115 |
-
},
|
1116 |
-
"dist": {
|
1117 |
-
"type": "zip",
|
1118 |
-
"url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/fb72ed32f8418db5e7770be1653e62e0d6f5dd3d",
|
1119 |
-
"reference": "fb72ed32f8418db5e7770be1653e62e0d6f5dd3d",
|
1120 |
-
"shasum": ""
|
1121 |
-
},
|
1122 |
-
"require": {
|
1123 |
-
"ext-simplexml": "*",
|
1124 |
-
"ext-tokenizer": "*",
|
1125 |
-
"ext-xmlwriter": "*",
|
1126 |
-
"php": ">=5.1.2"
|
1127 |
-
},
|
1128 |
-
"require-dev": {
|
1129 |
-
"phpunit/phpunit": "~4.0"
|
1130 |
-
},
|
1131 |
-
"bin": [
|
1132 |
-
"scripts/phpcs",
|
1133 |
-
"scripts/phpcbf"
|
1134 |
-
],
|
1135 |
-
"type": "library",
|
1136 |
-
"extra": {
|
1137 |
-
"branch-alias": {
|
1138 |
-
"dev-master": "2.x-dev"
|
1139 |
-
}
|
1140 |
-
},
|
1141 |
-
"autoload": {
|
1142 |
-
"classmap": [
|
1143 |
-
"CodeSniffer.php",
|
1144 |
-
"CodeSniffer/CLI.php",
|
1145 |
-
"CodeSniffer/Exception.php",
|
1146 |
-
"CodeSniffer/File.php",
|
1147 |
-
"CodeSniffer/Fixer.php",
|
1148 |
-
"CodeSniffer/Report.php",
|
1149 |
-
"CodeSniffer/Reporting.php",
|
1150 |
-
"CodeSniffer/Sniff.php",
|
1151 |
-
"CodeSniffer/Tokens.php",
|
1152 |
-
"CodeSniffer/Reports/",
|
1153 |
-
"CodeSniffer/Tokenizers/",
|
1154 |
-
"CodeSniffer/DocGenerators/",
|
1155 |
-
"CodeSniffer/Standards/AbstractPatternSniff.php",
|
1156 |
-
"CodeSniffer/Standards/AbstractScopeSniff.php",
|
1157 |
-
"CodeSniffer/Standards/AbstractVariableSniff.php",
|
1158 |
-
"CodeSniffer/Standards/IncorrectPatternException.php",
|
1159 |
-
"CodeSniffer/Standards/Generic/Sniffs/",
|
1160 |
-
"CodeSniffer/Standards/MySource/Sniffs/",
|
1161 |
-
"CodeSniffer/Standards/PEAR/Sniffs/",
|
1162 |
-
"CodeSniffer/Standards/PSR1/Sniffs/",
|
1163 |
-
"CodeSniffer/Standards/PSR2/Sniffs/",
|
1164 |
-
"CodeSniffer/Standards/Squiz/Sniffs/",
|
1165 |
-
"CodeSniffer/Standards/Zend/Sniffs/"
|
1166 |
-
]
|
1167 |
-
},
|
1168 |
-
"notification-url": "https://packagist.org/downloads/",
|
1169 |
-
"license": [
|
1170 |
-
"BSD-3-Clause"
|
1171 |
-
],
|
1172 |
-
"authors": [
|
1173 |
-
{
|
1174 |
-
"name": "Greg Sherwood",
|
1175 |
-
"role": "lead"
|
1176 |
-
}
|
1177 |
-
],
|
1178 |
-
"description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.",
|
1179 |
-
"homepage": "http://www.squizlabs.com/php-codesniffer",
|
1180 |
-
"keywords": [
|
1181 |
-
"phpcs",
|
1182 |
-
"standards"
|
1183 |
-
],
|
1184 |
-
"time": "2016-05-30 22:24:32"
|
1185 |
-
},
|
1186 |
-
{
|
1187 |
-
"name": "symfony/yaml",
|
1188 |
-
"version": "v2.8.7",
|
1189 |
-
"source": {
|
1190 |
-
"type": "git",
|
1191 |
-
"url": "https://github.com/symfony/yaml.git",
|
1192 |
-
"reference": "815fabf3f48c7d1df345a69d1ad1a88f59757b34"
|
1193 |
-
},
|
1194 |
-
"dist": {
|
1195 |
-
"type": "zip",
|
1196 |
-
"url": "https://api.github.com/repos/symfony/yaml/zipball/815fabf3f48c7d1df345a69d1ad1a88f59757b34",
|
1197 |
-
"reference": "815fabf3f48c7d1df345a69d1ad1a88f59757b34",
|
1198 |
-
"shasum": ""
|
1199 |
-
},
|
1200 |
-
"require": {
|
1201 |
-
"php": ">=5.3.9"
|
1202 |
-
},
|
1203 |
-
"type": "library",
|
1204 |
-
"extra": {
|
1205 |
-
"branch-alias": {
|
1206 |
-
"dev-master": "2.8-dev"
|
1207 |
-
}
|
1208 |
-
},
|
1209 |
-
"autoload": {
|
1210 |
-
"psr-4": {
|
1211 |
-
"Symfony\\Component\\Yaml\\": ""
|
1212 |
-
},
|
1213 |
-
"exclude-from-classmap": [
|
1214 |
-
"/Tests/"
|
1215 |
-
]
|
1216 |
-
},
|
1217 |
-
"notification-url": "https://packagist.org/downloads/",
|
1218 |
-
"license": [
|
1219 |
-
"MIT"
|
1220 |
-
],
|
1221 |
-
"authors": [
|
1222 |
-
{
|
1223 |
-
"name": "Fabien Potencier",
|
1224 |
-
"email": "fabien@symfony.com"
|
1225 |
-
},
|
1226 |
-
{
|
1227 |
-
"name": "Symfony Community",
|
1228 |
-
"homepage": "https://symfony.com/contributors"
|
1229 |
-
}
|
1230 |
-
],
|
1231 |
-
"description": "Symfony Yaml Component",
|
1232 |
-
"homepage": "https://symfony.com",
|
1233 |
-
"time": "2016-06-06 11:11:27"
|
1234 |
-
}
|
1235 |
-
],
|
1236 |
-
"aliases": [],
|
1237 |
-
"minimum-stability": "stable",
|
1238 |
-
"stability-flags": [],
|
1239 |
-
"prefer-stable": false,
|
1240 |
-
"prefer-lowest": false,
|
1241 |
-
"platform": {
|
1242 |
-
"php": "^5.4 || ^7.0"
|
1243 |
-
},
|
1244 |
-
"platform-dev": []
|
1245 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/facebook/facebook-instant-articles-sdk-php/src/Facebook/InstantArticles/Transformer/Getters/ElementGetter.php
CHANGED
@@ -53,7 +53,7 @@ class ElementGetter extends AbstractGetter
|
|
53 |
public function get($node)
|
54 |
{
|
55 |
$elements = self::findAll($node, $this->selector);
|
56 |
-
if (!empty($elements)) {
|
57 |
Transformer::markAsProcessed($elements->item(0));
|
58 |
return Transformer::cloneNode($elements->item(0));
|
59 |
}
|
53 |
public function get($node)
|
54 |
{
|
55 |
$elements = self::findAll($node, $this->selector);
|
56 |
+
if (!empty($elements) && property_exists($elements, 'length') && $elements->length !== 0) {
|
57 |
Transformer::markAsProcessed($elements->item(0));
|
58 |
return Transformer::cloneNode($elements->item(0));
|
59 |
}
|
vendor/facebook/facebook-instant-articles-sdk-php/src/Facebook/InstantArticles/Transformer/Rules/InstantArticleRule.php
CHANGED
@@ -44,7 +44,6 @@ class InstantArticleRule extends ConfigurationSelectorRule
|
|
44 |
);
|
45 |
|
46 |
return $canonical_rule;
|
47 |
-
|
48 |
}
|
49 |
|
50 |
public function apply($transformer, $instant_article, $node)
|
44 |
);
|
45 |
|
46 |
return $canonical_rule;
|
|
|
47 |
}
|
48 |
|
49 |
public function apply($transformer, $instant_article, $node)
|
vendor/facebook/facebook-instant-articles-sdk-php/src/Facebook/InstantArticles/Transformer/Rules/TimeRule.php
CHANGED
@@ -44,7 +44,6 @@ class TimeRule extends ConfigurationSelectorRule
|
|
44 |
}
|
45 |
|
46 |
return $time_rule;
|
47 |
-
|
48 |
}
|
49 |
|
50 |
public function apply($transformer, $header, $node)
|
44 |
}
|
45 |
|
46 |
return $time_rule;
|
|
|
47 |
}
|
48 |
|
49 |
public function apply($transformer, $header, $node)
|
vendor/facebook/facebook-instant-articles-sdk-php/tests/Facebook/InstantArticles/Elements/SocialEmbedTest.php
DELETED
@@ -1,96 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* Copyright (c) 2016-present, Facebook, Inc.
|
4 |
-
* All rights reserved.
|
5 |
-
*
|
6 |
-
* This source code is licensed under the license found in the
|
7 |
-
* LICENSE file in the root directory of this source tree.
|
8 |
-
*/
|
9 |
-
namespace Facebook\InstantArticles\Elements;
|
10 |
-
|
11 |
-
class SocialEmbedTest extends \PHPUnit_Framework_TestCase
|
12 |
-
{
|
13 |
-
public function testRenderEmpty()
|
14 |
-
{
|
15 |
-
$social_embed = SocialEmbed::create();
|
16 |
-
|
17 |
-
$expected = '';
|
18 |
-
|
19 |
-
$rendered = $social_embed->render();
|
20 |
-
$this->assertEquals($expected, $rendered);
|
21 |
-
}
|
22 |
-
|
23 |
-
public function testRenderBasic()
|
24 |
-
{
|
25 |
-
$social_embed =
|
26 |
-
SocialEmbed::create()
|
27 |
-
->withSource('http://foo.com');
|
28 |
-
|
29 |
-
$expected =
|
30 |
-
'<figure class="op-interactive">'.
|
31 |
-
'<iframe src="http://foo.com"></iframe>'.
|
32 |
-
'</figure>';
|
33 |
-
|
34 |
-
$rendered = $social_embed->render();
|
35 |
-
$this->assertEquals($expected, $rendered);
|
36 |
-
}
|
37 |
-
|
38 |
-
public function testRenderBasicWithCaption()
|
39 |
-
{
|
40 |
-
$social_embed =
|
41 |
-
SocialEmbed::create()
|
42 |
-
->withSource('http://foo.com')
|
43 |
-
->withCaption(
|
44 |
-
Caption::create()
|
45 |
-
->appendText('Some caption to the embed')
|
46 |
-
);
|
47 |
-
|
48 |
-
$expected =
|
49 |
-
'<figure class="op-interactive">'.
|
50 |
-
'<iframe src="http://foo.com"></iframe>'.
|
51 |
-
'<figcaption>Some caption to the embed</figcaption>'.
|
52 |
-
'</figure>';
|
53 |
-
|
54 |
-
$rendered = $social_embed->render();
|
55 |
-
$this->assertEquals($expected, $rendered);
|
56 |
-
}
|
57 |
-
|
58 |
-
public function testRenderInline()
|
59 |
-
{
|
60 |
-
$inline =
|
61 |
-
'<h1>Some custom code</h1>'.
|
62 |
-
'<script>alert("test & more test");</script>';
|
63 |
-
|
64 |
-
$social_embed =
|
65 |
-
SocialEmbed::create()
|
66 |
-
->withHTML($inline);
|
67 |
-
|
68 |
-
$expected =
|
69 |
-
'<figure class="op-interactive">'.
|
70 |
-
'<iframe>'.
|
71 |
-
'<h1>Some custom code</h1>'.
|
72 |
-
'<script>alert("test & more test");</script>'.
|
73 |
-
'</iframe>'.
|
74 |
-
'</figure>';
|
75 |
-
|
76 |
-
$rendered = $social_embed->render();
|
77 |
-
$this->assertEquals($expected, $rendered);
|
78 |
-
}
|
79 |
-
|
80 |
-
public function testRenderWithWidthAndHeight()
|
81 |
-
{
|
82 |
-
$social_embed =
|
83 |
-
SocialEmbed::create()
|
84 |
-
->withSource('http://foo.com')
|
85 |
-
->withWidth(640)
|
86 |
-
->withHeight(480);
|
87 |
-
|
88 |
-
$expected =
|
89 |
-
'<figure class="op-interactive">'.
|
90 |
-
'<iframe src="http://foo.com" width="640" height="480"></iframe>'.
|
91 |
-
'</figure>';
|
92 |
-
|
93 |
-
$rendered = $social_embed->render();
|
94 |
-
$this->assertEquals($expected, $rendered);
|
95 |
-
}
|
96 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/facebook/facebook-instant-articles-sdk-php/tests/Facebook/InstantArticles/Transformer/CMS/WPTransformerTest.php
DELETED
@@ -1,98 +0,0 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* Copyright (c) 2016-present, Facebook, Inc.
|
4 |
-
* All rights reserved.
|
5 |
-
*
|
6 |
-
* This source code is licensed under the license found in the
|
7 |
-
* LICENSE file in the root directory of this source tree.
|
8 |
-
*/
|
9 |
-
namespace Facebook\InstantArticles\Transformer\CMS;
|
10 |
-
|
11 |
-
use Facebook\InstantArticles\Transformer\Transformer;
|
12 |
-
use Facebook\InstantArticles\Elements\InstantArticle;
|
13 |
-
use Facebook\InstantArticles\Elements\Header;
|
14 |
-
use Facebook\InstantArticles\Elements\Time;
|
15 |
-
use Facebook\InstantArticles\Elements\Author;
|
16 |
-
|
17 |
-
class WPTransformerTest extends \PHPUnit_Framework_TestCase
|
18 |
-
{
|
19 |
-
protected function setUp()
|
20 |
-
{
|
21 |
-
\Logger::configure(
|
22 |
-
[
|
23 |
-
'rootLogger' => [
|
24 |
-
'appenders' => ['facebook-instantarticles-transformer']
|
25 |
-
],
|
26 |
-
'appenders' => [
|
27 |
-
'facebook-instantarticles-transformer' => [
|
28 |
-
'class' => 'LoggerAppenderConsole',
|
29 |
-
'threshold' => 'INFO',
|
30 |
-
'layout' => [
|
31 |
-
'class' => 'LoggerLayoutSimple'
|
32 |
-
]
|
33 |
-
]
|
34 |
-
]
|
35 |
-
]
|
36 |
-
);
|
37 |
-
}
|
38 |
-
|
39 |
-
public function testTransformerLikeWPContent()
|
40 |
-
{
|
41 |
-
$json_file = file_get_contents(__DIR__ . '/wp-rules.json');
|
42 |
-
|
43 |
-
$instant_article = InstantArticle::create();
|
44 |
-
$transformer = new Transformer();
|
45 |
-
$transformer->loadRules($json_file);
|
46 |
-
|
47 |
-
$html_file = file_get_contents(__DIR__ . '/wp.html');
|
48 |
-
|
49 |
-
libxml_use_internal_errors(true);
|
50 |
-
$document = new \DOMDocument();
|
51 |
-
$document->loadHTML($html_file);
|
52 |
-
libxml_use_internal_errors(false);
|
53 |
-
|
54 |
-
$instant_article
|
55 |
-
->withCanonicalURL('http://localhost/article')
|
56 |
-
->withHeader(
|
57 |
-
Header::create()
|
58 |
-
->withTitle('Peace on <b>earth</b>')
|
59 |
-
->addAuthor(Author::create()->withName('bill'))
|
60 |
-
->withPublishTime(Time::create(Time::PUBLISHED)->withDatetime(
|
61 |
-
\DateTime::createFromFormat(
|
62 |
-
'j-M-Y G:i:s',
|
63 |
-
'12-Apr-2016 19:46:51'
|
64 |
-
)
|
65 |
-
))
|
66 |
-
);
|
67 |
-
|
68 |
-
$transformer->transform($instant_article, $document);
|
69 |
-
$instant_article->addMetaProperty('op:generator:version', '1.0.0');
|
70 |
-
$instant_article->addMetaProperty('op:generator:transformer:version', '1.0.0');
|
71 |
-
$result = $instant_article->render('', true)."\n";
|
72 |
-
$expected = file_get_contents(__DIR__ . '/wp-ia.xml');
|
73 |
-
|
74 |
-
$this->assertEquals($expected, $result);
|
75 |
-
// there must be 3 warnings related to <img> inside <li> that is not supported by IA
|
76 |
-
// And 1 warning related to the getter
|
77 |
-
$this->assertEquals(4, count($transformer->getWarnings()));
|
78 |
-
}
|
79 |
-
|
80 |
-
public function testTitleTransformedWithBold()
|
81 |
-
{
|
82 |
-
$transformer = new Transformer();
|
83 |
-
$json_file = file_get_contents(__DIR__ . '/wp-rules.json');
|
84 |
-
$transformer->loadRules($json_file);
|
85 |
-
|
86 |
-
$title_html_string = '<?xml encoding="utf-8" ?><h1>Title <b>in bold</b></h1>';
|
87 |
-
|
88 |
-
libxml_use_internal_errors(true);
|
89 |
-
$document = new \DOMDocument();
|
90 |
-
$document->loadHtml($title_html_string);
|
91 |
-
libxml_use_internal_errors(false);
|
92 |
-
|
93 |
-
$header = Header::create();
|
94 |
-
$transformer->transform($header, $document);
|
95 |
-
|
96 |
-
$this->assertEquals('<h1>Title <b>in bold</b></h1>', $header->getTitle()->render());
|
97 |
-
}
|
98 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/facebook/facebook-instant-articles-sdk-php/tests/Facebook/InstantArticles/Transformer/CMS/wp-ia.xml
DELETED
@@ -1,202 +0,0 @@
|
|
1 |
-
<html>
|
2 |
-
<head>
|
3 |
-
<link rel="canonical" href="http://localhost/article"/>
|
4 |
-
<meta charset="utf-8"/>
|
5 |
-
<meta property="op:generator" content="facebook-instant-articles-sdk-php"/>
|
6 |
-
<meta property="op:generator:version" content="1.0.0"/>
|
7 |
-
<meta property="op:generator:transformer" content="facebook-instant-articles-sdk-php"/>
|
8 |
-
<meta property="op:generator:transformer:version" content="1.0.0"/>
|
9 |
-
<meta property="op:markup_version" content="v1.0"/>
|
10 |
-
</head>
|
11 |
-
<body>
|
12 |
-
<article>
|
13 |
-
<header>
|
14 |
-
<h1>Peace on <b>earth</b></h1>
|
15 |
-
<time class="op-published" datetime="2016-04-12T19:46:51+00:00">April 12th, 7:46pm</time>
|
16 |
-
<address><a>bill</a></address>
|
17 |
-
</header>
|
18 |
-
<p>Yes, peace is good for everybody!<br/>
|
19 |
-
Man kind.</p>
|
20 |
-
<figure>
|
21 |
-
<img src="http://example.com/image0.jpg"/>
|
22 |
-
</figure>
|
23 |
-
<p>Some text after img.</p>
|
24 |
-
<p>Some text before img</p>
|
25 |
-
<figure>
|
26 |
-
<img src="http://example.com/image1.jpg"/>
|
27 |
-
</figure>
|
28 |
-
<p>Some text before img</p>
|
29 |
-
<figure>
|
30 |
-
<img src="http://example.com/image2.jpg"/>
|
31 |
-
</figure>
|
32 |
-
<p> and some after img.</p>
|
33 |
-
<figure class="op-interactive">
|
34 |
-
<iframe src="http://example.com/0/" class="no-margin" width="300" height="200"></iframe>
|
35 |
-
</figure>
|
36 |
-
<p>Some text before iframe</p>
|
37 |
-
<figure class="op-interactive">
|
38 |
-
<iframe src="http://example.com/1/" class="no-margin" width="300" height="200"></iframe>
|
39 |
-
</figure>
|
40 |
-
<figure class="op-interactive">
|
41 |
-
<iframe src="http://example.com/2/" class="no-margin" width="300" height="200"></iframe>
|
42 |
-
</figure>
|
43 |
-
<p> some after iframe.</p>
|
44 |
-
<p>Some text before iframe</p>
|
45 |
-
<figure class="op-interactive">
|
46 |
-
<iframe src="http://example.com/3/" class="no-margin" width="300" height="200"></iframe>
|
47 |
-
</figure>
|
48 |
-
<p> and some after iframe.</p>
|
49 |
-
<figure class="op-interactive">
|
50 |
-
<iframe src="http://example.com/loose/with_url" class="no-margin" width="300" height="200"></iframe>
|
51 |
-
</figure>
|
52 |
-
<figure class="op-interactive">
|
53 |
-
<iframe class="no-margin">
|
54 |
-
<div>
|
55 |
-
<h1>Iframe loose without url</h1>
|
56 |
-
</div>
|
57 |
-
</iframe>
|
58 |
-
</figure>
|
59 |
-
<figure class="op-interactive">
|
60 |
-
<iframe class="no-margin">
|
61 |
-
<div>
|
62 |
-
<h1>some embed here</h1>
|
63 |
-
</div>
|
64 |
-
</iframe>
|
65 |
-
</figure>
|
66 |
-
<figure class="op-interactive">
|
67 |
-
<iframe class="no-margin">
|
68 |
-
<div>
|
69 |
-
<h1>some embed here</h1>
|
70 |
-
</div>
|
71 |
-
</iframe>
|
72 |
-
</figure>
|
73 |
-
<figure class="op-interactive">
|
74 |
-
<iframe class="no-margin">
|
75 |
-
<div>some content</div>
|
76 |
-
<script>alert('hi & hello to you @ testing!');</script></iframe>
|
77 |
-
</figure>
|
78 |
-
<figure class="op-interactive">
|
79 |
-
<iframe src="http://example.com/4/" class="no-margin" width="300" height="200"></iframe>
|
80 |
-
</figure>
|
81 |
-
<figure class="op-interactive">
|
82 |
-
<iframe class="no-margin">
|
83 |
-
<div>some content</div>
|
84 |
-
<script>alert('hi & hello to you @ testing!');</script></iframe>
|
85 |
-
</figure>
|
86 |
-
<figure class="op-interactive">
|
87 |
-
<iframe src="http://example.com/4/" class="no-margin" width="300" height="200"></iframe>
|
88 |
-
</figure>
|
89 |
-
<figure class="op-interactive">
|
90 |
-
<iframe class="no-margin">
|
91 |
-
<div>some content</div>
|
92 |
-
<script>alert('hi & hello to you @ testing!');</script></iframe>
|
93 |
-
</figure>
|
94 |
-
<figure class="op-interactive">
|
95 |
-
<iframe class="no-margin" height="200">
|
96 |
-
<table width="200" height="200">
|
97 |
-
<thead><td>header 1</td>
|
98 |
-
<td>header 2</td>
|
99 |
-
</thead>
|
100 |
-
<tbody>
|
101 |
-
<tr><td>Line 1 column 1</td>
|
102 |
-
<td>Line 1 column 2</td>
|
103 |
-
</tr>
|
104 |
-
<tr><td>Line 2 column 1</td>
|
105 |
-
<td>Line 2 column 2</td>
|
106 |
-
</tr>
|
107 |
-
</tbody>
|
108 |
-
</table>
|
109 |
-
</iframe>
|
110 |
-
</figure>
|
111 |
-
<ul>
|
112 |
-
<li>Some text on li before img</li>
|
113 |
-
<li>Some text on li before imgand after img</li>
|
114 |
-
<li>Some text after img</li>
|
115 |
-
</ul>
|
116 |
-
<figure class="op-slideshow">
|
117 |
-
<figure>
|
118 |
-
<img src="http://example.com/img0.jpg"/>
|
119 |
-
</figure>
|
120 |
-
<figure>
|
121 |
-
<img src="http://example.com/img1.jpg"/>
|
122 |
-
</figure>
|
123 |
-
<figure>
|
124 |
-
<img src="http://example.com/img2.jpg"/>
|
125 |
-
<figcaption>Image 2</figcaption>
|
126 |
-
</figure>
|
127 |
-
<figure>
|
128 |
-
<img src="http://example.com/img3.jpg"/>
|
129 |
-
<figcaption>Image 3</figcaption>
|
130 |
-
</figure>
|
131 |
-
<figure>
|
132 |
-
<img src="http://example.com/img4.jpg"/>
|
133 |
-
</figure>
|
134 |
-
</figure>
|
135 |
-
<figure class="op-slideshow">
|
136 |
-
<figure>
|
137 |
-
<img src="http://example.com/img1.jpg"/>
|
138 |
-
<figcaption> Image 1 </figcaption>
|
139 |
-
</figure>
|
140 |
-
<figure>
|
141 |
-
<img src="http://example.com/img2.jpg"/>
|
142 |
-
<figcaption> Image 2 </figcaption>
|
143 |
-
</figure>
|
144 |
-
<figure>
|
145 |
-
<img src="http://example.com/img3.jpg"/>
|
146 |
-
<figcaption> Image 3 </figcaption>
|
147 |
-
</figure>
|
148 |
-
</figure>
|
149 |
-
<figure class="op-interactive">
|
150 |
-
<iframe class="no-margin">
|
151 |
-
<blockquote class="instagram-media" data-instgrm-captioned="" data-instgrm-version="6" style=" background:#FFF; border:0; border-radius:3px; box-shadow:0 0 1px 0 rgba(0,0,0,0.5),0 1px 10px 0 rgba(0,0,0,0.15); margin: 1px; max-width:658px; padding:0; width:99.375%; width:-webkit-calc(100% - 2px); width:calc(100% - 2px);">
|
152 |
-
<div style="padding:8px;">
|
153 |
-
<div style=" background:#F8F8F8; line-height:0; margin-top:40px; padding:62.5% 0; text-align:center; width:100%;">
|
154 |
-
<div style=" background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAMAAAApWqozAAAAGFBMVEUiIiI9PT0eHh4gIB4hIBkcHBwcHBwcHBydr+JQAAAACHRSTlMABA4YHyQsM5jtaMwAAADfSURBVDjL7ZVBEgMhCAQBAf//42xcNbpAqakcM0ftUmFAAIBE81IqBJdS3lS6zs3bIpB9WED3YYXFPmHRfT8sgyrCP1x8uEUxLMzNWElFOYCV6mHWWwMzdPEKHlhLw7NWJqkHc4uIZphavDzA2JPzUDsBZziNae2S6owH8xPmX8G7zzgKEOPUoYHvGz1TBCxMkd3kwNVbU0gKHkx+iZILf77IofhrY1nYFnB/lQPb79drWOyJVa/DAvg9B/rLB4cC+Nqgdz/TvBbBnr6GBReqn/nRmDgaQEej7WhonozjF+Y2I/fZou/qAAAAAElFTkSuQmCC); display:block; height:44px; margin:0 auto -44px; position:relative; top:-22px; width:44px;"></div>
|
155 |
-
</div>
|
156 |
-
<p style=" margin:8px 0 0 0; padding:0 4px;">
|
157 |
-
<a href="https://www.instagram.com/p/BAXbKP1POQe/" style=" color:#000; font-family:Arial,sans-serif; font-size:14px; font-style:normal; font-weight:normal; line-height:17px; text-decoration:none; word-wrap:break-word;" target="_blank">ð¸ @natthaponwuttipetch</a>
|
158 |
-
</p>
|
159 |
-
<p style=" color:#c9c8cd; font-family:Arial,sans-serif; font-size:14px; line-height:17px; margin-bottom:0; margin-top:8px; overflow:hidden; padding:8px 0 7px; text-align:center; text-overflow:ellipsis; white-space:nowrap;">
|
160 |
-
A photo posted by Ann Hathairat Vidhyaphum (@annvidh) on <time style=" font-family:Arial,sans-serif; font-size:14px; line-height:17px;" datetime="2016-01-10T16:56:06+00:00">Jan 10, 2016 at 8:56am PST</time></p>
|
161 |
-
</div>
|
162 |
-
</blockquote>
|
163 |
-
<script async="" defer="defer" src="//platform.instagram.com/en_US/embeds.js"></script>
|
164 |
-
</iframe>
|
165 |
-
</figure>
|
166 |
-
<figure>
|
167 |
-
<img src="http://example.com/img.jpg"/>
|
168 |
-
<figcaption>blue eyes</figcaption>
|
169 |
-
</figure>
|
170 |
-
<figure class="op-interactive">
|
171 |
-
<iframe class="no-margin">
|
172 |
-
<h1>Sibling content</h1>
|
173 |
-
<div>sibling body</div></iframe>
|
174 |
-
</figure>
|
175 |
-
<p>Standard paragraph that <b>shouldn't</b> lie within the interactive block.</p>
|
176 |
-
<figure class="op-interactive">
|
177 |
-
<iframe class="no-margin">
|
178 |
-
<p>Extra markup</p>
|
179 |
-
<div class="fb-post" data-href="https://www.facebook.com/some-page/posts/some-post"></div>
|
180 |
-
</iframe>
|
181 |
-
</figure>
|
182 |
-
<figure class="op-slideshow">
|
183 |
-
<figure>
|
184 |
-
<img src="http://example.com/konservnye-banki-osobenno-lyubyat-yaponcy-810x471.jpg"/>
|
185 |
-
<figcaption>Caption Img 1</figcaption>
|
186 |
-
</figure>
|
187 |
-
<figure>
|
188 |
-
<img src="http://example.com/a-vot-chto-vnutri.jpg"/>
|
189 |
-
<figcaption>Alternative text </figcaption>
|
190 |
-
</figure>
|
191 |
-
<figure>
|
192 |
-
<img src="http://example.com/brelok-s-bezopasnostyu-vsegda-s-soboj.jpg"/>
|
193 |
-
<figcaption>Caption img 3</figcaption>
|
194 |
-
</figure>
|
195 |
-
</figure>
|
196 |
-
<figure>
|
197 |
-
<img src="http://example.com/image.jpg"/>
|
198 |
-
<figcaption>caption</figcaption>
|
199 |
-
</figure>
|
200 |
-
</article>
|
201 |
-
</body>
|
202 |
-
</html>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/facebook/facebook-instant-articles-sdk-php/tests/Facebook/InstantArticles/Transformer/CMS/wp-rules.json
DELETED
@@ -1,606 +0,0 @@
|
|
1 |
-
{
|
2 |
-
"rules":
|
3 |
-
[{
|
4 |
-
"class": "TextNodeRule"
|
5 |
-
}, {
|
6 |
-
"class": "PassThroughRule",
|
7 |
-
"selector": "html"
|
8 |
-
}, {
|
9 |
-
"class": "PassThroughRule",
|
10 |
-
"selector": "head"
|
11 |
-
}, {
|
12 |
-
"class": "PassThroughRule",
|
13 |
-
"selector": "body"
|
14 |
-
}, {
|
15 |
-
"class": "PassThroughRule",
|
16 |
-
"selector" : "code"
|
17 |
-
},{
|
18 |
-
"class": "PassThroughRule",
|
19 |
-
"selector" : "del"
|
20 |
-
},{
|
21 |
-
"class": "PassThroughRule",
|
22 |
-
"selector" : "mark"
|
23 |
-
}, {
|
24 |
-
"class": "PassThroughRule",
|
25 |
-
"selector" : "span"
|
26 |
-
}, {
|
27 |
-
"class": "ParagraphRule",
|
28 |
-
"selector": "p"
|
29 |
-
}, {
|
30 |
-
"class": "LineBreakRule",
|
31 |
-
"selector": "br"
|
32 |
-
}, {
|
33 |
-
"class": "AnchorRule",
|
34 |
-
"selector": "a",
|
35 |
-
"properties": {
|
36 |
-
"anchor.href": {
|
37 |
-
"type": "string",
|
38 |
-
"selector": "a",
|
39 |
-
"attribute": "href"
|
40 |
-
},
|
41 |
-
"anchor.rel": {
|
42 |
-
"type": "string",
|
43 |
-
"selector": "a",
|
44 |
-
"attribute": "rel"
|
45 |
-
}
|
46 |
-
}
|
47 |
-
}, {
|
48 |
-
"class": "BoldRule",
|
49 |
-
"selector": "b"
|
50 |
-
}, {
|
51 |
-
"class": "BoldRule",
|
52 |
-
"selector": "strong"
|
53 |
-
}, {
|
54 |
-
"class": "ItalicRule",
|
55 |
-
"selector": "i"
|
56 |
-
}, {
|
57 |
-
"class": "ItalicRule",
|
58 |
-
"selector": "em"
|
59 |
-
}, {
|
60 |
-
"class": "BlockquoteRule",
|
61 |
-
"selector": "blockquote"
|
62 |
-
}, {
|
63 |
-
"class": "PassThroughRule",
|
64 |
-
"selector": "blockquote p"
|
65 |
-
}, {
|
66 |
-
"class": "ImageInsideParagraphRule",
|
67 |
-
"selector": "img",
|
68 |
-
"properties": {
|
69 |
-
"image.url": {
|
70 |
-
"type": "string",
|
71 |
-
"selector": "img",
|
72 |
-
"attribute": "src"
|
73 |
-
}
|
74 |
-
}
|
75 |
-
},{
|
76 |
-
"class": "ImageRule",
|
77 |
-
"selector": "img",
|
78 |
-
"properties": {
|
79 |
-
"image.url": {
|
80 |
-
"type": "string",
|
81 |
-
"selector": "img",
|
82 |
-
"attribute": "src"
|
83 |
-
}
|
84 |
-
}
|
85 |
-
}, {
|
86 |
-
"class": "ListItemRule",
|
87 |
-
"selector" : "li"
|
88 |
-
}, {
|
89 |
-
"class": "ListElementRule",
|
90 |
-
"selector" : "ul"
|
91 |
-
}, {
|
92 |
-
"class": "ListElementRule",
|
93 |
-
"selector" : "ol"
|
94 |
-
}, {
|
95 |
-
"class": "BlockquoteRule",
|
96 |
-
"selector" : "blockquote"
|
97 |
-
}, {
|
98 |
-
"class": "H1Rule",
|
99 |
-
"selector" : "h1",
|
100 |
-
"properties" : {
|
101 |
-
"h1.class" : {
|
102 |
-
"type" : "string",
|
103 |
-
"selector" : "link",
|
104 |
-
"attribute": "class"
|
105 |
-
}
|
106 |
-
}
|
107 |
-
}, {
|
108 |
-
"class": "H1Rule",
|
109 |
-
"selector" : "title"
|
110 |
-
}, {
|
111 |
-
"class": "H2Rule",
|
112 |
-
"selector" : "h2",
|
113 |
-
"properties" : {
|
114 |
-
"h2.class" : {
|
115 |
-
"type" : "string",
|
116 |
-
"selector" : "link",
|
117 |
-
"attribute": "class"
|
118 |
-
}
|
119 |
-
}
|
120 |
-
}, {
|
121 |
-
"class": "H2Rule",
|
122 |
-
"selector" : "h3,h4,h5,h6"
|
123 |
-
}, {
|
124 |
-
"class": "InteractiveRule",
|
125 |
-
"selector" : "blockquote.instagram-media",
|
126 |
-
"properties" : {
|
127 |
-
"interactive.iframe" : {
|
128 |
-
"type" : "multiple",
|
129 |
-
"children": [
|
130 |
-
{
|
131 |
-
"type": "element",
|
132 |
-
"selector": "blockquote"
|
133 |
-
}, {
|
134 |
-
"type": "next-sibling-element-of",
|
135 |
-
"selector": "blockquote"
|
136 |
-
}
|
137 |
-
]
|
138 |
-
}
|
139 |
-
}
|
140 |
-
}, {
|
141 |
-
"class": "InteractiveRule",
|
142 |
-
"selector" : "iframe",
|
143 |
-
"properties" : {
|
144 |
-
"interactive.url" : {
|
145 |
-
"type" : "string",
|
146 |
-
"selector" : "iframe",
|
147 |
-
"attribute": "src"
|
148 |
-
},
|
149 |
-
"interactive.width" : {
|
150 |
-
"type" : "int",
|
151 |
-
"selector" : "iframe",
|
152 |
-
"attribute": "width"
|
153 |
-
},
|
154 |
-
"interactive.height" : {
|
155 |
-
"type" : "int",
|
156 |
-
"selector" : "iframe",
|
157 |
-
"attribute": "height"
|
158 |
-
},
|
159 |
-
"interactive.iframe" : {
|
160 |
-
"type" : "children",
|
161 |
-
"selector" : "iframe"
|
162 |
-
}
|
163 |
-
}
|
164 |
-
}, {
|
165 |
-
"class": "InteractiveRule",
|
166 |
-
"selector" : "div.embed",
|
167 |
-
"properties" : {
|
168 |
-
"interactive.iframe" : {
|
169 |
-
"type" : "children",
|
170 |
-
"selector" : "div.embed"
|
171 |
-
},
|
172 |
-
"interactive.height" : {
|
173 |
-
"type" : "int",
|
174 |
-
"selector" : "iframe",
|
175 |
-
"attribute": "height"
|
176 |
-
},
|
177 |
-
"interactive.width" : {
|
178 |
-
"type" : "int",
|
179 |
-
"selector" : "iframe",
|
180 |
-
"attribute": "width"
|
181 |
-
}
|
182 |
-
}
|
183 |
-
}, {
|
184 |
-
"class": "InteractiveRule",
|
185 |
-
"selector" : "div.interactive",
|
186 |
-
"properties" : {
|
187 |
-
"interactive.iframe" : {
|
188 |
-
"type" : "children",
|
189 |
-
"selector" : "div.interactive"
|
190 |
-
},
|
191 |
-
"interactive.height" : {
|
192 |
-
"type" : "int",
|
193 |
-
"selector" : "iframe",
|
194 |
-
"attribute": "height"
|
195 |
-
},
|
196 |
-
"interactive.width" : {
|
197 |
-
"type" : "int",
|
198 |
-
"selector" : "iframe",
|
199 |
-
"attribute": "width"
|
200 |
-
}
|
201 |
-
}
|
202 |
-
}, {
|
203 |
-
"class": "InteractiveRule",
|
204 |
-
"selector" : "//div[@class='embed' and iframe]",
|
205 |
-
"properties" : {
|
206 |
-
"interactive.url" : {
|
207 |
-
"type" : "string",
|
208 |
-
"selector" : "iframe",
|
209 |
-
"attribute": "src"
|
210 |
-
},
|
211 |
-
"interactive.iframe" : {
|
212 |
-
"type" : "children",
|
213 |
-
"selector" : "iframe",
|
214 |
-
"attribute": "src"
|
215 |
-
},
|
216 |
-
"interactive.width" : {
|
217 |
-
"type" : "int",
|
218 |
-
"selector" : "iframe",
|
219 |
-
"attribute": "width"
|
220 |
-
},
|
221 |
-
"interactive.height" : {
|
222 |
-
"type" : "int",
|
223 |
-
"selector" : "iframe",
|
224 |
-
"attribute": "height"
|
225 |
-
}
|
226 |
-
}
|
227 |
-
}, {
|
228 |
-
"class": "InteractiveRule",
|
229 |
-
"selector" : "//div[@class='interactive' and iframe]",
|
230 |
-
"properties" : {
|
231 |
-
"interactive.url" : {
|
232 |
-
"type" : "string",
|
233 |
-
"selector" : "iframe",
|
234 |
-
"attribute": "src"
|
235 |
-
},
|
236 |
-
"interactive.iframe" : {
|
237 |
-
"type" : "children",
|
238 |
-
"selector" : "iframe"
|
239 |
-
},
|
240 |
-
"interactive.height" : {
|
241 |
-
"type" : "int",
|
242 |
-
"selector" : "iframe",
|
243 |
-
"attribute": "height"
|
244 |
-
},
|
245 |
-
"interactive.width" : {
|
246 |
-
"type" : "int",
|
247 |
-
"selector" : "iframe",
|
248 |
-
"attribute": "width"
|
249 |
-
}
|
250 |
-
}
|
251 |
-
}, {
|
252 |
-
"class": "InteractiveRule",
|
253 |
-
"selector" : "table",
|
254 |
-
"properties" : {
|
255 |
-
"interactive.iframe" : {
|
256 |
-
"type" : "element",
|
257 |
-
"selector" : "table"
|
258 |
-
},
|
259 |
-
"interactive.height" : {
|
260 |
-
"type" : "int",
|
261 |
-
"selector" : "table",
|
262 |
-
"attribute": "height"
|
263 |
-
},
|
264 |
-
"interactive.width" : {
|
265 |
-
"type" : "int",
|
266 |
-
"selector" : "iframe",
|
267 |
-
"attribute": "width"
|
268 |
-
}
|
269 |
-
}
|
270 |
-
}, {
|
271 |
-
"class": "InteractiveRule",
|
272 |
-
"selector" : "div.fb-post",
|
273 |
-
"properties" : {
|
274 |
-
"interactive.iframe" : {
|
275 |
-
"type": "multiple",
|
276 |
-
"children": [
|
277 |
-
{
|
278 |
-
"type": "fragment",
|
279 |
-
"fragment": "<p>Extra markup</p>"
|
280 |
-
},
|
281 |
-
{
|
282 |
-
"type" : "element",
|
283 |
-
"selector" : "div.fb-post"
|
284 |
-
}
|
285 |
-
]
|
286 |
-
}
|
287 |
-
}
|
288 |
-
}, {
|
289 |
-
"class": "InteractiveInsideParagraphRule",
|
290 |
-
"selector" : "iframe",
|
291 |
-
"properties" : {
|
292 |
-
"interactive.url" : {
|
293 |
-
"type" : "string",
|
294 |
-
"selector" : "iframe",
|
295 |
-
"attribute": "src"
|
296 |
-
},
|
297 |
-
"interactive.height" : {
|
298 |
-
"type" : "int",
|
299 |
-
"selector" : "iframe",
|
300 |
-
"attribute": "height"
|
301 |
-
},
|
302 |
-
"interactive.width" : {
|
303 |
-
"type" : "int",
|
304 |
-
"selector" : "iframe",
|
305 |
-
"attribute": "width"
|
306 |
-
}
|
307 |
-
}
|
308 |
-
},{
|
309 |
-
"class": "InteractiveInsideParagraphRule",
|
310 |
-
"selector" : "div.embed",
|
311 |
-
"properties" : {
|
312 |
-
"interactive.iframe" : {
|
313 |
-
"type" : "children",
|
314 |
-
"selector" : "div.embed"
|
315 |
-
},
|
316 |
-
"interactive.height" : {
|
317 |
-
"type" : "int",
|
318 |
-
"selector" : "iframe",
|
319 |
-
"attribute": "height"
|
320 |
-
},
|
321 |
-
"interactive.width" : {
|
322 |
-
"type" : "int",
|
323 |
-
"selector" : "iframe",
|
324 |
-
"attribute": "width"
|
325 |
-
}
|
326 |
-
}
|
327 |
-
}, {
|
328 |
-
"class": "InteractiveInsideParagraphRule",
|
329 |
-
"selector" : "div.interactive",
|
330 |
-
"properties" : {
|
331 |
-
"interactive.iframe" : {
|
332 |
-
"type" : "children",
|
333 |
-
"selector" : "div.interactive"
|
334 |
-
},
|
335 |
-
"interactive.height" : {
|
336 |
-
"type" : "int",
|
337 |
-
"selector" : "iframe",
|
338 |
-
"attribute": "height"
|
339 |
-
},
|
340 |
-
"interactive.width" : {
|
341 |
-
"type" : "int",
|
342 |
-
"selector" : "iframe",
|
343 |
-
"attribute": "width"
|
344 |
-
}
|
345 |
-
}
|
346 |
-
}, {
|
347 |
-
"class": "InteractiveInsideParagraphRule",
|
348 |
-
"selector" : "//div[@class='embed' and iframe]",
|
349 |
-
"properties" : {
|
350 |
-
"interactive.url" : {
|
351 |
-
"type" : "string",
|
352 |
-
"selector" : "iframe",
|
353 |
-
"attribute": "src"
|
354 |
-
},
|
355 |
-
"interactive.iframe" : {
|
356 |
-
"type" : "children",
|
357 |
-
"selector" : "iframe",
|
358 |
-
"attribute": "src"
|
359 |
-
},
|
360 |
-
"interactive.width" : {
|
361 |
-
"type" : "int",
|
362 |
-
"selector" : "iframe",
|
363 |
-
"attribute": "width"
|
364 |
-
},
|
365 |
-
"interactive.height" : {
|
366 |
-
"type" : "int",
|
367 |
-
"selector" : "iframe",
|
368 |
-
"attribute": "height"
|
369 |
-
}
|
370 |
-
}
|
371 |
-
}, {
|
372 |
-
"class": "InteractiveInsideParagraphRule",
|
373 |
-
"selector" : "//div[@class='interactive' and iframe]",
|
374 |
-
"properties" : {
|
375 |
-
"interactive.url" : {
|
376 |
-
"type" : "string",
|
377 |
-
"selector" : "iframe",
|
378 |
-
"attribute": "src"
|
379 |
-
},
|
380 |
-
"interactive.iframe" : {
|
381 |
-
"type" : "children",
|
382 |
-
"selector" : "iframe",
|
383 |
-
"attribute": "src"
|
384 |
-
},
|
385 |
-
"interactive.height" : {
|
386 |
-
"type" : "int",
|
387 |
-
"selector" : "iframe",
|
388 |
-
"attribute": "height"
|
389 |
-
},
|
390 |
-
"interactive.width" : {
|
391 |
-
"type" : "int",
|
392 |
-
"selector" : "iframe",
|
393 |
-
"attribute": "width"
|
394 |
-
}
|
395 |
-
}
|
396 |
-
}, {
|
397 |
-
"class": "InteractiveInsideParagraphRule",
|
398 |
-
"selector" : "table",
|
399 |
-
"properties" : {
|
400 |
-
"interactive.iframe" : {
|
401 |
-
"type" : "element",
|
402 |
-
"selector" : "table"
|
403 |
-
},
|
404 |
-
"interactive.height" : {
|
405 |
-
"type" : "int",
|
406 |
-
"selector" : "table",
|
407 |
-
"attribute": "height"
|
408 |
-
},
|
409 |
-
"interactive.width" : {
|
410 |
-
"type" : "int",
|
411 |
-
"selector" : "table",
|
412 |
-
"attribute": "width"
|
413 |
-
}
|
414 |
-
}
|
415 |
-
}, {
|
416 |
-
"class": "SlideshowImageRule",
|
417 |
-
"selector" : "figure",
|
418 |
-
"properties" : {
|
419 |
-
"image.url" : {
|
420 |
-
"type" : "string",
|
421 |
-
"selector" : "img",
|
422 |
-
"attribute": "src"
|
423 |
-
},
|
424 |
-
"caption.title" : {
|
425 |
-
"type" : "string",
|
426 |
-
"selector" : "figcaption"
|
427 |
-
}
|
428 |
-
}
|
429 |
-
}, {
|
430 |
-
"class": "SlideshowRule",
|
431 |
-
"selector" : "div.gallery"
|
432 |
-
}, {
|
433 |
-
"class": "CaptionRule",
|
434 |
-
"selector" : "figcaption"
|
435 |
-
}, {
|
436 |
-
"class": "CaptionRule",
|
437 |
-
"selector" : "p.wp-caption-text"
|
438 |
-
}, {
|
439 |
-
"class": "ImageRule",
|
440 |
-
"selector" : "figure",
|
441 |
-
"properties" : {
|
442 |
-
"image.url" : {
|
443 |
-
"type" : "string",
|
444 |
-
"selector" : "img",
|
445 |
-
"attribute": "src"
|
446 |
-
}
|
447 |
-
}
|
448 |
-
}, {
|
449 |
-
"class": "VideoRule",
|
450 |
-
"selector" : "div.wp-video",
|
451 |
-
"containsChild": "video",
|
452 |
-
"properties" : {
|
453 |
-
"video.url" : {
|
454 |
-
"type" : "string",
|
455 |
-
"selector" : "source",
|
456 |
-
"attribute": "src"
|
457 |
-
},
|
458 |
-
"video.type" : {
|
459 |
-
"type" : "string",
|
460 |
-
"selector" : "source",
|
461 |
-
"attribute": "type"
|
462 |
-
}
|
463 |
-
}
|
464 |
-
},
|
465 |
-
|
466 |
-
|
467 |
-
|
468 |
-
{
|
469 |
-
"class" : "IgnoreRule",
|
470 |
-
"selector" : "p.jetpack-slideshow-noscript"
|
471 |
-
},
|
472 |
-
{
|
473 |
-
"class": "CaptionRule",
|
474 |
-
"selector" : "div.wp-caption-text"
|
475 |
-
},
|
476 |
-
{
|
477 |
-
"class" : "PassThroughRule",
|
478 |
-
"selector" : "div.gallery-row"
|
479 |
-
},
|
480 |
-
{
|
481 |
-
"class" : "PassThroughRule",
|
482 |
-
"selector" : "div.tiled-gallery p"
|
483 |
-
},
|
484 |
-
{
|
485 |
-
"class" : "PassThroughRule",
|
486 |
-
"selector" : "div.gallery-row p"
|
487 |
-
},
|
488 |
-
{
|
489 |
-
"class" : "PassThroughRule",
|
490 |
-
"selector" : "div.gallery-group p"
|
491 |
-
},
|
492 |
-
{
|
493 |
-
"class" : "PassThroughRule",
|
494 |
-
"selector" : "div.gallery-group"
|
495 |
-
},
|
496 |
-
{
|
497 |
-
"class": "ImageRule",
|
498 |
-
"selector" : "div.wp-caption",
|
499 |
-
"properties" : {
|
500 |
-
"image.url" : {
|
501 |
-
"type" : "string",
|
502 |
-
"selector" : "img",
|
503 |
-
"attribute": "src"
|
504 |
-
}
|
505 |
-
}
|
506 |
-
},
|
507 |
-
{
|
508 |
-
"class": "SlideshowImageRule",
|
509 |
-
"selector" : "div.tiled-gallery-item",
|
510 |
-
"properties" : {
|
511 |
-
"image.url" : {
|
512 |
-
"type" : "string",
|
513 |
-
"selector" : "img",
|
514 |
-
"attribute": "data-orig-file"
|
515 |
-
},
|
516 |
-
"caption.title" : {
|
517 |
-
"type" : "string",
|
518 |
-
"selector" : "div.tiled-gallery-caption"
|
519 |
-
}
|
520 |
-
}
|
521 |
-
},
|
522 |
-
{
|
523 |
-
"class": "SlideshowRule",
|
524 |
-
"selector" : "div.tiled-gallery"
|
525 |
-
},
|
526 |
-
{
|
527 |
-
"class": "SlideshowRule",
|
528 |
-
"selector" : "div.tiled-gallery"
|
529 |
-
},
|
530 |
-
{
|
531 |
-
"class": "Compat\\JetpackSlideshowRule",
|
532 |
-
"selector" : "div.jetpack-slideshow",
|
533 |
-
"properties": {
|
534 |
-
"jetpack.data-gallery": {
|
535 |
-
"type": "json",
|
536 |
-
"selector": "div.jetpack-slideshow",
|
537 |
-
"attribute": "data-gallery"
|
538 |
-
}
|
539 |
-
}
|
540 |
-
},
|
541 |
-
{
|
542 |
-
"class": "CaptionRule",
|
543 |
-
"selector" : "div.tiled-gallery-caption"
|
544 |
-
},
|
545 |
-
{
|
546 |
-
"class" : "PassThroughRule",
|
547 |
-
"selector" : "div.vce-gallery-big"
|
548 |
-
},
|
549 |
-
{
|
550 |
-
"class" : "PassThroughRule",
|
551 |
-
"selector" : "div.vce-gallery-small"
|
552 |
-
},
|
553 |
-
{
|
554 |
-
"class" : "IgnoreRule",
|
555 |
-
"selector" : "div.vce-gallery-slider"
|
556 |
-
},
|
557 |
-
{
|
558 |
-
"class": "SlideshowImageRule",
|
559 |
-
"selector" : "div.big-gallery-item",
|
560 |
-
"properties" : {
|
561 |
-
"image.url" : {
|
562 |
-
"type" : "string",
|
563 |
-
"selector" : "img",
|
564 |
-
"attribute": "src"
|
565 |
-
},
|
566 |
-
"caption.title" : {
|
567 |
-
"type" : "string",
|
568 |
-
"selector" : "figcaption.wp-caption-text"
|
569 |
-
}
|
570 |
-
}
|
571 |
-
},
|
572 |
-
|
573 |
-
|
574 |
-
{
|
575 |
-
"class": "ImageInsideParagraphRule",
|
576 |
-
"selector": "figure.wp-caption",
|
577 |
-
"properties": {
|
578 |
-
"image.url": {
|
579 |
-
"type": "string",
|
580 |
-
"selector": "img",
|
581 |
-
"attribute": "src"
|
582 |
-
}
|
583 |
-
}
|
584 |
-
},
|
585 |
-
|
586 |
-
{
|
587 |
-
"class": "InteractiveRule",
|
588 |
-
"selector" : "iframe.sibling",
|
589 |
-
"properties" : {
|
590 |
-
"interactive.iframe" : {
|
591 |
-
"type" : "multiple",
|
592 |
-
"children": [
|
593 |
-
{
|
594 |
-
"type": "children",
|
595 |
-
"selector": "iframe"
|
596 |
-
}, {
|
597 |
-
"type": "next-sibling-element-of",
|
598 |
-
"selector": "iframe",
|
599 |
-
"sibling.selector": "script"
|
600 |
-
}
|
601 |
-
]
|
602 |
-
}
|
603 |
-
}
|
604 |
-
}
|
605 |
-
]
|
606 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/facebook/facebook-instant-articles-sdk-php/tests/Facebook/InstantArticles/Transformer/CMS/wp.html
DELETED
@@ -1,221 +0,0 @@
|
|
1 |
-
<!DOCTYPE html>
|
2 |
-
<html>
|
3 |
-
<body>
|
4 |
-
<p>Yes, peace is good for everybody!<br>
|
5 |
-
Man kind.</p>
|
6 |
-
<p><img src="http://example.com/image0.jpg" />Some text after img.</p>
|
7 |
-
<p>Some text before img<img src="http://example.com/image1.jpg" /></p>
|
8 |
-
<p>Some text before img<img src="http://example.com/image2.jpg" /> and some after img.</p>
|
9 |
-
<p><iframe width="300" height="200" src="http://example.com/0/"/></p>
|
10 |
-
<p>Some text before iframe<iframe width="300" height="200" src="http://example.com/1/"/></p>
|
11 |
-
<p><iframe width="300" height="200" src="http://example.com/2/"></iframe> some after iframe.</p>
|
12 |
-
<p>Some text before iframe<iframe width="300" height="200" src="http://example.com/3/"/> and some after iframe.</p>
|
13 |
-
<iframe width="300" height="200" src="http://example.com/loose/with_url"></iframe>
|
14 |
-
<iframe>
|
15 |
-
<div>
|
16 |
-
<h1>Iframe loose without url</h1>
|
17 |
-
</div>
|
18 |
-
</iframe>
|
19 |
-
<div class="embed">
|
20 |
-
<div>
|
21 |
-
<h1>some embed here</h1>
|
22 |
-
</div>
|
23 |
-
</div>
|
24 |
-
<div class="interactive">
|
25 |
-
<div>
|
26 |
-
<h1>some embed here</h1>
|
27 |
-
</div>
|
28 |
-
</div>
|
29 |
-
<div class="interactive">
|
30 |
-
<iframe>
|
31 |
-
<div>some content</div>
|
32 |
-
<script>alert('hi & hello to you @ testing!');</script>
|
33 |
-
</iframe>
|
34 |
-
</div>
|
35 |
-
<div class="interactive">
|
36 |
-
<iframe width="300" height="200" src="http://example.com/4/"></iframe>
|
37 |
-
</div>
|
38 |
-
<div class="interactive">
|
39 |
-
<iframe>
|
40 |
-
<div>some content</div>
|
41 |
-
<script>alert('hi & hello to you @ testing!');</script>
|
42 |
-
</iframe>
|
43 |
-
</div>
|
44 |
-
<div class="embed">
|
45 |
-
<iframe width="300" height="200" src="http://example.com/4/"></iframe>
|
46 |
-
</div>
|
47 |
-
<div class="embed">
|
48 |
-
<iframe>
|
49 |
-
<div>some content</div>
|
50 |
-
<script>alert('hi & hello to you @ testing!');</script>
|
51 |
-
</iframe>
|
52 |
-
</div>
|
53 |
-
<table width="200" height="200">
|
54 |
-
<thead>
|
55 |
-
<td>header 1</td>
|
56 |
-
<td>header 2</td>
|
57 |
-
</thead>
|
58 |
-
<tbody>
|
59 |
-
<tr>
|
60 |
-
<td>Line 1 column 1</td>
|
61 |
-
<td>Line 1 column 2</td>
|
62 |
-
</tr>
|
63 |
-
<tr>
|
64 |
-
<td>Line 2 column 1</td>
|
65 |
-
<td>Line 2 column 2</td>
|
66 |
-
</tr>
|
67 |
-
</tbody>
|
68 |
-
</table>
|
69 |
-
<ul>
|
70 |
-
<li>Some text on li before img<img src="http://example.com/image.jpg" width="600" height="360"/></li>
|
71 |
-
<li>Some text on li before img<img src="http://example.com/image.jpg" width="600" height="360"/>and after img</li>
|
72 |
-
<li><img src="http://example.com/image.jpg" width="600" height="360"/>Some text after img</li>
|
73 |
-
</ul>
|
74 |
-
<p class="jetpack-slideshow-noscript robots-nocontent">This slideshow requires JavaScript.</p>
|
75 |
-
<div
|
76 |
-
class="slideshow-window jetpack-slideshow slideshow-black"
|
77 |
-
data-trans="fade" data-autostart="1"
|
78 |
-
data-gallery="[{"src":"http:\/\/example.com/img0.jpg","id":"434","title":"img0","alt":"","caption":"","itemprop":"image"},{"src":"http:\/\/example.com\/img1.jpg","id":"474","title":"img1","alt":"","caption":"","itemprop":"image"},{"src":"http:\/\/example.com\/img2.jpg","id":"470","title":"img2","alt":"","caption":"Image 2","itemprop":"image"},{"src":"http:\/\/example.com\/img3.jpg","id":"466","title":"Image 3","alt":"","caption":"Image 3","itemprop":"image"},{"src":"http:\/\/example.com\/img4.jpg","id":"462","title":"img4","alt":"","caption":"","itemprop":"image"}]"
|
79 |
-
itemscope itemtype="http://schema.org/ImageGallery">
|
80 |
-
</div>
|
81 |
-
|
82 |
-
<div class="tiled-gallery type-rectangular tiled-gallery-unresized" >
|
83 |
-
<div class="gallery-row">
|
84 |
-
<div class="gallery-group images-1">
|
85 |
-
<div class="tiled-gallery-item tiled-gallery-item-large">
|
86 |
-
<a href="http://www.diegoquinteiro.com/15-razoes-para-ser-contra-o-impeachment/forum/">
|
87 |
-
<meta itemprop="width" content="318">
|
88 |
-
<meta itemprop="height" content="211">
|
89 |
-
<img data-orig-file="http://example.com/img1.jpg"
|
90 |
-
data-image-meta="{"aperture":"0","credit":"","camera":"","caption":"","created_timestamp":"0","copyright":"","focal_length":"0","iso":"0","shutter_speed":"0","title":"","orientation":"0"}" data-image-title="Forum" data-image-description="" data-medium-file="http://http://example.com/img1.jpg" data-large-file="http://example.com/img1.jpg" src="http://example.com/img1.jpg?resize=318%2C211"
|
91 |
-
width="318" height="211" data-original-width="318" data-original-height="211" title="Forum" alt="riots" style="width: 318px; height: 211px;" />
|
92 |
-
</a>
|
93 |
-
<div class="tiled-gallery-caption" itemprop="caption description"> Image 1 </div>
|
94 |
-
</p>
|
95 |
-
</div>
|
96 |
-
</p>
|
97 |
-
</div>
|
98 |
-
<p> <!-- close group -->
|
99 |
-
<div class="gallery-group images-2">
|
100 |
-
<div class="tiled-gallery-item tiled-gallery-item-small" itemprop="associatedMedia">
|
101 |
-
<a href="http://example.com/link" border="0" itemprop="url">
|
102 |
-
<meta itemprop="width" content="174">
|
103 |
-
<meta itemprop="height" content="109">
|
104 |
-
<img data-attachment-id="519" data-orig-file="http://example.com/img2.jpg" data-orig-size="2078,1310" data-comments-opened="" data-image-meta="{"aperture":"0","credit":"","camera":"","caption":"","created_timestamp":"0","copyright":"","focal_length":"0","iso":"0","shutter_speed":"0","title":"","orientation":"0"}" data-image-title="Chaplin – Fábrica" data-image-description="" data-medium-file="http://example.com/img2.jpg" data-large-file="http://example.com/img2.jpg" src="http://example.com/img2.jpg?resize=174%2C109" width="174" height="109" data-original-width="174" data-original-height="109" itemprop="http://schema.org/image" title="Image Title" alt="chaplin" style="width: 174px; height: 109px;" />
|
105 |
-
</a>
|
106 |
-
<div class="tiled-gallery-caption" itemprop="caption description"> Image 2 </div>
|
107 |
-
</p>
|
108 |
-
</div>
|
109 |
-
<div class="tiled-gallery-item tiled-gallery-item-small" itemprop="associatedMedia">
|
110 |
-
<a href="http://example.com/link" border="0" itemprop="url">
|
111 |
-
<meta itemprop="width" content="174">
|
112 |
-
<meta itemprop="height" content="98">
|
113 |
-
<img data-attachment-id="532" data-orig-file="http://example.com/img3.jpg" data-image-meta="{"aperture":"0","credit":"","camera":"","caption":"","created_timestamp":"0","copyright":"","focal_length":"0","iso":"0","shutter_speed":"0","title":"","orientation":"0"}" data-image-title="highlight image" data-image-description="" data-medium-file="http://www.diegoquinteiro.com/wp-content/uploads/2016/06/highlight-image-300x169.jpg" data-large-file="http://www.diegoquinteiro.com/wp-content/uploads/2016/06/highlight-image-1024x576.jpg" src="http://i1.wp.com/www.diegoquinteiro.com/wp-content/uploads/2016/06/highlight-image.jpg?resize=174%2C98" width="174" height="98" data-original-width="174" data-original-height="98" itemprop="http://schema.org/image" title="highlight image" alt="Dog cat" style="width: 174px; height: 98px;" />
|
114 |
-
</a>
|
115 |
-
<div class="tiled-gallery-caption" itemprop="caption description"> Image 3 </div>
|
116 |
-
</p>
|
117 |
-
</div>
|
118 |
-
</p>
|
119 |
-
</div>
|
120 |
-
<p> <!-- close group -->
|
121 |
-
</div>
|
122 |
-
<p> <!-- close row -->
|
123 |
-
</div>
|
124 |
-
<blockquote class="instagram-media" data-instgrm-captioned data-instgrm-version="6" style=" background:#FFF; border:0; border-radius:3px; box-shadow:0 0 1px 0 rgba(0,0,0,0.5),0 1px 10px 0 rgba(0,0,0,0.15); margin: 1px; max-width:658px; padding:0; width:99.375%; width:-webkit-calc(100% - 2px); width:calc(100% - 2px);">
|
125 |
-
<div style="padding:8px;">
|
126 |
-
<div style=" background:#F8F8F8; line-height:0; margin-top:40px; padding:62.5% 0; text-align:center; width:100%;">
|
127 |
-
<div style=" background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAsCAMAAAApWqozAAAAGFBMVEUiIiI9PT0eHh4gIB4hIBkcHBwcHBwcHBydr+JQAAAACHRSTlMABA4YHyQsM5jtaMwAAADfSURBVDjL7ZVBEgMhCAQBAf//42xcNbpAqakcM0ftUmFAAIBE81IqBJdS3lS6zs3bIpB9WED3YYXFPmHRfT8sgyrCP1x8uEUxLMzNWElFOYCV6mHWWwMzdPEKHlhLw7NWJqkHc4uIZphavDzA2JPzUDsBZziNae2S6owH8xPmX8G7zzgKEOPUoYHvGz1TBCxMkd3kwNVbU0gKHkx+iZILf77IofhrY1nYFnB/lQPb79drWOyJVa/DAvg9B/rLB4cC+Nqgdz/TvBbBnr6GBReqn/nRmDgaQEej7WhonozjF+Y2I/fZou/qAAAAAElFTkSuQmCC); display:block; height:44px; margin:0 auto -44px; position:relative; top:-22px; width:44px;"></div>
|
128 |
-
</div>
|
129 |
-
<p style=" margin:8px 0 0 0; padding:0 4px;">
|
130 |
-
<a href="https://www.instagram.com/p/BAXbKP1POQe/" style=" color:#000; font-family:Arial,sans-serif; font-size:14px; font-style:normal; font-weight:normal; line-height:17px; text-decoration:none; word-wrap:break-word;" target="_blank">📸 @natthaponwuttipetch</a>
|
131 |
-
</p>
|
132 |
-
<p style=" color:#c9c8cd; font-family:Arial,sans-serif; font-size:14px; line-height:17px; margin-bottom:0; margin-top:8px; overflow:hidden; padding:8px 0 7px; text-align:center; text-overflow:ellipsis; white-space:nowrap;">
|
133 |
-
A photo posted by Ann Hathairat Vidhyaphum (@annvidh) on <time style=" font-family:Arial,sans-serif; font-size:14px; line-height:17px;" datetime="2016-01-10T16:56:06+00:00">Jan 10, 2016 at 8:56am PST</time>
|
134 |
-
</p>
|
135 |
-
</div>
|
136 |
-
</blockquote>
|
137 |
-
<script async defer src="//platform.instagram.com/en_US/embeds.js"></script>
|
138 |
-
<p>
|
139 |
-
<figure style="width: 1280px" class="wp-caption alignnone">
|
140 |
-
<img src="http://example.com/img.jpg" width="1280" height="740" class />
|
141 |
-
<br />
|
142 |
-
<figcaption class="wp-caption-text">blue eyes</figcaption>
|
143 |
-
</figure>
|
144 |
-
</p>
|
145 |
-
<iframe class="sibling">
|
146 |
-
<h1>Sibling content</h1>
|
147 |
-
<div>sibling body</div></iframe>
|
148 |
-
<script src="//sibling.com/brother.js"></script>
|
149 |
-
<p>Standard paragraph that <b>shouldn't</b> lie within the interactive block.</p>
|
150 |
-
<div class="fb-post" data-href="https://www.facebook.com/some-page/posts/some-post"></div>
|
151 |
-
|
152 |
-
<div id="gallery-3" class="vce-gallery gallery galleryid-15219 gallery-columns-3 gallery-size-vce-lay-b">
|
153 |
-
<div class="vce-gallery-big">
|
154 |
-
<div class="big-gallery-item item-0">
|
155 |
-
<div class="gallery-icon">
|
156 |
-
<a href="http://example.com/konservnye-banki-osobenno-lyubyat-yaponcy.jpg"><img width="810" height="471" src="http://example.com/konservnye-banki-osobenno-lyubyat-yaponcy-810x471.jpg" class="attachment-vce-lay-a size-vce-lay-a" alt="Caption Img 1" srcset="http://example.com/konservnye-banki-osobenno-lyubyat-yaponcy-810x471.jpg 810w, http://example.com/konservnye-banki-osobenno-lyubyat-yaponcy-300x174.jpg 300w, http://example.com/konservnye-banki-osobenno-lyubyat-yaponcy-768x447.jpg 768w, http://example.com/konservnye-banki-osobenno-lyubyat-yaponcy.jpg 860w" sizes="(max-width: 810px) 100vw, 810px"></a>
|
157 |
-
</div>
|
158 |
-
<figcaption class="wp-caption-text gallery-caption">Caption Img 1</figcaption>
|
159 |
-
</div>
|
160 |
-
<div class="big-gallery-item item-1" style="display:none;">
|
161 |
-
<div class="gallery-icon">
|
162 |
-
<a href="http://example.com/a-vot-chto-vnutri.jpg">
|
163 |
-
<img width="699" height="443" src="http://example.com/a-vot-chto-vnutri.jpg" class="attachment-vce-lay-a size-vce-lay-a" alt="Alternative text" srcset="http://example.com/a-vot-chto-vnutri.jpg 699w, http://example.com/a-vot-chto-vnutri-300x190.jpg 300w" sizes="(max-width: 699px) 100vw, 699px">
|
164 |
-
</a>
|
165 |
-
</div>
|
166 |
-
<figcaption class="wp-caption-text gallery-caption">Alternative text </figcaption>
|
167 |
-
</div>
|
168 |
-
<div class="big-gallery-item item-2" style="display:none;">
|
169 |
-
<div class="gallery-icon">
|
170 |
-
<a href="http://example.com/brelok-s-bezopasnostyu-vsegda-s-soboj.jpg">
|
171 |
-
<img width="700" height="467" src="http://example.com/brelok-s-bezopasnostyu-vsegda-s-soboj.jpg" class="attachment-vce-lay-a size-vce-lay-a" alt="Caption img 3" srcset="http://example.com/brelok-s-bezopasnostyu-vsegda-s-soboj.jpg 700w, http://example.com/brelok-s-bezopasnostyu-vsegda-s-soboj-300x200.jpg 300w" sizes="(max-width: 700px) 100vw, 700px">
|
172 |
-
</a>
|
173 |
-
</div>
|
174 |
-
<figcaption class="wp-caption-text gallery-caption">Caption img 3</figcaption>
|
175 |
-
</div>
|
176 |
-
</div>
|
177 |
-
<div class="vce-gallery-slider owl-carousel owl-theme owl-loaded owl-text-select-on" data-columns="3">
|
178 |
-
<div class="owl-stage-outer">
|
179 |
-
<div class="owl-stage" style="transform: translate3d(-761px, 0px, 0px); transition: 0s; width: 3551.34px;">
|
180 |
-
<div class="owl-item active" style="width: 252.667px; margin-right: 1px;">
|
181 |
-
<figure class="gallery-item" data-item="0">
|
182 |
-
<div class="gallery-icon landscape">
|
183 |
-
<a href="http://example.com/konservnye-banki-osobenno-lyubyat-yaponcy.jpg"><img width="375" height="195" src="http://example.com/konservnye-banki-osobenno-lyubyat-yaponcy-375x195.jpg" class="attachment-vce-lay-b size-vce-lay-b" alt="Caption Img 1"></a>
|
184 |
-
</div>
|
185 |
-
</figure>
|
186 |
-
</div>
|
187 |
-
<div class="owl-item active" style="width: 252.667px; margin-right: 1px;">
|
188 |
-
<figure class="gallery-item" data-item="1">
|
189 |
-
<div class="gallery-icon landscape">
|
190 |
-
<a href="http://example.com/a-vot-chto-vnutri.jpg"><img width="375" height="195" src="http://example.com/a-vot-chto-vnutri-375x195.jpg" class="attachment-vce-lay-b size-vce-lay-b" alt="Alternative text"></a>
|
191 |
-
</div>
|
192 |
-
</figure>
|
193 |
-
</div>
|
194 |
-
<div class="owl-item active" style="width: 252.667px; margin-right: 1px;">
|
195 |
-
<figure class="gallery-item" data-item="2">
|
196 |
-
<div class="gallery-icon landscape">
|
197 |
-
<a href="http://example.com/brelok-s-bezopasnostyu-vsegda-s-soboj.jpg"><img width="375" height="195" src="http://example.com/brelok-s-bezopasnostyu-vsegda-s-soboj-375x195.jpg" class="attachment-vce-lay-b size-vce-lay-b" alt="Caption img 3"></a>
|
198 |
-
</div>
|
199 |
-
</figure>
|
200 |
-
</div>
|
201 |
-
</div>
|
202 |
-
</div>
|
203 |
-
<div class="owl-controls">
|
204 |
-
<div class="owl-nav">
|
205 |
-
<div class="owl-prev" style=""><i class="fa fa-angle-left"></i></div>
|
206 |
-
<div class="owl-next" style=""><i class="fa fa-angle-right"></i></div>
|
207 |
-
</div>
|
208 |
-
<div class="owl-dots" style="">
|
209 |
-
<div class="owl-dot active"><span></span></div>
|
210 |
-
<div class="owl-dot"><span></span></div>
|
211 |
-
<div class="owl-dot"><span></span></div>
|
212 |
-
</div>
|
213 |
-
</div>
|
214 |
-
</div>
|
215 |
-
</div>
|
216 |
-
<div id="attachment_22553" style="width: 800px" class="wp-caption alignnone">
|
217 |
-
<img class="wp-image-22553 size-large" src="http://example.com/image.jpg" alt="alt text" width="800" height="552" srcset="http://example.com/image-800.jpg 800w, http://example.com/image-400.jpg 400w, http://example.com/image-768.jpg 768w" sizes="(max-width: 800px) 100vw, 800px" />
|
218 |
-
<p class="wp-caption-text">caption</p>
|
219 |
-
</div>
|
220 |
-
</body>
|
221 |
-
</html>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/facebook/facebook-instant-articles-sdk-php/tests/Facebook/InstantArticles/Transformer/wp-rules.json
DELETED
@@ -1,270 +0,0 @@
|
|
1 |
-
{
|
2 |
-
"rules":
|
3 |
-
[{
|
4 |
-
"class": "TextNodeRule"
|
5 |
-
}, {
|
6 |
-
"class": "PassThroughRule",
|
7 |
-
"selector": "html"
|
8 |
-
}, {
|
9 |
-
"class": "PassThroughRule",
|
10 |
-
"selector": "head"
|
11 |
-
}, {
|
12 |
-
"class": "PassThroughRule",
|
13 |
-
"selector": "body"
|
14 |
-
}, {
|
15 |
-
"class": "PassThroughRule",
|
16 |
-
"selector" : "code"
|
17 |
-
},{
|
18 |
-
"class": "PassThroughRule",
|
19 |
-
"selector" : "del"
|
20 |
-
}, {
|
21 |
-
"class": "PassThroughRule",
|
22 |
-
"selector" : "span"
|
23 |
-
}, {
|
24 |
-
"class": "ParagraphRule",
|
25 |
-
"selector": "p"
|
26 |
-
}, {
|
27 |
-
"class": "LineBreakRule",
|
28 |
-
"selector": "br"
|
29 |
-
}, {
|
30 |
-
"class": "AnchorRule",
|
31 |
-
"selector": "a",
|
32 |
-
"properties": {
|
33 |
-
"anchor.href": {
|
34 |
-
"type": "string",
|
35 |
-
"selector": "a",
|
36 |
-
"attribute": "href"
|
37 |
-
},
|
38 |
-
"anchor.rel": {
|
39 |
-
"type": "string",
|
40 |
-
"selector": "a",
|
41 |
-
"attribute": "rel"
|
42 |
-
}
|
43 |
-
}
|
44 |
-
}, {
|
45 |
-
"class": "BoldRule",
|
46 |
-
"selector": "b"
|
47 |
-
}, {
|
48 |
-
"class": "BoldRule",
|
49 |
-
"selector": "strong"
|
50 |
-
}, {
|
51 |
-
"class": "ItalicRule",
|
52 |
-
"selector": "i"
|
53 |
-
}, {
|
54 |
-
"class": "ItalicRule",
|
55 |
-
"selector": "em"
|
56 |
-
}, {
|
57 |
-
"class": "BlockquoteRule",
|
58 |
-
"selector": "blockquote"
|
59 |
-
}, {
|
60 |
-
"class": "PassThroughRule",
|
61 |
-
"selector": "blockquote p"
|
62 |
-
}, {
|
63 |
-
"class": "ImageRule",
|
64 |
-
"selector": "//p[img]",
|
65 |
-
"properties": {
|
66 |
-
"image.url": {
|
67 |
-
"type": "string",
|
68 |
-
"selector": "img",
|
69 |
-
"attribute": "src"
|
70 |
-
}
|
71 |
-
}
|
72 |
-
},{
|
73 |
-
"class": "ImageRule",
|
74 |
-
"selector": "img",
|
75 |
-
"properties": {
|
76 |
-
"image.url": {
|
77 |
-
"type": "string",
|
78 |
-
"selector": "img",
|
79 |
-
"attribute": "src"
|
80 |
-
}
|
81 |
-
}
|
82 |
-
}, {
|
83 |
-
"class": "ListItemRule",
|
84 |
-
"selector" : "li"
|
85 |
-
}, {
|
86 |
-
"class": "ListElementRule",
|
87 |
-
"selector" : "ul"
|
88 |
-
}, {
|
89 |
-
"class": "ListElementRule",
|
90 |
-
"selector" : "ol"
|
91 |
-
}, {
|
92 |
-
"class": "BlockquoteRule",
|
93 |
-
"selector" : "blockquote"
|
94 |
-
}, {
|
95 |
-
"class": "H1Rule",
|
96 |
-
"selector" : "h1",
|
97 |
-
"properties" : {
|
98 |
-
"h1.class" : {
|
99 |
-
"type" : "string",
|
100 |
-
"selector" : "link",
|
101 |
-
"attribute": "class"
|
102 |
-
}
|
103 |
-
}
|
104 |
-
}, {
|
105 |
-
"class": "H1Rule",
|
106 |
-
"selector" : "title"
|
107 |
-
}, {
|
108 |
-
"class": "H2Rule",
|
109 |
-
"selector" : "h2",
|
110 |
-
"properties" : {
|
111 |
-
"h2.class" : {
|
112 |
-
"type" : "string",
|
113 |
-
"selector" : "link",
|
114 |
-
"attribute": "class"
|
115 |
-
}
|
116 |
-
}
|
117 |
-
}, {
|
118 |
-
"class": "H2Rule",
|
119 |
-
"selector" : "h3,h4,h5,h6"
|
120 |
-
}, {
|
121 |
-
"class": "SocialEmbedRule",
|
122 |
-
"selector" : "iframe",
|
123 |
-
"properties" : {
|
124 |
-
"socialembed.url" : {
|
125 |
-
"type" : "string",
|
126 |
-
"selector" : "iframe",
|
127 |
-
"attribute": "src"
|
128 |
-
},
|
129 |
-
"socialembed.iframe" : {
|
130 |
-
"type" : "children",
|
131 |
-
"selector" : "iframe"
|
132 |
-
},
|
133 |
-
"socialembed.caption" : {
|
134 |
-
"type" : "element",
|
135 |
-
"selector" : "figcaption"
|
136 |
-
}
|
137 |
-
}
|
138 |
-
}, {
|
139 |
-
"class": "SocialEmbedRule",
|
140 |
-
"selector" : "//p[iframe]",
|
141 |
-
"properties" : {
|
142 |
-
"socialembed.url" : {
|
143 |
-
"type" : "string",
|
144 |
-
"selector" : "iframe",
|
145 |
-
"attribute": "src"
|
146 |
-
},
|
147 |
-
"socialembed.iframe" : {
|
148 |
-
"type" : "children",
|
149 |
-
"selector" : "iframe"
|
150 |
-
},
|
151 |
-
"socialembed.caption" : {
|
152 |
-
"type" : "element",
|
153 |
-
"selector" : "figcaption"
|
154 |
-
}
|
155 |
-
}
|
156 |
-
}, {
|
157 |
-
"class": "SocialEmbedRule",
|
158 |
-
"selector" : "div.embed",
|
159 |
-
"properties" : {
|
160 |
-
"socialembed.iframe" : {
|
161 |
-
"type" : "children",
|
162 |
-
"selector" : "div.embed"
|
163 |
-
}
|
164 |
-
}
|
165 |
-
}, {
|
166 |
-
"class": "InteractiveRule",
|
167 |
-
"selector" : "div.interactive",
|
168 |
-
"properties" : {
|
169 |
-
"interactive.iframe" : {
|
170 |
-
"type" : "children",
|
171 |
-
"selector" : "div.interactive"
|
172 |
-
},
|
173 |
-
"interactive.height" : {
|
174 |
-
"type" : "int",
|
175 |
-
"selector" : "iframe",
|
176 |
-
"attribute": "height"
|
177 |
-
},
|
178 |
-
"interactive.iframe" : {
|
179 |
-
"type" : "children",
|
180 |
-
"selector" : "iframe"
|
181 |
-
}
|
182 |
-
}
|
183 |
-
}, {
|
184 |
-
"class": "SocialEmbedRule",
|
185 |
-
"selector" : "//div[@class='embed' and iframe]",
|
186 |
-
"properties" : {
|
187 |
-
"socialembed.url" : {
|
188 |
-
"type" : "string",
|
189 |
-
"selector" : "iframe",
|
190 |
-
"attribute": "src"
|
191 |
-
}
|
192 |
-
}
|
193 |
-
}, {
|
194 |
-
"class": "InteractiveRule",
|
195 |
-
"selector" : "//div[@class='interactive' and iframe]",
|
196 |
-
"properties" : {
|
197 |
-
"interactive.url" : {
|
198 |
-
"type" : "string",
|
199 |
-
"selector" : "iframe",
|
200 |
-
"attribute": "src"
|
201 |
-
}
|
202 |
-
}
|
203 |
-
}, {
|
204 |
-
"class": "ImageRule",
|
205 |
-
"selector": "//p[a[img]]|//a[img]",
|
206 |
-
"properties": {
|
207 |
-
"image.url": {
|
208 |
-
"type": "string",
|
209 |
-
"selector": "img",
|
210 |
-
"attribute": "src"
|
211 |
-
}
|
212 |
-
}
|
213 |
-
}, {
|
214 |
-
"class": "SlideshowImageRule",
|
215 |
-
"selector" : "figure",
|
216 |
-
"properties" : {
|
217 |
-
"image.url" : {
|
218 |
-
"type" : "string",
|
219 |
-
"selector" : "img",
|
220 |
-
"attribute": "src"
|
221 |
-
},
|
222 |
-
"caption.title" : {
|
223 |
-
"type" : "string",
|
224 |
-
"selector" : "figcaption"
|
225 |
-
}
|
226 |
-
}
|
227 |
-
}, {
|
228 |
-
"class": "SlideshowRule",
|
229 |
-
"selector" : "div.gallery"
|
230 |
-
}, {
|
231 |
-
"class": "CaptionRule",
|
232 |
-
"selector" : "figcaption"
|
233 |
-
},
|
234 |
-
{
|
235 |
-
"class": "ImageRule",
|
236 |
-
"selector" : "figure",
|
237 |
-
"properties" : {
|
238 |
-
"image.url" : {
|
239 |
-
"type" : "string",
|
240 |
-
"selector" : "img",
|
241 |
-
"attribute": "src"
|
242 |
-
}
|
243 |
-
}
|
244 |
-
}, {
|
245 |
-
"class": "VideoRule",
|
246 |
-
"selector" : "div.wp-video",
|
247 |
-
"containsChild": "video",
|
248 |
-
"properties" : {
|
249 |
-
"video.url" : {
|
250 |
-
"type" : "string",
|
251 |
-
"selector" : "source",
|
252 |
-
"attribute": "src"
|
253 |
-
},
|
254 |
-
"video.type" : {
|
255 |
-
"type" : "string",
|
256 |
-
"selector" : "source",
|
257 |
-
"attribute": "type"
|
258 |
-
}
|
259 |
-
}
|
260 |
-
}, {
|
261 |
-
"class": "InteractiveRule",
|
262 |
-
"selector" : "table",
|
263 |
-
"properties" : {
|
264 |
-
"interactive.iframe" : {
|
265 |
-
"type" : "element",
|
266 |
-
"selector" : "table"
|
267 |
-
}
|
268 |
-
}
|
269 |
-
}]
|
270 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/facebook/{php-sdk-v4 → graph-sdk}/LICENSE
RENAMED
File without changes
|
vendor/facebook/{php-sdk-v4 → graph-sdk}/composer.json
RENAMED
@@ -1,14 +1,14 @@
|
|
1 |
{
|
2 |
-
"name": "facebook/
|
3 |
"description": "Facebook SDK for PHP",
|
4 |
"keywords": ["facebook", "sdk"],
|
5 |
"type": "library",
|
6 |
-
"homepage": "https://github.com/facebook/
|
7 |
"license": "Facebook Platform",
|
8 |
"authors": [
|
9 |
{
|
10 |
"name": "Facebook",
|
11 |
-
"homepage": "https://github.com/facebook/
|
12 |
}
|
13 |
],
|
14 |
"require": {
|
@@ -20,6 +20,7 @@
|
|
20 |
"guzzlehttp/guzzle": "~5.0"
|
21 |
},
|
22 |
"suggest": {
|
|
|
23 |
"guzzlehttp/guzzle": "Allows for implementation of the Guzzle HTTP client"
|
24 |
},
|
25 |
"autoload": {
|
1 |
{
|
2 |
+
"name": "facebook/graph-sdk",
|
3 |
"description": "Facebook SDK for PHP",
|
4 |
"keywords": ["facebook", "sdk"],
|
5 |
"type": "library",
|
6 |
+
"homepage": "https://github.com/facebook/php-graph-sdk",
|
7 |
"license": "Facebook Platform",
|
8 |
"authors": [
|
9 |
{
|
10 |
"name": "Facebook",
|
11 |
+
"homepage": "https://github.com/facebook/php-graph-sdk/contributors"
|
12 |
}
|
13 |
],
|
14 |
"require": {
|
20 |
"guzzlehttp/guzzle": "~5.0"
|
21 |
},
|
22 |
"suggest": {
|
23 |
+
"paragonie/random_compat": "Provides a better CSPRNG option in PHP 5",
|
24 |
"guzzlehttp/guzzle": "Allows for implementation of the Guzzle HTTP client"
|
25 |
},
|
26 |
"autoload": {
|
vendor/facebook/graph-sdk/phpcs.xml.dist
ADDED
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0"?>
|
2 |
+
<ruleset>
|
3 |
+
<file>src/</file>
|
4 |
+
<file>tests/</file>
|
5 |
+
<arg value="spn" />
|
6 |
+
<rule ref="PSR2" />
|
7 |
+
</ruleset>
|
vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/Authentication/AccessToken.php
RENAMED
File without changes
|
vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/Authentication/AccessTokenMetadata.php
RENAMED
File without changes
|
vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/Authentication/OAuth2Client.php
RENAMED
File without changes
|
vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/Exceptions/FacebookAuthenticationException.php
RENAMED
File without changes
|
vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/Exceptions/FacebookAuthorizationException.php
RENAMED
File without changes
|
vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/Exceptions/FacebookClientException.php
RENAMED
File without changes
|
vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/Exceptions/FacebookOtherException.php
RENAMED
File without changes
|
vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/Exceptions/FacebookResponseException.php
RENAMED
File without changes
|
vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/Exceptions/FacebookResumableUploadException.php
RENAMED
File without changes
|
vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/Exceptions/FacebookSDKException.php
RENAMED
File without changes
|
vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/Exceptions/FacebookServerException.php
RENAMED
File without changes
|
vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/Exceptions/FacebookThrottleException.php
RENAMED
File without changes
|
vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/Facebook.php
RENAMED
@@ -53,12 +53,12 @@ class Facebook
|
|
53 |
/**
|
54 |
* @const string Version number of the Facebook PHP SDK.
|
55 |
*/
|
56 |
-
const VERSION = '5.
|
57 |
|
58 |
/**
|
59 |
* @const string Default Graph API version for requests.
|
60 |
*/
|
61 |
-
const DEFAULT_GRAPH_VERSION = 'v2.
|
62 |
|
63 |
/**
|
64 |
* @const string The name of the environment variable that contains the app ID.
|
53 |
/**
|
54 |
* @const string Version number of the Facebook PHP SDK.
|
55 |
*/
|
56 |
+
const VERSION = '5.4.2';
|
57 |
|
58 |
/**
|
59 |
* @const string Default Graph API version for requests.
|
60 |
*/
|
61 |
+
const DEFAULT_GRAPH_VERSION = 'v2.8';
|
62 |
|
63 |
/**
|
64 |
* @const string The name of the environment variable that contains the app ID.
|
vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/FacebookApp.php
RENAMED
File without changes
|
vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/FacebookBatchRequest.php
RENAMED
@@ -168,8 +168,6 @@ class FacebookBatchRequest extends FacebookRequest implements IteratorAggregate,
|
|
168 |
|
169 |
/**
|
170 |
* Prepares the requests to be sent as a batch request.
|
171 |
-
*
|
172 |
-
* @return string
|
173 |
*/
|
174 |
public function prepareRequestsForBatch()
|
175 |
{
|
168 |
|
169 |
/**
|
170 |
* Prepares the requests to be sent as a batch request.
|
|
|
|
|
171 |
*/
|
172 |
public function prepareRequestsForBatch()
|
173 |
{
|
vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/FacebookBatchResponse.php
RENAMED
File without changes
|
vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/FacebookClient.php
RENAMED
File without changes
|
vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/FacebookRequest.php
RENAMED
File without changes
|
vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/FacebookResponse.php
RENAMED
File without changes
|
vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/FileUpload/FacebookFile.php
RENAMED
File without changes
|
vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/FileUpload/FacebookResumableUploader.php
RENAMED
File without changes
|
vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/FileUpload/FacebookTransferChunk.php
RENAMED
File without changes
|
vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/FileUpload/FacebookVideo.php
RENAMED
File without changes
|
vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/FileUpload/Mimetypes.php
RENAMED
File without changes
|
vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/GraphNodes/Birthday.php
RENAMED
File without changes
|
vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/GraphNodes/Collection.php
RENAMED
File without changes
|
vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/GraphNodes/GraphAchievement.php
RENAMED
@@ -28,7 +28,6 @@ namespace Facebook\GraphNodes;
|
|
28 |
*
|
29 |
* @package Facebook
|
30 |
*/
|
31 |
-
|
32 |
class GraphAchievement extends GraphNode
|
33 |
{
|
34 |
/**
|
28 |
*
|
29 |
* @package Facebook
|
30 |
*/
|
|
|
31 |
class GraphAchievement extends GraphNode
|
32 |
{
|
33 |
/**
|
vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/GraphNodes/GraphAlbum.php
RENAMED
File without changes
|
vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/GraphNodes/GraphApplication.php
RENAMED
File without changes
|
vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/GraphNodes/GraphCoverPhoto.php
RENAMED
File without changes
|
vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/GraphNodes/GraphEdge.php
RENAMED
File without changes
|
vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/GraphNodes/GraphEvent.php
RENAMED
File without changes
|
vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/GraphNodes/GraphGroup.php
RENAMED
File without changes
|
vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/GraphNodes/GraphList.php
RENAMED
File without changes
|
vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/GraphNodes/GraphLocation.php
RENAMED
File without changes
|
vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/GraphNodes/GraphNode.php
RENAMED
File without changes
|
vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/GraphNodes/GraphNodeFactory.php
RENAMED
File without changes
|
vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/GraphNodes/GraphObject.php
RENAMED
File without changes
|
vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/GraphNodes/GraphObjectFactory.php
RENAMED
File without changes
|
vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/GraphNodes/GraphPage.php
RENAMED
@@ -37,6 +37,8 @@ class GraphPage extends GraphNode
|
|
37 |
'best_page' => '\Facebook\GraphNodes\GraphPage',
|
38 |
'global_brand_parent_page' => '\Facebook\GraphNodes\GraphPage',
|
39 |
'location' => '\Facebook\GraphNodes\GraphLocation',
|
|
|
|
|
40 |
];
|
41 |
|
42 |
/**
|
@@ -99,6 +101,26 @@ class GraphPage extends GraphNode
|
|
99 |
return $this->getField('location');
|
100 |
}
|
101 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
102 |
/**
|
103 |
* Returns the page access token for the admin user.
|
104 |
*
|
37 |
'best_page' => '\Facebook\GraphNodes\GraphPage',
|
38 |
'global_brand_parent_page' => '\Facebook\GraphNodes\GraphPage',
|
39 |
'location' => '\Facebook\GraphNodes\GraphLocation',
|
40 |
+
'cover' => '\Facebook\GraphNodes\GraphCoverPhoto',
|
41 |
+
'picture' => '\Facebook\GraphNodes\GraphPicture',
|
42 |
];
|
43 |
|
44 |
/**
|
101 |
return $this->getField('location');
|
102 |
}
|
103 |
|
104 |
+
/**
|
105 |
+
* Returns CoverPhoto of the Page.
|
106 |
+
*
|
107 |
+
* @return GraphCoverPhoto|null
|
108 |
+
*/
|
109 |
+
public function getCover()
|
110 |
+
{
|
111 |
+
return $this->getField('cover');
|
112 |
+
}
|
113 |
+
|
114 |
+
/**
|
115 |
+
* Returns Picture of the Page.
|
116 |
+
*
|
117 |
+
* @return GraphPicture|null
|
118 |
+
*/
|
119 |
+
public function getPicture()
|
120 |
+
{
|
121 |
+
return $this->getField('picture');
|
122 |
+
}
|
123 |
+
|
124 |
/**
|
125 |
* Returns the page access token for the admin user.
|
126 |
*
|
vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/GraphNodes/GraphPicture.php
RENAMED
File without changes
|
vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/GraphNodes/GraphSessionInfo.php
RENAMED
File without changes
|
vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/GraphNodes/GraphUser.php
RENAMED
File without changes
|
vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/Helpers/FacebookCanvasHelper.php
RENAMED
File without changes
|
vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/Helpers/FacebookJavaScriptHelper.php
RENAMED
File without changes
|
vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/Helpers/FacebookPageTabHelper.php
RENAMED
File without changes
|
vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/Helpers/FacebookRedirectLoginHelper.php
RENAMED
File without changes
|
vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/Helpers/FacebookSignedRequestFromInputHelper.php
RENAMED
File without changes
|
vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/Http/GraphRawResponse.php
RENAMED
@@ -129,7 +129,7 @@ class GraphRawResponse
|
|
129 |
if (strpos($line, ': ') === false) {
|
130 |
$this->setHttpResponseCodeFromHeader($line);
|
131 |
} else {
|
132 |
-
list($key, $value) = explode(': ', $line);
|
133 |
$this->headers[$key] = $value;
|
134 |
}
|
135 |
}
|
129 |
if (strpos($line, ': ') === false) {
|
130 |
$this->setHttpResponseCodeFromHeader($line);
|
131 |
} else {
|
132 |
+
list($key, $value) = explode(': ', $line, 2);
|
133 |
$this->headers[$key] = $value;
|
134 |
}
|
135 |
}
|
vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/Http/RequestBodyInterface.php
RENAMED
File without changes
|
vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/Http/RequestBodyMultipart.php
RENAMED
File without changes
|
vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/Http/RequestBodyUrlEncoded.php
RENAMED
File without changes
|
vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/HttpClients/FacebookCurl.php
RENAMED
File without changes
|
vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/HttpClients/FacebookCurlHttpClient.php
RENAMED
File without changes
|
vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/HttpClients/FacebookGuzzleHttpClient.php
RENAMED
File without changes
|
vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/HttpClients/FacebookHttpClientInterface.php
RENAMED
File without changes
|
vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/HttpClients/FacebookStream.php
RENAMED
File without changes
|
vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/HttpClients/FacebookStreamHttpClient.php
RENAMED
File without changes
|
vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/HttpClients/HttpClientsFactory.php
RENAMED
File without changes
|
vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/HttpClients/certs/DigiCertHighAssuranceEVRootCA.pem
RENAMED
File without changes
|
vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/PersistentData/FacebookMemoryPersistentDataHandler.php
RENAMED
File without changes
|
vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/PersistentData/FacebookSessionPersistentDataHandler.php
RENAMED
File without changes
|
vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/PersistentData/PersistentDataFactory.php
RENAMED
File without changes
|
vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/PersistentData/PersistentDataInterface.php
RENAMED
File without changes
|
vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/PseudoRandomString/McryptPseudoRandomStringGenerator.php
RENAMED
File without changes
|
vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/PseudoRandomString/OpenSslPseudoRandomStringGenerator.php
RENAMED
File without changes
|
vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/PseudoRandomString/PseudoRandomStringGeneratorFactory.php
RENAMED
@@ -38,7 +38,7 @@ class PseudoRandomStringGeneratorFactory
|
|
38 |
*
|
39 |
* @param PseudoRandomStringGeneratorInterface|string|null $generator
|
40 |
*
|
41 |
-
* @throws InvalidArgumentException If the pseudo random string generator must be set to "mcrypt", "openssl", or "urandom", or be an instance of Facebook\PseudoRandomString\PseudoRandomStringGeneratorInterface.
|
42 |
*
|
43 |
* @return PseudoRandomStringGeneratorInterface
|
44 |
*/
|
@@ -52,6 +52,9 @@ class PseudoRandomStringGeneratorFactory
|
|
52 |
return $generator;
|
53 |
}
|
54 |
|
|
|
|
|
|
|
55 |
if ('mcrypt' === $generator) {
|
56 |
return new McryptPseudoRandomStringGenerator();
|
57 |
}
|
@@ -62,7 +65,7 @@ class PseudoRandomStringGeneratorFactory
|
|
62 |
return new UrandomPseudoRandomStringGenerator();
|
63 |
}
|
64 |
|
65 |
-
throw new InvalidArgumentException('The pseudo random string generator must be set to "mcrypt", "openssl", or "urandom", or be an instance of Facebook\PseudoRandomString\PseudoRandomStringGeneratorInterface');
|
66 |
}
|
67 |
|
68 |
/**
|
@@ -74,8 +77,13 @@ class PseudoRandomStringGeneratorFactory
|
|
74 |
*/
|
75 |
private static function detectDefaultPseudoRandomStringGenerator()
|
76 |
{
|
|
|
|
|
|
|
|
|
|
|
77 |
// Since openssl_random_pseudo_bytes() can sometimes return non-cryptographically
|
78 |
-
// secure pseudo-random strings (in rare cases), we check for mcrypt_create_iv()
|
79 |
if (function_exists('mcrypt_create_iv')) {
|
80 |
return new McryptPseudoRandomStringGenerator();
|
81 |
}
|
38 |
*
|
39 |
* @param PseudoRandomStringGeneratorInterface|string|null $generator
|
40 |
*
|
41 |
+
* @throws InvalidArgumentException If the pseudo random string generator must be set to "random_bytes", "mcrypt", "openssl", or "urandom", or be an instance of Facebook\PseudoRandomString\PseudoRandomStringGeneratorInterface.
|
42 |
*
|
43 |
* @return PseudoRandomStringGeneratorInterface
|
44 |
*/
|
52 |
return $generator;
|
53 |
}
|
54 |
|
55 |
+
if ('random_bytes' === $generator) {
|
56 |
+
return new RandomBytesPseudoRandomStringGenerator();
|
57 |
+
}
|
58 |
if ('mcrypt' === $generator) {
|
59 |
return new McryptPseudoRandomStringGenerator();
|
60 |
}
|
65 |
return new UrandomPseudoRandomStringGenerator();
|
66 |
}
|
67 |
|
68 |
+
throw new InvalidArgumentException('The pseudo random string generator must be set to "random_bytes", "mcrypt", "openssl", or "urandom", or be an instance of Facebook\PseudoRandomString\PseudoRandomStringGeneratorInterface');
|
69 |
}
|
70 |
|
71 |
/**
|
77 |
*/
|
78 |
private static function detectDefaultPseudoRandomStringGenerator()
|
79 |
{
|
80 |
+
// Check for PHP 7's CSPRNG first to keep mcrypt deprecation messages from appearing in PHP 7.1.
|
81 |
+
if (function_exists('random_bytes')) {
|
82 |
+
return new RandomBytesPseudoRandomStringGenerator();
|
83 |
+
}
|
84 |
+
|
85 |
// Since openssl_random_pseudo_bytes() can sometimes return non-cryptographically
|
86 |
+
// secure pseudo-random strings (in rare cases), we check for mcrypt_create_iv() next.
|
87 |
if (function_exists('mcrypt_create_iv')) {
|
88 |
return new McryptPseudoRandomStringGenerator();
|
89 |
}
|
vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/PseudoRandomString/PseudoRandomStringGeneratorInterface.php
RENAMED
File without changes
|
vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/PseudoRandomString/PseudoRandomStringGeneratorTrait.php
RENAMED
File without changes
|
vendor/facebook/graph-sdk/src/Facebook/PseudoRandomString/RandomBytesPseudoRandomStringGenerator.php
ADDED
@@ -0,0 +1,59 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Copyright 2016 Facebook, Inc.
|
4 |
+
*
|
5 |
+
* You are hereby granted a non-exclusive, worldwide, royalty-free license to
|
6 |
+
* use, copy, modify, and distribute this software in source code or binary
|
7 |
+
* form for use in connection with the web services and APIs provided by
|
8 |
+
* Facebook.
|
9 |
+
*
|
10 |
+
* As with any software that integrates with the Facebook platform, your use
|
11 |
+
* of this software is subject to the Facebook Developer Principles and
|
12 |
+
* Policies [http://developers.facebook.com/policy/]. This copyright notice
|
13 |
+
* shall be included in all copies or substantial portions of the software.
|
14 |
+
*
|
15 |
+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16 |
+
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17 |
+
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
18 |
+
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19 |
+
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
20 |
+
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
21 |
+
* DEALINGS IN THE SOFTWARE.
|
22 |
+
*
|
23 |
+
*/
|
24 |
+
namespace Facebook\PseudoRandomString;
|
25 |
+
|
26 |
+
use Facebook\Exceptions\FacebookSDKException;
|
27 |
+
|
28 |
+
class RandomBytesPseudoRandomStringGenerator implements PseudoRandomStringGeneratorInterface
|
29 |
+
{
|
30 |
+
use PseudoRandomStringGeneratorTrait;
|
31 |
+
|
32 |
+
/**
|
33 |
+
* @const string The error message when generating the string fails.
|
34 |
+
*/
|
35 |
+
const ERROR_MESSAGE = 'Unable to generate a cryptographically secure pseudo-random string from random_bytes(). ';
|
36 |
+
|
37 |
+
/**
|
38 |
+
* @throws FacebookSDKException
|
39 |
+
*/
|
40 |
+
public function __construct()
|
41 |
+
{
|
42 |
+
if (!function_exists('random_bytes')) {
|
43 |
+
throw new FacebookSDKException(
|
44 |
+
static::ERROR_MESSAGE .
|
45 |
+
'The function random_bytes() does not exist.'
|
46 |
+
);
|
47 |
+
}
|
48 |
+
}
|
49 |
+
|
50 |
+
/**
|
51 |
+
* @inheritdoc
|
52 |
+
*/
|
53 |
+
public function getPseudoRandomString($length)
|
54 |
+
{
|
55 |
+
$this->validateLength($length);
|
56 |
+
|
57 |
+
return $this->binToHex(random_bytes($length), $length);
|
58 |
+
}
|
59 |
+
}
|
vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/PseudoRandomString/UrandomPseudoRandomStringGenerator.php
RENAMED
File without changes
|
vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/SignedRequest.php
RENAMED
File without changes
|
vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/Url/FacebookUrlDetectionHandler.php
RENAMED
File without changes
|
vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/Url/FacebookUrlManipulator.php
RENAMED
File without changes
|
vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/Url/UrlDetectionInterface.php
RENAMED
File without changes
|
vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/autoload.php
RENAMED
File without changes
|
vendor/facebook/{php-sdk-v4 → graph-sdk}/src/Facebook/polyfills.php
RENAMED
File without changes
|
vendor/symfony/css-selector/Parser/Reader.php
CHANGED
@@ -118,8 +118,6 @@ class Reader
|
|
118 |
$this->position += $length;
|
119 |
}
|
120 |
|
121 |
-
/**
|
122 |
-
*/
|
123 |
public function moveToEnd()
|
124 |
{
|
125 |
$this->position = $this->length;
|
118 |
$this->position += $length;
|
119 |
}
|
120 |
|
|
|
|
|
121 |
public function moveToEnd()
|
122 |
{
|
123 |
$this->position = $this->length;
|
wizard/class-instant-articles-option-publishing.php
CHANGED
@@ -43,16 +43,16 @@ class Instant_Articles_Option_Publishing extends Instant_Articles_Option {
|
|
43 |
'label' => '',
|
44 |
'render' => 'textarea',
|
45 |
'placeholder' => '{ "rules": [{ "class": "BoldRule", "selector": "span.bold" }, ... ] }',
|
46 |
-
'description' => 'Read more about <a href="https://
|
47 |
'default' => '',
|
48 |
),
|
49 |
|
50 |
-
'
|
51 |
'label' => 'Transformation warnings',
|
52 |
-
'description' => '
|
53 |
'render' => 'checkbox',
|
54 |
'default' => false,
|
55 |
-
'checkbox_label' => '
|
56 |
),
|
57 |
);
|
58 |
|
43 |
'label' => '',
|
44 |
'render' => 'textarea',
|
45 |
'placeholder' => '{ "rules": [{ "class": "BoldRule", "selector": "span.bold" }, ... ] }',
|
46 |
+
'description' => 'Read more about <a href="https://developers.facebook.com/docs/instant-articles/sdk/transformer-rules" target="_blank">defining your own custom rules</a> to extend/override the <a href="https://github.com/Automattic/facebook-instant-articles-wp/blob/master/rules-configuration.json" target="_blank">built-in ruleset</a>. If you\'ve defined a common rule which you think this plugin should include by default, <a href="https://github.com/Automattic/facebook-instant-articles-wp/issues/new" target="_blank">tell us about it</a>!',
|
47 |
'default' => '',
|
48 |
),
|
49 |
|
50 |
+
'publish_with_warnings' => array(
|
51 |
'label' => 'Transformation warnings',
|
52 |
+
'description' => 'With this option disabled, articles which contain warnings in their transformation process won\'t be available as Instant Articles by default — this can be overridden on individual articles. Note: It is recommended that all transformation warnings be fixed.',
|
53 |
'render' => 'checkbox',
|
54 |
'default' => false,
|
55 |
+
'checkbox_label' => 'Publish articles containing warnings',
|
56 |
),
|
57 |
);
|
58 |
|
wizard/class-instant-articles-wizard.php
CHANGED
@@ -173,14 +173,14 @@ class Instant_Articles_Wizard {
|
|
173 |
$fb_app_settings = Instant_Articles_Option_FB_App::get_option_decoded();
|
174 |
$fb_page_settings = Instant_Articles_Option_FB_Page::get_option_decoded();
|
175 |
|
176 |
-
$client = Client::create(
|
177 |
-
$fb_app_settings[ 'app_id' ],
|
178 |
-
$fb_app_settings[ 'app_secret' ],
|
179 |
-
$fb_page_settings[ 'page_access_token' ],
|
180 |
-
$fb_page_settings[ 'page_id' ]
|
181 |
-
);
|
182 |
-
|
183 |
try {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
184 |
// Bulk upload articles for review
|
185 |
$articles_for_review = Instant_Articles_Wizard_Review_Submission::getArticlesForReview();
|
186 |
foreach ( $articles_for_review as $post ) {
|
@@ -236,72 +236,101 @@ class Instant_Articles_Wizard {
|
|
236 |
wp_die( esc_html( 'You do not have sufficient permissions to access this page.' ) );
|
237 |
}
|
238 |
|
239 |
-
|
240 |
-
|
241 |
-
|
242 |
-
|
243 |
-
|
244 |
-
$settings_url = self::get_url();
|
245 |
-
|
246 |
-
// Handle redirection from Login flow
|
247 |
-
// ----------------------------------
|
248 |
-
// Only during STATE_APP_SETUP
|
249 |
-
if ( $current_state === Instant_Articles_Wizard_State::STATE_APP_SETUP ) {
|
250 |
-
$user_access_token = $fb_helper->get_fb_access_token();
|
251 |
-
$permissions = $fb_helper->get_fb_permissions( $user_access_token );
|
252 |
-
|
253 |
-
// Trigger transition if all needed permissions are granted
|
254 |
-
if ( $user_access_token && isset( $permissions[ 'pages_manage_instant_articles' ] ) && isset( $permissions[ 'pages_show_list' ] ) ) {
|
255 |
-
Instant_Articles_Wizard_State::do_transition( Instant_Articles_Wizard_State::STATE_PAGE_SELECTION, array(
|
256 |
-
'app_id' => $fb_app_settings[ 'app_id' ],
|
257 |
-
'app_secret' => $fb_app_settings[ 'app_secret' ],
|
258 |
-
'user_access_token' => $user_access_token->getValue()
|
259 |
-
) );
|
260 |
-
// Override step
|
261 |
-
$current_state = Instant_Articles_Wizard_State::get_current_state();
|
262 |
-
}
|
263 |
-
}
|
264 |
-
// ----------------------------------
|
265 |
-
|
266 |
-
// Handle redirection from Login flow
|
267 |
-
// ----------------------------------
|
268 |
-
// Only during STATE_PAGE_SELECTION
|
269 |
-
if ( $current_state === Instant_Articles_Wizard_State::STATE_PAGE_SELECTION ) {
|
270 |
$fb_helper = new Instant_Articles_Wizard_FB_Helper();
|
271 |
-
|
272 |
-
|
273 |
-
|
274 |
-
|
275 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
276 |
}
|
277 |
-
|
278 |
-
|
279 |
-
|
280 |
-
|
281 |
-
|
282 |
-
|
283 |
-
|
284 |
-
|
285 |
-
|
286 |
-
|
287 |
-
|
|
|
|
|
288 |
}
|
289 |
-
}
|
290 |
-
// ----------------------------------
|
291 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
292 |
|
293 |
-
|
294 |
-
|
295 |
-
|
296 |
-
|
297 |
-
|
298 |
-
|
299 |
-
|
|
|
|
|
|
|
|
|
300 |
}
|
301 |
}
|
302 |
-
// ----------------------------------
|
303 |
-
|
304 |
-
include( dirname( __FILE__ ) . '/templates/wizard-template.php' );
|
305 |
}
|
306 |
|
307 |
}
|
173 |
$fb_app_settings = Instant_Articles_Option_FB_App::get_option_decoded();
|
174 |
$fb_page_settings = Instant_Articles_Option_FB_Page::get_option_decoded();
|
175 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
176 |
try {
|
177 |
+
$client = Client::create(
|
178 |
+
$fb_app_settings[ 'app_id' ],
|
179 |
+
$fb_app_settings[ 'app_secret' ],
|
180 |
+
$fb_page_settings[ 'page_access_token' ],
|
181 |
+
$fb_page_settings[ 'page_id' ]
|
182 |
+
);
|
183 |
+
|
184 |
// Bulk upload articles for review
|
185 |
$articles_for_review = Instant_Articles_Wizard_Review_Submission::getArticlesForReview();
|
186 |
foreach ( $articles_for_review as $post ) {
|
236 |
wp_die( esc_html( 'You do not have sufficient permissions to access this page.' ) );
|
237 |
}
|
238 |
|
239 |
+
try {
|
240 |
+
// Read options (they are used on the templates)
|
241 |
+
$current_state = Instant_Articles_Wizard_State::get_current_state();
|
242 |
+
$fb_page_settings = Instant_Articles_Option_FB_Page::get_option_decoded();
|
243 |
+
$fb_app_settings = Instant_Articles_Option_FB_App::get_option_decoded();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
244 |
$fb_helper = new Instant_Articles_Wizard_FB_Helper();
|
245 |
+
$settings_url = self::get_url();
|
246 |
+
|
247 |
+
// Handle redirection from Login flow
|
248 |
+
// ----------------------------------
|
249 |
+
// Only during STATE_APP_SETUP
|
250 |
+
if ( $current_state === Instant_Articles_Wizard_State::STATE_APP_SETUP ) {
|
251 |
+
$user_access_token = $fb_helper->get_fb_access_token();
|
252 |
+
$permissions = $fb_helper->get_fb_permissions( $user_access_token );
|
253 |
+
|
254 |
+
// Trigger transition if all needed permissions are granted
|
255 |
+
if ( $user_access_token && isset( $permissions[ 'pages_manage_instant_articles' ] ) && isset( $permissions[ 'pages_show_list' ] ) ) {
|
256 |
+
Instant_Articles_Wizard_State::do_transition( Instant_Articles_Wizard_State::STATE_PAGE_SELECTION, array(
|
257 |
+
'app_id' => $fb_app_settings[ 'app_id' ],
|
258 |
+
'app_secret' => $fb_app_settings[ 'app_secret' ],
|
259 |
+
'user_access_token' => $user_access_token->getValue()
|
260 |
+
) );
|
261 |
+
// Override step
|
262 |
+
$current_state = Instant_Articles_Wizard_State::get_current_state();
|
263 |
+
}
|
264 |
}
|
265 |
+
// ----------------------------------
|
266 |
+
|
267 |
+
// Handle redirection from Login flow
|
268 |
+
// ----------------------------------
|
269 |
+
// Only during STATE_PAGE_SELECTION
|
270 |
+
if ( $current_state === Instant_Articles_Wizard_State::STATE_PAGE_SELECTION ) {
|
271 |
+
$fb_helper = new Instant_Articles_Wizard_FB_Helper();
|
272 |
+
try {
|
273 |
+
$pages = $fb_helper->get_pages();
|
274 |
+
} catch ( Exception $e ) {
|
275 |
+
// If we couldn't fetch the pages, revert to the App setup
|
276 |
+
Instant_Articles_Wizard_State::do_transition( Instant_Articles_Wizard_State::STATE_APP_SETUP );
|
277 |
+
}
|
278 |
}
|
|
|
|
|
279 |
|
280 |
+
// Grabs the current configured style
|
281 |
+
// ----------------------------------
|
282 |
+
// Only during STATE_STYLE_SELECTION
|
283 |
+
if ( $current_state === Instant_Articles_Wizard_State::STATE_STYLE_SELECTION ) {
|
284 |
+
$settings_style = Instant_Articles_Option_Styles::get_option_decoded();
|
285 |
+
if ( isset( $settings_style['article_style'] ) && ! empty( $settings_style['article_style'] ) ) {
|
286 |
+
$article_style = $settings_style['article_style'];
|
287 |
+
} else {
|
288 |
+
$article_style = 'default';
|
289 |
+
}
|
290 |
+
}
|
291 |
+
// ----------------------------------
|
292 |
+
|
293 |
+
|
294 |
+
// Check submission status
|
295 |
+
// ----------------------------------
|
296 |
+
// Only during STATE_REVIEW_SUBMISSION
|
297 |
+
if ( $current_state === Instant_Articles_Wizard_State::STATE_REVIEW_SUBMISSION ) {
|
298 |
+
$review_submission_status = Instant_Articles_Wizard_Review_Submission::getReviewSubmissionStatus();
|
299 |
+
|
300 |
+
if ( $review_submission_status === Instant_Articles_Wizard_Review_Submission::STATUS_NOT_SUBMITTED ) {
|
301 |
+
$articles_for_review = Instant_Articles_Wizard_Review_Submission::getArticlesForReview();
|
302 |
+
|
303 |
+
// Map to Instant_Articles_Post instances
|
304 |
+
$instant_articles_for_review = array_map( function ( $article ) {
|
305 |
+
$instant_articles_post = new Instant_Articles_Post( $article );
|
306 |
+
// Call transformation to load warnings
|
307 |
+
$instant_articles_post->to_instant_article();
|
308 |
+
return $instant_articles_post;
|
309 |
+
}, $articles_for_review );
|
310 |
+
|
311 |
+
// Filter articles with warnings and not forced
|
312 |
+
$instant_articles_with_warnings = array_filter( $instant_articles_for_review, function ( $article ) {
|
313 |
+
$has_warnings = ( count( $article->transformer->getWarnings() ) > 0 );
|
314 |
+
$force_submit = get_post_meta( $article->get_the_id(), Instant_Articles_Publisher::FORCE_SUBMIT_KEY, true );
|
315 |
+
return $has_warnings && ! $force_submit;
|
316 |
+
} );
|
317 |
+
}
|
318 |
+
}
|
319 |
+
// ----------------------------------
|
320 |
|
321 |
+
include( dirname( __FILE__ ) . '/templates/wizard-template.php' );
|
322 |
+
} catch (Exception $e) {
|
323 |
+
if ( Instant_Articles_Wizard_State::get_current_state() !== Instant_Articles_Wizard_State::STATE_APP_SETUP ) {
|
324 |
+
// Restarts the wizard
|
325 |
+
Instant_Articles_Wizard_State::do_transition( Instant_Articles_Wizard_State::STATE_APP_SETUP );
|
326 |
+
echo '<div class="error settings-error notice is-dismissible"><p><strong>'.
|
327 |
+
esc_html(
|
328 |
+
'Error processing your request. Check server log for more details. Setup and login again to renew Application credentials. Error message: ' .
|
329 |
+
$e->getMessage()
|
330 |
+
) . '</strong></p></div>';
|
331 |
+
Instant_Articles_Wizard::render( $ajax, true );
|
332 |
}
|
333 |
}
|
|
|
|
|
|
|
334 |
}
|
335 |
|
336 |
}
|
wizard/templates/app-setup-template.php
CHANGED
@@ -12,7 +12,7 @@
|
|
12 |
<!-- Step 1: grab your App ID and App Secret -->
|
13 |
<div class="instant-articles-card">
|
14 |
<div class="instant-articles-card-title">
|
15 |
-
<h3>Log In
|
16 |
<div class="instant-articles-card-title-right">
|
17 |
<span class="instant-articles-card-title-step">Step 1 of 2</span>
|
18 |
</div>
|
@@ -23,11 +23,11 @@
|
|
23 |
|
24 |
<p>You'll need to log in with your Facebook Developers App ID to connect your plugin to the Facebook Page you'll use to publish your Instant Articles.</p>
|
25 |
|
26 |
-
<p><strong>Already have an App ID and Secret?</strong> Just enter them to the right.</p>
|
27 |
|
28 |
<p><strong>Need to create one?</strong></p>
|
29 |
|
30 |
-
<p>Click on the 'Get App ID' button below to begin the process of getting your App ID and Secret.
|
31 |
|
32 |
<ol>
|
33 |
<li>Click on the green '+ Add a New App' button in the upper right corner of the page.</li>
|
@@ -37,10 +37,10 @@
|
|
37 |
<li>Click '+Add Platform' at the bottom of the page and select 'Website.'</li>
|
38 |
<li>Under both the 'App Domains' in the main section and 'Site URL' in the 'Website' section, enter this domain: <b><?php echo esc_url( self::get_admin_url() ); ?></b></li>
|
39 |
<li>Click 'Save Changes' in the lower right corner.</li>
|
40 |
-
<li>Select 'Show' to see your App Secret. Copy your App ID and Secret and enter them to the right.</li>
|
41 |
</ol>
|
42 |
|
43 |
-
<p
|
44 |
|
45 |
<a class="instant-articles-button" href="https://developers.facebook.com/apps" target="_blank">
|
46 |
Get App ID
|
12 |
<!-- Step 1: grab your App ID and App Secret -->
|
13 |
<div class="instant-articles-card">
|
14 |
<div class="instant-articles-card-title">
|
15 |
+
<h3>Log In With Your Developers App and Facebook Account</h3>
|
16 |
<div class="instant-articles-card-title-right">
|
17 |
<span class="instant-articles-card-title-step">Step 1 of 2</span>
|
18 |
</div>
|
23 |
|
24 |
<p>You'll need to log in with your Facebook Developers App ID to connect your plugin to the Facebook Page you'll use to publish your Instant Articles.</p>
|
25 |
|
26 |
+
<p><strong>Already have an App ID and App Secret?</strong> Just enter them to the right.</p>
|
27 |
|
28 |
<p><strong>Need to create one?</strong></p>
|
29 |
|
30 |
+
<p>Click on the 'Get App ID' button below to begin the process of getting your App ID and App Secret. This will open the app set up page in a new tab. Then, follow these steps:</p>
|
31 |
|
32 |
<ol>
|
33 |
<li>Click on the green '+ Add a New App' button in the upper right corner of the page.</li>
|
37 |
<li>Click '+Add Platform' at the bottom of the page and select 'Website.'</li>
|
38 |
<li>Under both the 'App Domains' in the main section and 'Site URL' in the 'Website' section, enter this domain: <b><?php echo esc_url( self::get_admin_url() ); ?></b></li>
|
39 |
<li>Click 'Save Changes' in the lower right corner.</li>
|
40 |
+
<li>Select 'Show' to see your App Secret. Copy your App ID and App Secret and enter them to the right.</li>
|
41 |
</ol>
|
42 |
|
43 |
+
<p>For more detailed instructions on setting up your App ID, <a href="https://developers.facebook.com/docs/instant-articles/wordpress-quickstart#appid" target="_blank">check out the docs</a>.</p>
|
44 |
|
45 |
<a class="instant-articles-button" href="https://developers.facebook.com/apps" target="_blank">
|
46 |
Get App ID
|
wizard/templates/overview-template.php
CHANGED
@@ -15,7 +15,7 @@
|
|
15 |
<div class="instant-articles-card-step">
|
16 |
<img src="<?php echo esc_url( plugin_dir_url( __FILE__ ) ); ?>../../assets/key@2x.png">
|
17 |
<h4>Set Up and Log In</h4>
|
18 |
-
<p>If you don't have one already, set up your Facebook Developers App.
|
19 |
</div>
|
20 |
<div class="instant-articles-card-step">
|
21 |
<img src="<?php echo esc_url( plugin_dir_url( __FILE__ ) ); ?>../../assets/connect@2x.png">
|
15 |
<div class="instant-articles-card-step">
|
16 |
<img src="<?php echo esc_url( plugin_dir_url( __FILE__ ) ); ?>../../assets/key@2x.png">
|
17 |
<h4>Set Up and Log In</h4>
|
18 |
+
<p>If you don't have one already, set up your Facebook Developers App. This will allow you to log in and connect your plugin.</p>
|
19 |
</div>
|
20 |
<div class="instant-articles-card-step">
|
21 |
<img src="<?php echo esc_url( plugin_dir_url( __FILE__ ) ); ?>../../assets/connect@2x.png">
|
wizard/templates/page-selection-template.php
CHANGED
@@ -43,12 +43,10 @@
|
|
43 |
<img class="instant-articles-page-img" src="<?php echo esc_attr( $page[ 'page_picture' ] ) ?>"/>
|
44 |
<label>
|
45 |
<?php echo esc_html( $page[ 'page_name' ] ) ?>
|
46 |
-
<?php if ( $page[ 'supports_instant_articles' ] ) : ?>
|
47 |
-
<span class="page-enabled">✔ Enabled</span>
|
48 |
-
<?php else : ?>
|
49 |
<span class="page-not-enabled">
|
50 |
-
|
51 |
-
|
52 |
</span>
|
53 |
<?php endif; ?>
|
54 |
</label>
|
43 |
<img class="instant-articles-page-img" src="<?php echo esc_attr( $page[ 'page_picture' ] ) ?>"/>
|
44 |
<label>
|
45 |
<?php echo esc_html( $page[ 'page_name' ] ) ?>
|
46 |
+
<?php if ( ! $page[ 'supports_instant_articles' ] ) : ?>
|
|
|
|
|
47 |
<span class="page-not-enabled">
|
48 |
+
First, <a href="https://www.facebook.com/instant_articles/signup?redirect_uri=<?php echo rawurlencode( $settings_url ) ?>&page_id=<?php echo rawurlencode( $page[ 'page_id' ] ) ?>">sign up</a>
|
49 |
+
this Page to access the Instant Articles tools through Facebook. Then select it here.
|
50 |
</span>
|
51 |
<?php endif; ?>
|
52 |
</label>
|
wizard/templates/review-submission-template.php
CHANGED
@@ -46,28 +46,62 @@ switch ( $review_submission_status ) :
|
|
46 |
|
47 |
case Instant_Articles_Wizard_Review_Submission::STATUS_NOT_SUBMITTED : ?>
|
48 |
|
49 |
-
<?php if ( count($articles_for_review) >= Instant_Articles_Wizard_Review_Submission::MIN_ARTICLES ) : ?>
|
50 |
-
|
51 |
-
<div class="instant-articles-card
|
52 |
-
<
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
53 |
</div>
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
<
|
67 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
68 |
</div>
|
69 |
</div>
|
70 |
-
|
71 |
<?php else: ?>
|
72 |
<div class="instant-articles-card">
|
73 |
<div class="instant-articles-card-title">
|
46 |
|
47 |
case Instant_Articles_Wizard_Review_Submission::STATUS_NOT_SUBMITTED : ?>
|
48 |
|
49 |
+
<?php if ( count( $articles_for_review ) >= Instant_Articles_Wizard_Review_Submission::MIN_ARTICLES ) : ?>
|
50 |
+
<?php if ( count( $instant_articles_with_warnings ) > 0 ) : ?>
|
51 |
+
<div class="instant-articles-card">
|
52 |
+
<div class="instant-articles-card-title">
|
53 |
+
<h3>Submit for Review</h3>
|
54 |
+
</div>
|
55 |
+
<div class="instant-articles-card-content">
|
56 |
+
<div class="instant-articles-card-content-box instant-articles-card-content-full">
|
57 |
+
<p>
|
58 |
+
In order to begin publishing Instant Articles, our team needs to review a sample
|
59 |
+
batch of <?php echo esc_html( Instant_Articles_Wizard_Review_Submission::MIN_ARTICLES ); ?> of your Instant Articles.
|
60 |
+
</p>
|
61 |
+
<p>
|
62 |
+
The plugin tried to automatically transform your last <?php echo esc_html( Instant_Articles_Wizard_Review_Submission::MIN_ARTICLES ); ?>
|
63 |
+
posts into Instant Articles as a sample to submit for review, but some of these posts contained elements the plugin didn't know how to convert.
|
64 |
+
</p>
|
65 |
+
<p>
|
66 |
+
Before submitting for review, you'll need to handle the warnings on these articles by looking at the "Instant Articles" box on the post edit screen:
|
67 |
+
</p>
|
68 |
+
<ul>
|
69 |
+
<?php foreach ($instant_articles_with_warnings as $article): ?>
|
70 |
+
<li><?php edit_post_link( $article->get_the_title(), '- ', '', $article->get_the_id() ); ?> </li>
|
71 |
+
<?php endforeach; ?>
|
72 |
+
</ul>
|
73 |
+
<p>
|
74 |
+
Once you've handled these warnings, please return to this page and click the 'Submit for Review" button below.
|
75 |
+
</p>
|
76 |
+
<button id="instant-articles-wizard-submit-for-review" class="instant-articles-button-disabled instant-articles-button instant-articles-button-highlight">
|
77 |
+
<label>Submit for Review</label>
|
78 |
+
</button>
|
79 |
+
</div>
|
80 |
+
</div>
|
81 |
</div>
|
82 |
+
<?php else: ?>
|
83 |
+
<div class="instant-articles-card">
|
84 |
+
<div class="instant-articles-card-title">
|
85 |
+
<h3>Submit for Review</h3>
|
86 |
+
</div>
|
87 |
+
<div class="instant-articles-card-content">
|
88 |
+
<div class="instant-articles-card-content-box instant-articles-card-content-full">
|
89 |
+
<p>
|
90 |
+
The Instant Articles team will review a sample batch of your Instant Articles before you can begin to publish.
|
91 |
+
Click the 'Submit for Review" button below to send the last <?php echo esc_html( Instant_Articles_Wizard_Review_Submission::MIN_ARTICLES ); ?>
|
92 |
+
articles you've published to the team for review.
|
93 |
+
</p>
|
94 |
+
<p>
|
95 |
+
It will take us 2 business days to complete the review.
|
96 |
+
Once we've had a chance to take a look, we'll let you know if you're ready to start publishing or if you need to make some updates.
|
97 |
+
</p>
|
98 |
+
<button id="instant-articles-wizard-submit-for-review" class="instant-articles-button instant-articles-button-highlight">
|
99 |
+
<label>Submit for Review</label>
|
100 |
+
</button>
|
101 |
+
</div>
|
102 |
</div>
|
103 |
</div>
|
104 |
+
<?php endif; ?>
|
105 |
<?php else: ?>
|
106 |
<div class="instant-articles-card">
|
107 |
<div class="instant-articles-card-title">
|
wizard/templates/style-selection-template.php
CHANGED
@@ -40,12 +40,12 @@
|
|
40 |
<div class="instant-articles-card-content-box instant-articles-card-content-full">
|
41 |
<p>
|
42 |
Customize the look and feel of your articles with one or more unique styles.
|
43 |
-
Try to
|
44 |
-
and
|
45 |
<a href="https://developers.facebook.com/docs/instant-articles/guides/design" target="_blank">Learn more in our design guidelines</a>.
|
46 |
</p>
|
47 |
<p>
|
48 |
-
Want to preview your
|
49 |
<a href="https://itunes.apple.com/us/app/facebook-pages-manager/id514643583?mt=8" target="_blank">iPhone</a>
|
50 |
or
|
51 |
<a href="https://play.google.com/store/apps/details?id=com.facebook.pages.app" target="_blank">Android</a>
|
40 |
<div class="instant-articles-card-content-box instant-articles-card-content-full">
|
41 |
<p>
|
42 |
Customize the look and feel of your articles with one or more unique styles.
|
43 |
+
Try to have design consistency between your Instant Articles and mobile
|
44 |
+
web articles and also ensure you upload your publication or blog's logo.
|
45 |
<a href="https://developers.facebook.com/docs/instant-articles/guides/design" target="_blank">Learn more in our design guidelines</a>.
|
46 |
</p>
|
47 |
<p>
|
48 |
+
Want to preview how your articles will look? Download Facebook Pages Manager on your
|
49 |
<a href="https://itunes.apple.com/us/app/facebook-pages-manager/id514643583?mt=8" target="_blank">iPhone</a>
|
50 |
or
|
51 |
<a href="https://play.google.com/store/apps/details?id=com.facebook.pages.app" target="_blank">Android</a>
|
wizard/templates/wizard-template.php
CHANGED
@@ -98,15 +98,18 @@
|
|
98 |
|
99 |
<?php if ( ! $ajax ) : ?>
|
100 |
</div>
|
|
|
101 |
<?php if ( count( get_settings_errors() ) !== 0 ) : ?>
|
102 |
-
<
|
103 |
-
<div class="instant-articles-wizard-advanced-settings-box" style="display: block;">
|
104 |
-
<?php include( dirname( __FILE__ ) . '/advanced-template.php' ); ?>
|
105 |
-
</div>
|
106 |
<?php else: ?>
|
107 |
-
<
|
108 |
-
<div class="instant-articles-wizard-advanced-settings-box" style="display: none;">
|
109 |
-
<?php include( dirname( __FILE__ ) . '/advanced-template.php' ); ?>
|
110 |
-
</div>
|
111 |
<?php endif; ?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
112 |
<?php endif; ?>
|
98 |
|
99 |
<?php if ( ! $ajax ) : ?>
|
100 |
</div>
|
101 |
+
|
102 |
<?php if ( count( get_settings_errors() ) !== 0 ) : ?>
|
103 |
+
<p class="instant-articles-advanced-settings" data-state="opened">
|
|
|
|
|
|
|
104 |
<?php else: ?>
|
105 |
+
<p class="instant-articles-advanced-settings" data-state="closed">
|
|
|
|
|
|
|
106 |
<?php endif; ?>
|
107 |
+
|
108 |
+
<span class="instant-articles-wizard-toggle instant-articles-wizard-toggle-closed">Already set up? <a href="#">Open Advanced Settings now</a></span>
|
109 |
+
<span class="instant-articles-wizard-toggle instant-articles-wizard-toggle-opened"><a href="#">Close Advanced Settings</a></span>
|
110 |
+
</p>
|
111 |
+
|
112 |
+
<div class="instant-articles-wizard-advanced-settings-box">
|
113 |
+
<?php include( dirname( __FILE__ ) . '/advanced-template.php' ); ?>
|
114 |
+
</div>
|
115 |
<?php endif; ?>
|
wpcom-helper.php
ADDED
@@ -0,0 +1,50 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
// Wrap the wpcom tracking pixel to comply with the FBIA spec
|
4 |
+
// https://developers.facebook.com/docs/instant-articles/reference/analytics
|
5 |
+
function wpcom_fbia_stats_pixel() {
|
6 |
+
global $post;
|
7 |
+
|
8 |
+
if ( ! defined( 'INSTANT_ARTICLES_SLUG' ) ) {
|
9 |
+
return;
|
10 |
+
}
|
11 |
+
|
12 |
+
if ( ! is_feed( INSTANT_ARTICLES_SLUG ) ) {
|
13 |
+
return;
|
14 |
+
}
|
15 |
+
|
16 |
+
// Stop wpcom adding the tracking pixel
|
17 |
+
remove_filter( 'the_content', 'add_bug_to_feed', 100 );
|
18 |
+
|
19 |
+
add_filter( 'the_content', '_wpcom_fbia_stats_pixel', 100 );
|
20 |
+
|
21 |
+
}
|
22 |
+
add_action( 'template_redirect', 'wpcom_fbia_stats_pixel' );
|
23 |
+
|
24 |
+
function _wpcom_fbia_stats_pixel( $content ) {
|
25 |
+
global $post, $current_blog;
|
26 |
+
|
27 |
+
if ( ! is_feed() ) {
|
28 |
+
return $content;
|
29 |
+
}
|
30 |
+
|
31 |
+
$hostname = isset( $_SERVER['HTTP_HOST'] ) ? sanitize_text_field( wp_unslash( $_SERVER['HTTP_HOST'] ) ) : ''; // input var okay
|
32 |
+
|
33 |
+
$url = 'https://pixel.wp.com/b.gif?host=' . $hostname . '&blog=' . $current_blog->blog_id . '&post=' . $post->ID . '&subd=' . str_replace( '.wordpress.com', '', $current_blog->domain ) . '&ref=&feed=1';
|
34 |
+
|
35 |
+
$fbia_pixel = '
|
36 |
+
<figure class="op-tracker">
|
37 |
+
<iframe>
|
38 |
+
<script>
|
39 |
+
var x = new Image(); x.src = "' . esc_js( $url ) . '&rand=" +Math.random();
|
40 |
+
</script>
|
41 |
+
</iframe>
|
42 |
+
</figure>';
|
43 |
+
|
44 |
+
return $content . $fbia_pixel;
|
45 |
+
|
46 |
+
}
|
47 |
+
|
48 |
+
// make sure these function run in wp.com environment where `plugins_loaded` is already fired when loading the plugin
|
49 |
+
add_action( 'after_setup_theme', 'instant_articles_load_textdomain' );
|
50 |
+
add_action( 'after_setup_theme', 'instant_articles_load_compat' );
|