summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/jetpack/modules/comments/comments.php')
-rw-r--r--plugins/jetpack/modules/comments/comments.php360
1 files changed, 192 insertions, 168 deletions
diff --git a/plugins/jetpack/modules/comments/comments.php b/plugins/jetpack/modules/comments/comments.php
index 7465159b..9160a164 100644
--- a/plugins/jetpack/modules/comments/comments.php
+++ b/plugins/jetpack/modules/comments/comments.php
@@ -7,7 +7,7 @@ require dirname( __FILE__ ) . '/base.php';
*
* @package JetpackComments
* @version 1.4
- * @since 1.4
+ * @since 1.4
*/
class Jetpack_Comments extends Highlander_Comments_Base {
@@ -30,14 +30,14 @@ class Jetpack_Comments extends Highlander_Comments_Base {
* @var string
* @see ::set_default_color_theme_based_on_theme_settings()
*/
- public $default_color_scheme = 'light';
+ public $default_color_scheme = 'light';
/** Methods ***************************************************************/
public static function init() {
static $instance = false;
- if ( !$instance ) {
+ if ( ! $instance ) {
$instance = new Jetpack_Comments;
}
@@ -59,7 +59,7 @@ class Jetpack_Comments extends Highlander_Comments_Base {
*
* @module comments
*
- * @since 1.4.0
+ * @since 1.4.0
*
* @param array $jetpack_comments_loaded First element in array of type Jetpack_Comments
**/
@@ -69,7 +69,7 @@ class Jetpack_Comments extends Highlander_Comments_Base {
public function set_default_color_theme_based_on_theme_settings() {
if ( function_exists( 'twentyeleven_get_theme_options' ) ) {
- $theme_options = twentyeleven_get_theme_options();
+ $theme_options = twentyeleven_get_theme_options();
$theme_color_scheme = isset( $theme_options['color_scheme'] ) ? $theme_options['color_scheme'] : 'transparent';
} else {
$theme_color_scheme = get_theme_mod( 'color_scheme', 'transparent' );
@@ -112,11 +112,11 @@ class Jetpack_Comments extends Highlander_Comments_Base {
// Selfishly remove everything from the existing comment form
remove_all_actions( 'comment_form_before' );
- remove_all_actions( 'comment_form_after' );
+ remove_all_actions( 'comment_form_after' );
// Selfishly add only our actions back to the comment form
add_action( 'comment_form_before', array( $this, 'comment_form_before' ) );
- add_action( 'comment_form_after', array( $this, 'comment_form_after' ) );
+ add_action( 'comment_form_after', array( $this, 'comment_form_after' ) );
// Before a comment is posted
add_action( 'pre_comment_on_post', array( $this, 'pre_comment_on_post' ), 1 );
@@ -133,17 +133,19 @@ class Jetpack_Comments extends Highlander_Comments_Base {
parent::setup_filters();
add_filter( 'comment_post_redirect', array( $this, 'capture_comment_post_redirect_to_reload_parent_frame' ), 100 );
- add_filter( 'get_avatar', array( $this, 'get_avatar' ), 10, 4 );
+ add_filter( 'get_avatar', array( $this, 'get_avatar' ), 10, 4 );
}
/**
* Get the comment avatar from Gravatar, Twitter, or Facebook
*
* @since JetpackComments (1.4)
- * @param string $avatar Current avatar URL
+ *
+ * @param string $avatar Current avatar URL
* @param string $comment Comment for the avatar
- * @param int $size Size of the avatar
+ * @param int $size Size of the avatar
* @param string $default Not used
+ *
* @return string New avatar
*/
public function get_avatar( $avatar, $comment, $size, $default ) {
@@ -153,10 +155,10 @@ class Jetpack_Comments extends Highlander_Comments_Base {
}
// Detect whether it's a Facebook or Twitter avatar
- $foreign_avatar = get_comment_meta( $comment->comment_ID, 'hc_avatar', true );
+ $foreign_avatar = get_comment_meta( $comment->comment_ID, 'hc_avatar', true );
$foreign_avatar_hostname = parse_url( $foreign_avatar, PHP_URL_HOST );
if ( ! $foreign_avatar_hostname ||
- ! preg_match( '/\.?(graph\.facebook\.com|twimg\.com)$/', $foreign_avatar_hostname ) ) {
+ ! preg_match( '/\.?(graph\.facebook\.com|twimg\.com)$/', $foreign_avatar_hostname ) ) {
return $avatar;
}
@@ -177,7 +179,7 @@ class Jetpack_Comments extends Highlander_Comments_Base {
*
* @module comments
*
- * @since 3.8.1
+ * @since 3.8.1
*
* @param boolean $return Should comments be enabled?
*/
@@ -207,17 +209,18 @@ class Jetpack_Comments extends Highlander_Comments_Base {
ob_end_clean();
// If users are required to be logged in, and they're not, then we don't need to do anything else
- if ( get_option( 'comment_registration' ) && !is_user_logged_in() ) {
+ if ( get_option( 'comment_registration' ) && ! is_user_logged_in() ) {
/**
* Changes the log in to comment prompt.
*
* @module comments
*
- * @since 1.4.0
+ * @since 1.4.0
*
* @param string $var Default is "You must log in to post a comment."
*/
echo '<p class="must-log-in">' . sprintf( apply_filters( 'jetpack_must_log_in_to_comment', __( 'You must <a href="%s">log in</a> to post a comment.', 'jetpack' ) ), wp_login_url( get_permalink() . '#respond' ) ) . '</p>';
+
return;
}
@@ -232,14 +235,14 @@ class Jetpack_Comments extends Highlander_Comments_Base {
$stc_enabled = 0;
}
- $params = array(
+ $params = array(
'blogid' => Jetpack_Options::get_option( 'id' ),
'postid' => get_the_ID(),
'comment_registration' => ( get_option( 'comment_registration' ) ? '1' : '0' ), // Need to explicitly send a '1' or a '0' for these
- 'require_name_email' => ( get_option( 'require_name_email' ) ? '1' : '0' ),
+ 'require_name_email' => ( get_option( 'require_name_email' ) ? '1' : '0' ),
'stc_enabled' => $stc_enabled,
'stb_enabled' => $stb_enabled,
- 'show_avatars' => ( get_option( 'show_avatars' ) ? '1' : '0' ),
+ 'show_avatars' => ( get_option( 'show_avatars' ) ? '1' : '0' ),
'avatar_default' => get_option( 'avatar_default' ),
'greeting' => get_option( 'highlander_comment_form_prompt', __( 'Leave a Reply', 'jetpack' ) ),
/**
@@ -247,11 +250,11 @@ class Jetpack_Comments extends Highlander_Comments_Base {
*
* @module comments
*
- * @since 2.3.0
+ * @since 2.3.0
*
* @param string $var Default is "Leave a Reply to %s."
*/
- 'greeting_reply' => apply_filters( 'jetpack_comment_form_prompt_reply', __( 'Leave a Reply to %s' , 'jetpack' ) ),
+ 'greeting_reply' => apply_filters( 'jetpack_comment_form_prompt_reply', __( 'Leave a Reply to %s', 'jetpack' ) ),
'color_scheme' => get_option( 'jetpack_comment_form_color_scheme', $this->default_color_scheme ),
'lang' => get_locale(),
'jetpack_version' => JETPACK__VERSION,
@@ -265,8 +268,9 @@ class Jetpack_Comments extends Highlander_Comments_Base {
$params['hc_username'] = $current_user->display_name;
$params['hc_userurl'] = $current_user->user_url;
$params['hc_useremail'] = md5( strtolower( trim( $current_user->user_email ) ) );
- if ( current_user_can( 'unfiltered_html' ) )
+ if ( current_user_can( 'unfiltered_html' ) ) {
$params['_wp_unfiltered_html_comment'] = wp_create_nonce( 'unfiltered-html-comment_' . get_the_ID() );
+ }
}
$signature = Jetpack_Comments::sign_remote_comment_parameters( $params, Jetpack_Options::get_option( 'blog_token' ) );
@@ -291,7 +295,7 @@ class Jetpack_Comments extends Highlander_Comments_Base {
*
* @module comments
*
- * @since 4.7.0
+ * @since 4.7.0
*
* @param bool $show Can the comment be displayed? Default to true.
*/
@@ -302,19 +306,21 @@ class Jetpack_Comments extends Highlander_Comments_Base {
<div id="respond" class="comment-respond">
<?php if ( true === $show_greeting ) : ?>
- <h3 id="reply-title" class="comment-reply-title"><?php comment_form_title( esc_html( $params['greeting'] ), esc_html( $params['greeting_reply'] ) ); ?> <small><?php cancel_comment_reply_link( esc_html__( 'Cancel reply' , 'jetpack') ); ?></small></h3>
+ <h3 id="reply-title" class="comment-reply-title"><?php comment_form_title( esc_html( $params['greeting'] ), esc_html( $params['greeting_reply'] ) ); ?>
+ <small><?php cancel_comment_reply_link( esc_html__( 'Cancel reply', 'jetpack' ) ); ?></small>
+ </h3>
<?php endif; ?>
<form id="commentform" class="comment-form">
<iframe src="<?php echo esc_url( $url ); ?>" style="width:100%; height: <?php echo $height; ?>px; border:0;" name="jetpack_remote_comment" class="jetpack_remote_comment" id="jetpack_remote_comment"></iframe>
<!--[if !IE]><!-->
<script>
- document.addEventListener( 'DOMContentLoaded', function () {
- var commentForms = document.getElementsByClassName( 'jetpack_remote_comment' );
- for ( var i = 0; i < commentForms.length; i++ ) {
+ document.addEventListener('DOMContentLoaded', function () {
+ var commentForms = document.getElementsByClassName('jetpack_remote_comment');
+ for (var i = 0; i < commentForms.length; i++) {
commentForms[i].allowTransparency = <?php echo $transparent; ?>;
commentForms[i].scrolling = 'no';
}
- } );
+ });
</script>
<!--<![endif]-->
</form>
@@ -334,101 +340,110 @@ class Jetpack_Comments extends Highlander_Comments_Base {
*/
public function watch_comment_parent() {
$url_origin = set_url_scheme( 'http://jetpack.wordpress.com' );
- ?>
+ ?>
<!--[if IE]>
<script type="text/javascript">
- if ( 0 === window.location.hash.indexOf( '#comment-' ) ) {
- // window.location.reload() doesn't respect the Hash in IE
- window.location.hash = window.location.hash;
- }
+ if ( 0 === window.location.hash.indexOf( '#comment-' ) ) {
+ // window.location.reload() doesn't respect the Hash in IE
+ window.location.hash = window.location.hash;
+ }
</script>
<![endif]-->
<script type="text/javascript">
- var comm_par_el = document.getElementById( 'comment_parent' ),
- comm_par = (comm_par_el && comm_par_el.value) ? comm_par_el.value : '',
- frame = document.getElementById( 'jetpack_remote_comment' ),
- tellFrameNewParent;
-
- tellFrameNewParent = function() {
- if ( comm_par ) {
- frame.src = "<?php echo esc_url_raw( $this->signed_url ); ?>" + '&replytocom=' + parseInt( comm_par, 10 ).toString();
- } else {
- frame.src = "<?php echo esc_url_raw( $this->signed_url ); ?>";
- }
- };
-
- <?php if ( get_option( 'thread_comments' ) && get_option( 'thread_comments_depth' ) ) : ?>
-
- if ( 'undefined' !== typeof addComment ) {
- addComment._Jetpack_moveForm = addComment.moveForm;
+ (function () {
+ var comm_par_el = document.getElementById( 'comment_parent' ),
+ comm_par = ( comm_par_el && comm_par_el.value ) ? comm_par_el.value : '',
+ frame = document.getElementById( 'jetpack_remote_comment' ),
+ tellFrameNewParent;
+
+ tellFrameNewParent = function () {
+ if ( comm_par ) {
+ frame.src = "<?php echo esc_url_raw( $this->signed_url ); ?>" + '&replytocom=' + parseInt( comm_par, 10 ).toString();
+ } else {
+ frame.src = "<?php echo esc_url_raw( $this->signed_url ); ?>";
+ }
+ };
- addComment.moveForm = function( commId, parentId, respondId, postId ) {
- var returnValue = addComment._Jetpack_moveForm( commId, parentId, respondId, postId ), cancelClick, cancel;
+ <?php if ( get_option( 'thread_comments' ) && get_option( 'thread_comments_depth' ) ) : ?>
- if ( false === returnValue ) {
- cancel = document.getElementById( 'cancel-comment-reply-link' );
- cancelClick = cancel.onclick;
- cancel.onclick = function() {
- var cancelReturn = cancelClick.call( this );
- if ( false !== cancelReturn ) {
- return cancelReturn;
- }
+ if ( 'undefined' !== typeof addComment ) {
+ addComment._Jetpack_moveForm = addComment.moveForm;
- if ( !comm_par ) {
- return cancelReturn;
- }
+ addComment.moveForm = function ( commId, parentId, respondId, postId ) {
+ var returnValue = addComment._Jetpack_moveForm( commId, parentId, respondId, postId ),
+ cancelClick, cancel;
- comm_par = 0;
+ if ( false === returnValue ) {
+ cancel = document.getElementById( 'cancel-comment-reply-link' );
+ cancelClick = cancel.onclick;
+ cancel.onclick = function () {
+ var cancelReturn = cancelClick.call( this );
+ if ( false !== cancelReturn ) {
+ return cancelReturn;
+ }
- tellFrameNewParent();
+ if ( ! comm_par ) {
+ return cancelReturn;
+ }
- return cancelReturn;
- };
- }
+ comm_par = 0;
- if ( comm_par == parentId ) {
- return returnValue;
- }
+ tellFrameNewParent();
- comm_par = parentId;
+ return cancelReturn;
+ };
+ }
- tellFrameNewParent();
+ if ( comm_par == parentId ) {
+ return returnValue;
+ }
- return returnValue;
- };
- }
+ comm_par = parentId;
- <?php endif; ?>
+ tellFrameNewParent();
- if ( window.postMessage ) {
- if ( document.addEventListener ) {
- window.addEventListener( 'message', function( event ) {
- if ( <?php echo json_encode( esc_url_raw( $url_origin ) ); ?> !== event.origin ) {
- return;
- }
+ return returnValue;
+ };
+ }
- jQuery( frame ).height( event.data );
- } );
- } else if ( document.attachEvent ) {
- window.attachEvent( 'message', function( event ) {
- if ( <?php echo json_encode( esc_url_raw( $url_origin ) ); ?> !== event.origin ) {
- return;
+ <?php endif; ?>
+
+ // Do the post message bit after the dom has loaded.
+ document.addEventListener( 'DOMContentLoaded', function () {
+ var iframe_url = <?php echo json_encode( esc_url_raw( $url_origin ) ); ?>;
+ if ( window.postMessage ) {
+ if ( document.addEventListener ) {
+ window.addEventListener( 'message', function ( event ) {
+ var origin = event.origin.replace( /^http:\/\//i, 'https://' );
+ if ( iframe_url.replace( /^http:\/\//i, 'https://' ) !== origin ) {
+ return;
+ }
+ jQuery( frame ).height( event.data );
+ });
+ } else if ( document.attachEvent ) {
+ window.attachEvent( 'message', function ( event ) {
+ var origin = event.origin.replace( /^http:\/\//i, 'https://' );
+ if ( iframe_url.replace( /^http:\/\//i, 'https://' ) !== origin ) {
+ return;
+ }
+ jQuery( frame ).height( event.data );
+ });
}
+ }
+ })
- jQuery( frame ).height( event.data );
- } );
- }
- }
+ })();
</script>
- <?php
+ <?php
}
/**
* Verify the hash included in remote comments.
*
* @since JetpackComments (1.4)
+ *
* @param type $comment Not used
*/
public function pre_comment_on_post( $comment ) {
@@ -437,11 +452,13 @@ class Jetpack_Comments extends Highlander_Comments_Base {
// Bail if missing the Jetpack token
if ( ! isset( $post_array['sig'] ) ) {
unset( $_POST['hc_post_as'] );
+
return;
}
- if ( FALSE !== strpos( $post_array['hc_avatar'], '.gravatar.com' ) )
+ if ( false !== strpos( $post_array['hc_avatar'], '.gravatar.com' ) ) {
$post_array['hc_avatar'] = htmlentities( $post_array['hc_avatar'] );
+ }
$check = Jetpack_Comments::sign_remote_comment_parameters( $post_array, Jetpack_Options::get_option( 'blog_token' ) );
if ( is_wp_error( $check ) ) {
@@ -449,8 +466,9 @@ class Jetpack_Comments extends Highlander_Comments_Base {
}
// Bail if token is expired or not valid
- if ( $check !== $post_array['sig'] )
+ if ( $check !== $post_array['sig'] ) {
wp_die( __( 'Invalid security token.', 'jetpack' ) );
+ }
/** This filter is documented in modules/comments/comments.php */
if ( ! apply_filters( 'jetpack_comment_form_enabled_for_' . get_post_type( $post_array['comment_post_ID'] ), true ) ) {
@@ -468,12 +486,13 @@ class Jetpack_Comments extends Highlander_Comments_Base {
* service the comment is from, the avatar, user_id, etc...
*
* @since JetpackComments (1.4)
+ *
* @param type $comment_id
*/
public function add_comment_meta( $comment_id ) {
$comment_meta = array();
- switch( $this->is_highlander_comment_post() ) {
+ switch ( $this->is_highlander_comment_post() ) {
case 'facebook' :
$comment_meta['hc_post_as'] = 'facebook';
$comment_meta['hc_avatar'] = stripslashes( $_POST['hc_avatar'] );
@@ -502,94 +521,99 @@ class Jetpack_Comments extends Highlander_Comments_Base {
}
// Bail if no extra comment meta
- if ( empty( $comment_meta ) )
+ if ( empty( $comment_meta ) ) {
return;
+ }
// Loop through extra meta and add values
- foreach ( $comment_meta as $key => $value )
+ foreach ( $comment_meta as $key => $value ) {
add_comment_meta( $comment_id, $key, $value, true );
+ }
}
+
function capture_comment_post_redirect_to_reload_parent_frame( $url ) {
- if ( !isset( $_GET['for'] ) || 'jetpack' != $_GET['for'] ) {
+ if ( ! isset( $_GET['for'] ) || 'jetpack' != $_GET['for'] ) {
return $url;
}
-?>
-<!DOCTYPE html>
-<html <?php language_attributes(); ?>>
-<!--<![endif]-->
-<head>
-<meta charset="<?php bloginfo( 'charset' ); ?>" />
-<title><?php printf( __( 'Submitting Comment%s', 'jetpack' ), '&hellip;' ); ?></title>
-<style type="text/css">
-body {
- display: table;
- width: 100%;
- height: 60%;
- position: absolute;
- top: 0;
- left: 0;
- overflow: hidden;
- color: #333;
-}
+ ?>
+ <!DOCTYPE html>
+ <html <?php language_attributes(); ?>>
+ <!--<![endif]-->
+ <head>
+ <meta charset="<?php bloginfo( 'charset' ); ?>" />
+ <title><?php printf( __( 'Submitting Comment%s', 'jetpack' ), '&hellip;' ); ?></title>
+ <style type="text/css">
+ body {
+ display: table;
+ width: 100%;
+ height: 60%;
+ position: absolute;
+ top: 0;
+ left: 0;
+ overflow: hidden;
+ color: #333;
+ }
-h1 {
- text-align: center;
- margin: 0;
- padding: 0;
- display: table-cell;
- vertical-align: middle;
- font-family: "HelveticaNeue-Light", "Helvetica Neue Light", "Helvetica Neue", sans-serif;
- font-weight: normal;
-}
+ h1 {
+ text-align: center;
+ margin: 0;
+ padding: 0;
+ display: table-cell;
+ vertical-align: middle;
+ font-family: "HelveticaNeue-Light", "Helvetica Neue Light", "Helvetica Neue", sans-serif;
+ font-weight: normal;
+ }
-.hidden {
- opacity: 0;
-}
+ .hidden {
+ opacity: 0;
+ }
-h1 span {
- -moz-transition-property: opacity;
- -moz-transition-duration: 1s;
- -moz-transition-timing-function: ease-in-out;
+ h1 span {
+ -moz-transition-property: opacity;
+ -moz-transition-duration: 1s;
+ -moz-transition-timing-function: ease-in-out;
- -webkit-transition-property: opacity;
- -webkit-transition-duration: 1s;
- -webbit-transition-timing-function: ease-in-out;
+ -webkit-transition-property: opacity;
+ -webkit-transition-duration: 1s;
+ -webbit-transition-timing-function: ease-in-out;
- -o-transition-property: opacity;
- -o-transition-duration: 1s;
- -o-transition-timing-function: ease-in-out;
+ -o-transition-property: opacity;
+ -o-transition-duration: 1s;
+ -o-transition-timing-function: ease-in-out;
- -ms-transition-property: opacity;
- -ms-transition-duration: 1s;
- -ms-transition-timing-function: ease-in-out;
+ -ms-transition-property: opacity;
+ -ms-transition-duration: 1s;
+ -ms-transition-timing-function: ease-in-out;
- transition-property: opacity;
- transition-duration: 1s;
- transition-timing-function: ease-in-out;
-}
-</style>
-</head>
-<body>
- <h1><?php printf( __( 'Submitting Comment%s', 'jetpack' ), '<span id="ellipsis" class="hidden">&hellip;</span>' ); ?></h1>
-<script type="text/javascript">
-try {
- window.parent.location = <?php echo json_encode( $url ); ?>;
- window.parent.location.reload( true );
-} catch ( e ) {
- window.location = <?php echo json_encode( $url ); ?>;
- window.location.reload( true );
-}
-ellipsis = document.getElementById( 'ellipsis' );
-function toggleEllipsis() {
- ellipsis.className = ellipsis.className ? '' : 'hidden';
-}
-setInterval( toggleEllipsis, 1200 );
-</script>
-</body>
-</html>
-<?php
+ transition-property: opacity;
+ transition-duration: 1s;
+ transition-timing-function: ease-in-out;
+ }
+ </style>
+ </head>
+ <body>
+ <h1><?php printf( __( 'Submitting Comment%s', 'jetpack' ), '<span id="ellipsis" class="hidden">&hellip;</span>' ); ?></h1>
+ <script type="text/javascript">
+ try {
+ window.parent.location = <?php echo json_encode( $url ); ?>;
+ window.parent.location.reload(true);
+ } catch (e) {
+ window.location = <?php echo json_encode( $url ); ?>;
+ window.location.reload(true);
+ }
+ ellipsis = document.getElementById('ellipsis');
+
+ function toggleEllipsis() {
+ ellipsis.className = ellipsis.className ? '' : 'hidden';
+ }
+
+ setInterval(toggleEllipsis, 1200);
+ </script>
+ </body>
+ </html>
+ <?php
exit;
}
}
-Jetpack_Comments::init();
+Jetpack_Comments::init(); \ No newline at end of file