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

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

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


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


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

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

Перевести1

В этой теме просим о создании различных скриптов

Здесь вы можете оставить запрос на разработку нового скрипта для форума. Пожалуйста, внимательно ознакомьтесь с правилами темы. Просьба быть внимательным: эта тема касается только вопросов о создании новых скриптов!
Вопросы по оформлению форума и прочим CSS-кодам, просьба, задавать в темах Общие вопросы от новичков (63) #3 и Общие вопросы по оформлению (65) #2

Информируем о следующем:

  • Участники форума оказывают помощь в написании скриптов исключительно по собственному желанию.

  • Администрация форума не может гарантировать исполнение и корректность каждого запроса.

  • Пожалуйста, уважайте чужое время и усилия других пользователей, старайтесь писать грамотно и доходчиво.

  • Будьте взаимовежливы: Грубое или требовательное отношение к участникам форума неприемлемо и может привести к отказу в помощи на всём форуме.

  • Все вопросы, не касающиеся запросов скриптов, будут удаляться!

Сформулируйте свой запрос максимально подробно, чтобы повысить вероятность отклика:

  • Опишите желаемую функциональность: Что конкретно должен делать скрипт?

  • Укажите конечный результат: Что вы хотите получить в итоге? Где и как будет использоваться скрипт?

  • Если есть примеры, покажите: Укажите ссылки на схожий функционал скрипта или нарисуйте макет (на скриншоте), чего именно вы ожидаете получить - всё это значительно упростит задачу.

Если на ваш запрос долго нет ответа, пожалуйста, воздержитесь от повторных сообщений или обвинений. Возможно, задача оказалась слишком сложной или трудозатратой по времени, будьте готовы к тому, что участники могут предложить свои услуги на платной основе. Обсуждение условий и оплаты происходит между вами и участником (исполнителем) в личных сообщениях или иных средствах связи (но не в теме!). Администрация форума не несет никакой ответственности за подобные договоренности и их выполнение.

Если скрипт был написан на безвозмездной основе, автор может разместить его в общем каталоге скриптов для других пользователей.

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

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

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

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

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

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

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

Как правильно задавать вопросы. В чём разница между стилем и скриптом.

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

+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://upforme.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