/** * * @return WPRSS_FTP_Admin_User_Ajax */ public static function get_instance() { if ( is_null( self::$_instance ) ) { $class_name = __CLASS__; self::$_instance = new $class_name; } return self::$_instance; }
/** * Renders the author settings * * @since 1.9.3 */ public function render_author_options( $post_id = NULL, $meta_row_title = '', $meta_label_for = '' ) { // Get the options $options = WPRSS_FTP_Settings::get_instance()->get_computed_options( $post_id ); $def_author = ( $post_id !== NULL ) ? $options['def_author'] : $this->get( 'def_author' ); $author_fallback_method = ( $post_id !== NULL ) ? $options['author_fallback_method'] : $this->get( 'author_fallback_method' ); $author_fallback_method = ( strtolower( $author_fallback_method ) === 'use_existing' )? 'existing' : $author_fallback_method; $fallback_author = ( $post_id !== NULL ) ? $options['fallback_author'] : $this->get( 'fallback_author' ); $no_author_found = ( $post_id !== NULL ) ? $options['no_author_found'] : $this->get( 'no_author_found' ); // Set the HTML tag ids $ids = array( 'def_author' => 'ftp-def-author', 'author_fallback_method' => 'ftp-author-fallback-method', 'fallback_author' => 'ftp-fallback-author', 'no_author_found' => 'ftp-no-author-skip' ); // If in meta, copy the keys into the values if ( $post_id !== NULL ) { foreach ( $ids as $field => $id ) { $ids[$field] = $field; } } // Set the HTML tag names $names = array( 'def_author' => 'def_author', 'author_fallback_method' => 'author_fallback_method', 'fallback_author' => 'fallback_author', 'no_author_found' => 'no_author_found', ); // Set the names appropriately according to the page, meta or settings foreach( $names as $field => $name) { $names[$field] = ( $post_id !== NULL )? WPRSS_FTP_Meta::META_PREFIX . $name : self::OPTIONS_NAME . "[$name]"; } // If in meta, print the table row if ( $post_id !== NULL ) : ?> <tr> <th> <label for="<?php echo $meta_label_for; ?>"> <?php echo $meta_row_title; ?> </label> </th> <td> <?php endif; ?> <!-- Author to use --> <span id="wprss-ftp-authors-options"> <label for="<?php echo $ids['def_author']; ?>">Use </label> <?php $users = WPRSS_FTP_Meta::get_users_array( WPRSS_FTP_Admin_User_Ajax::get_instance()->is_over_threshold() ? (array)$def_author : false ) ?> <?php echo WPRSS_FTP_Utils::array_to_select( $users, array( 'id' => $ids['def_author'], 'name' => $names['def_author'], 'selected' => $def_author, )); ?> <script type="text/javascript"> top.wprss.f2p.userAjax.addElement('#<?php echo $ids['def_author'] ?>'); </script> <?php echo WPRSS_Help::get_instance()->do_tooltip( WPRSS_FTP_HELP_PREFIX.'post_author' ); ?> </span> <!-- Separator --> <?php if ( $post_id !== NULL ) : ?> </td></tr> <tr class="wprss-tr-hr wprss-ftp-authors-hide-if-using-existing"> <th> </th> <td> <?php endif; ?> <!-- Section that hides when using an existing user --> <span class="wprss-ftp-authors-hide-if-using-existing"> <!-- Radio group if author has no user --> <span class="ftp-author-using-in-feed"> <label for="<?php echo $ids['author_fallback_method']; ?>"> <?php _e( 'If the author in the feed is not an existing user', WPRSS_TEXT_DOMAIN ); ?>: </label> <br/> <?php echo implode( '', WPRSS_FTP_Utils::array_to_radio_buttons( array( 'existing' => __( 'Use the fallback user', WPRSS_TEXT_DOMAIN ), 'create' => __( 'Create a user for the author', WPRSS_TEXT_DOMAIN ) ), array( 'id' => $ids['author_fallback_method'], 'name' => $names['author_fallback_method'], 'checked' => $author_fallback_method, ) )); ?> </span> <!-- Radio group if author not found in feed --> <span class="ftp-author-using-in-feed"> <label for="<?php echo $ids['no_author_found']; ?>"> <?php _e( 'If the author is missing from the feed', WPRSS_TEXT_DOMAIN ); ?> </label> <br/> <?php echo implode( WPRSS_FTP_Utils::array_to_radio_buttons( array( 'fallback' => __( 'Use the fallback user', WPRSS_TEXT_DOMAIN ), 'skip' => __( 'Do not import the post', WPRSS_TEXT_DOMAIN ) ), array( 'id' => $ids['no_author_found'], 'name' => $names['no_author_found'], 'checked' => $no_author_found, ) )); ?> </span> </span> <?php if ( $post_id !== NULL ) : ?> </td></tr> <tr class="wprss-tr-hr wprss-ftp-authors-hide-if-using-existing"> <th> <label for="<?php echo $ids['fallback_author']; ?>"> <?php _e( 'Fallback User', WPRSS_TEXT_DOMAIN ); ?> </label> </th> <td> <?php endif; ?> <!-- Section that hides when using an existing user --> <span class="wprss-ftp-authors-hide-if-using-existing"> <?php if ( $post_id === NULL ) : ?> <label for="<?php echo $ids['fallback_author']; ?>"> <?php _e( 'Fallback user:'******'id' => $ids['fallback_author'], 'name' => $names['fallback_author'], 'selected' => $fallback_author, )); ?> <script type="text/javascript"> top.wprss.f2p.userAjax.addElement('#<?php echo $ids['fallback_author'] ?>', {<?php echo WPRSS_FTP_Admin_User_Ajax::REQUEST_VAR_EXISTING_USERS_ONLY ?>: true, <?php echo WPRSS_FTP_Admin_User_Ajax::REQUEST_VAR_LOGIN_NAMES ?>: true}); </script> <?php echo WPRSS_Help::get_instance()->do_tooltip( WPRSS_FTP_HELP_PREFIX.'fallback_author' ); ?> </span> <?php // Add scripts ?> <script type="text/javascript"> (function($){ $(document).ready( function(){ // Set a pointer to the dropdowns var dropdown1 = $('#<?php echo $ids['def_author']; ?>'); // Create the function that shows/hides the second section var authorsSection2UI = function(){ // Show second section only if the option to use the author in the feed is chosen $('.wprss-ftp-authors-hide-if-using-existing').toggle( dropdown1.val() === '.' ); } // Set the on change handlers dropdown1.change( authorsSection2UI ); // Run the function at least once authorsSection2UI(); }); })(jQuery); </script> <?php // End of scripts // If in meta, close the table row if ( $post_id !== NULL ) { ?></td></tr><?php } }