2
Вы не авторизованы!
Присоединяйтесь к нашему сообществу :)
авторизация
Вакансии
На сайт требуется контент-менеджер
смотреть вакансии

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

Хаки для uCoz 2012-Ноя-04 fatal1ti 1.4k 6

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


Это уже вторая версия хака.

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

Возможности:
- Шесть новых доп.поля не используя при этом ни одного родного доп поля 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 хватит


Удачи.
Источник: http://novi4ok.ru
6 комментариев
avatar
1
Материал обновил - вторая версия хака
Теперь всё как надо)
avatar
2
Что нужно изменить, чтобы на странице добавления отображалось только 2 дополнительных поля?
avatar
3
Разобрался
avatar
4
Почему-то появляются поля только при добавлении, при редактировании их нет. То есть изменить я их не смогу.
avatar
5
Mirr0r, на моём сайте материал новой версии,
там возможно проблемы такой не будет
avatar