From 7086111ad4dd997e12a3220e1ee60c9b9bcf0bb8 Mon Sep 17 00:00:00 2001 From: Charles Date: Tue, 7 Jan 2020 13:06:14 +0100 Subject: Added wordpress --- .../wordpress/wp-includes/class-walker-comment.php | 421 +++++++++++++++++++++ 1 file changed, 421 insertions(+) create mode 100644 srcs/wordpress/wp-includes/class-walker-comment.php (limited to 'srcs/wordpress/wp-includes/class-walker-comment.php') diff --git a/srcs/wordpress/wp-includes/class-walker-comment.php b/srcs/wordpress/wp-includes/class-walker-comment.php new file mode 100644 index 0000000..7325fd0 --- /dev/null +++ b/srcs/wordpress/wp-includes/class-walker-comment.php @@ -0,0 +1,421 @@ + 'comment_parent', + 'id' => 'comment_ID', + ); + + /** + * Starts the list before the elements are added. + * + * @since 2.7.0 + * + * @see Walker::start_lvl() + * @global int $comment_depth + * + * @param string $output Used to append additional content (passed by reference). + * @param int $depth Optional. Depth of the current comment. Default 0. + * @param array $args Optional. Uses 'style' argument for type of HTML list. Default empty array. + */ + public function start_lvl( &$output, $depth = 0, $args = array() ) { + $GLOBALS['comment_depth'] = $depth + 1; + + switch ( $args['style'] ) { + case 'div': + break; + case 'ol': + $output .= '
    ' . "\n"; + break; + case 'ul': + default: + $output .= '
\n"; + break; + case 'ul': + default: + $output .= "\n"; + break; + } + } + + /** + * Traverses elements to create list from elements. + * + * This function is designed to enhance Walker::display_element() to + * display children of higher nesting levels than selected inline on + * the highest depth level displayed. This prevents them being orphaned + * at the end of the comment list. + * + * Example: max_depth = 2, with 5 levels of nested content. + * 1 + * 1.1 + * 1.1.1 + * 1.1.1.1 + * 1.1.1.1.1 + * 1.1.2 + * 1.1.2.1 + * 2 + * 2.2 + * + * @since 2.7.0 + * + * @see Walker::display_element() + * @see wp_list_comments() + * + * @param WP_Comment $element Comment data object. + * @param array $children_elements List of elements to continue traversing. Passed by reference. + * @param int $max_depth Max depth to traverse. + * @param int $depth Depth of the current element. + * @param array $args An array of arguments. + * @param string $output Used to append additional content. Passed by reference. + */ + public function display_element( $element, &$children_elements, $max_depth, $depth, $args, &$output ) { + if ( ! $element ) { + return; + } + + $id_field = $this->db_fields['id']; + $id = $element->$id_field; + + parent::display_element( $element, $children_elements, $max_depth, $depth, $args, $output ); + + /* + * If at the max depth, and the current element still has children, loop over those + * and display them at this level. This is to prevent them being orphaned to the end + * of the list. + */ + if ( $max_depth <= $depth + 1 && isset( $children_elements[ $id ] ) ) { + foreach ( $children_elements[ $id ] as $child ) { + $this->display_element( $child, $children_elements, $max_depth, $depth, $args, $output ); + } + + unset( $children_elements[ $id ] ); + } + + } + + /** + * Starts the element output. + * + * @since 2.7.0 + * + * @see Walker::start_el() + * @see wp_list_comments() + * @global int $comment_depth + * @global WP_Comment $comment Global comment object. + * + * @param string $output Used to append additional content. Passed by reference. + * @param WP_Comment $comment Comment data object. + * @param int $depth Optional. Depth of the current comment in reference to parents. Default 0. + * @param array $args Optional. An array of arguments. Default empty array. + * @param int $id Optional. ID of the current comment. Default 0 (unused). + */ + public function start_el( &$output, $comment, $depth = 0, $args = array(), $id = 0 ) { + $depth++; + $GLOBALS['comment_depth'] = $depth; + $GLOBALS['comment'] = $comment; + + if ( ! empty( $args['callback'] ) ) { + ob_start(); + call_user_func( $args['callback'], $comment, $args, $depth ); + $output .= ob_get_clean(); + return; + } + + if ( ( 'pingback' == $comment->comment_type || 'trackback' == $comment->comment_type ) && $args['short_ping'] ) { + ob_start(); + $this->ping( $comment, $depth, $args ); + $output .= ob_get_clean(); + } elseif ( 'html5' === $args['format'] ) { + ob_start(); + $this->html5_comment( $comment, $depth, $args ); + $output .= ob_get_clean(); + } else { + ob_start(); + $this->comment( $comment, $depth, $args ); + $output .= ob_get_clean(); + } + } + + /** + * Ends the element output, if needed. + * + * @since 2.7.0 + * + * @see Walker::end_el() + * @see wp_list_comments() + * + * @param string $output Used to append additional content. Passed by reference. + * @param WP_Comment $comment The current comment object. Default current comment. + * @param int $depth Optional. Depth of the current comment. Default 0. + * @param array $args Optional. An array of arguments. Default empty array. + */ + public function end_el( &$output, $comment, $depth = 0, $args = array() ) { + if ( ! empty( $args['end-callback'] ) ) { + ob_start(); + call_user_func( $args['end-callback'], $comment, $args, $depth ); + $output .= ob_get_clean(); + return; + } + if ( 'div' == $args['style'] ) { + $output .= "\n"; + } else { + $output .= "\n"; + } + } + + /** + * Outputs a pingback comment. + * + * @since 3.6.0 + * + * @see wp_list_comments() + * + * @param WP_Comment $comment The comment object. + * @param int $depth Depth of the current comment. + * @param array $args An array of arguments. + */ + protected function ping( $comment, $depth, $args ) { + $tag = ( 'div' == $args['style'] ) ? 'div' : 'li'; + ?> + < id="comment-" > +
+ ', '' ); ?> +
+ + < has_children ? 'parent' : '', $comment ); ?> id="comment-"> + +
+ +
+ + says:' ), + sprintf( '%s', get_comment_author_link( $comment ) ) + ); + ?> +
+ comment_approved ) : ?> + +
+ + + + + $add_below, + 'depth' => $depth, + 'max_depth' => $args['max_depth'], + ) + ) + ); + ?> + + $add_below, + 'depth' => $depth, + 'max_depth' => $args['max_depth'], + 'before' => '
', + 'after' => '
', + ) + ) + ); + ?> + + +
+ + + < id="comment-" has_children ? 'parent' : '', $comment ); ?>> +
+
+
+ + says:' ), + sprintf( '%s', get_comment_author_link( $comment ) ) + ); + ?> +
+ + + + comment_approved ) : ?> + + +
+ +
+ +
+ + 'div-comment', + 'depth' => $depth, + 'max_depth' => $args['max_depth'], + 'before' => '
', + 'after' => '
', + ) + ) + ); + ?> +
+