Тестовик

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Тестовик » Украшение форума » Последние 10 сообщений форума


Последние 10 сообщений форума

Сообщений 1 страница 3 из 3

1

HTML низ:

Код:
<script src="/export.php?type=js&max=10" type="text/javascript"></script>
<script type="text/javascript">
var html='';
var ts = '';
var mo = '';
var hh = '';
var mm = '';
var i = 0;
for(i=0;i<content.length;i++) {
	ts = new Date();
	ts.setTime(1000*content[i][0]);
	mo = ts.getMonth()+1;
	if (mo<10) mo='0'+mo;
	hh = ts.getHours();
	mm = ts.getMinutes()+'';
	if (mm<10) mm='0'+mm;
	ts = ts.getDate()+'.'+mo+' '+hh+':'+mm;
html2="</tr></tbody></table></div>"
html1="<h2>Последние 10 сообщений форума</h2><div class=\"container\"><table cellspacing=\"0\" width=100%><thead><tr><th scope=\"col\">Автор</th><th scope=\"col\">Время</th><th scope=\"col\">Последнее сообщение</th></tr></thead><tbody class=\"hasicon\">"
html+='<tr><td>'+content[i][1]+'</td><td class=\"tc2\">'+ts+'<td class=\"tcr\"><a href=\"'+content[i][2]+'\" target=\"_blank\">'+content[i][3]+'</a><br /></td></tr>';
}

var arr=document.getElementsByTagName("div")
i=0
str=document.URL
while(arr[i] ){
if((str.substring(str.lastIndexOf('/')+1)=="" || str.substring(str.lastIndexOf('/')+1)=="index.php") && arr[i].className=="statscon"){
name=arr[i].innerHTML
name=name.substring(0)
arr[i].innerHTML=""+html1+""+html+""+html2+"<br><h2>Общая статистика</h2>"+name+""
}
i++
}
</script>

Пример - на главной странице данного форума.

0

2

Новая версия

Код:
<!-- Последние 10 сообщений форума, новая версия © Alex_63 -->
<style>
.container.stats {margin-bottom: -13px;}
.stats table {
  padding: 0 !important;
  margin-top:7px;
  width: 100%;
}
.stats table th {text-align: left;}
.stats table td {
  padding: .5em;
  border-top-style: solid;
  border-top-width: 1px;
}
.stats .t-head {font-weight: 700}
</style>
<script src="/export.php?type=js&max=30" type="text/javascript"></script>
<script type="text/javascript">
(function() {
  var numPosts = 10; //Количество выводимых сообщений (не более 20)
  var html = '',html0 = '<div class="container stats"><span class="t-head">\
  Последние 10 сообщений форума</span><table cellspacing="0" class="container">\
  <thead><tr><th>Автор</th><th>Время</th><th>Последнее сообщение</th></tr>\
  </thead><tbody class="hasicon">';for(var i=0;i<content.length;i++){
    var s0=content[i][0],s1=content[i][1];s2=content[i][2];s3=content[i][3];
    var ts = new Date();ts.setTime(1000*s0),mo=ts.getMonth()+1;
    if (mo<10) {mo='0'+mo;}var hh = ts.getHours(),mm = ts.getMinutes()+'';
    if (mm<10) {mm='0'+mm;}ts = ts.getDate()+'.'+mo+' '+hh+':'+mm;
    var a = '<tr><td>'+s1+'</td><td class="tc2">'+ts+'<td class="tcr">\
    <a href="'+s2+'" target="_blank">'+s3+'</a><br/></td></tr>';
    if(s3.indexOf('·')!=-1||s3.indexOf('¬')!=-1){a=''};html+=a;
  } var b = html0+html+'</tr></tbody></table></div><br/>\
  <h2><span>Общая статистика</span></h2>';nP=numPosts-1;
  $('.statscon').prepend(b);$('.statscon tbody tr:gt('+nP+')').remove();
}());
</script>

0

3

Код:
<!------------------------------------------------------------------------------------------------------------------------>
<!-- Последние сообщения форума, новая версия © Alex_63 + API  -->
<style>
.container.stats { margin-bottom: -10px; }
.stats table {
  padding: 0 !important;
  margin-top: 1px;
  width: 100%;
  table-layout: auto; /* Автоматическая подстройка ширины столбцов */
  border-collapse: collapse; /* Объединяет границы ячеек */
}
.stats table th, .stats table td {
  padding: .30em .60em;
  border: 1px solid #ADD8E6; /* Стандартный цвет для всех границ */
  text-align: center; /* Центрируем текст */
}
.stats table td a.tcr:hover {
  text-decoration: underline;  /* Подчеркивание текста при наведении */
  color: #32CD32; /* Салатовый цвет при наведении */
}
</style>
<script type="text/javascript">
(function() {
  var numPosts = 9; // Количество выводимых сообщений (не более 20)
  var html = '';
  var html0 = '<div class="container stats"><table cellspacing="0" class="container">\
                <thead><tr><th>Автор</th><th>Последнее сообщение в теме</th><th>Дата</th><th>Время написания поста</th></tr>\
                </thead><tbody class="hasicon">';
 
  // Получаем данные с API форума
  fetch('/api.php?method=topic.getRecent')
    .then(response => response.json())
    .then(data => {
      if (data.response && data.response.length > 0) {
        for (var i = 0; i < Math.min(data.response.length, numPosts); i++) {
          var post = data.response[i];
          
          var s1 = post.username;  // Автор
          var s2 = post.subject;  // Название темы
          var s3 = post.last_username;  // Автор последнего сообщения
          var topicId = post.id;  // Идентификатор темы
          var lastPostId = post.last_post_id;  // Идентификатор последнего сообщения
          var DatetimePost = post.last_post_date; 
 
          var ts = new Date(DatetimePost * 1000);  // Преобразуем Unix timestamp в миллисекунды
          // Форматируем дату и время для отображения
          var datePart = ts.toLocaleDateString();
          
         // Отнимаем 2 часа   (часовой пояс)
          ts.setHours(ts.getHours() - 2);
         // Форматируем время    
         var timePart = ts.toLocaleTimeString();  // Локальное время с учетом изменения
 
          // Формируем ссылку на последнюю страницу темы
          var lastPageUrl = `/viewtopic.php?pid=${lastPostId}#p${lastPostId}`;
 
          // Формируем строку для таблицы
          var row = `<tr> <td>${s3}</td><td class="tc2"><a href="${lastPageUrl}" target="_blank" class="tcr">${s2}</a></td><td class="tc2">${datePart}</td><td class="tc2">${timePart}</td></tr>`;
 
          // Добавляем строку в итоговый HTML
          html += row;
        }
        // Завершаем таблицу
        var finalHtml = html0 + html + '</tbody></table></div><br/><h2><span>Общая статистика</span></h2>';
        
        // Проверка наличия элемента с классом .statscon
        if ($('.statscon').length) {
          $('.statscon').prepend(finalHtml);
        } else {
          console.error('Элемент с классом .statscon не найден');
        }
      } else {
        console.error("Нет данных или формат ответа неправильный");
      }
    })
    .catch(error => console.error("Ошибка при получении данных:", error));
})();
</script>
 
<!------------------------------------------------------------------------------------------------------------------------>

Источник

0


Вы здесь » Тестовик » Украшение форума » Последние 10 сообщений форума


создать форум