Любой файл Вы можете добавлять себе в закладки. Особенности:
1. Один файл Вы можете добавить лишь один раз, то есть если он уже есть
в закладках, второй раз его не добавить, а лишь удалить;
2. Простой скрипт без заморочек, добавление через $.post, получение через $.get;
3. Правильные склонения количества закладок (1 закладка, 6 закладок и т.д.);
4. Поддержка капчи (естественно, если есть она есть, если нет ее нет);
5. Скрипт легко переделывается под и для других модулей.
Сначала мы заходим в настройки модуля (мы используем "Доску объявлений").
Посмотреть скриншот с настройками.
Следующим делом вставляем следующий скрипт на "Страницу материала и
комментариев к нему" модуля каталога файлов (или новостей, смотря
материалы из какого модуля Вы будете добавлять в закладки) перед
закрывающим тэгом </body>:
<script type="text/javascript">
var bMarksAdd='<a href="javascript:bMarks()">Добавить в закладки</a>';
var bMarksRem='<a href="javascript:bMarksDel()">Удалить из закладок</a>';
var bMarksLtime='2000';
</script>
<div style="visibility:hidden;width:0;height:0;overflow:hidden;"
id="bookMarksT"></div><script
type="text/javascript">$.get("/board/0-0-0-0-17",function(data){$("#bookMarksT").html($("#bookMarksQ",data).html());});setTimeout("if($('#bookMarksT').text().indexOf('$ENTRY_NAME$')
!== -1)bMarksRemS();if($('#bookMarksT').text().indexOf('$ENTRY_NAME$')
== -1)bMarksAddS();",bMarksLtime);function
bMarksAddS(){$("#bookMarks").html(bMarksAdd);}function
bMarksRemS(){$("#bookMarks").html(bMarksRem);}function bMarksDel(){new
_uWnd("bMarksD","Удалить из
закладок",380,300,{autosize:1,align:"left"},'<fieldset><div
style="padding:5px 0;" align="center">Вы действительно хотите удалить
<a href="$ENTRY_URL$">$ENTRY_TITLE$</a> из своих
закладок?</div></fieldset><fieldset
style="margin-top:5px;"><table border="0" cellpadding="2"
cellspacing="1" width="100%"><tr><td></td><td
align="right"><table border="0" cellpadding="0" cellspacing="0"
onmousedown="this.className=\'downBtn\'"
onmouseover="this.className=\'overBtn\'"
onmouseout="this.className=\'outBtn\'"><tr><td
class="myBtnLeft"><img alt="" border="0"
src="http://s1.ucoz.net/img/1px.gif"/></td><td
class="myBtnCenter"><div class="myBtnCont x-unselectable"
unselectable="on" onclick="$(\'#delbMarkPanel$ID$ > span >
a:last\').click(); _uWnd.alert(\'<div class=myWinSuccess>Закладка
удалена</div>\', \'\', {w: 200,h: 90,tm: 3000,close:
0});_uWnd.close(\'bMarksD\');setTimeout(\'document.location.reload()\',2200);$(\'#bookMarks\').fadeOut(\'slow\')"><a
href="javascript://">Удалить</a></div></td><td
class="myBtnRight"><img alt="" border="0"
src="http://s1.ucoz.net/img/1px.gif"/></td></tr></table></td><td
style="padding-left:5px;" width="1%" align="right"><table
border="0" cellpadding="0" cellspacing="0"
onmousedown="this.className=\'downBtn\'"
onmouseover="this.className=\'overBtn\'"
onmouseout="this.className=\'outBtn\'"><tr><td
class="myBtnLeft"><img alt="" border="0"
src="http://s1.ucoz.net/img/1px.gif"/></td><td
class="myBtnCenter"><div class="myBtnCont x-unselectable"
unselectable="on" onclick="_uWnd.close(\'bMarksD\')"><a
href="javascript://">Отмена</a></div></td><td
class="myBtnRight"><img alt="" border="0"
src="http://s1.ucoz.net/img/1px.gif"/></td></tr></table></td></tr></table></fieldset>');}function
bMarks(){new _uWnd("bMarks","Добавить в
закладки",380,300,{autosize:1,align:"left"},'<fieldset><div
style="padding:5px 0;" align="center">Вы действительно хотите
добавить <a href="$ENTRY_URL$">$ENTRY_TITLE$</a> в свои
закладки?</div></fieldset><fieldset
style="margin-top:5px;"><table border="0" cellpadding="2"
cellspacing="1" width="100%"><tr><td></td><td
align="right"><table border="0" cellpadding="0" cellspacing="0"
onmousedown="this.className=\'downBtn\'"
onmouseover="this.className=\'overBtn\'"
onmouseout="this.className=\'outBtn\'"><tr><td
class="myBtnLeft"><img alt="" border="0"
src="http://s1.ucoz.net/img/1px.gif"/></td><td
class="myBtnCenter"><div class="myBtnCont x-unselectable"
unselectable="on"
onclick="bMarksP(\'$ENTRY_TITLE$\',\'$ENTRY_URL$\',\'$ID$\');"><a
href="javascript://">Добавить</a></div></td><td
class="myBtnRight"><img alt="" border="0"
src="http://s1.ucoz.net/img/1px.gif"/></td></tr></table></td><td
style="padding-left:5px;" width="1%" align="right"><table
border="0" cellpadding="0" cellspacing="0"
onmousedown="this.className=\'downBtn\'"
onmouseover="this.className=\'overBtn\'"
onmouseout="this.className=\'outBtn\'"><tr><td
class="myBtnLeft"><img alt="" border="0"
src="http://s1.ucoz.net/img/1px.gif"/></td><td
class="myBtnCenter"><div class="myBtnCont x-unselectable"
unselectable="on" onclick="_uWnd.close(\'bMarks\')"><a
href="javascript://">Отмена</a></div></td><td
class="myBtnRight"><img alt="" border="0"
src="http://s1.ucoz.net/img/1px.gif"/></td></tr></table></td></tr></table></fieldset>');}function
bMarksP(a,b,d){$.get("/board/1-0-0-0-1",function(c){$.post("/board/",{jkd498:1,jkd428:1,a:12,ssid:$('input[name="ssid"]',c).val(),title:a,other1:b,other2:d,ocat:1},function(){_uWnd.alert("<div
class='myWinSuccess'>Закладка
добавлена</div>","",{w:200,h:90,tm:3000,close:0});_uWnd.close("bMarks");setTimeout("document.location.reload()",2200);$("#bookMarks").fadeOut("slow");});});}</script>
<a href="javascript:bMarks()">Добавить в закладки</a> — html-код кнопки добавления в закладки;
<a href="javascript:bMarksDel()">Удалить из закладок</a> — html-код кнопки удаления из закладок;
2000 — время (в милисекундах) для загрузки кнопок "добавить"/"удалить".
зависит от тяжести html-страницы. необходимо для проверки на наличие
данного материала в закладках. после открытия страницы ≈ это время и
будет грузится кнопка. если вы не понимаете для чего это, советую не
трогать.
После того как настроили вид кнопок, нужно указать
место где она будет располагаться. Вставляем следующий код на место
будующей кнопки, скрипт сам определит что на ней будет: либо кнопка
добавить (указанная в var bMarksAdd), либо удалить (указанная в var
bMarksRem):
<!--Условие
если юзер есть юзер, а не гость-->
<span
id="bookMarks"></span>
Доска объявлений » Страница поиска и рейтинга материалов:
<html>
<head>
<title>Закладки</title>
</head>
<body>
<div id="bookMarksQ">
$BODY$
</div>
$POWERED_BY$
<div class="bookMarksG">$NUM_ENTRIES$
заклад4||$NUM_ENTRIES$%100>10&&$NUM_ENTRIES$%100<15)?>оккаки</div>
</body>
</html>
Доска объявлений » Вид материалов:
<div class="bMarkFrm">
<span style="display:none;"
id="delbMarkPanel$OTHER2$">$MODER_PANEL$<script
type="text/javascript">function
_entrRem(c,a,b,d){_entrRm[c]=1;document.getElementById(c).src=b+"/img/fr/EmnAjax.gif";if(confirm("Удалить
закладку?")){_uPostForm("",{url:a});setTimeout("document.location.reload()",1000)}}</script></span><fieldset
style="display:none;text-align:center;"
id="bmd$OTHER2$"><b>Закладка
удалена</b></fieldset><fieldset id="bm$OTHER2$"
style="padding:5px;"><table width="100%"><tr><td
align="left"><a
href="$OTHER1$">$TITLE$</a></td><td
align="right"><a href="javascript://"
onclick="$('#delbMarkPanel$OTHER2$ > span >
a:last').click();"><img src="/.s/img/icon/del.png"
style="vertical-align:middle;"></a></td></tr></table></fieldset>
</div>
$TITLE$
<script
type="text/javascript">function
_entrRem(c,a,b,d){_entrRm[c]=1;document.getElementById(c).src=b+"/img/fr/EmnAjax.gif";_uPostForm("",{url:a})}</script>
<span id="delbMarkPanel$OTHER2$">$MODER_PANEL$</span>
Просмотр закладок.
Уже определились где выводить кнопку на просмотр закладок? Тогда
переходим к следующему делу. Простыми методами, как ни крути, без
$.get'а не обойтись :). Размещаем следующее в место где нужна кнопка...
У
Вас <span class="bMarksColS"># закладок<script
type="text/javascript">$.get("/board/0-0-0-0-17",function(a){$(".bMarksColS").html($(".bookMarksG",a).html());});</script></span>
<script type="text/javascript">function bMarksView(){new
_uWnd("bMarksViewA","Мои
закладки",350,100,{autosize:1,minh:120,maxh:500,align:"left",oncontent:function(){$.get("/board/0-0-0-0-17",function(data){$(".bMarkFrm:lt(50)",data).each(function(){$(".bmA").after(this.innerHTML)});$(".bookMarksU").text($(".bookMarksG",data).text())})}},'<fieldset
style="padding:5px;margin:5px;"><legend align="left"
style="font-weight:bold;" class="bookMarksU"></legend><div
align="center"><div
class="bmA"></div></div></fieldset>')};</script>
Не забываем правильно настроить права групп (отключить промодерацию, разрешить удаление своих материалов и т.д.).
Автор VfriendsAdmin.