Пример: http://megafile.mksat.net/
Назначение: Добавляет вероятность пользователям сворачивать, или разворачивать, блоки на сайте, можно прикрутить под абсолютно любые блоки! от боковых до похожих новостей и всё такое! на что у вас хватит фантастики!)))
Каждый юзер сам себе выбирает какие ему блоки сворачивать, какие оставлять развёрнутыми.
После очередной загрузки, перезагрузки страниц сайта блоки остаются в последнем выбранном пользоватедвам варианте, то-есть запоминается их последнее состояние.
Технология: основан на яваскрипт, данные записываются в куки пользователю
Недостатки:
- блоки сворачиваются только после загрузки страницы(яваскрипт отрабатывается последним)
- содержимое блоков загружается в любом случае - свёрнут он или развёрнут.
Создаём файл: /templates/ваш_скин/js/block.js
с содержимым:
function setCookie(name, value, expiredays, path, domain, secure) {
if (expiredays) {
var exdate=new Date();
exdate.setDate(exdate.getDate()+expiredays);
var expires = exdate.toGMTString();
}
document.cookie = name + \"=\" + escape(value) +
((expiredays) ? \"; expires=\" + expires : \"\") +
((path) ? \"; path=\" + path : \"\") +
((domain) ? \"; domain=\" + domain : \"\") +
((secure) ? \"; secure\" : \"\");
}
function getCookie(name) {
var cookie = \" \" + document.cookie;
var search = \" \" + name + \"=\";
var setStr = null;
var offset = 0;
var end = 0;
if (cookie.length > 0) {
offset = cookie.indexOf(search);
if (offset != -1) {
offset += search.length;
end = cookie.indexOf(\";\", offset)
if (end == -1) {
end = cookie.length;
}
setStr = unescape(cookie.substring(offset, end));
}
}
return setStr;
}
function block_now(id) {
if(getCookie(id) == 1) {
display = \'none\';
setCookie(id, 0, 90, \"/\");
} else {
display = \'\';
setCookie(id, 1, 90, \"/\");
}
document.getElementById(id).style.display = display;
}
function block_start(id) {
var cookie_stat = getCookie(id);
if((cookie_stat == 1) || (!cookie_stat)){
display = \'\';
} else {
display = \'none\';
}
document.getElementById(id).style.display = display;
}
Файл: main.tpl
Найти:
</head>
Добавить выше:
<script type=\"text/javascript\" src=\"/templates/Simple/js/block.js\"></script>
<script type=\"text/javascript\">
function block_search(){
block_start(\"blok_1\");
block_start(\"blok_2\");
// block_start(\"blok_3\");
// block_start(\"blok_4\");
// добавляет столько вызовов функций, как много у вас будет блоков
}
</script>
найти:
<body>
заменить на:
<body onLoad=\"block_search()\">
а теперь собственно правим свои блоки по типу:
<table>
<tr onClick=\"block_now(\'blok_1\')\" style=\"cursor:pointer;\">
<th>Заголовок блока</th>
</tr>
<tr id=\"blok_1\" style=\"\">
<td>Содержимое блока</td>
</tr>
</table>