<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[8559] sites/trunk/wordcamp.org/public_html/wp-content: WordCamp Block: Add excerpt support to Sponsor block for consistency</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { white-space: pre-line; overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta" style="font-size: 105%">
<dt style="float: left; width: 6em; font-weight: bold">Revision</dt> <dd><a style="font-weight: bold" href="http://meta.trac.wordpress.org/changeset/8559">8559</a><script type="application/ld+json">{"@context":"http://schema.org","@type":"EmailMessage","description":"Review this Commit","action":{"@type":"ViewAction","url":"http://meta.trac.wordpress.org/changeset/8559","name":"Review Commit"}}</script></dd>
<dt style="float: left; width: 6em; font-weight: bold">Author</dt> <dd>vedjain</dd>
<dt style="float: left; width: 6em; font-weight: bold">Date</dt> <dd>2019-04-01 14:31:50 +0000 (Mon, 01 Apr 2019)</dd>
</dl>

<pre style='padding-left: 1em; margin: 2em 0; border-left: 2px solid #ccc; line-height: 1.25; font-size: 105%; font-family: sans-serif'>WordCamp Block: Add excerpt support to Sponsor block for consistency

We already support excerpt in Speakers, Sessions and (WIP) Organizer block. This patch also adds support to show excerpt in Sponsor Block, thereby ensuring consistency among all blocks.

Fixes https://github.com/WordPress/wordcamp.org/issues/38</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#sitestrunkwordcamporgpublic_htmlwpcontentmupluginsblocksassetssrcsponsorsblockcontentjs">sites/trunk/wordcamp.org/public_html/wp-content/mu-plugins/blocks/assets/src/sponsors/block-content.js</a></li>
<li><a href="#sitestrunkwordcamporgpublic_htmlwpcontentmupluginsblocksassetssrcsponsorsinspectorcontrolsjs">sites/trunk/wordcamp.org/public_html/wp-content/mu-plugins/blocks/assets/src/sponsors/inspector-controls.js</a></li>
<li><a href="#sitestrunkwordcamporgpublic_htmlwpcontentmupluginsblocksincludessponsorsphp">sites/trunk/wordcamp.org/public_html/wp-content/mu-plugins/blocks/includes/sponsors.php</a></li>
<li><a href="#sitestrunkwordcamporgpublic_htmlwpcontentmupluginsblocksviewsponsorsphp">sites/trunk/wordcamp.org/public_html/wp-content/mu-plugins/blocks/view/sponsors.php</a></li>
<li><a href="#sitestrunkwordcamporgpublic_htmlwpcontentpluginswcposttypeswcposttypesphp">sites/trunk/wordcamp.org/public_html/wp-content/plugins/wc-post-types/wc-post-types.php</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="sitestrunkwordcamporgpublic_htmlwpcontentmupluginsblocksassetssrcsponsorsblockcontentjs"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: sites/trunk/wordcamp.org/public_html/wp-content/mu-plugins/blocks/assets/src/sponsors/block-content.js</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordcamp.org/public_html/wp-content/mu-plugins/blocks/assets/src/sponsors/block-content.js    2019-03-30 10:12:10 UTC (rev 8558)
+++ sites/trunk/wordcamp.org/public_html/wp-content/mu-plugins/blocks/assets/src/sponsors/block-content.js      2019-04-01 14:31:50 UTC (rev 8559)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -9,6 +9,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">  */
</span><span class="cx" style="display: block; padding: 0 10px"> const { Component } = wp.element;
</span><span class="cx" style="display: block; padding: 0 10px"> const { escapeAttribute } = wp.escapeHtml;
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+const { __ } = wp.i18n;
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px"> /**
</span><span class="cx" style="display: block; padding: 0 10px">  * Internal dependencies.
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -28,11 +29,14 @@
</span><span class="cx" style="display: block; padding: 0 10px">  */
</span><span class="cx" style="display: block; padding: 0 10px"> function SponsorDetail( { sponsorPost, attributes, onFeatureImageChange } ) {
</span><span class="cx" style="display: block; padding: 0 10px">        const {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                show_name, show_logo, show_desc,
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         show_name, show_logo, show_desc, content, excerpt_more,
</ins><span class="cx" style="display: block; padding: 0 10px">         } = attributes;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">        const featuredImageSizes = get( sponsorPost, '_embedded.wp:featuredmedia[0].media_details.sizes', {} );
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        const displayContent = 'full' === content ? sponsorPost.content.rendered.trim() : sponsorPost.excerpt.rendered.trim();
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+        console.log("content is: ", content, displayContent);
+
</ins><span class="cx" style="display: block; padding: 0 10px">         return (
</span><span class="cx" style="display: block; padding: 0 10px">                <div className={ 'wordcamp-sponsor-details wordcamp-sponsor-details-' + escapeAttribute( sponsorPost.slug ) }>
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -52,10 +56,12 @@
</span><span class="cx" style="display: block; padding: 0 10px">                                attributes={ attributes }
</span><span class="cx" style="display: block; padding: 0 10px">                        />
</span><span class="cx" style="display: block; padding: 0 10px">                        }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        { ( show_desc || show_desc === undefined ) &&
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 { ( 'none' !== content ) &&
</ins><span class="cx" style="display: block; padding: 0 10px">                         <ItemHTMLContent
</span><span class="cx" style="display: block; padding: 0 10px">                                className={ classnames( 'wordcamp-sponsor-content' ) }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                content={ sponsorPost.content.rendered.trim() }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                         content={ displayContent }
+                               link={ ( 'full' === content || excerpt_more ) ? sponsorPost.link : null }
+                               linkText={ 'full' === content ? __( 'Visit sponsor page', 'wordcamporg' ) : __( 'Read more', 'wordcamporg' ) }
</ins><span class="cx" style="display: block; padding: 0 10px">                         />
</span><span class="cx" style="display: block; padding: 0 10px">                        }
</span><span class="cx" style="display: block; padding: 0 10px">                </div>
</span></span></pre></div>
<a id="sitestrunkwordcamporgpublic_htmlwpcontentmupluginsblocksassetssrcsponsorsinspectorcontrolsjs"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: sites/trunk/wordcamp.org/public_html/wp-content/mu-plugins/blocks/assets/src/sponsors/inspector-controls.js</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordcamp.org/public_html/wp-content/mu-plugins/blocks/assets/src/sponsors/inspector-controls.js       2019-03-30 10:12:10 UTC (rev 8558)
+++ sites/trunk/wordcamp.org/public_html/wp-content/mu-plugins/blocks/assets/src/sponsors/inspector-controls.js 2019-04-01 14:31:50 UTC (rev 8559)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -26,9 +26,15 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        { label: __( 'Sponsor Level', 'wordcamporg' ), value: 'sponsor_level' },
</span><span class="cx" style="display: block; padding: 0 10px">                ];
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                const contentOptions = [
+                       { label: __( 'Full', 'wordcamporg' ), value: 'full' },
+                       { label: __( 'Excerpt', 'wordcamporg' ), value: 'excerpt' },
+                       { label: __( 'None', 'wordcamporg'), value: 'none' },
+               ];
+
</ins><span class="cx" style="display: block; padding: 0 10px">                 const { attributes, setAttributes } = this.props;
</span><span class="cx" style="display: block; padding: 0 10px">                const {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        show_name, show_logo, show_desc, sort_by,
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 show_name, show_logo, sort_by, excerpt_more, content
</ins><span class="cx" style="display: block; padding: 0 10px">                 } = attributes;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                return (
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -57,14 +63,25 @@
</span><span class="cx" style="display: block; padding: 0 10px">                                                />
</span><span class="cx" style="display: block; padding: 0 10px">                                        </PanelRow>
</span><span class="cx" style="display: block; padding: 0 10px">                                        <PanelRow>
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                                <ToggleControl
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                                         <SelectControl
</ins><span class="cx" style="display: block; padding: 0 10px">                                                         label={ __( 'Description', 'wordcamporg' ) }
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                                        help={ __( 'Show or hide sponsor description', 'wordcamporg' ) }
-                                                       checked={ show_desc === undefined ? true : show_desc }
-                                                       onChange={ ( value ) => setAttributes( { show_desc: value } ) }
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                                                 value={ content }
+                                                       options={ contentOptions }
+                                                       help={ __( 'Length of sponsor description', 'wordcamporg' ) }
+                                                       onChange={ ( value ) => setAttributes( { content: value } ) }
</ins><span class="cx" style="display: block; padding: 0 10px">                                                 />
</span><span class="cx" style="display: block; padding: 0 10px">                                        </PanelRow>
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                                        { 'excerpt' === content &&
</ins><span class="cx" style="display: block; padding: 0 10px">                                         <PanelRow>
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                                                <ToggleControl
+                                                       label={ __( 'Read More Link', 'wordcamporg' ) }
+                                                       help={ __( 'Show a link at the end of the excerpt (some themes already include this)', 'wordcamporg' ) }
+                                                       checked={ excerpt_more }
+                                                       onChange={ ( value ) => setAttributes( { excerpt_more: value } ) }
+                                               />
+                                       </PanelRow>
+                                       }
+                                       <PanelRow>
</ins><span class="cx" style="display: block; padding: 0 10px">                                                 <SelectControl
</span><span class="cx" style="display: block; padding: 0 10px">                                                        label={ __( 'Sort by', 'wordcamporg' ) }
</span><span class="cx" style="display: block; padding: 0 10px">                                                        options={ sortOptions }
</span></span></pre></div>
<a id="sitestrunkwordcamporgpublic_htmlwpcontentmupluginsblocksincludessponsorsphp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: sites/trunk/wordcamp.org/public_html/wp-content/mu-plugins/blocks/includes/sponsors.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordcamp.org/public_html/wp-content/mu-plugins/blocks/includes/sponsors.php   2019-03-30 10:12:10 UTC (rev 8558)
+++ sites/trunk/wordcamp.org/public_html/wp-content/mu-plugins/blocks/includes/sponsors.php     2019-04-01 14:31:50 UTC (rev 8559)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -182,7 +182,11 @@
</span><span class="cx" style="display: block; padding: 0 10px">                        'type'    => 'bool',
</span><span class="cx" style="display: block; padding: 0 10px">                        'default' => true,
</span><span class="cx" style="display: block; padding: 0 10px">                ),
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                'show_desc'             => array(
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         'content'               => array(
+                       'type'    => 'string',
+                       'default' => 'full',
+               ),
+               'excerpt_more'          => array(
</ins><span class="cx" style="display: block; padding: 0 10px">                         'type'    => 'bool',
</span><span class="cx" style="display: block; padding: 0 10px">                        'default' => true,
</span><span class="cx" style="display: block; padding: 0 10px">                ),
</span></span></pre></div>
<a id="sitestrunkwordcamporgpublic_htmlwpcontentmupluginsblocksviewsponsorsphp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: sites/trunk/wordcamp.org/public_html/wp-content/mu-plugins/blocks/view/sponsors.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordcamp.org/public_html/wp-content/mu-plugins/blocks/view/sponsors.php       2019-03-30 10:12:10 UTC (rev 8558)
+++ sites/trunk/wordcamp.org/public_html/wp-content/mu-plugins/blocks/view/sponsors.php 2019-04-01 14:31:50 UTC (rev 8559)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -31,8 +31,19 @@
</span><span class="cx" style="display: block; padding: 0 10px">                ); ?>
</span><span class="cx" style="display: block; padding: 0 10px">        <?php } ?>
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-        <?php if ( $attributes['show_desc'] ) { ?>
-               <?php echo wp_kses_post( wpautop( get_all_the_content( $sponsor ) ) ); ?>
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+ <?php if ( 'none' !== $attributes['content'] ) { ?>
+               <?php if ( 'full' === $attributes['content'] ) { ?>
+                       <?php echo wp_kses_post( wpautop( get_all_the_content( $sponsor ) ) ); ?>
+               <?php } elseif ( 'excerpt' === $attributes['content'] ) { ?>
+                       <?php wpautop( the_excerpt() ); ?>
+                       <?php if ( true === $attributes['excerpt_more'] ) { ?>
+                               <p class="wordcamp-item-permalink">
+                                       <a href="<?php echo esc_url( get_permalink( $sponsor ) ); ?>" class="wordcamp-sponsor-permalink">
+                                               <?php esc_html_e( 'Read more', 'wordcamporg' ); ?>
+                                       </a>
+                               </p>
+                       <?php } ?>
+               <?php } ?>
</ins><span class="cx" style="display: block; padding: 0 10px">         <?php } ?>
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px"> </div>
</span></span></pre></div>
<a id="sitestrunkwordcamporgpublic_htmlwpcontentpluginswcposttypeswcposttypesphp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: sites/trunk/wordcamp.org/public_html/wp-content/plugins/wc-post-types/wc-post-types.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- sites/trunk/wordcamp.org/public_html/wp-content/plugins/wc-post-types/wc-post-types.php   2019-03-30 10:12:10 UTC (rev 8558)
+++ sites/trunk/wordcamp.org/public_html/wp-content/plugins/wc-post-types/wc-post-types.php     2019-04-01 14:31:50 UTC (rev 8559)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -2294,7 +2294,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">                                        'slug'       => 'sponsor',
</span><span class="cx" style="display: block; padding: 0 10px">                                        'with_front' => false,
</span><span class="cx" style="display: block; padding: 0 10px">                                ),
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                'supports'        => array( 'title', 'editor', 'revisions', 'thumbnail', 'custom-fields' ),
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                         'supports'        => array( 'title', 'editor', 'excerpt', 'revisions', 'thumbnail', 'custom-fields' ),
</ins><span class="cx" style="display: block; padding: 0 10px">                                 'menu_position'   => 21,
</span><span class="cx" style="display: block; padding: 0 10px">                                'public'          => true,
</span><span class="cx" style="display: block; padding: 0 10px">                                'show_ui'         => true,
</span></span></pre>
</div>
</div>

</body>
</html>