Время:
Новых сообщений: Нет
Вы на форуме дней
Ваша группа: Гость
Ваш IP: 3.144.244.228
Logical-Portal — молодежный портал со своей изюминкой, каждый сможет найти что-то интересное и полезное для себя, например наш форум общения с которым вам обязательно нужно ознакомиться.
  • Страница 1 из 1
  • 1
Функция "Избранные ссылки"
Сообщение оставлено 18.09.2010 в 22:05:27 | Сообщение #1
Как правило на небольших форумах, где общение не кипит на столько бурно... найти какую-либо тему не составит труда... но форумы развиваются и становятся больше... для многих пользователей поиск интересных, а так же и просто своих любимых тем становится труднее... и в этом случае функция "Избранные ссылки" , а вернее ссылки на темы была бы весьма полезна... на ФТП уже несколько раз спрашивали об этом... теперь для тех кому нужно, выкладываю:

Сам скрипт (отдельным файлом) вставляем в head форума:

Code
// ** bookmark functions    

var sepchar   = "@";        
var BMtotal   = 10;            
var ShowCount = 0;    
var expDays   = 30;            

var exp       = new Date();        
exp.setTime(exp.getTime() + (expDays*24*60*60*1000));    

function GetTotalBookmarks()    
{    
           var NumBookmarks = GetCookie('PT_NumBookmarks');    
        var i;    
        var Bookmark;    
           var count = 0;    
        if (NumBookmarks == null)        
        {    
         NumBookmarks = 0;    
        }    
               
        for (i=1; i <= NumBookmarks ; i++)    
        {    
         Bookmark = GetCookie('PT_Bookmark'+i);    
         if (Bookmark != null)    
         {    
          count++;    
         }    
        }    
        if (count == 0)        
        {    
            return 0;    
        }    
        else    
           {    
            return 1;    
        }    
}    

function ListBookmarks()    
{    
        var NumBookmarks = GetCookie('PT_NumBookmarks');    
        var i;    
        var Bookmark;    

        if (NumBookmarks == null)        
        {    
         NumBookmarks = 0;    
        }    
        ShowCount = 0; SwapColour = 0;    
               
        for (i=1; i <= NumBookmarks ; i++)    
        {    
         Bookmark = GetCookie('PT_Bookmark'+i);    
         if (Bookmark != null)    
         {    
          PrintBookmark(Bookmark, i);    
         }    
        }    
}    

function DeleteBookmark(Count)    
{    
        DeleteCookie('PT_Bookmark'+Count);    
        window.location = window.location;    
}    

function PrintBookmark (Bookmark, Count)    
{    

        var color = "";    
        var pairs = Bookmark.split(sepchar);    
        pairs[0]= unescape(pairs[0]);    
        pairs[1]= unescape(pairs[1]);    
        pairs[2]= unescape(pairs[2]);    
        var BMtitle = pairs[0];    
        var BMaddress = pairs[1];    
        var BMtitleFull = pairs[2];    

        ShowCount++;    
        document.write("<tr><td width=90%><a class=m href='"+BMaddress+"' title='"+BMtitleFull+"'>"+BMtitle+"</a></td>");    
        document.write("<td><a href='javascript:DeleteBookmark(" + Count + ")' title='Удалить'><font color=red><b>X</b></font></a></td>");    
        document.write("</tr>");    
}    

function AddBookmark(BMtitle, BMaddress)    
{    

        var NumBookmarks = GetCookie('PT_NumBookmarks');    
        var i;    
        var ToDoItem;    
        var Bookmark;    
        var OldestBookmark = 0;    
        var CountBookmarks = 0;    
           var new_title;    
           var BMtitleFull;    
                  
           BMtitleFull = BMtitle;    
           new_title = BMtitle.substring(0,19)+'..';    
           BMtitle = new_title;    

        if (NumBookmarks == null) {    NumBookmarks = 0;}    
               
        // check if already exists, and count bookmarks        
        for (i=1; i <= NumBookmarks ; i++)    
        {    
         Bookmark = GetCookie('PT_Bookmark'+i);    
         if (Bookmark != null)        
         {    CountBookmarks++;          
          if (OldestBookmark == 0)    
          {    OldestBookmark = i;    }        
         }    
               
         if (Bookmark == BMtitle+sepchar+BMaddress+sepchar+BMtitleFull)    
         {    alert("Ссылка уже существует: "+BMtitleFull);    
          return;   }    
        }    

        // check if limit reached    
        if (CountBookmarks > BMtotal)    
        {    DeleteBookmark(OldestBookmark);    
        }    

        // now add it    
        NumBookmarks++;    
        SetCookie('PT_Bookmark'+NumBookmarks, BMtitle+sepchar+BMaddress+sepchar+BMtitleFull, exp);    
        SetCookie('PT_NumBookmarks',NumBookmarks, exp);    
        alert("Добавлена новая ссылка: "+BMtitleFull);    
}    

// cookie functions    

function getCookieVal (offset) {         

        var endstr = document.cookie.indexOf (";", offset);         

        if (endstr == -1)           
         endstr = document.cookie.length;         
        return unescape(document.cookie.substring(offset, endstr));    

}    

function GetCookie (name) {         

        var arg = name + "=";         
        var alen = arg.length;         
        var clen = document.cookie.length;         
        var i = 0;         

        while (i < clen) {           
         var j = i + alen;           
         if (document.cookie.substring(i, j) == arg)             
          return getCookieVal (j);           
         i = document.cookie.indexOf(" ", i) + 1;           
         if (i == 0) break;          
        }         
        return null;    
}    

function SetCookie (name, value) {         

        var argv = SetCookie.arguments;         
        var argc = SetCookie.arguments.length;         
        var expires = (argc > 2) ? argv[2] : null;         
        var path = (argc > 3) ? argv[3] : null;         
        var domain = (argc > 4) ? argv[4] : null;         
        var secure = (argc > 5) ? argv[5] : false;         

        document.cookie = name + "=" + escape (value) +        
          ((expires == null) ? "" : ("; expires=" + expires.toGMTString())) +        
          ((path == null) ? "" : ("; path=" + path)) +         
          ((domain == null) ? "" : ("; domain=" + domain)) +           
          ((secure == true) ? "; secure" : "");    

}    

function DeleteCookie (name) {         

        var exp = new Date();         

        exp.setTime (exp.getTime() - 1);         
        var cval = GetCookie (name);         
        document.cookie = name + "=" + cval + "; expires=" + exp.toGMTString();    
}

На форуме!!! Cоздаём блок избранных ссылок:

Code
<!-- -->
<SCRIPT LANGUAGE="JavaScript">
var total = GetTotalBookmarks();
if (total == 0)
{
document.write("<style type='text/css'>.embed_mini_other {display: none;}</style>");
}
</SCRIPT>
<div class="embed_mini_other">
[color=blue]<table class="Fmenu1" border="0" cellpadding="0" cellspacing="0">
<tr><td class="Ftbmenu1" align="center">Избранные ссылки</td></tr>
<tr><td class="Ftbmenu2">[/color]
<table border="0" width="100%">
<SCRIPT LANGUAGE="JavaScript">
ListBookmarks();
</SCRIPT>
</table>
[color=blue]</td></tr>
<tr><td class="Ftbmenu3"></td></tr>
</table>[/color]

</div>
<!--/-->

Это, то, что можно изменить:

Code
<table class="Fmenu1" border="0" cellpadding="0" cellspacing="0">  
<tr><td class="Ftbmenu1" align="center">Избранные ссылки</td></tr>  
<tr><td class="Ftbmenu2">

Code
</td></tr>  
<tr><td class="Ftbmenu3"></td></tr>  
</table>

В "Виде материалов" форума там где хотите вывести кнопку, нужно вставить:

Code
<input type="button" href="javascript://" onClick="javascript:AddBookmark(document.title, window.location)" value="Добавить в Избранное" title="В избранное!">

Готово... теперь, если Вы зашли в тему по ссылке "К последнему прочитанному сообщению" , то при нажатии на кнопку "Добавить в избранное" ссылка добавится именно на это сообщение... если из списка в разделе зашли на определённую страницу темы, то добавленная ссылка будет вести именно на эту страницу...

И ещё, var BMtotal = 10; - максимальное количество ссылок в блоке... когда добавляется одиннадцатая ссылка то самая первая удаляется, и так далее...



 Сообщение отредактировал iConic - Суббота, 18.09.2010, 22:08:31
 
 
   
Сообщение оставлено 01.10.2010 в 13:14:11 | Сообщение #2
xD biggrin

Добавлено (01.10.2010, 13:14)
---------------------------------------------
подскажите чо надор сделат чтобы баннер в подписи отображался норм а не как в код

вот сам баннер

Code
<a href="http://hns-jump.clan.su" target=_blank><img src="http://allthecs16.ucoz.ru/ALLTHECS16.UCOZ.RUbanner.gif" border="0" title="CS 1.6. PORTAL" width=88 height=31></a>  

подскажите пизззззззззззззз

 
<a href="http://hns-jump.clan.su" target=_blank><img src="http://allthecs16.ucoz.ru/ALLTHECS16.UCOZ.RUbanner.gif" border="0" title="CS 1.6. PORTAL" width=88 height=31></a>
 
   
Сообщение оставлено 01.10.2010 в 16:14:07 | Сообщение #3
офф топ dry

по теме...

Мне кажется не очень то и нужен этот скрипт))

 
   
  • Страница 1 из 1
  • 1
Поиск:
 
Графика от: Megas, GraFOS | Дизайн сверстал E.A.
Хостинг от uCoz
Яндекс.Метрика