3 Версия дополнительные поля для любых модулей uCoz
Всем привет, вот решил выложить третью версию хака с дополнительными полями. Ну значительных изменений почти нет, но небольшие доработки думаю были необходимы.Третья версия дополнительные поля для любых модулей uCoz
Что нового? Теперь новых дополнительных полей стало 9 штук. Но также ещё написал для пользователя tartar01 код для 19 полей.. И придумал как решить проблему у тех у кого ничего не работает: Упрощенная версия, где нет js, но написание доп.полей полностью ручное
Установка я подробно расписал, и даже написал упрощенный код, Если js скрипт не будет работать - смотрите в самом низу..
Для полной работоспособности хака - зайдите в общие настройки сайта: http://адрес_вашего_сайта/panel/?a=setup И напротив "Тип формы по умолчанию для редактирования материалов" поставьте это: BB-codes+HTML
И в настройках модуля, для которого нужны доп.поля, обязательно должны стоять 2 галки Напротив пункта "Поля для добавления материалов" У "Краткого описания материала" и "Полного текста материала"
1) Если поля делаем для модуля "Новости", то код ниже вставляем в "Архив новостей" перед </body>
А если в другой модуль ,то на "Странице добавления и редактирования" нужного модуля перед </body> ставим:
} }); </script> <?endif?> <?if($PAGE_ID$='edit')?> <script> var aratr = $('#message').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;}} if(afr=='1'){ var names = ['', 'Н#1', 'Н#2', 'Н#3', 'Н#4', 'Н#5', 'Н#6', 'Н#7', 'Н#8', 'Н#9'], num_names = names.length, num = num_names, element = $('#Менять'); 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); var text = document.getElementById("message"); var content = text.innerHTML; var mas = new Array(); mas = content.split("_x_"); var razm =mas.length; var artt=mas[0]; document.getElementById('message').innerHTML = artt; for (var i=1; i<razm;i++){ var afr=mas[i]; var afrq=afr.replace('Polus'+i+' ',''); if(afrq=='Polus9') {var afrq='';} $("#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++) { $('#message:last').val($('#message').val() + '_x_Polus'+i+' '+ $('#apodp' + i).val()); $('#rra' + i).remove() $('#farr' + i).remove() } }); }else { var names = ['', 'Н#1', 'Н#2', 'Н#3', 'Н#4', 'Н#5', 'Н#6', 'Н#7', 'Н#8', 'Н#9'], num_names = names.length, num = num_names, element = $('#Менять'); 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); 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++) { $('#message:last').val($('#message').val() + '_x_Polus'+i+' '+ $('#apodp' + i).val()); $('#rra' + i).remove() $('#farr' + i).remove() } }); } </script> <?endif?>
Ищем в скрипте 3 слова МЕНЯТЬ и заменяем в соответствии с модулем: Новости - nwM22 Каталог файлов - ldM8 Статьи - puM8 Блог - blM22 Доска объявлений - bdM8
Для модуля "Онлайн игры" код выше не подходит, так как там немного по-другому
Для этого модуля вставляем такой код в "Страницу добавления и редактирования" (для других модулей его вставлять не надо):
Code
<?if($PAGE_ID$='add')?> <script> var names = ['', 'Н#1', 'Н#2', 'Н#3', 'Н#4', 'Н#5', 'Н#6', 'Н#7', 'Н#8', 'Н#9'], num_names = names.length, num = num_names, element = $('#txtPart555message'); for(i=1;i<num;i++){var gp = gp + '<table><tr class="tewrt"><td id="rra'+i+'">'+names[i]+'</td><td id="farr'+i+'"><input id="apodp'+i+'" style="width:100%;background:white;" /></td></tr></table>';} element.after(gp); $('.manFlSbm:last').click(function() {for(i=1;i<10;i++) { $('#message:last').val($('#message').val() + '_x_Polus'+i+' '+ $('#apodp' + i).val()); } }); </script> <?endif?> <?if($PAGE_ID$='edit')?> <script> var aratr = $('#message').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;}} if(afr=='1'){ var names = ['', 'Н#1', 'Н#2', 'Н#3', 'Н#4', 'Н#5', 'Н#6', 'Н#7', 'Н#8', 'Н#9'], num_names = names.length, num = num_names, element = $('#txtPart555message'); for(i=1;i<num;i++){var gp = gp + '<table><tr class="tewrt"><td id="rra'+i+'">'+names[i]+'</td><td id="farr'+i+'"></td></tr></table>';} element.after(gp); var text = document.getElementById("message"); var content = text.innerHTML; var mas = new Array(); mas = content.split("_x_"); var razm =mas.length; var artt=mas[0]; document.getElementById('message').innerHTML = artt; for (var i=1; i<razm;i++){ var afr=mas[i]; var afrq=afr.replace('Polus'+i+' ',''); if(afrq=='Polus9') {var afrq='';} $("#farr"+i).append('<input type="text" id="apodp'+i+'" value="'+afrq+'" style="width: 100%;">'); } $('.manFlSbm:last').click(function() { for(i=1;i<10;i++) { $('#message:last').val($('#message').val() + '_x_Polus'+i+' '+ $('#apodp' + i).val()); $('#rra' + i).remove() $('#farr' + i).remove()}});}else{ var names = ['', 'Н#1', 'Н#2', 'Н#3', 'Н#4', 'Н#5', 'Н#6', 'Н#7', 'Н#8', 'Н#9'], num_names = names.length, num = num_names, element = $('#txtPart555message'); for(i=1;i<num;i++){var gp = gp + '<Table><tr class="tewrt"><td id="rra'+i+'">'+names[i]+'</td><td id="farr'+i+'"><input id="apodp'+i+'" style="width:100%;background:white;" /></td></tr></table>';} element.after(gp); $('.manFlSbm:last').click(function() { for(i=1;i<10;i++) { $('#message:last').val($('#message').val() + '_x_Polus'+i+' '+ $('#apodp' + i).val()); $('#rra' + i).remove() $('#farr' + i).remove() }});} </script> <?endif?>
Можете сразу отредактировать название поля (то что слева отображается)
Для этого - ищем 3 повтора "Н#1" и меняем под себя и так с остальными т.д.
2) Заходим в Управление дизайном » Модуль(Каталог файлов) » Страница материала и коммен. к нему Ищем $MESSAGE$ и заменяем на этот код: Code <?if(strrpos($MESSAGE$,'Polus1')>0)?> <?substr($MESSAGE$,0,strrpos($MESSAGE$,'_x_Polus1'))?> <?else?> $MESSAGE$ <?endif?>
Теперь там где хотим видеть информацию из доп. полей ставим:
Этот код будет выдавать информацию из 1 доп. поля Уяснили? Можете менять их местами или некоторые убрать и т.п. Отобразить как ссылку или картинку В общем-то и всё, надеюсь всё понятно.
Если вы раньше использовали хак версия 2, и решили перейти на хак - версия 3, То сначала удаляем скрипты старой версии хака, И затем редактируем материалы с доп. полями, так чтобы вместо Polus было PS Так как PS на 3 символа меньше..
1) Если поля делаем для модуля "Новости", то код ниже вставляем в "Архив новостей" перед </body> А если в другой модуль ,то на "Странице добавления и редактирования" нужного модуля перед </body> ставим:
} }); </script> <?endif?> <?if($PAGE_ID$='edit')?> <script> var aratr = $('#message').html().replace('_x_PS2',' aXxXa'), afr = 2, madas = [], madas = aratr.split(' '), razam = madas.length; for(g=0;g<razam;g++){if(madas[g]=='aXxXa'){var afr = 1;}} if(afr=='1'){ var names = ['', 'Н#1', 'Н#2', 'Н#3', 'Н#4', 'Н#5', 'Н#6', 'Н#7', 'Н#8', 'Н#9', 'Н#10', 'Н#11', 'Н#12', 'Н#13', 'Н#14', 'Н#15', 'Н#16', 'Н#17', 'Н#18', 'Н#19'], num_names = names.length, num = num_names, element = $('#МЕНЯТЬ'); 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); var text = document.getElementById("message"); var content = text.innerHTML; var mas = new Array(); mas = content.split("_x_"); var razm =mas.length; var artt=mas[0]; document.getElementById('message').innerHTML = artt; for (var i=1; i<razm;i++){ var afr=mas[i]; var afrq=afr.replace('PS'+i+' ',''); if(afrq=='PS19') {var afrq='';} $("#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<20;i++) { $('#message:last').val($('#message').val() + '_x_PS'+i+' '+ $('#apodp' + i).val()); $('#rra' + i).remove() $('#farr' + i).remove() } }); }else { var names = ['', 'Н#1', 'Н#2', 'Н#3', 'Н#4', 'Н#5', 'Н#6', 'Н#7', 'Н#8', 'Н#9', 'Н#10', 'Н#11', 'Н#12', 'Н#13', 'Н#14', 'Н#15', 'Н#16', 'Н#17', 'Н#18', 'Н#19'], num_names = names.length, num = num_names, element = $('#МЕНЯТЬ'); 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); for(j=1;j<20;j++) { $('#farr'+j).append('<input id="apodp'+j+'" style="width:100%;background:white;" />'); } $('.manFlSbm:last').click(function() { for(i=1;i<20;i++) { $('#message:last').val($('#message').val() + '_x_PS'+i+' '+ $('#apodp' + i).val()); $('#rra' + i).remove() $('#farr' + i).remove() } }); } </script> <?endif?>
Ищем в скрипте 3 слова МЕНЯТЬ и заменяем в соответствии с модулем: Новости - nwM22 Каталог файлов - ldM8 Статьи - puM8 Блог - blM22 Доска объявлений - bdM8
Для модуля "Онлайн игры" код выше не подходит, так как там немного по-другому
Для этого модуля вставляем такой код в "Страницу добавления и редактирования" (для других модулей его вставлять не надо):
Code
<?if($PAGE_ID$='add')?> <script> var names = ['', 'Н#1', 'Н#2', 'Н#3', 'Н#4', 'Н#5', 'Н#6', 'Н#7', 'Н#8', 'Н#9', 'Н#10', 'Н#11', 'Н#12', 'Н#13', 'Н#14', 'Н#15', 'Н#16', 'Н#17', 'Н#18', 'Н#19'], num_names = names.length, num = num_names, element = $('#txtPart555message'); for(i=1;i<num;i++){var gp = gp + '<table width="100%"><tr class="tewrt"><td id="rra'+i+'" width="40%">'+names[i]+'</td><td id="farr'+i+'"><input id="apodp'+i+'" style="width:100%;background:white;" /></td></tr></table>';} element.after(gp); $('.manFlSbm:last').click(function() {for(i=1;i<20;i++) { $('#message:last').val($('#message').val() + '_x_Polus'+i+' '+ $('#apodp' + i).val()); } }); </script> <?endif?> <?if($PAGE_ID$='edit')?> <script> var aratr = $('#message').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;}} if(afr=='1'){ var names = ['', 'Н#1', 'Н#2', 'Н#3', 'Н#4', 'Н#5', 'Н#6', 'Н#7', 'Н#8', 'Н#9', 'Н#10', 'Н#11', 'Н#12', 'Н#13', 'Н#14', 'Н#15', 'Н#16', 'Н#17', 'Н#18', 'Н#19'], num_names = names.length, num = num_names, element = $('#txtPart555message'); for(i=1;i<num;i++){var gp = gp + '<table><tr class="tewrt"><td id="rra'+i+'" width="40%">'+names[i]+'</td><td id="farr'+i+'"></td></tr></table>';} element.after(gp); var text = document.getElementById("message"); var content = text.innerHTML; var mas = new Array(); mas = content.split("_x_"); var razm =mas.length; var artt=mas[0]; document.getElementById('message').innerHTML = artt; for (var i=1; i<razm;i++){ var afr=mas[i]; var afrq=afr.replace('Polus'+i+' ',''); if(afrq=='Polus19') {var afrq='';} $("#farr"+i).append('<input type="text" id="apodp'+i+'" value="'+afrq+'" style="width: 100%;">'); } $('.manFlSbm:last').click(function() { for(i=1;i<20;i++) { $('#message:last').val($('#message').val() + '_x_Polus'+i+' '+ $('#apodp' + i).val()); $('#rra' + i).remove() $('#farr' + i).remove()}});}else{ var names = ['', 'Н#1', 'Н#2', 'Н#3', 'Н#4', 'Н#5', 'Н#6', 'Н#7', 'Н#8', 'Н#9'], num_names = names.length, num = num_names, element = $('#txtPart555message'); for(i=1;i<num;i++){var gp = gp + '<Table width="100%"><tr class="tewrt"><td id="rra'+i+'" width="40%">'+names[i]+'</td><td id="farr'+i+'"><input id="apodp'+i+'" style="width:100%;background:white;" /></td></tr></table>';} element.after(gp); $('.manFlSbm:last').click(function() { for(i=1;i<20;i++) { $('#message:last').val($('#message').val() + '_x_Polus'+i+' '+ $('#apodp' + i).val()); $('#rra' + i).remove() $('#farr' + i).remove() }});} </script> <?endif?>
Можете сразу отредактировать название поля (то что слева отображается)
Для этого - ищем 3 повтора "Н#1" и меняем под себя и так с остальными т.д.
2) Заходим в Управление дизайном » Модуль(Каталог файлов) » Страница материала и коммен. к нему Ищем $MESSAGE$ и заменяем на этот код:
Если всё же вы сделали всё так как надо, но не работает так как надо, Или вовсе не работает, и вам так и хочется написать админу - "НЕ РАБОТАЕТ" Вы можете пользоваться хаком вручную:
В конце после того как вы запонили полное описание, Вы копируете каждый раз этот код:
Code
_PS1 _PS2 _PS3 _PS4 _PS5 _PS6 _PS7 _PS8 _PS9
И если вам первое доп. поле нужно например для такой ссылки: http://vk.com Дописываете так: