Внимание! Данный раздел закрыт и доступен только для чтения в связи с запуском нового проекта uВопросы, на котором Вы можете найти ответ или задать любой интересующий вопрос по системе uCoz. Задавайте вопросы, ищите ответы и помогайте найти ответы другим пользователям системы! Получайте баллы и открывайте новые достижения. Подробнее в блоге...

Перейти на новый сайт помощи по uCoz


  • Страница 1 из 3
  • 1
  • 2
  • 3
  • »
Архив - только для чтения
Модератор форума: JonMagon  
Сообщество uCoz » Модули uCoz » Форум » Функция "Избранные ссылки" на форуме (сохранение нужных тем в избранном)
Функция "Избранные ссылки" на форуме
Inquisitоr
Сообщений: 900
Репутация: 338

Сообщение # 1 | 10:23:27
Как правило на небольших форумах, где общение не кипит на столько бурно... найти какую-либо тему не составит труда... но форумы развиваются и становятся больше... для многих пользователей поиск интересных, а так же и просто своих любимых тем становится труднее... и в этом случае функция "Избранные ссылки" , а вернее ссылки на темы была бы весьма полезна... на ФТП уже несколько раз спрашивали об этом... теперь для тех кому нужно, выкладываю:

Сам скрипт (отдельным файлом) вставляем в 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();
}

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

<!-- -->
<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">
<table class="Fmenu1" border="0" cellpadding="0" cellspacing="0">
<tr><td class="Ftbmenu1" align="center">Избранные ссылки</td></tr>
<tr><td class="Ftbmenu2">

<table border="0" width="100%">
<SCRIPT LANGUAGE="JavaScript">
ListBookmarks();
</SCRIPT>
</table>
</td></tr>
<tr><td class="Ftbmenu3"></td></tr>
</table>

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

Синее - это то, что можно изменить...

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

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

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

И ещё...

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


Учитесь читать, читая - вчитывайтесь, вчитываясь - вдумывайтесь, вдумываясь - понимайте, поняв - делайте. ©
football-sport
Репутация: 11
Уровень замечаний:

Сообщение # 2 | 21:57:23
Избранные Ссылки? Это по типу "Тегов" тоесть тег к сообщению?

Inquisitоr
Сообщений: 900
Репутация: 338

Сообщение # 3 | 04:19:10
football-sport,
Посмотрите у меня на форуме... где сообщения, под статусом он-лайн , офф-лайн есть кнопка "Добавить в избранное"
Добавьте любое сообщение, потом выйдите на главную страницу форума и справа под меню сайта будет блок с ссылкой на тему в которой Вы нажали на кнопку...

Учитесь читать, читая - вчитывайтесь, вчитываясь - вдумывайтесь, вдумываясь - понимайте, поняв - делайте. ©
kydapodatsya
Сообщений: 2
Репутация: 44
Уровень замечаний:

Сообщение # 4 | 11:11:23
интересно..

Добавлено (20-Мар-2008, 11:11:23)
---------------------------------------------
_ZLoVeЩиЙ_, правда если зайти с другого браузера, например с Оперы после IE то все пропадает...


www.vopros.ucoz.ru - Сайт-помощник системы Ucoz
Inquisitоr
Сообщений: 900
Репутация: 338

Сообщение # 5 | 14:38:07
kydapodatsya,
Это да, куки куки куки...

Хотя можно и под именно отдельных пользователей переделать wink


Учитесь читать, читая - вчитывайтесь, вчитываясь - вдумывайтесь, вдумываясь - понимайте, поняв - делайте. ©
badi
Репутация: 5
Уровень замечаний:

Сообщение # 6 | 12:14:36
А я у себя просто каталог сайтов для этого использую: сылко

Inquisitоr
Сообщений: 900
Репутация: 338

Сообщение # 7 | 13:12:00
Quote (badi)
А я у себя просто каталог сайтов для этого использую: сылко

С скриптом "Избранные ссылки" каждый пользователь может выбрать лучшее для себя отдельно от других...

Учитесь читать, читая - вчитывайтесь, вчитываясь - вдумывайтесь, вдумываясь - понимайте, поняв - делайте. ©
Eudelis
Сообщений: 5
Репутация: 34
Уровень замечаний:

Сообщение # 8 | 16:52:02
А для 4каталога файлов таким же способом делается?
Electa
Репутация: 3

Сообщение # 9 | 14:04:02
Попробовала. Получилось.
Inkvizitor, спасибо за идею! smile
У меня только один маленький вопрос - какие параметры нужно откорректировать, чтобы в списке избранных тем названия отражались полностью, а не только первые 20 знаков? Простите, не сильна в этом.. smile
Сообщение отредактировал Electa - Суббота, 06 Дек 2008, 14:04:27
Inquisitоr
Сообщений: 900
Репутация: 338

Сообщение # 10 | 13:25:07
Quote (Eudelis)
А для 4каталога файлов таким же способом делается?

можно для любого модуля
Quote (Electa)
меня только один маленький вопрос - какие параметры нужно откорректировать, чтобы в списке избранных тем названия отражались полностью, а не только первые 20 знаков?

->
Quote (Inkvizitor)
new_title = BMtitle.substring(0,19)+'..';

Учитесь читать, читая - вчитывайтесь, вчитываясь - вдумывайтесь, вдумываясь - понимайте, поняв - делайте. ©
n1ght
Сообщений: 2
Репутация: 3

Сообщение # 11 | 00:43:29
Inkvizitor, спс за скрипт, но хотел бы спросить, если делать такую штуку по всему сайту (!) то можно ли как то распределить по категориям сами ссылки, например если ссыль с каталога файлов то она прописываеться в категорию файлы и тп

Добавлено (10-Янв-2009, 00:43:29)
---------------------------------------------
ps не мог бы ты кинуть ссыль где взять гостевую для пользователей?

Inquisitоr
Сообщений: 900
Репутация: 338

Сообщение # 12 | 13:56:58
Quote (n1ght)
Inkvizitor, спс за скрипт, но хотел бы спросить, если делать такую штуку по всему сайту (!) то можно ли как то распределить по категориям сами ссылки, например если ссыль с каталога файлов то она прописывается в категорию файлы и тп

в скрипте есть такие строчки как GetTotalBookmarks() .. можно для каждого модуля скрипт по своему подредактировать.. например в каталоге файлов.. вместо GetTotalBookmarks() писать GetTotalBookmarksFiles() .. и так везде подписать..
в общем сделать можно.. но это уже сами..
Quote (n1ght)
ps не мог бы ты кинуть ссыль где взять гостевую для пользователей?

в смысле гостевую?

Учитесь читать, читая - вчитывайтесь, вчитываясь - вдумывайтесь, вдумываясь - понимайте, поняв - делайте. ©
Inquisitоr
Сообщений: 900
Репутация: 338

Сообщение # 13 | 01:14:56
Quote (n1ght)
как у тя на сайте, ну в профиль мона коменты писать юзерам, как это осуществить?

это не совсем в тему.. здесь описывать не буду.. но для этого нужен один, полностью свободный модуль..

Учитесь читать, читая - вчитывайтесь, вчитываясь - вдумывайтесь, вдумываясь - понимайте, поняв - делайте. ©
SEchel
Сообщений: 10
Репутация: 11

Сообщение # 14 | 19:17:39
Хм желательно бы написать примечание своим пользователям что ссылки временные... а то наделал себе этих закладок где нить в инет кафешке пришел домой хоп... А список пуст.. не хорошо... Или же сменил браузер таже картина... Про тех у кто постоянно чистит кукисы вобще можно не говорить.. dry Вобще идея в целом хорошая.. smile

http://perenosbd.ru
Работа с базами данных
ICQ 117921
TEMNED
Сообщений: 1
Репутация: 1
Уровень замечаний:

Сообщение # 15 | 21:51:57
Блин а у мя не получилось, вставил самй большой и верхний код в управление дизайном/стили, блок избраннИх ссИлок свтавил в кправлние дизайном/шаблоны на форум, и кнопку вставил - нет результата, точнее кнопка нжимается, а действия никакого
Сообщество uCoz » Модули uCoz » Форум » Функция "Избранные ссылки" на форуме (сохранение нужных тем в избранном)
  • Страница 1 из 3
  • 1
  • 2
  • 3
  • »
Поиск: