Публикация в группе: Предложения по новому функционалу WP-Recall

Категории группы: Идеи и Предложения

Привет. В админке вордпресса можно при заполнении имени, фамилии и ника выбрать сразу (без перезагрузки) отображаемое имя. В плагине реколл этой возможности нет. Мы сначала заполняем три поля, сохраняем настройки, а только после сохранения можем селектом выбрать отображаемое имя:   Но вместе мы сделаем этот плагин еще лучше!

Итак: Файл \recall\add-on\profile\index.php и сразу после этих строк

 

	if($select_display){
		$profile_block .= '<tr>
		<th><label for="display_name">Отображаемое имя:</label></th>
		<td>
		<select name="display_name" class="regular-dropdown" id="display_name">';						
			$public_display = array();
			$public_display['display_displayname'] = esc_attr($userdata->display_name);
			$public_display['display_nickname'] = esc_attr($userdata->nickname);
			$public_display['display_username'] = esc_attr($userdata->user_login);
			$public_display['display_firstname'] = esc_attr($userdata->first_name);
			if($userdata->first_name&&$userdata->last_name) $public_display['display_firstlast'] = esc_attr($userdata->first_name) . '&nbsp;' . esc_attr($userdata->last_name);
			if($userdata->first_name&&$userdata->last_name) $public_display['display_lastfirst'] = esc_attr($userdata->last_name) . '&nbsp;' . esc_attr($userdata->first_name);
			$public_display = array_unique(array_filter(array_map('trim', $public_display)));
			foreach((array)$public_display as $id => $item) { 
				$profile_block .= '<option id="'.$id.'" value="'.esc_attr($item).'">'.esc_attr($item).'</option>';
			} 
			$profile_block .= '</select>
		</td></tr>';
	}

Вставляем

?>
	<script>( function($) {
		$(document).ready( function() {
		var select = $('#display_name');

		if ( select.length ) {
			$('#first_name, #last_name, #nickname').bind( 'blur.user_profile', function() {
				var dub = [],
					inputs = {
						display_nickname  : $('#nickname').val() || '',
						display_username  : $('#user_login').val() || '',
						display_firstname : $('#first_name').val() || '',
						display_lastname  : $('#last_name').val() || ''
					};

				if ( inputs.display_firstname && inputs.display_lastname ) {
					inputs['display_firstlast'] = inputs.display_firstname + ' ' + inputs.display_lastname;
					inputs['display_lastfirst'] = inputs.display_lastname + ' ' + inputs.display_firstname;
				}

				$.each( $('option', select), function( i, el ){
					dub.push( el.value );
				});

				$.each(inputs, function( id, value ) {
					if ( ! value )
						return;

					var val = value.replace(/<\/?[a-z][^>]*>/gi, '');

					if ( inputs[id].length && $.inArray( val, dub ) == -1 ) {
						dub.push(val);
						$('<option />', {
							'text': val
						}).appendTo( select );
					}
				});
			});
		}
	});
	} ) ( jQuery );
</script>
<?php

Сохраняем и все работает так как и положено:

 

Вступайте в мою группу: "Otshelnik-Fm - мои работы (код, плагины, дополнения, статьи и руководства)"
для уведомления о обновлениях и новостях в вашем фиде
20

Автор публикации

не в сети 6 дней

Вова (Otshelnik-Fm)

4 509
Живой, бодрый, полон идей!
Комментарии: 2254Публикации: 249Регистрация: 27-01-2013Продаж/Покупок: 0/0