Как локализовать ошибку

Автор Ulibka, 24 июня 2020, 13:10:42

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Ulibka

Подскажите пожалуйста - как можно локализовать и воспроизвести ошибку?
Во множестве присутствуют ошибки вида:


Undefined index:
/Sources/Subs.php
Строка: 2588

Код:
// Our callback that does the actual smiley replacements.
function smileyPregReplaceCallback($matches)
{
  global $context;
==>2588:    return $context['smiley_replacements'][$matches[1]];
}

Возникает при стандартных запросах типа:
https://woodcraftsman.ru/index.php?topic=10015.0
https://woodcraftsman.ru/index.php?topic=84313.new


Я не уверен что ошибка возникает именно в этом месте.
Можно ли в лог вывода ошибок включить debug_print_backtrace ?

Чтобы Вы посоветовали - как можно отловить ошибку?
(мне ее воспроизвести не удается)

Ulibka

Поправил функцию, ошибки пока исчезли.
Одно не пойму - это ведь стандартная функция движка - почему потребовалось мое участие ?

// Our callback that does the actual smiley replacements.
function smileyPregReplaceCallback($matches)
{
   global $context;
   if (array_key_exists($matches[1], $context['smiley_replacements']) ) {
        $ret = $context['smiley_replacements'][$matches[1]];
    }
    else {
        $ret = '😊';
    }

    return $ret;
}


Ulibka

Недавно я поставил новый набор смайлов.
Но ведь смайлы - это просто набор gif файлов ?
Посмотрел еще раз в админке - вроде все нормально.
Новый набор импортировал в админке

digger®

Цитата: Ulibka от 24 июня 2020, 16:02:36Недавно я поставил новый набор смайлов.
Но ведь смайлы - это просто набор gif файлов ?
Посмотрел еще раз в админке - вроде все нормально.
Новый набор импортировал в админке
Картинки это забота браузера. А смайлы это записи в базе.
Может у какого-то пользователя несуществующий набор используется.

Ulibka

Так я пользователям не разрешил свой набор смайлов использовать

Ulibka

После установки нового набора смайлов (того, который был на старом форуме) смайлов стало уж очень много.



Плюсом есть еще кнопка "дополнительные смайлы" - и там еще толпа смайлов
Подскажите пожалуйста -как уменьшить количество смайлов  в основном выводе?
Я бы хотел оставить штук 8

Манипуляции с таблицей smf_smileys к желаемому результату не привели :)

Ulibka

Нашел инструкцию по смайлам:
https://www.simplemachines.ru/index.php?topic=1264.0

Всего 3 расположения смайлов :
        I.) Форма сообщений -  при написании сообщения смайл будет отображен на панели;
        II.) Скрыт - смайл нигде не будет отображаться (ни на панели при наборе сообщения, ни в сплывающем окне), но при использовании кода смайла например : )  знак будет автоматически приобразовываться в смайл  :);
        III.) Всплывающее окно - дополнительные смайлы могут быть использованы только при нажатии на ссылку "дополнительные смайлы" в панели смайлов при написании сообщения или создания новой темы. Пример приведен ниже на рисунке:

Правильно я понял - что это значения поля hidden в таблице smf_smileys соответственно 0,1,2 ?

Ulibka

Модифицировал таблицу smf_smileys , установил значения hidden равным 2 для большинства смайлов.

После этого зашел админка/форум/смайлы/порядок смайлов

При этом происходит сортировка и устанавливается поле smiley_order в таблице smf_smileys 
При желании можно разнести смайлы на несколько строк установив значение поля smiley_row

Yarik

А из админки это все разве не делается?

Ulibka

Цитата: S.T.A.L.K.E.R. от 25 июня 2020, 16:03:32А из админки это все разве не делается?

Наверно как то делается - но я не понял.
Проще таблицу отредактировать :)