function _pp_file_filtering_promo() { if (0 === validate_plugin("pp-file-url-filter/pp-file-url-filter.php")) { $msg = __('To block direct URL access to attachments of unreadable posts, activate the PP File URL Filter plugin.', 'pp'); } elseif (true == pp_key_status()) { $msg = sprintf(__('To block direct URL access to attachments of unreadable posts, %1$sinstall%2$s the PP File URL Filter plugin.', 'pp'), '<a href="admin.php?page=pp-settings&pp_tab=install">', '</a>'); } else { $msg = sprintf(__('To block direct URL access to attachments of unreadable posts, %1$senter%2$s or %3$spurchase%4$s a support key and install the PP File URL Filter plugin.', 'pp'), '<a href="admin.php?page=pp-settings&pp_tab=install">', '</a>', '<a href="http://presspermit.com/purchase">', '</a>'); } ?> <script type="text/javascript"> /* <![CDATA[ */ jQuery(document).ready( function($) { $('#posts-filter').after('<a href="#" class="pp-file-filtering-promo" style="margin-left:5px"><?php _e('Block URL access', 'pp'); ?> </a><span class="pp-ext-promo" style="display:none;"><?php echo $msg; ?> </span>'); $('a.pp-file-filtering-promo').click(function() { $(this).hide().next('span').show(); return false; }); }); /* ]]> */ </script> <?php }
function _ppc_item_ui_hints($for_item_type) { if ('attachment' == $for_item_type && !defined('PPFF_VERSION')) { if (0 === validate_plugin("pp-file-url-filter/pp-file-url-filter.php")) { $msg = __('To block direct access to unreadable files, activate the PP File URL Filter plugin.', 'pp'); } elseif (true == pp_key_status()) { $msg = sprintf(__('To block direct access to unreadable files, %1$sinstall%2$s the PP File URL Filter plugin.', 'pp'), '<a href="admin.php?page=pp-settings&pp_tab=install">', '</a>'); } else { $msg = sprintf(__('To block direct access to unreadable files, %1$spurchase a support key%2$s and install the PP File URL Filter plugin.', 'pp'), '<a href="http://presspermit.com/purchase">', '</a>'); } echo "<div class='pp-ext-promo' style='padding:0.5em'>{$msg}</div>"; } if (!defined('PPCE_VERSION')) { if (0 === validate_plugin("pp-collaborative-editing/pp-collaborative-editing.php")) { $msg = __('To customize editing permissions, activate the PP Collaborative Editing plugin.', 'pp'); } elseif (true == pp_key_status()) { $msg = sprintf(__('To customize editing permissions, %1$sinstall%2$s the PP Collaborative Editing plugin.', 'pp'), '<a href="admin.php?page=pp-settings&pp_tab=install">', '</a>'); } else { $msg = sprintf(__('To customize editing permissions, %1$spurchase a support key%2$s and install the PP Collaborative Editing plugin.', 'pp'), '<a href="http://presspermit.com/purchase">', '</a>'); } echo "<div class='pp-ext-promo' style='padding:0.5em;margin-top:0'>{$msg}</div>"; } }
<?php //echo esc_html( __( 'Posts with a custom Visibility or Editability require a corresponding Permission Group role assignment.', 'pp' ) ); $pp_groups_list_table->search_box(__('Search Groups', 'pp'), 'group'); ?> <?php $pp_groups_list_table->display(); ?> </form> <br class="clear" /> <?php if (defined('BP_VERSION') && !defined('PPCE_VERSION') && pp_get_option('display_extension_hints')) { if (0 === validate_plugin("pp-buddypress-role-groups/pp-buddypress-role-groups.php")) { $msg = __('To assign roles or exceptions to BuddyPress groups, activate the PP BuddyPress Role Groups', 'pp'); } elseif (true == pp_key_status()) { $msg = sprintf(__('To assign roles or exceptions to BuddyPress groups, %1$sinstall%2$s the PP BuddyPress Role Groups plugin.', 'pp'), '<a href="admin.php?page=pp-settings&pp_tab=install">', '</a>'); } else { $msg = sprintf(__('To assign roles or exceptions to BuddyPress groups, %1$senter%2$s or %3$spurchase%4$s a support key and install the PP BuddyPress Role Groups plugin.', 'pp'), '<a href="admin.php?page=pp-settings&pp_tab=install">', '</a>', '<a href="http://presspermit.com/purchase">', '</a>'); } echo "<div class='pp-ext-promo'>{$msg}</div>"; } ?> </div> <?php break; } // end of the $doaction switch
function _pp_post_status_promo() { if (!defined('PPS_VERSION')) { if (0 === validate_plugin("pp-custom-post-statuses/pp-custom-post-statuses.php")) { $msg = __('To define custom privacy statuses, activate the PP Custom Post Statuses plugin.', 'pp'); } elseif (true == pp_key_status()) { $msg = sprintf(__('To define custom privacy statuses, %1$sinstall%2$s the PP Custom Post Statuses plugin.', 'pp'), '<a href="admin.php?page=pp-settings&pp_tab=install">', '</a>'); } else { $msg = sprintf(__('To define custom privacy statuses, %1$senter%2$s or %3$spurchase%4$s a support key and install the PP Custom Post Statuses plugin.', 'pp'), '<a href="admin.php?page=pp-settings&pp_tab=install">', '</a>', '<a href="http://presspermit.com/purchase">', '</a>'); } ?> <script type="text/javascript"> /* <![CDATA[ */ jQuery(document).ready( function($) { $('#visibility-radio-private').next('label').after('<a href="#" class="pp-custom-privacy-promo" style="margin-left:5px"><?php _e('define custom privacy', 'pp'); ?> </a><span class="pp-ext-promo" style="display:none;"><br /><?php echo $msg; ?> </span>'); $('a.pp-custom-privacy-promo').click(function() { $(this).hide().next('span').show(); return false; }); }); /* ]]> */ </script> <?php } if (!defined('PPS_VERSION') || !defined('PPCE_VERSION')) { $need_exts = array(); if (!defined('PPCE_VERSION')) { $need_exts[] = 'PP Collaborative Editing Pack'; } if (!defined('PPS_VERSION')) { $need_exts[] = 'PP Custom Post Statuses'; } $need_exts = implode(' and ', $need_exts); if (true == pp_key_status()) { $msg = sprintf(__('To define custom moderation statuses, %1$sactivate%2$s %3$s.', 'pp'), '<a href="admin.php?page=pp-settings&pp_tab=install">', '</a>', $need_exts); } else { $msg = sprintf(__('To define custom moderation statuses, %1$senter%2$s or %3$spurchase%4$s a Press Permit support key. Then install %5$s.', 'pp'), '<a href="admin.php?page=pp-settings&pp_tab=install">', '</a>', '<a href="http://presspermit.com/purchase">', '</a>', $need_exts); } ?> <script type="text/javascript"> /* <![CDATA[ */ jQuery(document).ready( function($) { $('a.edit-post-status').after('<a href="#" class="pp-custom-moderation-promo" style="margin-left:5px"><?php _e('Customize', 'pp'); ?> </a><span class="pp-ext-promo" style="display:none;"><br /><?php echo $msg; ?> </span>'); $('a.pp-custom-moderation-promo').click(function() { $(this).hide().next('span').show(); return false; }); }); /* ]]> */ </script> <?php } }
function display($agent_type, $id_suffix, $current_selections = array(), $args = array()) { $defaults = array('agent_id' => 0, 'context' => '', 'label_select' => _x('Select >', 'user', 'pp'), 'label_unselect' => _x('< Unselect', 'user', 'pp'), 'label_selections' => __('Current Selections:', 'pp'), 'display_stored_selections' => true, 'create_dropdowns' => false, 'width' => '', 'width_current' => '', 'label_headline' => true, 'multi_select' => true, 'use_selection_js' => true); $args = apply_filters('pp_agents_selection_ui_args', array_merge($defaults, $args), $agent_type, $id_suffix); extract($args, EXTR_SKIP); $width = $width ? "width:{$width}px;" : ''; $this->register_ajax_js($agent_type, $id_suffix, $context, $agent_id, $args); if (true === $label_headline) { $label_headline = 'user' == $agent_type ? __('Select Users', 'pp') : __('Select Groups', 'pp'); } ?> <table id="pp-agent-selection_<?php echo $id_suffix; ?> -wrapper" class="pp-agents-selection"> <tr><td id="pp-agent-selection_<?php echo $id_suffix; ?> "> <h4><?php echo $label_headline; ?> </h4> <input id="agent_search_text_<?php echo $id_suffix; ?> " type="text" size="8" /> <button type="button" class="pp-agent-search-submit" id="agent_submit_<?php echo $id_suffix; ?> "><?php echo __ppw("Search"); ?> </button> <img class="waiting" style="display:none;" src="<?php echo esc_url(admin_url('images/wpspin_light.gif')); ?> " alt="" /> <?php if ('user' == $agent_type && pp_get_option('user_search_by_role')) { ?> <br /><select id="pp_search_role_<?php echo $id_suffix; ?> "> <option value=""><?php _e('(any WP role)', 'pp'); ?> </option> <?php wp_dropdown_roles(); ?> </select> <?php } ?> </td> <?php if ($display_stored_selections) { ?> <td style="vertical-align:bottom" class="pp-members-current"><h4><?php echo $label_selections; ?> </h4></td> <?php } ?> </tr> <tr><td> <select id="agent_results_<?php echo $id_suffix; ?> " class="pp_agent_results" <?php if ($multi_select) { ?> multiple="multiple" style="height:160px;<?php } else { ?> style="display:none;<?php } echo $width; ?> "></select> <span id="agent_msg_<?php echo $id_suffix; ?> "></span> </td> <?php if ($display_stored_selections) { if ($width_current) { $width = "width:{$width_current}px;"; } ?> <td class="pp-members-current"> <select id='<?php echo $id_suffix; ?> ' name='<?php echo $id_suffix; ?> []' multiple='multiple' style='height:160px;<?php echo $width; ?> float:right'> <?php $display_property = 'user' == $agent_type ? 'user_login' : 'display_name'; foreach ($current_selections as $agent) { $attribs = isset($agent->display_name) && $agent->user_login != $agent->display_name ? 'title="' . esc_attr($agent->display_name) . '"' : ''; ?> <?php $data = apply_filters('pp_agents_selection_ui_attribs', array('attribs' => $attribs, 'user_caption' => $agent->{$display_property}), $agent_type, $id_suffix, $agent); ?> <option value="<?php echo $agent->ID; ?> " <?php echo $data['attribs']; ?> ><?php echo $data['user_caption']; ?> </option> <?php } ?> </select><br /> </td> <?php } ?> </tr> <?php do_action('_pp_agents_selection_ui_select_pre', $id_suffix); ?> <tr> <?php do_action('pp_agents_selection_ui_select_pre', $id_suffix); ?> <td><button type="button" id="select_agents_<?php echo $id_suffix; ?> " class="pp_add" style="float:right<?php if (!$multi_select) { ?> ;display:none;<?php } ?> "><?php echo $label_select; ?> </button></td> <?php if ($display_stored_selections) { ?> <td class="pp-members-current"><button type="button" id="unselect_agents_<?php echo $id_suffix; ?> " class="pp_remove"><?php echo $label_unselect; ?> </button></td> <?php } ?> </tr> </table> <?php if (!defined('PPM_VERSION') && pp_get_option('display_extension_hints')) { if (0 === validate_plugin("pp-membership/pp-membership.php")) { $msg = __('To set date limits on group membership, activate the PP Membership plugin.', 'pp'); } elseif (true == pp_key_status()) { $msg = sprintf(__('To set date limits on group membership, %1$sinstall%2$s the PP Membership plugin.', 'pp'), '<a href="admin.php?page=pp-settings&pp_tab=install">', '</a>'); } else { $msg = sprintf(__('To set date limits on group membership, %1$senter%2$s or %3$spurchase%4$s a support key and install the PP Membership plugin.', 'pp'), '<a href="admin.php?page=pp-settings&pp_tab=install">', '</a>', '<a href="http://presspermit.com/purchase">', '</a>'); } echo "<div class='pp-ext-promo'>{$msg}</div>"; } $csv = $current_selections ? implode(',', array_keys($current_selections)) : ''; $csv = apply_filters('pp_agents_selection_ui_csv', $csv, $id_suffix, $current_selections); ?> <input type="hidden" id="<?php echo $id_suffix; ?> _csv" name="<?php echo $id_suffix; ?> _csv" value="<?php echo $csv; ?> " /> <?php }
function display($agent_type, $id_suffix, $current_selections = array(), $args = array()) { $defaults = array('agent_id' => 0, 'context' => '', 'label_select' => _x('Select >', 'user', 'pp'), 'label_unselect' => _x('< Unselect', 'user', 'pp'), 'label_selections' => __('Current Selections:', 'pp'), 'display_stored_selections' => true, 'create_dropdowns' => false, 'width' => '', 'width_current' => '', 'label_headline' => true, 'multi_select' => true, 'use_selection_js' => true); $args = apply_filters('pp_agents_selection_ui_args', array_merge($defaults, $args), $agent_type, $id_suffix); extract($args, EXTR_SKIP); $width = $width ? "width:{$width}px;" : ''; $this->register_ajax_js($agent_type, $id_suffix, $context, $agent_id, $args); if ('user' == $agent_type) { if (defined('PP_USER_LASTNAME_SEARCH') && !defined('PP_USER_SEARCH_FIELD')) { $default_search_field = 'last_name'; } elseif (defined('PP_USER_SEARCH_FIELD')) { $default_search_field = PP_USER_SEARCH_FIELD; } else { $default_search_field = ''; } } if (true === $label_headline) { if ('user' == $agent_type) { if ($default_search_field) { $search_caption = __(ucwords(str_replace('_', ' ', $default_search_field)), 'pp'); $label_headline = sprintf(__('Find Users by %s', 'pp'), $search_caption); } else { $label_headline = __('Find Users', 'pp'); } } else { $label_headline = __('Select Groups', 'pp'); } } ?> <table id="pp-agent-selection_<?php echo $id_suffix; ?> -wrapper" class="pp-agents-selection"> <tr><td id="pp-agent-selection_<?php echo $id_suffix; ?> " style="vertical-align:top"> <h4><?php echo $label_headline; ?> </h4> <input id="agent_search_text_<?php echo $id_suffix; ?> " type="text" size="8" /> <button type="button" class="pp-agent-search-submit" id="agent_submit_<?php echo $id_suffix; ?> "><?php echo __ppw("Search"); ?> </button> <?php if ('user' == $agent_type) { ?> <br /> <?php $title = !defined('PP_USER_SEARCH_META_FIELDS') && pp_is_user_administrator() && pp_get_option('advanced_options') && pp_get_option('display_hints') ? __('For additional fields, define constant PP_USER_SEARCH_META_FIELDS', 'pp') : ''; $fields = array('first_name' => __('First Name', 'pp'), 'last_name' => __('Last Name', 'pp'), 'nickname' => __('Nickname', 'pp')); if (defined('PP_USER_SEARCH_META_FIELDS')) { $custom_fields = str_replace(' ', '', PP_USER_SEARCH_META_FIELDS); $custom_fields = explode(',', $custom_fields); foreach ($custom_fields as $cfield) { $fields[$cfield] = __(ucwords(str_replace('_', ' ', $cfield)), 'pp'); } } if (isset($fields[$default_search_field])) { unset($fields[$default_search_field]); } $ilim = defined('PP_USER_SEARCH_META_FIELDS') ? 6 : 3; for ($i = 0; $i < $ilim; $i++) { ?> <div class="pp-user-meta-search" <?php if ($i > 0 && empty($_GET["pp_search_user_meta_key_{$i}_{$id_suffix}"])) { echo ' style="display:none;"'; } ?> > <select id="pp_search_user_meta_key_<?php echo $i; ?> _<?php echo $id_suffix; ?> "> <option value=""><?php _e('(user field)', 'pp'); ?> </option> <?php foreach ($fields as $field => $lbl) { ?> <option value="<?php echo $field; ?> "><?php echo $lbl; ?> </option> <?php } ?> </select> <input id="pp_search_user_meta_val_<?php echo $i; ?> _<?php echo $id_suffix; ?> " type="text" <?php if (empty($_GET["pp_search_user_meta_key_{$i}_{$id_suffix}"])) { echo 'style="display:none"'; } ?> title="<?php echo $title; ?> " size="8" /> <?php if ($i < $ilim - 1) { ?> <span class="pp-usermeta-field-more" <?php if (empty($_GET["pp_search_user_meta_key_{$i}_{$id_suffix}"])) { echo 'style="display:none"'; } ?> >+</span> <?php } ?> </div> <?php } ?> <?php } ?> <?php if ('user' == $agent_type && pp_get_option('user_search_by_role')) { ?> <select id="pp_search_role_<?php echo $id_suffix; ?> " class="pp-search-role"> <option value=""><?php _e('(any WP role)', 'pp'); ?> </option> <?php wp_dropdown_roles(); ?> </select> <?php } ?> </td> <?php if ($display_stored_selections) { ?> <td style="vertical-align:top" class="pp-members-current"> </td> <?php } ?> </tr> <tr><td> <h4><?php _e('Search Results:', 'pp'); ?> <img class="waiting" style="display:none;float:right" src="<?php echo esc_url(admin_url('images/wpspin_light.gif')); ?> " alt="" /></h4> <select id="agent_results_<?php echo $id_suffix; ?> " class="pp_agent_results" <?php if ($multi_select) { ?> multiple="multiple" style="height:160px;<?php } else { ?> style="display:none;<?php } echo $width; ?> "></select> <span id="agent_msg_<?php echo $id_suffix; ?> "></span> </td> <?php if ($display_stored_selections) { if ($width_current) { $width = "width:{$width_current}px;"; } ?> <td class="pp-members-current"> <h4><?php echo $label_selections; ?> </h4> <select id='<?php echo $id_suffix; ?> ' name='<?php echo $id_suffix; ?> []' multiple='multiple' style='height:160px;<?php echo $width; ?> '> <?php if ('user' == $agent_type) { $display_property = defined('PP_USER_RESULTS_DISPLAY_NAME') ? 'display_name' : 'user_login'; } else { $display_property = 'display_name'; } foreach ($current_selections as $agent) { $attribs = isset($agent->display_name) && $agent->user_login != $agent->display_name ? 'title="' . esc_attr($agent->display_name) . '"' : ''; ?> <?php $data = apply_filters('pp_agents_selection_ui_attribs', array('attribs' => $attribs, 'user_caption' => $agent->{$display_property}), $agent_type, $id_suffix, $agent); ?> <option value="<?php echo $agent->ID; ?> " <?php echo $data['attribs']; ?> ><?php echo $data['user_caption']; ?> </option> <?php } ?> </select><br /> </td> <?php } ?> </tr> <?php do_action('_pp_agents_selection_ui_select_pre', $id_suffix); ?> <tr> <?php do_action('pp_agents_selection_ui_select_pre', $id_suffix); ?> <td><button type="button" id="select_agents_<?php echo $id_suffix; ?> " class="pp_add" style="float:right<?php if (!$multi_select) { ?> ;display:none;<?php } ?> "><?php echo $label_select; ?> </button></td> <?php if ($display_stored_selections) { ?> <td class="pp-members-current"><button type="button" id="unselect_agents_<?php echo $id_suffix; ?> " class="pp_remove"><?php echo $label_unselect; ?> </button></td> <?php } ?> </tr> </table> <?php if (!defined('PPM_VERSION') && pp_get_option('display_extension_hints')) { if (0 === validate_plugin("pp-membership/pp-membership.php")) { $msg = __('To set date limits on group membership, activate the PP Membership plugin.', 'pp'); } elseif (true == pp_key_status()) { $msg = sprintf(__('To set date limits on group membership, %1$sinstall%2$s the PP Membership plugin.', 'pp'), '<a href="admin.php?page=pp-settings&pp_tab=install">', '</a>'); } else { $msg = sprintf(__('To set date limits on group membership, %1$senter%2$s or %3$spurchase%4$s a support key and install the PP Membership plugin.', 'pp'), '<a href="admin.php?page=pp-settings&pp_tab=install">', '</a>', '<a href="http://presspermit.com/purchase">', '</a>'); } echo "<div class='pp-ext-promo'>{$msg}</div>"; } $csv = $current_selections ? implode(',', array_keys($current_selections)) : ''; $csv = apply_filters('pp_agents_selection_ui_csv', $csv, $id_suffix, $current_selections); ?> <input type="hidden" id="<?php echo $id_suffix; ?> _csv" name="<?php echo $id_suffix; ?> _csv" value="<?php echo $csv; ?> " /> <?php }
public static function _select_exceptions_ui($type_objects, $taxonomy_objects, $args = array()) { // Discourage anon/all metagroups having read exceptions for specific posts. Normally, that's what post visibility is for. $is_all_anon = isset($args['agent']) && !empty($args['agent']->metagroup_id) && in_array($args['agent']->metagroup_id, array('wp_anon', 'wp_all')); ?> <img id="pp_add_exception_waiting" class="waiting" style="display:none;position:absolute" src="<?php echo esc_url(admin_url('images/wpspin_light.gif')); ?> " alt="" /> <table id="pp_add_exception"> <thead> <tr> <th><?php _e('Post Type', 'pp'); ?> </th> <th class="pp-select-x-operation" style="display:none"><?php _e('Post Operation', 'pp'); ?> </th> <th class="pp-select-x-mod-type" style="display:none"><?php _e('Adjustment', 'pp'); ?> </th> <th class="pp-select-x-via-type" style="display:none"><?php _e('Qualification', 'pp'); ?> </th> <th class="pp-select-x-status" style="display:none"><?php _e('Statuses', 'pp'); ?> </th> <th class="pp-add-exception" style="display:none"></th> </tr> </thead> <tbody> <tr> <td> <select name="pp_select_x_for_type"> <?php unset($type_objects['attachment']); // may be re-added by extension $type_objects = apply_filters('pp_append_exception_types', _pp_order_types(apply_filters('pp_exception_types', $type_objects))); if (!empty($args['external'])) { $type_objects = array_merge($type_objects, $args['external']); } self::draw_type_options($type_objects, array('option_any' => true)); do_action('pp_exception_types_dropdown', $args); ?> </select></td> <td class="pp-select-x-operation" style="display:none"><select name="pp_select_x_operation"></select></td> <td class="pp-select-x-mod-type" style="display:none"><select name="pp_select_x_mod_type"></select></td> <td class="pp-select-x-via-type" style="display:none"><select name="pp_select_x_via_type"></select> <div class="pp-select-x-assign-for" id="pp_select_x_assign_for" style="display:none"> <p class="pp-checkbox"> <input type="checkbox" name="pp_select_x_item_assign" id="pp_select_x_item_assign" checked="checked" value="1"><label for="pp_select_x_item_assign"><?php _e('for item', 'pp'); ?> </label> </p> <?php /* </p> */ ?> </div> </td> <td class="pp-select-x-status" style="display:none"> <p class="pp-checkbox" > <input type="checkbox" id="pp_select_x_cond_" name="pp_select_x_cond[]" checked="checked" value="" /><label id="lbl_pp_select_x_cond_" for="pp_select_x_cond_"> <?php _e('(all)', 'pp'); ?> </label> </p> </td> <td class="pp-select-items" style="display:none;padding-right:0"><?php self::_item_select_ui(array_merge($type_objects, $taxonomy_objects)); ?> </td> </tr> </tbody> </table> <?php if ($is_all_anon) { ?> <div id="pp-all-anon-warning" class="pp-red" style="display:none;margin-top:10px;margin-bottom:10px"> <?php _e('Warning: Content hidden by exceptions will be displayed if PP is deactivated. Consider setting a private Visibility on Edit Post screen instead.', 'pp'); ?> </div> <script type="text/javascript"> /* <![CDATA[ */ jQuery(document).ready( function($) { $(document).on('change','select[name="pp_select_x_for_type"]',function(){ $('#pp-all-anon-warning').hide(); }); var handle_anon_warning = function() { if ( ( 'read' == $('select[name="pp_select_x_operation"]').val() ) && ( 'additional' != $('select[name="pp_select_x_mod_type"]').val() ) && ( 'pp-post-object' == $('select[name="pp_select_x_via_type"] option:selected').attr('class') ) ) { $('#pp-all-anon-warning').show(); } else { $('#pp-all-anon-warning').hide(); } } $(document).on( 'pp_exceptions_ui', handle_anon_warning ); $(document).on('change','select[name="pp_select_x_via_type"]', handle_anon_warning ); }); </script> <?php } ?> <div class='pp-ext-promo'> <?php if (!defined('PPCE_VERSION') && pp_get_option('display_extension_hints')) { if (0 === validate_plugin("pp-collaborative-editing/pp-collaborative-editing.php")) { $msg = __('To assign exceptions for editing, parent selection or term assignment, activate the PP Collaborative Editing plugin.', 'pp'); } elseif (true == pp_key_status()) { $msg = sprintf(__('To assign exceptions for editing, parent selection or term assignment, %1$sinstall%2$s the PP Collaborative Editing plugin.', 'pp'), '<a href="admin.php?page=pp-settings&pp_tab=install">', '</a>'); } else { $msg = sprintf(__('To assign exceptions for editing, parent selection or term assignment, %1$senter%2$s or %3$spurchase%4$s a support key and install the PP Collaborative Editing plugin.', 'pp'), '<a href="admin.php?page=pp-settings&pp_tab=install">', '</a>', '<a href="http://presspermit.com/purchase">', '</a>'); } echo "<div>{$msg}</div>"; } ?> <?php if (function_exists('bbp_get_version') && !defined('PPP_VERSION') && pp_get_option('display_extension_hints')) { if (0 === validate_plugin("pp-compatibility/pp-compatibility.php")) { $msg = __('To assign exceptions for bbPress forums, activate the PP Compatibility Pack plugin.', 'pp'); } elseif (true == pp_key_status()) { $msg = sprintf(__('To assign exceptions for bbPress forums, %1$sinstall%2$s the PP Compatibility Pack plugin.', 'pp'), '<a href="admin.php?page=pp-settings&pp_tab=install">', '</a>'); } else { $msg = sprintf(__('To assign exceptions for bbPress forums, %1$senter%2$s or %3$spurchase%4$s a support key and install the PP Compatibility Pack plugin.', 'pp'), '<a href="admin.php?page=pp-settings&pp_tab=install">', '</a>', '<a href="http://presspermit.com/purchase">', '</a>'); } echo "<div>{$msg}</div>"; } ?> </div> <?php }