Дополнительные поля для Персональной страницы by Fatal1ti


Дополнительные поля для Персональной страницы by Fatal1ti

3291
9.6 из 10
Проголосовало: 10





По просьбе пользователя "FAKIR" сделал хак для Персональной страницы.
Многие знают что в редактировании данных пользователя очень мало полей,
А вам например нужно чтобы пользователя заполнил как можно больше информации о себе:
WMR-кошелёк, любимые фильмы, музыку, skype и т.д.
Данный хак увеличивает количество дополнительных полей на девять штук


- Как работает это чудо? Ответ: Хак использует поле "Подпись"
Но сама поле подпись тоже останется доступным))

Особенности:

- Максимальная Длина введенных символов в эти доп.поля и в подпись в сумме 1000
Довольно таки хорошее число и её должно хватить

- Вывод информации из доп.поля в Персон. странице в любом место

- Информацию также можно выводить на форуме =D, что очень удобно в некоторых планах

- Заполнять все поля не обязательно

Установка не так уж легка, но надеюсь всё подробно написать:

Заходим в ПУ » Управление дизайном » Пользователи » "Форма редактирования персональной информации"
И в самый конец добавляем этот код:
Code
<script>  
var adar = document.getElementById("siF9");  
var contedant = adar.innerHTML;  
var aratr = contedant.replace('_x_Polus2',' aXxXa');  
var madas = new Array();  
madas = aratr.split(" ");  
var razam =madas.length;  
var afr=2;  
for (var g=0; g<razam;g++) {  
if(madas[g]=='aXxXa'){  
var afr=1;  
}  
}  
// Author Fatal1ti  
if(afr=='1'){  
$('#siM33').after('<tr class="tewrt"><td id="rra1">Название #1</td><td id="farr1"></td></tr><tr class="tewrt"><td id="rra2">Название #2</td><td id="farr2"></td></tr><tr class="tewrt"><td id="rra3">Название #3</td><td id="farr3"></td></tr><tr class="tewrt"><td id="rra4">Название #4</td><td id="farr4"></td></tr><tr class="tewrt"><td id="rra5">Название #5</td><td id="farr5"></td></tr><tr class="tewrt"><td id="rra6">Название #6</td><td id="farr6"></td></tr><tr class="tewrt"><td id="rra7">Название #7</td><td id="farr7"></td></tr><tr class="tewrt"><td id="rra8">Название #8</td><td id="farr8"></td></tr><tr class="tewrt"><td id="rra9">Название #9</td><td id="farr9"></td></tr>');
var text = document.getElementById("siF9");  
var content = text.innerHTML;  
var mas = new Array();  
mas = content.split("_x_");  
var razm =mas.length;  
var artt=mas[0];  
document.getElementById('siF9').innerHTML = artt;  
for (var i=1; i<razm;i++){  
var afr=mas[i];  
if(afr=='Polus9'){afr='';}
var afrq=afr.replace('Polus'+i+' ','');  
$("#farr"+i).append('<input type="text" id="apodp'+i+'" value="'+afrq+'" style="width: 100%;">');  
}  
// Site Author Novi4ok.Ru  
$('.manFlSbm:last').click(function() {  
  for(i=1;i<10;i++) {  
$('#siF9:last').val($('#siF9').val() + '_x_Polus'+i+' '+ $('#apodp' + i).val());  
$('#rra' + i).remove()  
$('#farr' + i).remove()  

  }  
});  
}else {  

$('#siM33').after('<tr class="tewrt"><td id="rra1">Название #1</td><td id="farr1"></td></tr><tr class="tewrt"><td id="rra2">Название #2</td><td id="farr2"></td></tr><tr class="tewrt"><td id="rra3">Название #3</td><td id="farr3"></td></tr><tr class="tewrt"><td id="rra4">Название #4</td><td id="farr4"></td></tr><tr class="tewrt"><td id="rra5">Название #5</td><td id="farr5"></td></tr><tr class="tewrt"><td id="rra6">Название #6</td><td id="farr6"></td></tr><tr class="tewrt"><td id="rra7">Название #7</td><td id="farr7"></td></tr><tr class="tewrt"><td id="rra8">Название #8</td><td id="farr8"></td></tr><tr class="tewrt"><td id="rra9">Название #9</td><td id="farr9"></td></tr>');  
for(j=1;j<10;j++) {  
$('#farr'+j).append('<input id="apodp'+j+'" style="width:100%;background:white;" />');  
}  
$('.manFlSbm:last').click(function() {  
  for(i=1;i<10;i++) {  
$('#siF9:last').val($('#siF9').val() + '_x_Polus'+i+' '+ $('#apodp' + i).val());  
$('#rra' + i).remove()  
$('#farr' + i).remove()  
  }  
});  
}  
</script>

Сохраняем

Далее идём. Если у вас подключены локальные пользователи,
То заходим сюда: ПУ » Управление дизайном » Пользователи » Страница регистрации пользователей
И перед /body вставляем этот код:
Code
<script>  
var adar = document.getElementById("siF9");  
var contedant = adar.innerHTML;  
var aratr = contedant.replace('_x_Polus2',' aXxXa');  
var madas = new Array();  
madas = aratr.split(" ");  
var razam =madas.length;  
var afr=2;  
for (var g=0; g<razam;g++) {  
if(madas[g]=='aXxXa'){  
var afr=1;  
}  
}  
// Author Fatal1ti  
if(afr=='1'){  
$('#siM33').after('<tr class="tewrt"><td id="rra1">Название #1</td><td id="farr1"></td></tr><tr class="tewrt"><td id="rra2">Название #2</td><td id="farr2"></td></tr><tr class="tewrt"><td id="rra3">Название #3</td><td id="farr3"></td></tr><tr class="tewrt"><td id="rra4">Название #4</td><td id="farr4"></td></tr><tr class="tewrt"><td id="rra5">Название #5</td><td id="farr5"></td></tr><tr class="tewrt"><td id="rra6">Название #6</td><td id="farr6"></td></tr><tr class="tewrt"><td id="rra7">Название #7</td><td id="farr7"></td></tr><tr class="tewrt"><td id="rra8">Название #8</td><td id="farr8"></td></tr><tr class="tewrt"><td id="rra9">Название #9</td><td id="farr9"></td></tr>');  
var text = document.getElementById("siF9");  
var content = text.innerHTML;  
var mas = new Array();  
mas = content.split("_x_");  
var razm =mas.length;  
var artt=mas[0];  
document.getElementById('siF9').innerHTML = artt;  
for (var i=1; i<razm;i++){  
var afr=mas[i];  
if(afr=='Polus6'){afr='';}
var afrq=afr.replace('Polus'+i+' ','');  
$("#farr"+i).append('<input type="text" id="apodp'+i+'" value="'+afrq+'" style="width: 100%;">');  
}  
// Site Author Novi4ok.Ru  
$('.manFlSbm:last').click(function() {  
  for(i=1;i<10;i++) {  
$('#siF9:last').val($('#siF9').val() + '_x_Polus'+i+' '+ $('#apodp' + i).val());  
$('#rra' + i).remove()  
$('#farr' + i).remove()  

  }  
});  
}
else {  

$('#siM33').after('<tr class="tewrt"><td id="rra1">Название #1</td><td id="farr1"></td></tr><tr class="tewrt"><td id="rra2">Название #2</td><td id="farr2"></td></tr><tr class="tewrt"><td id="rra3">Название #3</td><td id="farr3"></td></tr><tr class="tewrt"><td id="rra4">Название #4</td><td id="farr4"></td></tr><tr class="tewrt"><td id="rra5">Название #5</td><td id="farr5"></td></tr><tr class="tewrt"><td id="rra6">Название #6</td><td id="farr6"></td></tr><tr class="tewrt"><td id="rra7">Название #7</td><td id="farr7"></td></tr><tr class="tewrt"><td id="rra8">Название #8</td><td id="farr8"></td></tr><tr class="tewrt"><td id="rra9">Название #9</td><td id="farr9"></td></tr>');  
for(j=1;j<10;j++) {  
$('#farr'+j).append('<input id="apodp'+j+'" type="text" style="width:100%;background:white;" />');  
}  
$('.manFlSbm:last').click(function() {  
  for(i=1;i<10;i++) {  
$('#siF9:last').val($('#siF9').val() + '_x_Polus'+i+' '+ $('#apodp' + i).val());  
$('#rra' + i).remove()  
$('#farr' + i).remove()  
if(i==9){
document.getElementById('siF9').innerHTML = '';
}

}  

// Site Author Novi4ok.Ru  
});  
}  
</script>


У кого uNet пользователи - тем этот код выше не вставлять

Теперь заходим в ПУ » Управление дизайном » Пользователи » Персональная страница пользователя
И ищем такой код: $_SIGNATURE$ - Этот код выводит подпись пользователя
Заменяем его на этот код:
Code
<?if($_SIGNATURE$)?>
<?if(strrpos($_SIGNATURE$,'Polus1')>0)?>  
<?if(len(substr($_SIGNATURE$,0,strrpos($_SIGNATURE$,'_x_Polus1')))>0)?>

//Код ниже выводит подпись, если она есть и заполнены какие-то доп.поля
  <?substr($_SIGNATURE$,0,strrpos($_SIGNATURE$,'_x_Polus1'))?>  

<?else?>

//Тут ничего нету т.к. пользователь не ввёл ничего в подпись, но некоторые доп.поля заполнил

<?endif?>
  <?else?>  

//Код ниже выводит подпись, а пользователь все доп.поля оставил пустыми(незаполненными)
  $_SIGNATURE$  

<?endif?>
<?else?>

//Вообще ничего не заполнял, ни подписи, ни доп.полей

<?endif?>


Комментарии (которые начинаются с двух косых //) удалите.
Их я написал, чтобы вы поняли что за что отвечает

Теперь в Персональной странице где хотите выводите доп. поля через эти коды:
Code
<?if(strrpos($_SIGNATURE$,'_x_Polus1')>2)?>
<?substr($_SIGNATURE$,strrpos($_SIGNATURE$,'_x_Polus1') + 9,strrpos($_SIGNATURE$,'_x_Polus2') - strrpos($_SIGNATURE$,'_x_Polus1') - 9)?>
<?endif?>

<?if(strrpos($_SIGNATURE$,'_x_Polus2')>2)?>
<?substr($_SIGNATURE$,strrpos($_SIGNATURE$,'_x_Polus2') + 9,strrpos($_SIGNATURE$,'_x_Polus3') - strrpos($_SIGNATURE$,'_x_Polus2') - 9)?>
<?endif?>

<?if(strrpos($_SIGNATURE$,'_x_Polus3')>2)?>
<?substr($_SIGNATURE$,strrpos($_SIGNATURE$,'_x_Polus3') + 9,strrpos($_SIGNATURE$,'_x_Polus4') - strrpos($_SIGNATURE$,'_x_Polus3') - 9)?>
<?endif?>

<?if(strrpos($_SIGNATURE$,'_x_Polus4')>2)?>
<?substr($_SIGNATURE$,strrpos($_SIGNATURE$,'_x_Polus4') + 9,strrpos($_SIGNATURE$,'_x_Polus5') - strrpos($_SIGNATURE$,'_x_Polus4') - 9)?>
<?endif?>

<?if(strrpos($_SIGNATURE$,'_x_Polus5')>2)?>
<?substr($_SIGNATURE$,strrpos($_SIGNATURE$,'_x_Polus5') + 9,strrpos($_SIGNATURE$,'_x_Polus6') - strrpos($_SIGNATURE$,'_x_Polus5') - 9)?>
<?endif?>

<?if(strrpos($_SIGNATURE$,'_x_Polus6')>2)?>
<?substr($_SIGNATURE$,strrpos($_SIGNATURE$,'_x_Polus6') + 9,strrpos($_SIGNATURE$,'_x_Polus7') - strrpos($_SIGNATURE$,'_x_Polus6') - 9)?>  
<?endif?>  

<?if(strrpos($_SIGNATURE$,'_x_Polus7')>2)?>
<?substr($_SIGNATURE$,strrpos($_SIGNATURE$,'_x_Polus7') + 9,strrpos($_SIGNATURE$,'_x_Polus8') - strrpos($_SIGNATURE$,'_x_Polus7') - 9)?>  
<?endif?>  

<?if(strrpos($_SIGNATURE$,'_x_Polus8')>2)?>
<?substr($_SIGNATURE$,strrpos($_SIGNATURE$,'_x_Polus8') + 9,strrpos($_SIGNATURE$,'_x_Polus9') - strrpos($_SIGNATURE$,'_x_Polus8') - 9)?>  
<?endif?>  

<?if(strrpos($_SIGNATURE$,'_x_Polus9')>2)?>
<?substr($_SIGNATURE$,strrpos($_SIGNATURE$,'_x_Polus9') + 9,len($_SIGNATURE$) - strrpos($_SIGNATURE$,'_x_Polus9'))?>
<?endif?>


Все они идут по порядку, из них вы можете делать ссылки или просто информацию
Также есть вариант сделать выбор цвета фона пользователем и т.п.

Теперь, если вы используете форум заходим сюда:
ПУ » Управление дизайном » Форум » Вид материалов
Находим такой код: $SIGNATURE$ и заменяем его на это:
Code
<?if($SIGNATURE$)?>
<?if(strrpos($SIGNATURE$,'Polus1')>0)?>  
<?if(len(substr($SIGNATURE$,0,strrpos($SIGNATURE$,'_x_Polus1')))>0)?>

//Код ниже выводит подпись, если она есть и заполнены какие-то доп.поля
<?substr($SIGNATURE$,0,strrpos($SIGNATURE$,'_x_Polus1'))?>  

<?else?>

//Тут ничего нету т.к. пользователь не ввёл ничего в подпись, но некоторые доп.поля заполнил

<?endif?>
<?else?>  

//Код ниже выводит подпись, а пользователь все доп.поля оставил пустыми(незаполненными)
$SIGNATURE$

<?endif?>
<?else?>

//Вообще ничего не заполнял, ни подписи, ни доп.полей

<?endif?>


Комментарии (которые начинаются с двух косых //) удалите.

И если тут хотите вывести информацию из доп.поля то вот коды для вывода:
Code
<?if(strrpos($SIGNATURE$,'_x_Polus1')>2)?>
<?substr($SIGNATURE$,strrpos($SIGNATURE$,'_x_Polus1') + 9,strrpos($SIGNATURE$,'_x_Polus2') - strrpos($SIGNATURE$,'_x_Polus1') - 9)?>
<?endif?>

<?if(strrpos($SIGNATURE$,'_x_Polus2')>2)?>
<?substr($SIGNATURE$,strrpos($SIGNATURE$,'_x_Polus2') + 9,strrpos($SIGNATURE$,'_x_Polus3') - strrpos($SIGNATURE$,'_x_Polus2') - 9)?>
<?endif?>

<?if(strrpos($SIGNATURE$,'_x_Polus3')>2)?>
<?substr($SIGNATURE$,strrpos($SIGNATURE$,'_x_Polus3') + 9,strrpos($SIGNATURE$,'_x_Polus4') - strrpos($SIGNATURE$,'_x_Polus3') - 9)?>
<?endif?>

<?if(strrpos($SIGNATURE$,'_x_Polus4')>2)?>
<?substr($SIGNATURE$,strrpos($SIGNATURE$,'_x_Polus4') + 9,strrpos($SIGNATURE$,'_x_Polus5') - strrpos($SIGNATURE$,'_x_Polus4') - 9)?>
<?endif?>

<?if(strrpos($SIGNATURE$,'_x_Polus5')>2)?>
<?substr($SIGNATURE$,strrpos($SIGNATURE$,'_x_Polus5') + 9,strrpos($SIGNATURE$,'_x_Polus6') - strrpos($SIGNATURE$,'_x_Polus5') - 9)?>
<?endif?>

<?if(strrpos($SIGNATURE$,'_x_Polus6')>2)?>
<?substr($SIGNATURE$,strrpos($SIGNATURE$,'_x_Polus6') + 9,strrpos($SIGNATURE$,'_x_Polus7') - strrpos($SIGNATURE$,'_x_Polus6') - 9)?>  
<?endif?>  

<?if(strrpos($SIGNATURE$,'_x_Polus7')>2)?>
<?substr($SIGNATURE$,strrpos($SIGNATURE$,'_x_Polus7') + 9,strrpos($SIGNATURE$,'_x_Polus8') - strrpos($SIGNATURE$,'_x_Polus7') - 9)?>  
<?endif?>  

<?if(strrpos($SIGNATURE$,'_x_Polus8')>2)?>
<?substr($SIGNATURE$,strrpos($SIGNATURE$,'_x_Polus8') + 9,strrpos($SIGNATURE$,'_x_Polus9') - strrpos($SIGNATURE$,'_x_Polus8') - 9)?>  
<?endif?>  

<?if(strrpos($SIGNATURE$,'_x_Polus9')>2)?>
<?substr($SIGNATURE$,strrpos($SIGNATURE$,'_x_Polus9') + 9,len($SIGNATURE$) - strrpos($SIGNATURE$,'_x_Polus9'))?>
<?endif?>


В общем-то и всё, надеюсь всё понятно - вопросы в комментарии.
Доп. полей можно было сделать ещё больше - например 15,
Но тогда будет немного хуже для поля подписи,
Так как там уменьшается мак. количество символов..

На этом все, удачи)
Автор публикации: Загрузка
Загрузка
Fatal1ti, это его n материал
Источник: http://novi4ok.ru
  • Всего комментариев: 12

KoNOOS
0
KoNOOS написал: Написано 05 Декабря 2014 в 14:16
Комментарий №11
Вот у меня старый сайт заблокировали из за какого то скрипта)
Данный скрипт ucoz не запрещает? не будет бана?)

Вовчик
0
Вовчик написал: Написано 06 Декабря 2014 в 09:04
Комментарий №12
из-за скрытие рекламы наверно...

А как заблокировали? из-за большого get запросов или за нарушение правил?

Из-за этого скрипта не заблокируют...

nick
+1
nick написал: Написано 18 Ноября 2012 в 23:32
Комментарий №10
нехрена путево не работает(

GhostlyP
0
GhostlyP написал: Написано 11 Ноября 2012 в 16:52
Комментарий №5
Code
var adar = document.getElementById("siF9");  
var contedant = adar.innerHTML;  
var aratr = contedant.replace('_x_Polus2',' aXxXa');  
var madas = new Array();  
madas = aratr.split(" ");  
var razam =madas.length;  
var afr=2;  
for (var g=0; g<razam;g++) {  
if(madas[g]=='aXxXa'){  
var afr=1;  
}  
}


Code
var aratr = $('#siF9').html().replace('_x_Polus2',' aXxXa'), afr = 2,  madas = [], madas = aratr.split(' '), razam = madas.length;  
for(g=0;g<razam;g++){if(madas[g]=='aXxXa'){var afr = 1;}}





Code
$('#siM33').after('<tr class="tewrt"><td id="rra1">Название #1</td><td id="farr1"></td></tr><tr class="tewrt"><td id="rra2">Название #2</td><td id="farr2"></td></tr><tr class="tewrt"><td id="rra3">Название #3</td><td id="farr3"></td></tr><tr class="tewrt"><td id="rra4">Название #4</td><td id="farr4"></td></tr><tr class="tewrt"><td id="rra5">Название #5</td><td id="farr5"></td></tr><tr class="tewrt"><td id="rra6">Название #6</td><td id="farr6"></td></tr><tr class="tewrt"><td id="rra7">Название #7</td><td id="farr7"></td></tr><tr class="tewrt"><td id="rra8">Название #8</td><td id="farr8"></td></tr><tr class="tewrt"><td id="rra9">Название #9</td><td id="farr9"></td></tr>');


Code
var names = ['', 'Н#1', 'Н#2', 'Н#3', 'Н#4', 'Н#5', 'Н#6', 'Н#7', 'Н#8', 'Н#9'], num_names = names.length, num = num_names, element = $('#siM33');
for(i=0;i<num;i++){var gp = gp + '<tr class="tewrt"><td id="rra'+i+'">'+names[i]+'</td><td id="farr'+i+'"></td></tr>';} element.after(gp);

Fatal1ti
0
Fatal1ti написал: Написано 11 Ноября 2012 в 16:57
Комментарий №6
Спасибо,
Вот второе упрощение я хотел реализовать и забыл wink
А вот в первом я много лишнего написал wacko

GhostlyP
0
GhostlyP написал: Написано 11 Ноября 2012 в 17:11
Комментарий №7
я бы весь код переписал бы, но пока что настроения и вдохновения нету, может еще что то упростил)

Fatal1ti
0
Fatal1ti написал: Написано 11 Ноября 2012 в 17:20
Комментарий №8
где и как учился этому?

GhostlyP
+1
GhostlyP написал: Написано 11 Ноября 2012 в 17:26
Комментарий №9
Читал документацию js, потом jquery happy
Брал готовые скрипты, разбирал(что и как работает) biggrin
Писал простые js-скрипты, экспериментировал много) cool

Apple
0
Apple написал: Написано 10 Ноября 2012 в 11:55
Комментарий №3
спасибо

Soner
0
Soner написал: Написано 10 Ноября 2012 в 03:45
Комментарий №2
Слишком большой код, есть и попроще версия

Fatal1ti
0
Fatal1ti написал: Написано 10 Ноября 2012 в 13:42
Комментарий №4
Конечно есть, я много видел предложений купить этот хак..
Но бесплатных нет.. Сам вот сделал, но знания javascript:
1/20
Постоянно спрашивал у гугла как это реализовать или как то..
Вот и состряпал, но вроде работает, возможно кто и поможет немного упростить код..

Fatal1ti
0
Fatal1ti написал: Написано 09 Ноября 2012 в 11:48
Комментарий №1
Забыл ещё кое-что написать:
В настройках пользователей меняем в пункте "Максимальное количество символов в подписи" на 1000

  • Оставить комментарий:
Добавлять комментарии могут только зарегистрированные пользователи.
Регистрация | Вход
Меню сайта
Категории
Для помощи создания сайта uCoz 25
Скрипты и модификации для Ucoz 2113
Шаблоны форумов Ucoz 28
Шаблоны сайтов Ucoz 431
Авторство Webo4ki 309
php скрипты для ucoz 57
Графика для uCoz 40
Мини-чат
Последние комментарии
  • sasha2016tv написал:
  • Хороший скрипт
    Ох. Вижу, что обсуждение очень старое. Но!
    На других CMS так же будет все это реализовано. На нормальных CMS.
    Такое решение может подойти лишь для landing сайтов. Но и то, не думаю, что там кто то заморачивается в написании какого либо контроллера генерирования шаблона и используют прямо в лоб чистый HTML, поэтому и будут для каждой страницы свои блоки делать.

    Поэтому лучше тут все же дописать решение именно для ucoz без загрузки этих лишних блоков на странице. Ведь используя условные операторы этот код даже не будет прогружаться на странице. (Лол. Это ж доли секунд загрузки...) И что? Но давайте делать оптимальнее
    Моё авторство:)
  • 1488 написал:
  • 1488 написал:
  • Смысл исходный код? он возвращает после обновление страницы на то положение которое было... или как?
  • 1488 написал:
  • как поставить галки как скрине?
    а то невозможно поставить...
    Последние темы
    Опрос
    433
    А
    Р
    Оцените новый дизай:)
    Статистика
    Анализ интернет сайта
    0
    онлайн
    0
    наших
    0
    чужих
    Онлайн всего: 8
    Гостей: 8
    Пользователей: 0
    0
    Сегодня были
    Топ пользователей: