<!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>[BuddyPress][11258] trunk/src/bp-xprofile/bp-xprofile-template.php: Update 'bp_profile_get_settings_visibity_select()' function args</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 { 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://buddypress.trac.wordpress.org/changeset/11258">11258</a><script type="application/ld+json">{"@context":"http://schema.org","@type":"EmailMessage","description":"Review this Commit","action":{"@type":"ViewAction","url":"http://buddypress.trac.wordpress.org/changeset/11258","name":"Review Commit"}}</script></dd>
<dt style="float: left; width: 6em; font-weight: bold">Author</dt> <dd>hnla</dd>
<dt style="float: left; width: 6em; font-weight: bold">Date</dt> <dd>2016-11-29 09:58:29 +0000 (Tue, 29 Nov 2016)</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'>Update 'bp_profile_get_settings_visibity_select()' function args

* Add new args to support elements before & after for the form controls.
* Add class attr for form label & notoggle elements.
* Add arg for notoggle tags element.

Update allows developers to manage markup output directly from template, providing an additional set of elements to wrap form controls to allow for styling hooks to change select styling, changing of classes for label & notoggle elements to suit & changing the notoggle tags element if required.

Fixes <a href="http://buddypress.trac.wordpress.org/ticket/7364">#7364</a></pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunksrcbpxprofilebpxprofiletemplatephp">trunk/src/bp-xprofile/bp-xprofile-template.php</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunksrcbpxprofilebpxprofiletemplatephp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/bp-xprofile/bp-xprofile-template.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/bp-xprofile/bp-xprofile-template.php    2016-11-29 01:05:54 UTC (rev 11257)
+++ trunk/src/bp-xprofile/bp-xprofile-template.php      2016-11-29 09:58:29 UTC (rev 11258)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1358,8 +1358,13 @@
</span><span class="cx" style="display: block; padding: 0 10px">         *
</span><span class="cx" style="display: block; padding: 0 10px">         *    @type int    $field_id ID of the field to render.
</span><span class="cx" style="display: block; padding: 0 10px">         *    @type string $before   Markup to render before the field.
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         *    @type string $before_controls  markup before form controls.
</ins><span class="cx" style="display: block; padding: 0 10px">          *    @type string $after    Markup to render after the field.
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         *    @type string $after_controls Markup after the form controls.
</ins><span class="cx" style="display: block; padding: 0 10px">          *    @type string $class    Class to apply to the field markup.
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         *    @type string $label_class Class to apply for the label element.
+        *    @type string $notoggle_tag Markup element to use for notoggle tag.
+        *    @type string $notoggle_class Class to apply to the notoggle element.
</ins><span class="cx" style="display: block; padding: 0 10px">          * }
</span><span class="cx" style="display: block; padding: 0 10px">         * @return string $retval
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1367,10 +1372,15 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                // Parse optional arguments.
</span><span class="cx" style="display: block; padding: 0 10px">                $r = bp_parse_args( $args, array(
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        'field_id' => bp_get_the_profile_field_id(),
-                       'before'   => '',
-                       'after'    => '',
-                       'class'    => 'bp-xprofile-visibility'
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 'field_id'         => bp_get_the_profile_field_id(),
+                       'before'           => '',
+                       'before_controls'  => '',
+                       'after'            => '',
+                       'after_controls'   => '',
+                       'class'            => 'bp-xprofile-visibility',
+                       'label_class'      => 'bp-screen-reader-text',
+                       'notoggle_tag'     => 'span',
+                       'notoggle_class'   => 'field-visibility-settings-notoggle',
</ins><span class="cx" style="display: block; padding: 0 10px">                 ), 'xprofile_settings_visibility_select' );
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                // Empty return value, filled in below if a valid field ID is found.
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1387,7 +1397,9 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                        <?php if ( bp_current_user_can( 'bp_xprofile_change_field_visibility' ) ) : ?>
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                <label for="<?php echo esc_attr( 'field_' . $r['field_id'] ) ; ?>_visibility" class="bp-screen-reader-text"><?php
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 <?php echo $r['before_controls']; ?>
+
+                               <label for="<?php echo esc_attr( 'field_' . $r['field_id'] ) ; ?>_visibility" class="<?php echo esc_attr( $r['label_class'] ); ?>"><?php
</ins><span class="cx" style="display: block; padding: 0 10px">                                         /* translators: accessibility text */
</span><span class="cx" style="display: block; padding: 0 10px">                                        _e( 'Select visibility', 'buddypress' );
</span><span class="cx" style="display: block; padding: 0 10px">                                ?></label>
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1401,9 +1413,11 @@
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                                </select>
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                        <?php echo $r['after_controls']; ?>
+
</ins><span class="cx" style="display: block; padding: 0 10px">                         <?php else : ?>
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                                <span class="field-visibility-settings-notoggle"><?php bp_the_profile_field_visibility_level_label(); ?></span>
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                         <<?php echo esc_html( $r['notoggle_tag'] ); ?> class="<?php echo esc_attr( $r['notoggle_class'] ); ?>"><?php bp_the_profile_field_visibility_level_label(); ?></<?php echo esc_html( $r['notoggle_tag'] ); ?>>
</ins><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                        <?php endif;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span></span></pre>
</div>
</div>

</body>
</html>