Форумы / National / Russian / Тех. поддержка / переезд с PHP 5.4  на PHP 8.1 и Cotonti 0.9.21

Dayver
#45779 29.12.2022 19:17
#45778 Kabak:

 

Добавлено 5 минут спустя:

 

Такое решение исправит варнинг но нарушит работу вашего плагина ... плагин не из коробки потому как он работает известно его автору и тем у кого есть его полный код

Но после вызова 

$tt->assign(array(

значения заменятся, если они есть.  Почему нарушится работа плагина ?  Вот как он начинается 

Вы видимо не понимаете как работают функции в PHP ... при её вызове в неё передаются параметры, дале внутри функции что то происходит и она возвращает результат своей работы. Вы же хотите задать переменным пустые строки вне зависимости от того переданы они при вызове функции или нет. По сути причину варнинга вы устраняете но и тем самым функция ВСЕГДА будет оперировать пустыми строками при работае с вышеупомянутыми параметрами.

Добавлено 7 минут спустя:

#45778 Kabak:

Обновить не помогло 

Warning: Undefined array key "timeback" in /var/www/apcfix/plugins/hits/hits.admin.home.php on line 23

 

Значит у вас проблема либо с плагином либо с параметром-массивом конфигурацй. При корректно установленном плагине hits в его конфигурации есть настройка значение которой должно быть в параметре $cfg['plugin']['hits']['timeback'] но если у вас вылазят варнинги по поводу того что в данном масиве нет значения с таким ключем то значит где то есть проблема

Добавлено 3 минуты спустя:

#45778 Kabak:

Добавлено 49 минут спустя:

$sys['protecttopadmin']

1) Для чего и используется в движке ?

2) Как правильно использовать ?

 Используется для блокировки попыток изменения логина и пароля админу. Переменная служебная и фигурирует только в одной локации сайта - на странице редактрирования пользователя потому боюсь она вам будет мало чем полезна в своих плагинах.

Добавлено 9 минут спустя:

#45778 Kabak:

Добавлено 2 часа спустя:

/**
 * Returns country text button
 *
 * @param string $flag Country code
 * @return string
 */
function cot_build_um_country($flag)
{
	global $cot_countries;
	if (!$cot_countries) include_once cot_langfile('countries', 'core');
	$flag = (empty($flag)) ? '00' : $flag;
	return cot_rc_link(cot_url('admin', 'm=other&p=userman&sort=country&f=country_'.$flag), $cot_countries[$flag], array(
		'title' => $cot_countries[$flag]
	));
}

/**
 * Returns country flag button
 *
 * @param string $flag Country code
 * @return string
 */
function cot_build_um_flag($flag)
{
	global $cot_countries;
	if (!$cot_countries) include_once cot_langfile('countries', 'core');
	$flag = (empty($flag)) ? '00' : $flag;
	return cot_rc_link(cot_url('admin', 'm=other&p=userman&sort=country&f=country_'.$flag),
		cot_rc('icon_flag', array('code' => $flag, 'alt' => $flag)),
		array('title' => $cot_countries[$flag])
	);
}

Не прокатывает  $flag = (empty($flag)) ? '00' : $flag;

Warning: Undefined array key "00" in /var/www/apcfix/plugins/userman/inc/userman.functions.php on line 582

Таких сообщений много.  Это когда у пользователя отсутствует выбранная страна в профиле ?   Как это исправить , чтобы можно было без выбранной страны?

Добавьте для своего языка ключ "00" в массив $cot_countries. Например в файле themes/nemesis/nemesis.ru.lang.php добавте строку

$cot_countries["00"] = 'Пусто';

Добавлено 2 минуты спустя:

#45778 Kabak:

Добавлено 7 минут спустя:

    isset($rdata['feedback_text']) ? $rdata['feedback_text'] : $rdata['feedback_text'] = "";
    isset($rdata['feedback_user']) ? $rdata['feedback_user'] : $rdata['feedback_user'] ="";
    isset($rdata['feedback_email']) ?  $rdata['feedback_email'] : $rdata['feedback_email'] ="";

Так лучше ?

Было бы синтаксически правильнее написать так

   $rdata['feedback_text'] =  isset($rdata['feedback_text']) ? $rdata['feedback_text'] : "";
   $rdata['feedback_user'] = isset($rdata['feedback_user']) ? $rdata['feedback_user'] : "";
   $rdata['feedback_email'] = isset($rdata['feedback_email']) ?  $rdata['feedback_email'] : "";

 

Pavlo Tkachenko aka Dayver
Отредактировано: Dayver (29.12.2022 19:40, 1 год назад)