Один из пользователей спросил можно ли используя
"этот хак" Сделать так, чтобы информацию из дополнительного поля выводить в любом месте.
Но тот хак это не позволяет, немного посидев над вопросом, я придумал как решить проблему
Теперь поля стали более функциональнее.
Это уже вторая версия хака.
Наверно многие не видели даже первой, но про неё лучше не вспоминать)
Возможности: - Шесть новых доп.поля не используя при этом ни одного родного доп поля 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 хватит
Удачи.