Один из пользователей спросил можно ли используя "хак" Сделать так, чтобы информацию из дополнительного поля выводить в любом месте. Но тот хак это не позволяет, немного посидев над вопросом, я придумал как решить проблему. Теперь поля стали более функциональные.
Возможности:
- Шесть новых доп.поля не используя при этом ни одного родного доп поля uCoz
- Выводить инфо из дополнительного поля в любое место
- Заполнять можно в любой последовательности
(например первое заполнить и шестое, а остальные нет)
- Во второй версии редактирование стало автоматизированным,
Всё будет выглядеть будто это стандартные поля)
- Максимальное количество символов в сумме введенный в эти поля - около 1000
Если 1000 разделить на 6 то получиться 166 символ. на 1 поле,
Думаю будет достаточно,
А если заполнять только одно поле, то на 1 поле будет макс. - 1000 символов
И другие мелочи
Установка не так уж легка, но надеюсь всё подробно написать:
Если поля делаем для модуля "Новости", то код ниже вставляем в "Архив новостей" перед
/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" и меняем под себя и т.д.
Управление дизайном » Модуль(Каталог файлов) » Страница материала и коммен. к нему
Ищем $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 хватит