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

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

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


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


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

Сообщений 1681 страница 1700 из 1720

1

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

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

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

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

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

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

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

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

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

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

+1

1681

Merlin777 (По идее легко ищется в поиске тут по форуму)
В HTML верх:

Код:
<!--выделить код. Alex_63 new.2019--> 
<script type="text/javascript" src="https://forumstatic.ru/files/0015/c4/3f/26102.js"></script>
<script>eval(select_text.toString().replace(/\}$/,'try{document.execCommand("copy")}catch(e){}}'))</script>
<script type="text/javascript">select_text.linkText = 'выделить [копируется сразу]' //текст ссылки</script>
<!-- конец -->

+1

1682

Доброго времени суток скриптоделы.
Возможно ли подружить скрипт Просмотр фотографий без перехода на новую страницу v.2.5 с фотохостингами:
https://imageban.ru/
https://new.fastpic.org/
https://fastpic.org/
Заранее брагодарен.
Скрипт @Romych но он пока вроде как не занимается скриптами.

0

1683

@Deff  Приветствую!
Тогда переадресую вопрос к Вам.
Возможно ли подружить? Ваш скрипт Скрипты от пользователей 2 с фотохостингами:
https://imageban.ru/
https://new.fastpic.org/
https://fastpic.org/

0

1684

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

@Deff  Приветствую!
Тогда переадресую вопрос к Вам.
Возможно ли подружить? Ваш скрипт Скрипты от пользователей 2 с фотохостингами:
https://imageban.ru/
https://new.fastpic.org/
https://fastpic.org/

Ни наю, это код 2012 года, и плагин не мой...

выложите по паре картинок с указанных хостингов (попробую потестить...)

+1

1685

@Deff

https://imageban.ru/

https://i8.imageban.ru/thumbs/2025.08.01/05b829a7ee8081a918b225074922d654.jpg https://i2.imageban.ru/thumbs/2025.08.01/71e72e89268bd886463c0f1ebd62d028.jpg
---------------------------------------
https://new.fastpic.org/

https://i125.fastpic.org/thumb/2025/0801/0f/e32bad1fdf0cdbe5ba2303a8bc17240f.jpeg https://i125.fastpic.org/thumb/2025/0801/85/368afbead286702a184aab0fdc31e985.jpeg
---------------------------------------
https://fastpic.org/

https://i125.fastpic.org/thumb/2025/0801/8a/fc707e2f298d3e63570e90e164b1e28a.jpeg https://i125.fastpic.org/thumb/2025/0801/23/8ae7bb5072328dfa0961148564066623.jpeg
плагин Swipebox, который на этом форуме и в Администрирование - Скрипты, он не открывает https://new.fastpic.org/ и https://fastpic.org/

Отредактировано ACT3255 (Пт, 1 Авг 2025 15:27:58)

+1

1686

ACT3255
Ну тут дедлайны в реале... напомни ещё раз во вторник (ибо тут походу разбираться надолго, потестил два часа - пока не смог обнаружить причину..

+1

1687

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

напомни ещё раз во вторник

@Deff  Приветствую!
Тогда переадресую вопрос к Вам.
Возможно ли подружить? Ваш скрипт Скрипты от пользователей 2 с фотохостингами:
https://imageban.ru/
https://new.fastpic.org/
https://fastpic.org/

Фото для теста
----------------------------------

https://imageban.ru/

https://i8.imageban.ru/thumbs/2025.08.01/05b829a7ee8081a918b225074922d654.jpg https://i2.imageban.ru/thumbs/2025.08.01/71e72e89268bd886463c0f1ebd62d028.jpg
---------------------------------------
https://new.fastpic.org/

https://i125.fastpic.org/thumb/2025/0801/0f/e32bad1fdf0cdbe5ba2303a8bc17240f.jpeg https://i125.fastpic.org/thumb/2025/0801/85/368afbead286702a184aab0fdc31e985.jpeg
---------------------------------------
https://fastpic.org/

https://i125.fastpic.org/thumb/2025/0801/8a/fc707e2f298d3e63570e90e164b1e28a.jpeg https://i125.fastpic.org/thumb/2025/0801/23/8ae7bb5072328dfa0961148564066623.jpeg
плагин Swipebox, который на этом форуме и в Администрирование - Скрипты, он не открывает https://new.fastpic.org/ и https://fastpic.org/

Отредактировано ACT3255 (Вт, 5 Авг 2025 07:44:33)

0

1688

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

@Deff  Приветствую!
Тогда переадресую вопрос к Вам.

Ок, Кавыряю, ккрикуну к вечеру

+1

1689

ACT3255
Ну пока вообщем не победил( пять часов кавыряний... )  :dontknow:

+2

1690

Встроенное видео от хостинга https://sendvid.com/

Сейчас всё более актуальным становится размещение в интернете коротких видео в формате mp4 -- по типу как раньше мы выкладывали картинки.
Был найден такой хостинг, позволяющий заливать mp4 - https://sendvid.com/ - это вроде как друг известного https://www.imagebam.com/ - куда мы заливаем фото.

С помощью ИИ был написан код. Вставлять в HTML низ:

Код:
<script>
(function() {
  function embedSendvid(root = document) {
    // 1) Ссылки вида https://sendvid.com/p8sguqp2
    const anchors = root.querySelectorAll('a[href*="sendvid.com"]');
    anchors.forEach(a => {
      if (a.dataset.svEmbedded) return;
      const href = a.getAttribute('href') || a.textContent || '';
      const m = href.match(/sendvid\.com\/(?:embed\/)?([a-zA-Z0-9]+)/i);
      if (!m) return;
      const id = m[1];

      const wrapper = document.createElement('div');
      wrapper.className = 'sv-embed';
      wrapper.innerHTML = `
        <iframe
          src="https://sendvid.com/embed/${id}"
          title="Sendvid video"
          allowfullscreen
          loading="lazy"
          referrerpolicy="no-referrer"
        ></iframe>
      `;
      a.replaceWith(wrapper);
      wrapper.dataset.svEmbedded = "1";
    });

    // 2) Поддержка кастомного плейсхолдера: <span data-sendvid-id="p8sguqp2"></span>
    const placeholders = root.querySelectorAll('[data-sendvid-id]');
    placeholders.forEach(el => {
      if (el.dataset.svEmbedded) return;
      const id = el.getAttribute('data-sendvid-id');
      if (!id) return;
      el.classList.add('sv-embed');
      el.innerHTML = `
        <iframe
          src="https://sendvid.com/embed/${id}"
          title="Sendvid video"
          allowfullscreen
          loading="lazy"
          referrerpolicy="no-referrer"
        ></iframe>
      `;
      el.dataset.svEmbedded = "1";
    });
  }

  // Впрыскиваем адаптивный CSS
  const css = `
    .sv-embed{position:relative;padding-bottom:56.25%;height:0;overflow:hidden;max-width:100%;background:#000;border-radius:8px}
    .sv-embed iframe{position:absolute;top:0;left:0;width:100%;height:100%;border:0}
  `;
  const style = document.createElement('style');
  style.textContent = css;
  document.head.appendChild(style);

  // Первый прогон
  if (document.readyState !== 'loading') embedSendvid();
  else document.addEventListener('DOMContentLoaded', () => embedSendvid());

  // На случай динамической подгрузки постов
  const mo = new MutationObserver(muts => {
    for (const m of muts) {
      m.addedNodes.forEach(n => {
        if (n.nodeType === 1) embedSendvid(n);
      });
    }
  });
  mo.observe(document.body, { childList: true, subtree: true });
})();
</script>

Теперь при вставке ссылки на видео - скрипт заменяет её на показ встроенного проигрывателя. Тестовая ссылка - https://sendvid.com/p8sguqp2

Примечание: при первом нажатии на кнопку проигрывания встроенного видео - открывается дополнительная страница с рекламой. Видимо, таковы настройки хостинга.
Комментарий к скрипту от ИИ:

Комментарий к скрипту

Как пользоваться: вставляйте в пост обычную ссылку: https://sendvid.com/p8sguqp2 — скрипт сам заменит её на встройку.
[*]Или используйте плейсхолдер, если ссылки форум режет: <span data-sendvid-id="p8sguqp2"></span>

Дополнительно: вариант BBCode (например, для phpBB)
[*]Создайте кастомный BBCode вида: [sendvid]p8sguqp2[/sendvid]
[*]HTML-замена: <span data-sendvid-id="{TEXT}">Смотреть видео</span>

[*]Скрипт выше автоматически превратит такой плейсхолдер в iframe.
[*]Если хочется поддержать и [sendvid]https://sendvid.com/p8sguqp2[/sendvid], в JS уже есть парсер — просто в BBCode передавайте ссылку, а не только ID, и он её распарсит.

Примечания: явно используем https в src: "https://sendvid.com/embed/ID".
[*]Если встраивание не работает, проверьте Content-Security-Policy сервера: должно разрешать frame-src https://sendvid.com.
[*]Если у вас нет доступа к шаблонам, тот же код можно оформить как Tampermonkey-скрипт (добавьте шапку @match под домен форума).

Отредактировано Виплич (Вс, 31 Авг 2025 20:54:48)

+1

1691

Я закидывал этот скрипт в тему Скрипты от пользователей 3 -- но оно почему-то опубликовалось здесь.

0

1692

Виплич написал(а):

Я закидывал этот скрипт в тему Скрипты от пользователей 3 -- но оно почему-то опубликовалось здесь.

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

+2

1693

Виплич написал(а):

при первом нажатии на кнопку проигрывания встроенного видео - открывается дополнительная страница с рекламой



Добавлена "песочница", которую на всякий случай можно отключить, и запрет на всплывающие окна.

Вставка видео с помощью Sendvid (c sandbox, плейсхолдером и блокировкой всплывающих окон)
Код:
<!-- Вставка видео с помощью Sendvid   -->
<script>
(function() {
  // 🔁 Переключатель sandbox: включите/выключите при необходимости
  const SANDBOX_ENABLED = true;

  function embedSendvid(root = document) {
    // Ссылки вида https://sendvid.com/eke4ai5r
    const anchors = root.querySelectorAll('a[href*="sendvid.com"]');
    anchors.forEach(a => {
      if (a.dataset.svEmbedded) return;
      const href = a.getAttribute('href') || a.textContent || '';
      const m = href.match(/sendvid\.com\/(?:embed\/)?([a-zA-Z0-9]+)/i);
      if (!m) return;
      const id = m[1];

      const wrapper = document.createElement('div');
      wrapper.className = 'sv-embed';
      wrapper.innerHTML = createIframeHTML(id);
      a.replaceWith(wrapper);
      wrapper.dataset.svEmbedded = "1";
    });

    // Поддержка кастомного плейсхолдера: <span data-sendvid-id="eke4ai5r"></span>
    const placeholders = root.querySelectorAll('[data-sendvid-id]');
    placeholders.forEach(el => {
      if (el.dataset.svEmbedded) return;
      const id = el.getAttribute('data-sendvid-id');
      if (!id) return;
      el.classList.add('sv-embed');
      el.innerHTML = createIframeHTML(id);
      el.dataset.svEmbedded = "1";
    });
  }

  // 🔧 Функция генерации iframe-кода с/без sandbox
  function createIframeHTML(id) {
    const sandboxAttr = SANDBOX_ENABLED
      ? 'sandbox="allow-same-origin allow-scripts allow-presentation"'
      : '';
    return `
      <iframe
        src="https://sendvid.com/embed/${id}"
        title="Sendvid video"
        allowfullscreen
        loading="lazy"
        referrerpolicy="no-referrer"
        ${sandboxAttr}
      ></iframe>
    `;
  }

  // 💅 Стили
  const css = `
    .sv-embed {
      position: relative;
      padding-bottom: 56.25%;
      height: 0;
      overflow: hidden;
      max-width: 100%;
      background: #000;
      border-radius: 8px;
    }
    .sv-embed iframe {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      border: 0;
    }
  `;
  const style = document.createElement('style');
  style.textContent = css;
  document.head.appendChild(style);

  // 🚀 Инициализация
  if (document.readyState !== 'loading') embedSendvid();
  else document.addEventListener('DOMContentLoaded', () => embedSendvid());

  // ♻️ Обработка динамической подгрузки
  const mo = new MutationObserver(muts => {
    for (const m of muts) {
      m.addedNodes.forEach(n => {
        if (n.nodeType === 1) embedSendvid(n);
      });
    }
  });
  mo.observe(document.body, { childList: true, subtree: true });

  // 🛡️ Блокировка всплывающих окон
  window.addEventListener('click', function () {
    const originalOpen = window.open;
    window.open = function () {
      console.warn('Popup заблокирован.');
      return null;
    };
    setTimeout(() => {
      window.open = originalOpen;
    }, 100);
  }, true);
})();
</script>
<!-- Вставка видео с помощью Sendvid   -->

По результатам испытаний, убрал у себя кусок кода с плейсхолдером и с запретом на всплывающие окна (избыточные ограничения, sandbox достаточно).

Вариант скрипта на моём форуме:

Вставка видео с помощью Sendvid (с sandbox)
Код:
<!-- Вставка видео с помощью Sendvid   -->
<script>
(function() {
  // 🔁 Переключатель sandbox: включите/выключите при необходимости
  const SANDBOX_ENABLED = true;

  function embedSendvid(root = document) {
    // Ссылки вида https://sendvid.com/eke4ai5r
    const anchors = root.querySelectorAll('a[href*="sendvid.com"]');
    anchors.forEach(a => {
      if (a.dataset.svEmbedded) return;
      const href = a.getAttribute('href') || a.textContent || '';
      const m = href.match(/sendvid\.com\/(?:embed\/)?([a-zA-Z0-9]+)/i);
      if (!m) return;
      const id = m[1];

      const wrapper = document.createElement('div');
      wrapper.className = 'sv-embed';
      wrapper.innerHTML = createIframeHTML(id);
      a.replaceWith(wrapper);
      wrapper.dataset.svEmbedded = "1";
    });
  }

  // 🔧 Функция генерации iframe-кода с/без sandbox
  function createIframeHTML(id) {
    const sandboxAttr = SANDBOX_ENABLED
      ? 'sandbox="allow-same-origin allow-scripts allow-presentation"'
      : '';
    return `
      <iframe
        src="https://sendvid.com/embed/${id}"
        title="Sendvid video"
        allowfullscreen
        loading="lazy"
        referrerpolicy="no-referrer"
        ${sandboxAttr}
      ></iframe>
    `;
  }

  // 💅 Стили
  const css = `
    .sv-embed {
      position: relative;
      padding-bottom: 56.25%;
      height: 0;
      overflow: hidden;
      max-width: 100%;
      background: #000;
      border-radius: 8px;
    }
    .sv-embed iframe {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      border: 0;
    }
  `;
  const style = document.createElement('style');
  style.textContent = css;
  document.head.appendChild(style);

  // 🚀 Инициализация
  if (document.readyState !== 'loading') embedSendvid();
  else document.addEventListener('DOMContentLoaded', () => embedSendvid());

  // ♻️ Обработка динамической подгрузки
  const mo = new MutationObserver(muts => {
    for (const m of muts) {
      m.addedNodes.forEach(n => {
        if (n.nodeType === 1) embedSendvid(n);
      });
    }
  });
  mo.observe(document.body, { childList: true, subtree: true });
})();
</script>
<!-- Вставка видео с помощью Sendvid   -->

Отредактировано Merlin777 (Вс, 7 Сен 2025 03:30:29)

+3

1694

Здравствуйте!

Вопрос по скрипту: Скрипты от пользователей 3

Как сделать строку "Создано тем" в мини-профиле кликабельной? Спасибо.

0

1695

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

Цветовыделение ников по группам

С изменением цвета при наведении

В HTML низ:

<!-- Цветовыделение ников по группам -->
<script type="text/javascript">
var groupColors ={
//ID группы   //Цвет   //При наведении
          1 : ['
#DA0000','#FF6666'],
          2 : ['
#0000CD','#3366FF'],
          5 : ['
#00C90F','#99CCFF'] //Последний элемент без запятой
};
</script>
<script type="text/javascript" src="https://forumstatic.ru/files/0015/c4/3f/30025.js"></script>

Стандартные группы:
1 - Администраторы
2 - Модераторы
3 - Гость
4 - Пользователи

Цвета видят только администраторы и модераторы, остальные участники не видят

0

1696

Neo.Neo написал(а):

Как сделать строку "Создано тем" в мини-профиле кликабельной? Спасибо.

Попробуйте в начало HTML низ

Код:
<script>$('.post-author li[class^="pa-fld"]:contains("Создано тем")').each(function(){var uid=$(this).closest('.post').attr('data-user-id');$(this).find('.fld-name').html('<a href="/search.php?action=show_user_topics&user_id='+uid+'">Создано тем</a>:')})</script>

+2

1697

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

Цвета видят только администраторы и модераторы, остальные участники не видят

Попробуйте в настройках групп (Администрирование - Группы) включить Поиск пользователей для тех групп, у которых не работает цветовыделение.

+1

1698

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

Попробуйте в начало HTML низ

Здравствуйте! Получилось. https://image.ibb.co/cKbUOb/insm28128.gif

*UPD

Имхо, можно объединить эти две части как Часть 1 и Часть 2 - дать в посте с исходным скриптом ссылку на Вашу доработку или дописать пост со скриптом прямо там. Ведь это, по сути, относится к одной и той же вещи. Тогда пользователям не придётся "сводить концы с концами" от одной и той же опции - такой как "Создано тем".

Отредактировано Neo.Neo (Пт, 19 Сен 2025 11:46:49)

0

1699

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

Попробуйте в настройках групп (Администрирование - Группы) включить Поиск пользователей для тех групп, у которых не работает цветовыделение.

Спасибо за помощь, включил, начало работать прекрасно :cool:

0

1700

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

Попробуйте в начало HTML низ

Код:
<script>$('.post-author li[class^="pa-fld"]:contains("Создано тем")').each(function(){var uid=$(this).closest('.post').attr('data-user-id');$(this).find('.fld-name').html('<a href="/search.php?action=show_user_topics&user_id='+uid+'">Создано тем</a>:')})</script>

Подскажите, пожалуйста, а как тогда сделать, чтобы и надпись "Сообщений:" тоже была кликабельной? :)

0


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