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

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

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


Вы здесь » Единый форум поддержки » Форум для новичков » Общие вопросы от новичков (63) #3


Общие вопросы от новичков (63) #3

Сообщений 881 страница 882 из 882

1

В этой теме задаём простые вопросы по функционалу форумов

В этой теме новички могут задать свои вопросы о том, как устроен форум, какие у него есть функции, как пользоваться различными возможностями, какие существуют технические нюансы и ограничения и прочие простые вопросы, не относящиеся к оформлению, наполнению и раскрутке форума.
Если у вас возникли вопросы по оформлению форума, их можете задать в теме Общие вопросы по оформлению (65) #2
Для опытных администраторов форумов добро пожаловать в тему Общие вопросы по администрированию (7)

Важная информация перед тем, как задать вопрос:

  • Ответы дают другие участники форума по собственному желанию.

  • Администрация не может гарантировать моментальное решение или абсолютную корректность каждого ответа.

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

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

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

  • Укажите ссылку на форум: Если ваш вопрос касается конкретного форума, обязательно укажите прямую ссылку на него. Это позволит нам увидеть проблему и предложить наиболее точное решение, не тратя время на догадки.

  • Опишите свой вопрос: Каким бы простым не был ваш вопрос, даже если ранее кем-то задавался, задайте его в этой теме. В случае чего, модераторы раздела перенесут ваше сообщение в другую тему.

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

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

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

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

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

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

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

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

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

Любой вопрос по оформлению/неполадкам сопровождайте ссылкой на форум, по которому возникли сложности!

Предыдущая часть темы: Общие вопросы от новичков (63)

Предыдущая часть темы: Общие вопросы от новичков (63) #2


Вопрос автора

Добрый вечер! На форуме возникла проблема с быстрой ссылкой или как её назвать... В форме ответа пишешь @ и выскакивает табличка с юзерами, нажимаешь на нужного и появляется ссылка на его профиль. Почему-то не работает именно с моим. Имя есть, а ссылки нет. С чем это может быть связано?

+2

881

Доброго времени суток. Нашел  скрипт -

Всплывающее окно цитирования

<!-- Всплывающее окно цитирования -->
<style>
#Bubble {
  display: none;
  width: 100px;
  height: auto;
  padding: 5px;
  text-align: center;
  z-index: 10;
  border: 1px black solid;
  background: white;
  background-image: url(http://www.iconsearch.ru/uploads/icons/ … omment.png);
  background-repeat: no-repeat;
  background-position: 10px 4px;
  padding-left: 12px;
}
</style>
<div id="Bubble"><span><a href="javascript:quote('', 0)">Цитировать</a></span></div>
<script>
var fresh = false;
$('.post').mouseup(function(pos) {
  var theSelection = '';
  if (window.getSelection && !$.browser.opera) { theSelection = window.getSelection().toString(); }
  else if (document.getSelection) { theSelection = document.getSelection(); }
  else if (document.selection) { theSelection = document.selection.createRange().text; }
  if (!(theSelection == '' || typeof theSelection == 'undefined' || theSelection == null) && !(fresh))
  {
    $("#Bubble").css({ 'position': 'absolute', 'left': pos.pageX+'px', 'top': (pos.pageY-13)+'px', 'display': 'none' });
    $("#Bubble span").html($(this).find("li.pl-quote").html());
    $("#Bubble").fadeIn(200);
    fresh = true;
  }
  else if (fresh)
  { fresh = false; }
});
$('.post').mousedown(function() {
  if (fresh) { $("#Bubble:visible").hide(200); fresh = false;}
});
$('#Bubble span').click(function() {
  $('#Bubble').hide(200);
  fresh = false;
});
</script>

Кнопка после копирования всплывает, но текст в форме не появляется. Может,  устарел, или я не понял, как он работает?
https://pisatel.1bb.ru/

Отредактировано Alex04 (Ср, 29 Июл 2026 21:49:48)

0

882

ИИ исправил код, может кому пригодится

Всплывающее окно цитирования

<!-- Всплывающее окно цитирования -->
<style>
#Bubble {
  display: none;
  position: absolute;
  width: auto;
  padding: 6px 12px;
  text-align: center;
  z-index: 9999;
  border: 1px solid #000;
  background: #fff;
  cursor: pointer;
  font-weight: bold;
  font-family: sans-serif;
  font-size: 13px;
  box-shadow: 0px 2px 5px rgba(0,0,0,0.2);
  user-select: none;
}
#Bubble:hover {
  background: #f0f0f0;
}
</style>

<div id="Bubble">Цитировать</div>

<script>
var selectedText = '';
var postAuthor = '';

$(document).on('mouseup', '.post', function(e) {
  var selection = window.getSelection();
  var text = selection.toString().trim();
 
  if (text.length > 0) {
    selectedText = text;
   
    var $currentPost = $(this).closest('.post');
   
    // Ищем ссылку на профиль автора, исключая ссылки внутри самого текста сообщения
    var authorLink = $currentPost.find('a[href*="/u"], a[href*="profile"], a[href*="user"], a[href*="member"]').not('.postbody a, .post-text a').first();
   
    if (authorLink.length) {
      var rawName = authorLink.text().trim();
     
      // Очищаем от слова "профиль"
      rawName = rawName.replace(/профиль/gi, '').replace(/profile/gi, '');
     
      // Корректно убираем лишние переносы, если они есть, не ломая код
      if (rawName.indexOf('\n') !== -1) {
        rawName = rawName.split('\n')[0];
      }
     
      postAuthor = rawName.trim();
    } else {
      // Запасной вариант: ищем текстовые блоки ников, если ссылок нет
      var fallbackName = $currentPost.find('.username, .author, .post-author, .name').first().text() || '';
      fallbackName = fallbackName.replace(/профиль/gi, '').replace(/profile/gi, '');
      if (fallbackName.indexOf('\n') !== -1) {
        fallbackName = fallbackName.split('\n')[0];
      }
      postAuthor = fallbackName.trim();
    }
   
    // Показываем кнопку цитирования рядом с курсором
    $("#Bubble").css({
      'left': e.pageX + 'px',
      'top': (e.pageY - 35) + 'px'
    }).stop(true, true).fadeIn(100);
  }
});

// Клик по кнопке цитирования
$(document).on('mousedown', '#Bubble', function(e) {
  e.preventDefault();
  e.stopPropagation();
 
  if (selectedText.length > 0) {
    // 1. Запоминаем текущую высоту прокрутки страницы
    var currentScrollPos = window.scrollY || document.documentElement.scrollTop;
   
    var originalGetSelection = window.getSelection;
    window.getSelection = function() {
      return {
        toString: function() { return selectedText; },
        removeAllRanges: function() {}
      };
    };
   
    // Вызываем родную функцию форума
    if (typeof quote === 'function') {
      quote(postAuthor, 0);
    }
   
    // 2. Мгновенно возвращаем прокрутку обратно на место чтения
    window.scrollTo(0, currentScrollPos);
   
    window.getSelection = originalGetSelection;
   
    $("#Bubble").hide();
    selectedText = '';
    postAuthor = '';
   
    if (window.getSelection().removeAllRanges) {
      window.getSelection().removeAllRanges();
    }
  }
});

// Закрываем кнопку при клике в пустом месте
$(document).on('mousedown', function(e) {
  if (!$(e.target).closest('#Bubble').length) {
    $("#Bubble").fadeOut(100);
  }
});
</script>

Отредактировано Alex04 (Ср, 29 Июл 2026 21:50:32)

+2


Вы здесь » Единый форум поддержки » Форум для новичков » Общие вопросы от новичков (63) #3