Скрытие блоков
Отныне любой пользователь сможет скрыть ненужные ему блоки на сайте!
Для установки скрипта нам придется пожертвовать функцией "Подпись".
Установка:
1. Пользователи » Персональная страница пользователя, заменяем:
Это:
Code
<?if($_SIGNATURE$)?>
<div id="block21" class="udtb"><div class="udtlb">Подпись:</div> $_SIGNATURE$</div>
<?endif?>
<div id="block21" class="udtb"><div class="udtlb">Подпись:</div> $_SIGNATURE$</div>
<?endif?>
На это:
Code
<?if($_SIGNATURE$)?>
<div id="block21" class="udtb"><div class="udtlb">Скрытые блоки:</div>
<div id="blocks">$_SIGNATURE$</div>
</div>
<script>
var blocks=["Мини-чат","Друзья","Статистика"];
var name=$("#blocks").html().replace(/block/g,"").replace(/ <br> /g,"").split('\n');
if(name) for(i=1;i<=name.length+1;i++) $("#blocks").html($("#blocks").html().replace("block"+i,blocks[i-1]).replace(/ <br> /g,", "));
</script><?endif?>
<div id="block21" class="udtb"><div class="udtlb">Скрытые блоки:</div>
<div id="blocks">$_SIGNATURE$</div>
</div>
<script>
var blocks=["Мини-чат","Друзья","Статистика"];
var name=$("#blocks").html().replace(/block/g,"").replace(/ <br> /g,"").split('\n');
if(name) for(i=1;i<=name.length+1;i++) $("#blocks").html($("#blocks").html().replace("block"+i,blocks[i-1]).replace(/ <br> /g,", "));
</script><?endif?>
Где var blocks=["Мини-чат","Друзья","Статистика"], список Ваших блоков.
Если у блока "Мини-чат" id="block1" то в персональной странице он отобразится как "Мини-чат" а не "block1" и т.д.
2. "Первый контейнер" и/или "Второй контейнер":
Каждому блоку присвоить ID вида id="block№", нумерацию блоков начинать с 1.
3. Пользователи » Форма редактирования персональной информации, заменяем:
Это:
Code
<?if($SIGNATURE_FL$)?>
<tr id="siM33"><td class="manTd1" id="siM34">$SIGNATURE_SIGN$</td><td class="manTd2" id="siM35">$SIGNATURE_FL$</td></tr><tr><td height="10" class="manTdSep" colspan="2"><hr class="manHr" /></td></tr>
<?endif?>
<tr id="siM33"><td class="manTd1" id="siM34">$SIGNATURE_SIGN$</td><td class="manTd2" id="siM35">$SIGNATURE_FL$</td></tr><tr><td height="10" class="manTdSep" colspan="2"><hr class="manHr" /></td></tr>
<?endif?>
На это:
Code
<?if($SIGNATURE_FL$)?>
<tr id="siM33"><td class="manTd1" id="siM34">Скрытые блоки:</td><td class="manTd2" id="siM35">
<div style="display:none">$SIGNATURE_FL$</div>
<input type="checkbox" id="block1" value="block1" onclick="checkhide();"><label for="block1">Мини-чат</label>
<input type="checkbox" id="block2" value="block2" onclick="checkhide();"><label for="block2">Друзья</label>
<input type="checkbox" id="block3" value="block3" onclick="checkhide();"><label for="block3">Статистика</label>
<script>
function checkhide() {
document.getElementById("siF9").value="";
if($("#block1").is(":checked"))document.getElementById("siF9").value+=$("#block1").val()+'\n';
if($("#block2").is(":checked"))document.getElementById("siF9").value+=$("#block2").val()+'\n';
if($("#block3").is(":checked"))document.getElementById("siF9").value+=$("#block3").val()+'\n';
}
var hidden=$("#siF9").val().split('\n');
if(hidden) {
for(i=0;i<hidden.length;i++)
$("#"+hidden[i]).attr("checked","checked");
};
</script>
</td></tr><tr><td height="10" class="manTdSep" colspan="2"><hr class="manHr" /></td></tr>
<?endif?>
<tr id="siM33"><td class="manTd1" id="siM34">Скрытые блоки:</td><td class="manTd2" id="siM35">
<div style="display:none">$SIGNATURE_FL$</div>
<input type="checkbox" id="block1" value="block1" onclick="checkhide();"><label for="block1">Мини-чат</label>
<input type="checkbox" id="block2" value="block2" onclick="checkhide();"><label for="block2">Друзья</label>
<input type="checkbox" id="block3" value="block3" onclick="checkhide();"><label for="block3">Статистика</label>
<script>
function checkhide() {
document.getElementById("siF9").value="";
if($("#block1").is(":checked"))document.getElementById("siF9").value+=$("#block1").val()+'\n';
if($("#block2").is(":checked"))document.getElementById("siF9").value+=$("#block2").val()+'\n';
if($("#block3").is(":checked"))document.getElementById("siF9").value+=$("#block3").val()+'\n';
}
var hidden=$("#siF9").val().split('\n');
if(hidden) {
for(i=0;i<hidden.length;i++)
$("#"+hidden[i]).attr("checked","checked");
};
</script>
</td></tr><tr><td height="10" class="manTdSep" colspan="2"><hr class="manHr" /></td></tr>
<?endif?>
Количество выбираемых блоков можно изменить добавив или убрав
Code
<input type="checkbox" id="block№" value="block№" onclick="checkhide();"><label for="block1">НАЗВАНИЕ</label>
if($("#block№").is(":checked"))document.getElementById("siF9").value+=$("#block№").val()+'\n';
if($("#block№").is(":checked"))document.getElementById("siF9").value+=$("#block№").val()+'\n';
Где:
НАЗВАНИЕ = Отображаемое название
block№ = № блока (слово block не убираем!)
4. Верхняя часть сайта, в конце вставляем:
Code
<?if($USER_LOGGED_IN$)?>
<script>
$.get('/index/8',function(data){var hidden=$("#blocks",data).html();if(hidden){hidden=hidden.split(' <br> ');for(i=0;i<hidden.length;i++)$("#"+hidden[i]).hide();}});
</script>
<?endif?>
<script>
$.get('/index/8',function(data){var hidden=$("#blocks",data).html();if(hidden){hidden=hidden.split(' <br> ');for(i=0;i<hidden.length;i++)$("#"+hidden[i]).hide();}});
</script>
<?endif?>
На этом установка скрипта завершена! Теперь любой пользователь сможет скрыть ненужный ему блок!
-
FalleN -
599 -
1 -
0
Но только нужно ставить наверное на те модули которые обновляться должны не раньше через пару тройку минут
С Уважением, Андрей...