Единый форум поддержки

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

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


Вы здесь » Единый форум поддержки » Новые возможности форумов » Запросы по скриптам #11


Запросы по скриптам #11

Сообщений 1121 страница 1140 из 1193

1

Предыдущая тема - Запросы по скриптам[9]

Инструменты для поиска и редактирования стиля (скриптов).

Как с помощью браузера можно определить элемент дизайна.

Каталог скриптов/CSS

Полезные скрипты, необходимые темы для новичков, а также ссылки на сайты рассказывающие что такое НТМЛ и CSS.

Типовые Вопросы (ЧаВо)

Ответы на часто задаваемые вопросы.

Как задавать вопросы! Разница между стилем и скриптом. ( Советы)

Плюс к названию темы еще и Памятка.

Предыдущая часть темы: Запросы по скриптам[10]

+1

1121

Pasteur
Ждите ответа от Deff (посмотрит, подскажет) раз ответил

+1

1122

Pasteur
Пробуйте в начало кода HTML со спойлером:

Код:
<style>
  summary:before{
   content: " ";
   position:relative; 
   z-index:2;
   display:inline-block;
   width:16px;
   height:16px;
   margin:3px -12px -3px 12px;
   /*outline:red solid 1px;*/
   background: url(https://forumstatic.ru/files/0012/d8/04/46693.png);
  }
</style>

Отредактировано Deff (Пн, 2 Май 2022 23:03:24)

+1

1123

Pasteur
Обрамлять  в теги [html][/html] надо всю конструкцию, а не отдельно тот код что я дал и отдельно спойлер!

0

1124

Deff написал(а):

Pasteur
Обрамлять  в теги [html][/html] надо всю конструкцию, а не отдельно тот код что я дал и отдельно спойлер!

Что-то пошло не так  :no: Наверное, я что-то неправильно делаю...
...или не очень чётко сформулировал идею  :dontknow:

0

1125

Pasteur
Ти ананизмом занимаешьсо - проще убрать крестик и обрамление у стандартного спойлера, чем впаривать кучу кодов через HTML в сообщение, а результат по факту будет иденчен и без лишних вставок в каждый пост навороченного кода, а так вообще не будет никаких дополнительных вставок!

+1

1126

Deff написал(а):

Pasteur
Ти ананизмом занимаешьсо

Юмор заценил. Ну, так... процентов на 10-15.

Deff написал(а):

...проще убрать крестик и обрамление у стандартного спойлера, чем впаривать кучу кодов через HTML в сообщение, а результат по факту будет иденчен...

И у тебя, как я понял, есть вариант решения?
Сразу оговорим параметры этого модернизированного НЕ-хтмл-ного спойлера:
- никакого бакграунда ни у заголовка, ни у содержимого,
- никаких отступов слева-сверху-снизу
- никаких кнопок открытия/сворачивания, - открывается спойлер кликом по заголовку (текстовому или картиночному), а сворачивается кликом по открывшемуся контенту.

Уточню во избежание необоснованных критических замечаний: хтмл-спойлер с такими характеристиками некоторое время существовал во вселенной МуВВ, - с его помощью я оформлял титульные посты на одном известном тебе форуме. Затем, вероятно, где-то что-то поменялось в вышестоящих инстанциях, коды частично сдохли, и поганенькие стрелочки снова материализовались в постах перед заголовками спойлеров, сдвигая оные вправо.
Так что, никаких заоблачных фантазий, просто хочу "вернуть взад" удобную оформительскую фичу. Если удастся сделать такую же без нагромождения кодов, буду только рад.
Заранее спасибо за помощь.

0

1127

Pasteur написал(а):

а сворачивается кликом по открывшемуся контенту.

Херня - если в спойлере ссылка - так он закрывается, не не переходит по ссылке ? Или клик по кнопке видео ?
И твой текущий спойлер через HTML нифига не закрывается кликом по контенту - точно так же закрывается по заголовку, -  разработчики не дураки! (Дуришь голову...

ну и про онанизм -  аналог непродуктивного занятия!

Остальное можно реализовать согласно твоим требованиям

Отредактировано Deff (Вт, 3 Май 2022 12:23:31)

+1

1128

Неконструктивную часть диалога пропускаю.

Про сворачивание спойлера кликом по свободному пространству или тексту [не по ссылкам, конечно же!] в открывшемся подспойлерном контенте можем переговорить когда у тебя настроение будет более толерантное. Хотя... можем и не поднимать эту тему, а ограничиться компромиссным решением, - ввести через КСС произвольную картинку-"кнопку" для закрывания - в самом конце массива, упакованного под спойлер. Лет 10 назад, а то и больше, ты такую штучку уже разрабатывал, я ей до сих пор пользуюсь - http://polygon.forum-top.ru/viewtopic.php?id=46#p341

Deff написал(а):

Остальное можно реализовать согласно твоим требованиям

А вот за это - ещё одно предварительное спасибо.

0

1129

Pasteur написал(а):

кнопку" для закрывания - в самом конце массива, упакованного под спойлер

Такое есть уже для текущего спойлера, поищи в поиске - кнопка сворачивания спойлера...

Остальное к ночи выложу

+1

1130

Deff написал(а):

Остальное к ночи выложу

В HTML верх:

<style>
.post-content .quote-box.spoiler-box{
  border-left:0;
  background: none!important;
  border-left: 8px double #4D4D4A;
}
.post-content .spoiler-box > div {
    padding-left: 0;
    background: none!important;
}
.post-content .spoiler-box > blockquote {
    padding-top: 0!important;
}
</style>

Красным  - боковая отметка объёма спойлера(цвет#4D4D4A  можно поменять) - ибо без оного(посколь заказ убрать фоновый цвет) непонятно к какому заголовку спойлера относится контент и(или) если будет скрипт кнопка скрытия спойла - к какому контенту относится эта кнопка...
Ибо без фона и признака начала спойлера находящийся где-то не в начале сплошного текста непонятен(где его заголовок-кликалка и где его начало и конец, тем более при открытии)
Карочь оформление делалось с учетом оптимальной функциональности.

Если таки захочется убрать и эту отметку - убираем строку красным  :flag:

Отредактировано Deff (Вт, 3 Май 2022 20:33:00)

+1

1131

Deff, спасибо огромное, - очень интересный спойлер  :cool:
У нас тут только-только свет включили, поэтому не успел всё потестировать, но уже в первом приближении вижу, что осталось всего полшага до создания спойлера моей мечты (ликвидировать дефолтные отступы со всех сторон)  :yep:
Сейчас потестирую, сделаю скриншоты и отпишусь подробнее.


Добавлено спустя 3 часа 19 минут 7 секунд:


Ну, вот, повозился, покрутил так и этак, прикинул, что и где надо доделывать. Сначала хотел сюда выложить, но потом прикинул, сколько места это займёт, и решил оставить отчёт там, на Полигоне (ссылочку я давал).

Жду твоего окончательного вердикта, что со всем этим делать  :yep:

Отредактировано Pasteur (Ср, 4 Май 2022 04:14:02)

0

1132

Добрый день!
Подскажите такую штуку. Имеем скрипт блогов и окно "Последние записи" на главной странице. По дефолту в первую колонку Автор подтягивается только ник из /search.php. Вопрос такой: можно ли заместо ника туда подтянуть узел с аватаркой из базового форумного скрипта. Который <em class="user-avatar">. Тем же образом, как он вставляется в Активные темы, Участников и т.д. Дабы все это дело заимело следующий вид.

https://forumupload.ru/uploads/0000/14/1c/34411/t614958.png

Чтобы можно было его засобачить в #lastblogs .tcl и затем в #pun-stats.posts .tcl
Тестовик: https://sftest.forumrpg.ru/

Отредактировано Neil Grant (Ср, 4 Май 2022 09:52:18)

0

1133

Neil Grant
Добывание Авика по нику это работа с API, код единичный, попробуйте заказать на forumd.ru

Отредактировано Deff (Ср, 4 Май 2022 10:42:10)

0

1134

На сколько я понимаю логику, в эту часть кода (она создает окно на главной) нужно добавить что-то эдакое. То бишь сначала мы находим переменную с ником, затем используем ее содержимое для поиска через юзерлист, аналогично переменной топика, затем вставляем переменную аватара в <td class="tcl">. Timeout ставим, ибо серверный скрипт грузится позже. Отдельно сама по себе добавленная конструкция у меня работает, если вписывать конкретный ник и ячейку, а вот с переменными не пойму, что надо сделать. Поможете?

if($('#pun-index').length && BLOG.last == 1) {
    var tstyle='<style>.lastblogs td{padding:4px 8px}#lastblogs{width:100%;padding:0!important}\
    .lastblogs .tc2,.lastblogs .tcl{width:18.8%;}</style>';
    var tname = '';
    var table0 = '<table id="lastblogs" cellspacing="0" class="container"><tbody class="hasicon">';
    var tableEnd = '</tbody></table>';
    $.get('/search.php?action=search&keywords=888TopicPost_Blog888&sort_dir=DESC&show_as=posts',function(data) {
      $(data).find('.post').each(function() {
var pstAuthor = $(this).find('.pa-author>strong').text();

var pstAvatar = setTimeout(function(){
   $.get('/userlist.php?username=pstAuthor&sort_dir=DESC',function(data) {
      $(data).find('.usertable').each(function() {
$(this).find('tbody .username').html();
      });
   });
}, 50);

var pstDate   = $(this).find('h3>span>a:last').text();
var nameEntry = $(this).find('h3>span a:eq(1)').text().replace(/·/g,'');
var lnkEntry  = $(this).find('h3>span a:eq(1)').attr('href').split('id=')[1];
var numComment= $(this).find('.pa-replies').text().split('Ответов: ')[1];
var pstContent= $(this).find('.post-content').html();

var pstRow = '<tr><td class="tcl">'+pstAvatar+'</td>\
        <td class="tcr"><a href="/blogs.php?act=show&blog='+lnkEntry+'">'+nameEntry+'</a><br><div class="time">'+pstDate+'</div></td><td class="tc4">'+numComment+'</td></tr>';
if(pstContent.indexOf('[forUsers]')==-1&&pstContent.indexOf('$View=moder$')!=-1&&GroupID>2&&pstAuthor!=UserLogin){ pstRow = ''; console.log('>1<');}
if(pstContent.indexOf('[forUsers]')!=-1 && pstAuthor != UserLogin && GroupID>2) {
  var usrsList = pstContent.split('[forUsers]')[1].split('[/forUsers]')[0];//alert(usrsList);
  usrsList = $.trim(usrsList).split(/\s*,\s*/);
  if($.inArray(UserLogin,usrsList)==-1){pstRow = '';console.log('>2<');}
}
        table0 += pstRow;
      });
      table0 += tableEnd;
      $(document).ready(function() {
        $('#sideblock .lastblogs .container').prepend(tstyle+tname+table0);
        $('#pun-stats.lastblogs').find('tbody tr:gt(9)').remove();
      });
    });
  }

}());

//8888888888888888888888888888888888888888888888888888888888888888//
//End//-Переадресация, правка URL и заголовка, подгрузка контента //
//8888888888888888888888888888888888888888888888888888888888888888//

</script>

Отредактировано Neil Grant (Ср, 4 Май 2022 16:41:00)

0

1135

Neil Grant
Ну я таки парсил бы из таблицы перед самой вставкой на страницу Ники блогов, создавал бы массив  массив array.push([селектор tr таблицы, Ник])
Затем использую массив запрашивал все авики к Никам одним запросом типа по образу Новые возможности с применением API (тест) и докидвал их третьим элементом в подмассив
array[i].push(Авик) (который [селектор tr таблицы, Ник]) получал бы [селектор tr таблицы, Ник, Aвик]
Затем перебирая все элементы по селекторам из этого массива  [селектор tr таблицы, Ник, Aвик] добавлял авик к таблице

Отредактировано Deff (Ср, 4 Май 2022 18:03:26)

0

1136

Deff
Ого, благодарю за наводку! Этот скрипт весьма помог! Тот, что с tipsy вполне хорошо работает сам по себе, правда имеет какое-то автоматическое ограничение на 8 элементов. Больше восьми аватарок на странице не отображает. А у меня 10+ строк.
Попробовал замиксовать с массивом, ориентируясь на нижележащие скрипты, вроде бы как вы посоветовали, но что-то явно наделал не так.

setTimeout(function(){
$(document).ready(function(){
    var tmp = [], ava = [];
    $('#lastblogs .tcl a,.posts .tcl').each(function (i) {
    var self = $(this);
    var avtor = $(this).html();

  $.each(avtor, function(i, el){
       if($.inArray(el, tmp) === -1)
          tmp.push(el);
  });
  });

   $.getJSON('/api.php?method=users.get&username='+tmp+'&fields=avatar',
    function(json) {
    var xx = json.response.users;
    for (var i in xx) {
    var val = xx[i];
    var ava[i] = val.avatar;
        }

    $(self).map(function(){
      for (var i=0; i<ava.length; i++) {
    var InfoUs ='<em class="user-avatar"><img src="'+ava[i]+'" class="avatar-image"></em>'
    $(self).html(InfoUs);
      }
    });
   }
});
});

}, 300);

0

1137

Deff
А этот тот скрипт, который работает, но выводит только 8 авок почему-то. И чем меньше ставить задержку времени, тем меньше показывает. Любопытно, что если вставить даже пустой alert() перед getJSON, то он исправно выведет все 10 авок через проклик. В том числе если сдублировать скрипт и вставить в каждый по одному селектору.

setTimeout(function(){
    $('.posts .tcl,#lastblogs .tcl a').map(function () {
    var self = $(this);
    var avtor = $(this).html();

    $.getJSON('/api.php?method=users.get&username='+avtor+'&fields=avatar',
    function(json) {
    var xx = json.response.users;
    for (var key of xx) {
    var val = key;
    var ava = val.avatar;

    var InfoUs ='<em class="user-avatar"><img src="'+ava+'" class="avatar-image"></em>'
    $(self).html(InfoUs); 
    }
    }
    );
   })
}, 300);

0

1138

Ну ты не по одному Авику запрашивай! А там можно стразу запросить массив Авиков...

Я ж рассказал идею: Cобираешь массив из селекторов ячейки и Имён ников, далее делаешь один единственный запрос по всем собранным никам

'/api.php?method=users.get&username=['+avtor1+','+avtor2+','+avtor3+...']&fields=avatar'

Отредактировано Deff (Вс, 8 Май 2022 22:40:27)

0

1139

Тогда выходит нечто такое?

setTimeout(function(){

var tmp = [];   - создаем массив

    $('.posts .tcl,#lastblogs .tcl a').map(function () {
    var self = $(this);
    var avtor = $(this).html();      - вытаскивем ники в виде хтмл
 
   tmp.push(avtor);              - помещаем их в массив
   for (var avt of tmp) {         - делаем перебор, где avt это один ник

    $.getJSON('/api.php?method=users.get&username='+avt+'&fields=avatar',     - помещаем эту переменную в поиск

А зачем нужен селектор таблицы? Целая строка tr не требуется - ники лежат только в первой колонке, класс у ячеек везде одинаковый - .tcl. Перед всеми никами будет просто одинаковый класс.
Потом, если смотреть через алерт, то ники в массиве имеют вид: Вася,Вася,Вася,117,David,David. С классом это должно быть: [.tcl,Вася],[.tcl,Вася],[.tcl,Вася],[.tcl,117],[.tcl,David],[.tcl,David]?  :huh:

Отредактировано Neil Grant (Вс, 8 Май 2022 20:30:28)

0

1140

Neil Grant
Я имею ввиду селектор как объект, дабы потом просто в цикле в данный селектор засовывать Авик

Ну типо:

var arr =[];
var arr2=[]
$('.posts .tcl,#lastblogs .tcl a').each(function () {
    arr.push([ $(this).html(),$(this)]);
    arr2.push([ $(this).html()]);
});

var AllnickForApi = '['+arr2.join(',')+']';

Далее после получения всех Авиков одним Api-запросом(см выше), создав массив Ники:Авики проходим циклом одновременно по массиву ником с авиками и ников с селекторами засунуть Авики в нужное место ну типо:
arr[i][1].parents('tr').find('чот-там')

Отредактировано Deff (Вс, 8 Май 2022 22:44:27)

+2


Вы здесь » Единый форум поддержки » Новые возможности форумов » Запросы по скриптам #11