Шесть новых дополнительных полей для любого модуля

Шесть новых дополнительных полей для любого модуля
Один из пользователей спросил можно ли используя "этот хак"
Сделать так, чтобы информацию из дополнительного поля выводить в любом месте.
Но тот хак это не позволяет, немного посидев над вопросом, я придумал как решить проблему
Теперь поля стали более функциональнее.

Это уже вторая версия хака.
Наверно многие не видели даже первой, но про неё лучше не вспоминать)

Возможности:
- Шесть новых доп.поля не используя при этом ни одного родного доп поля uCoz

- Выводить инфо из дополнительного поля в любое место

- Заполнять можно в любой последовательности
(например первое заполнить и шестое, а остальные нет)

- Во второй версии редактирование стало автоматизированным,
Всё будет выглядеть будто это стандартные поля)

- Максимальное количество символов в сумме введенный в эти поля - около 1000
Если 1000 разделить на 6 то получиться 166 символ. на 1 поле,
Думаю будет достаточно,
А если заполнять только одно поле, то на 1 поле будет макс. - 1000 символов

И другие мелочи

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

1) Если поля делаем для модуля "Новости", то код ниже вставляем в "Архив новостей" перед </body>

А если в другой модуль ,то на
"Странице добавления и редактирования" нужного модуля перед </body> ставим:
Code
<?if($PAGE_ID$='add')?>  
<script>  
$('#МЕНЯЕМ').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>');  
for(j=1;j<7;j++) {  
$('#farr'+j).append('<input id="apodp'+j+'" style="width:100%;background:white;" />');  
}  
$('.manFlSbm:last').click(function() {  
  for(i=1;i<7;i++) {  
$('#message:last').val($('#message').val() + '_x_Polus'+i+' '+ $('#apodp' + i).val());  

}  

// Site Author Novi4ok.Ru  
});  
</script>  
<?endif?>  
<?if($PAGE_ID$='edit')?>  
<script>  
var adar = document.getElementById("message");  
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'){  
$('#МЕНЯЕМ').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>');  
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+' ','');  
$("#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<7;i++) {  
$('#message:last').val($('#message').val() + '_x_Polus'+i+' '+ $('#apodp' + i).val());  
$('#rra' + i).remove()  
$('#farr' + i).remove()  

  }  
});  
}else {  

$('#МЕНЯЕМ').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>');  
for(j=1;j<7;j++) {  
$('#farr'+j).append('<input id="apodp'+j+'" style="width:100%;background:white;" />');  
}  
$('.manFlSbm:last').click(function() {  
  for(i=1;i<7;i++) {  
$('#message:last').val($('#message').val() + '_x_Polus'+i+' '+ $('#apodp' + i).val());  
$('#rra' + i).remove()  
$('#farr' + i).remove()  
  }  
});  
}  
</script>  
<?endif?>

Ищем в скрипте 3 слова МЕНЯЕМ и заменяем в соответствии с модулем:
Новости - nwM22
Каталог файлов - ldM8
Статьи - puM9
Блог - blM22

Можете сразу отредактировать название поля (то что слева отображается)

Ищем 3 повтора "Название #1" и меняем под себя и т.д.

Сохраняем..

2) Заходим в
Управление дизайном » Модуль(Каталог файлов) » Страница материала и коммен. к нему
Ищем $MESSAGE$ и заменяем:
Code
<?if(strrpos($MESSAGE$,'Polus1')>0)?>  
  <?substr($MESSAGE$,0,strrpos($MESSAGE$,'_x_Polus1'))?>  
  <?else?>  
  $MESSAGE$  
  <?endif?>

Теперь там где хотим видеть информацию из доп. полей ставим:
Code
<?if(strrpos($MESSAGE$,'_x_Polus1')>2)?>  
<?substr($MESSAGE$,strrpos($MESSAGE$,'_x_Polus1') + 9,strrpos($MESSAGE$,'_x_Polus2') - strrpos($MESSAGE$,'_x_Polus1') - 9)?>  
<?endif?>  

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

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

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

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

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

Можете менять их местами или некоторые убрать и т.п.
Отобразить как ссылку или картинку
В общем-то и всё, надеюсь всё понятно - вопросы в комментарии

Что-то подобное делаю в-первые
Я конечно мог сделать и 20 дополнительных полей, но думаю и 6 хватит

Ну вот вроде и всё) мозги у меня уже кипят, надеюсь ничего не упустил..

Удачи.

Автор материала:
Логин на сайте:
Группа:
Дата входа:
О материале:
Дата добавления: 06.11.2012 в 13:19
Материал просмотрен: 512 раз
Оставлены: 0 комментария
Рейтинг материала По мнению пользователей
0.0
Поделиться
Комментарии
0 комментариев
Статистика
Онлайн всего: 1
Гостей: 1
Пользователей: 0
Онлайн никого нет

Правила чата
Пользователи онлайн
Мини-чат
+Мини-чат
0
Онлайн всего: 1
Гостей: 1
Пользователей: 0