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

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

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


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


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

Сообщений 361 страница 380 из 463

1

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

+1

361

Уважаемый Alex_63, спасибо вам за консультацию
Но до сегодняшнего дня количество просмотров за вчерашний день было видно на следующее утро, примерно в 6-30 утра было известно,сколько людей  посмотрело мой форум
Мне важно знать интерес окружающих к моим постам
Почему до сегодняшнего дня количество просмотров было видно сразу на следующие сутки утром, а сегодня уже полдня прошло и нет ничего
Завтра будет за позавчера,получается?
А почему раньше было сразу на следующее утро, а не через полтора суток?
Можно восстановить прежний порядок работы этого раздела?

0

362

Марина Аврора 22
Принцип подсчёта показов никак не менялся уже много лет. Он нужен для расчёта стоимости отключения рекламы на будущий месяц, а не для контроля посещаемости. Для ваших целей целесообразнее будет использовать сторонние метрики, например Яндекс.Метрика.

0

363

Merlin777,

И как сделать то, что показано в посте #339? Действую по принципу: "Хочу всё знать!" и люблю познавать что-то новое для себя, особенно то, как всё устроено.  :)

0

364

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

Merlin777,

И как сделать то, что показано в посте #339? Действую по принципу: "Хочу всё знать!" и люблю познавать что-то новое для себя, особенно то, как всё устроено.  :)

348й пост, вы имеете в виду? :)

+1

365

Извините, а что за проблема с подписями:
https://upforme.ru/uploads/0000/14/1c/38357/991826.png
Не вижу изображений, в настройках разрешила, где что упустила?

0

366

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

348й пост, вы имеете в виду? :)

Нет, этот - со скриншотом:

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

Там я вижу иконки справа от названий и превью. Вот и стало интересно, что "под капотом".  :)

0

367

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

Попробуйте вот это:

Показать код
Код:
<script type="module">
/* ========================================
   🎨 CSS с регулируемыми параметрами
======================================== */
const style = document.createElement('style');
style.textContent = `
:root {
  --topiclist-count: 10;             
  --topiclist-session: 1;            
  --topiclist-touch-device: 0;       
  --topiclist-select-action: click;  
  --topiclist-template-click: "<img src='https://forumstatic.ru/files/001c/36/f3/86140.png' alt='Список тем' style='width:16px;height:16px;vertical-align:middle'>";  
}

.topicslist {
  position: absolute;
  background-color: #faf1ed;
  border: 1px solid rgba(0,0,0,.35);
  margin-top: 3px;
  padding: 10px;
  box-shadow: 0 4px 4px -2px rgba(0,0,0,.35);
  border-radius: 3px;
  max-width: 90vw;
  z-index: 110;
  opacity: 0;
  transition: opacity 0.2s ease-in-out;
}
.topicslist.show { opacity: 1; }
.topicslist .sticky a { font-weight: bold; color: #f00; }
.topicslist .closed a { color: #a9a9a9; }
.topicslist .load { animation: slow-load-blink 2s ease-in-out infinite; }
.clickt { cursor: pointer; user-select: none; }
.clickt img { border: 0; line-height: 1; max-height: 16px; max-width: 16px; vertical-align: middle; }
@keyframes slow-load-blink{0%,100%{opacity:1}50%{opacity:.3}}
`;
document.head.appendChild(style);

/* ========================================
   ⚙️ Настройки из CSS
======================================== */
function getParams() {
  const root = getComputedStyle(document.documentElement);
  return {
    count: parseInt(root.getPropertyValue('--topiclist-count')) || 10,
    useSession: root.getPropertyValue('--topiclist-session').trim() === '1',
    touchDevice: root.getPropertyValue('--topiclist-touch-device').trim() === '1' || ('ontouchstart' in window || navigator.maxTouchPoints > 0),
    selectAction: root.getPropertyValue('--topiclist-select-action').trim() || 'click',
    templateClick: root.getPropertyValue('--topiclist-template-click').replace(/['"]/g,'') || ' >'
  };
}

/* ========================================
   🌐 Переводы
======================================== */
const lang = document.documentElement.lang === 'ru' ? 'ru' : 'en';
const translations = {
  en: { showTopics:"Show list of topics", loadTopics:"Loading topics...", noTopics:"No topics", errorLoad:"Error loading topics.<br>Refresh page."},
  ru: { showTopics:"Показать список тем", loadTopics:"Загружаю список...", noTopics:"Тем нет", errorLoad:"Ошибка при загрузке.<br>Обновите страницу."}
};

/* ========================================
   🏗 Загрузка и отображение тем
======================================== */
let currentForumId = null;
let closeTimeout = null;

async function loadTopics(container, forumId) {
  const params = getParams();
  const key = `fid${forumId}_storage`;
  const now = Date.now();

  if (params.useSession && sessionStorage.getItem(key)) {
    const cached = JSON.parse(sessionStorage.getItem(key));
    if (now - cached.timestamp < 600000) return renderTopics(container, cached.data);
    sessionStorage.removeItem(key);
  }

  try {
    const res = await fetch(`/api.php?method=topic.get&forum_id=${forumId}&sort_by=last_post&sort_dir=desc&sticky_first=1&limit=${params.count}`);
    const data = await res.json();
    if (data?.response?.length > 0) {
      const topics = data.response.map(t => ({
        subject: t.subject,
        url: `/viewtopic.php?id=${t.id}`,
        class: `tid${t.id}` + (t.sticky ? " sticky" : "") + (t.closed ? " closed" : "")
      }));
      renderTopics(container, topics);
      if (params.useSession) sessionStorage.setItem(key, JSON.stringify({ data: topics, timestamp: now }));
    } else renderMessage(container, translations[lang].noTopics);
  } catch (e) {
    renderMessage(container, translations[lang].errorLoad);
  }
}

function renderTopics(container, topics) {
  const ul = container.querySelector("ul");
  ul.innerHTML = "";
  topics.forEach(t => {
    const li = document.createElement("li");
    li.className = t.class;
    li.innerHTML = `<a href="${t.url}">${t.subject}</a>`;
    ul.appendChild(li);
  });
  container.classList.add('show'); // Плавное появление
}

function renderMessage(container, message) {
  const ul = container.querySelector("ul");
  ul.innerHTML = `<li>${message}</li>`;
  container.classList.add('show'); // Плавное появление
}

/* ========================================
   🎛 Показ блока тем
======================================== */
function showTopics(trigger) {
  const tr = trigger.closest("tr");
  const forumId = tr.id.match(/\d+/)[0];
  if (currentForumId === forumId && tr.querySelector(".topicslist")) return;

  document.querySelectorAll(".topicslist").forEach(el => el.remove());

  const header = tr.querySelector("h3");
  const box = document.createElement("div");
  box.className = "topicslist";
  box.innerHTML = `<ul><li class="load">${translations[lang].loadTopics}</li></ul>`;
  header.insertAdjacentElement("afterend", box);

  positionBox(trigger, box);
  loadTopics(box, forumId);
  currentForumId = forumId;

  if (getParams().selectAction === "hover" && !getParams().touchDevice) resetCloseTimeout(box);
}

function resetCloseTimeout(box) {
  clearTimeout(closeTimeout);
  closeTimeout = setTimeout(() => {
    box.remove();
    currentForumId = null;
  }, 2000);
}

/* ========================================
   📌 Позиционирование блока справа
======================================== */
function positionBox(button, box) {
  const rect = button.getBoundingClientRect();
  const scrollTop = window.scrollY || document.documentElement.scrollTop;
  const scrollLeft = window.scrollX || document.documentElement.scrollLeft;

  box.style.position = 'absolute';
  box.style.left = `${rect.right + scrollLeft + 5}px`; // справа с отступом
  box.style.top = `${rect.top + scrollTop}px`;          // по верхнему краю кнопки

  const maxRight = window.innerWidth - 10;
  if (rect.right + 5 + box.offsetWidth > maxRight) {
    box.style.left = `${maxRight - box.offsetWidth}px`;
  }
}

/* ========================================
   🚀 Инициализация кнопок и слушателей
======================================== */
function initListeners() {
  document.querySelectorAll(".tclcon h3 a").forEach(a => {
    const btn = document.createElement("span");
    btn.className = "clickt";
    btn.title = translations[lang].showTopics;
    btn.innerHTML = getParams().templateClick; // ← картинка вместо стрелки
    a.insertAdjacentElement("afterend", btn);

    btn.addEventListener("click", e => {
      e.stopPropagation();
      const row = btn.closest("tr");
      const forumId = row.id.match(/\d+/)[0];
      const box = row.querySelector(".topicslist");

      if (currentForumId === forumId && box) { box.remove(); currentForumId = null; }
      else showTopics(btn);
    });
  });

  document.addEventListener("click", e => {
    if (!e.target.closest(".topicslist") && !e.target.closest(".clickt")) {
      document.querySelectorAll(".topicslist").forEach(el => el.remove());
      currentForumId = null;
    }
  });
}

document.addEventListener("DOMContentLoaded", initListeners);
</script>

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

Извините, аналогично криво, но только теперь вообще всё в [ягодицы] уехало + кучу всего перенастраивать надо, а смысла нет, так что оставляю прежний...

0

368

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

348й пост, вы имеете в виду?

Это и есть заветный скрипт для иконок справа от названий и для превью? СПАСИБО.

0

369

<3 написал(а):

Извините, а что за проблема с подписями:
https://upforme.ru/uploads/0000/14/1c/38357/991826.png
Не вижу изображений, в настройках разрешила, где что упустила?

Осталась эта проблема, я явно где-то что-то забыла включить.

0

370

<3 написал(а):

Не, перепроверила, всё включено вроде... А картинку в подписи не видно, странно.

Перепроверьте ещё раз в админке: Права ---> Подпись  ---> "Разрешить BBCode [img*][/img*] в подписи пользователя? (не рекомендуется)." ---> Отметить "Да". Именно эти теги должны быть (выделено), только звёздочки из них уберите. Я протестировала - у меня картинка в подписи показывалась.

Отредактировано Neo.Neo (Вс, 28 Сен 2025 18:01:06)

0

371

Neo.Neo
Да, это включено давно, а вот в профиле "Отображение" было выключено почему-то - включила и заработало.)

0

372

<3 написал(а):

так что оставляю прежний...

Посмотрите ЛС.

0

373

<3 написал(а):

и заработало.)

Вот и славненько.  ^^

0

374

http://risyiy.mybb.ru
Уважаемая администрация
Прошу восстановить счётчик просмотров на моем форуме
За вчера и за позавчера просмотров не показано вообще,хотя раньше все было показано регулярно, на утро следующего дня
Это очень удобная функция, хотелось бы знать градус интереса к моим постам
Прошу дать рекомендацию,как восстановить функцию просмотра или восстановить ее силами вашей  администрации
Яндекс-метрика не очень удобно,хотелось бы все по-старому видеть на своем сайте
https://upforme.ru/uploads/0000/14/1c/39466/127360.jpg

0

375

Марина Аврора 22
Помимо Яндекс.Метрики существуют и другие системы сбора статистики посещаемости. Мы не рекомендуем опираться исключительно на данные из данной таблицы - они могут отображаться некорректно из-за изменений в формате сбора информации.
Для вас это, скорее, даже "плюс": стоимость отключения рекламы пока никак не зависит от посещаемости и остается на минимальном уровне (считайте, дешевле).

0

376

Уважаемый LastMan,спасибо вам за ответ,но хотелось бы пользоваться данной опцией на своем форуме,не привлекая другие системы подсчёта
С рекламой у меня ничего не связано,я ее не  отключаю
Эта функция теперь не работает на сайте?
Ее никак нельзя восстановить в прежнем виде?

0

377

Сложно сказать о её дальнейшей работоспособности и возможности восстановления. Если поменяется сама концепция формирования цены отключения рекламы или формат рекламы не будет зависеть от расчетов, то эта таблица может быть вовсе убрана, поскольку не является целевой - она лишь приблизительно показывает общее количество заходов, на основе которых рассчитывается сумма отключения рекламы на месяц. Полагаться на её данные не стоит: базы IP ботов (например, поисковых систем) могли давно не обновляться, из-за чего фактические данные сильно искажаются. Для получения корректной статистики лучше использовать сторонние полноценные инструменты, позволяющие отличать ботов от реальных пользователей.

Добавлено спустя 6 минут 58 секунд:

Если не нравится Яндекс.Метрика, попробуйте тогда один из популярных русскоязычных сервисов: https://www.liveinternet.ru или https://top.mail.ru

+1

378

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

0

379

http://risyiy.mybb.ru/
Добрый день
Прошу восстановить функцию счётчика просмотров на сайте
С рекламой не связано, просто хотелось бы пользоваться этой удобной функцией
Другие счётчики с чужих программ устанавливать неудобно и некомфортно
https://upforme.ru/uploads/0000/14/1c/39466/549913.jpg

0

380

Не получается зайти на сайт
https://dyatlovpass1959forever.forums.party/

Пишет

Country not allowed

вчера все было без проблем. Можно уточнить - что случилось?

Отредактировано СветланаАм (Чт, 2 Окт 2025 13:26:50)

0


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