0 Пользователей и 1 Гость просматривают эту тему.
  • 9 Ответов
  • 1043 Просмотров
*

Pavel

  • Осваиваюсь на форуме
  • 24
  • 0 / 0
UddeIM 4 переход на php 7.2
« : 03.02.2019, 20:27:18 »
Доброго времени суток всем!

При переходе на php 7.2   появляется проблемка с функцией  count() при массовом удалении сообщений если пользователь не
выбрал ни одного.
Ошибка : Warning: count(): Parameter must be an array or an object that implements Countable in ..........

Функция count() в php 7.2 устарела.

Подскажите пожалуйста, как поправить код:

Код
function uddeIMdeleteOutbox($myself, $item_id, $arcmes, $limit, $limitstart, $config) {
$n = count($arcmes);
if (!$n) {
echo _UDDEIM_NOMSGSELECTED."<br /><a href='javascript:history.go(-1)'>"._UDDEIM_BACK."</a>";
return;
}
for ($i = 0; $i <= ($n-1); $i++) {
$rightnow=uddetime($config->timezone);
if($arcmes[$i]>0) {
uddeIMdeleteMessageFromOutbox($myself, $arcmes[$i], $rightnow);
}
}
*

NewUsers

  • Живу я здесь
  • 2307
  • 215 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Re: UddeIM 4 переход на php 7.2
« Ответ #1 : 03.02.2019, 20:30:10 »
Код: php
if (!$n) {
заменить на
Код: php
if (empty($arcmes)) {
Занимаюсь создание расширений для Joomla 3.10.x и 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
Работа с DOM деревом на PHP
*

Pavel

  • Осваиваюсь на форуме
  • 24
  • 0 / 0
Re: UddeIM 4 переход на php 7.2
« Ответ #2 : 03.02.2019, 20:43:39 »
Код: php
if (!$n) {
заменить на
Код: php
if (empty($arcmes)) {


Увы это ничего не меняет (
сама функция count() устарела при нуле выдает ошибочку,  так как параметр должен быть массивом или объектом
*

NewUsers

  • Живу я здесь
  • 2307
  • 215 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Re: UddeIM 4 переход на php 7.2
« Ответ #3 : 03.02.2019, 21:04:23 »

Увы это ничего не меняет (
сама функция count() устарела при нуле выдает ошибочку,  так как параметр должен быть массивом или объектом
Код: php
$n = count($arcmes);
это не обязательно использовать...
Занимаюсь создание расширений для Joomla 3.10.x и 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
Работа с DOM деревом на PHP
*

Pavel

  • Осваиваюсь на форуме
  • 24
  • 0 / 0
Re: UddeIM 4 переход на php 7.2
« Ответ #4 : 03.02.2019, 21:15:28 »
Код: php
$n = count($arcmes);
это не обязательно использовать...
Как это так, не обязательно? весь вопрос в том и состоит что если пользователь выбрал хотя бы одно сообщение из списка оно должно удаляться
и удаляется без вывода ошибки, а ошибка выходит только при ноле
*

NewUsers

  • Живу я здесь
  • 2307
  • 215 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Re: UddeIM 4 переход на php 7.2
« Ответ #5 : 03.02.2019, 21:22:24 »
Код: php
echo _UDDEIM_NOMSGSELECTED."<br /><a href='javascript:history.go(-1)'>"._UDDEIM_BACK."</a>";
выводится когда пользователь выбрал хоть одно сообщение или нет?

Не важно что содержит переменная $arcmes, если она пуста то выполняется код (это если использовать моё условие)
Код: php
echo _UDDEIM_NOMSGSELECTED."<br /><a href='javascript:history.go(-1)'>"._UDDEIM_BACK."</a>";
return;
Занимаюсь создание расширений для Joomla 3.10.x и 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
Работа с DOM деревом на PHP
*

Pavel

  • Осваиваюсь на форуме
  • 24
  • 0 / 0
Re: UddeIM 4 переход на php 7.2
« Ответ #6 : 03.02.2019, 21:24:57 »
Выводится когда пользователь  НЕ выбрал ни одно сообщения.
*

Pavel

  • Осваиваюсь на форуме
  • 24
  • 0 / 0
Re: UddeIM 4 переход на php 7.2
« Ответ #7 : 03.02.2019, 21:28:46 »
echo "Не выбраны сообщения!"<br /><a href='javascript:history.go(-1)'>"Назад"</a>";
*

NewUsers

  • Живу я здесь
  • 2307
  • 215 / 0
  • +375 (25) 627-16-99 (WhatsApp, Telegram)
Re: UddeIM 4 переход на php 7.2
« Ответ #8 : 03.02.2019, 21:29:12 »
Выводится когда пользователь  НЕ выбрал ни одно сообщения.
значит условие правильное
Код: php
function uddeIMdeleteOutbox($myself, $item_id, $arcmes, $limit, $limitstart, $config) {
if (empty($arcmes)) {
echo _UDDEIM_NOMSGSELECTED."<br /><a href='javascript:history.go(-1)'>"._UDDEIM_BACK."</a>";
return;
}
for ($i = 0; $i <= ($n-1); $i++) {
$rightnow=uddetime($config->timezone);
if($arcmes[$i]>0) {
uddeIMdeleteMessageFromOutbox($myself, $arcmes[$i], $rightnow);
}
}
Занимаюсь создание расширений для Joomla 3.10.x и 4.2.x | Доработка и настройка сайтов. Занимаюсь создание Интернет магазинов с нуля на собственном компоненте + оптимизация загрузки страницы (после предоставляю техподдержку).
Работа с DOM деревом на PHP
*

Pavel

  • Осваиваюсь на форуме
  • 24
  • 0 / 0
Re: UddeIM 4 переход на php 7.2
« Ответ #9 : 03.02.2019, 21:37:31 »
Код: php
function uddeIMdeleteOutbox($myself, $item_id, $arcmes, $limit, $limitstart, $config) {
if (empty($arcmes)) {
echo _UDDEIM_NOMSGSELECTED."<br /><a href='javascript:history.go(-1)'>"._UDDEIM_BACK."</a>";
return;
}
if ($arcmes != NULL){
$n = count($arcmes);
for ($i = 0; $i <= ($n-1); $i++) {
$rightnow=uddetime($config->timezone);
if($arcmes[$i]>0) {
uddeIMdeleteMessageFromOutbox($myself, $arcmes[$i], $rightnow);
}
}
}

Заработало!
НО только ТАК

« Последнее редактирование: 29.07.2019, 08:53:15 от Taatshi »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как установить компонент uddeIM?

Автор Алишер

Ответов: 4
Просмотров: 1626
Последний ответ 07.01.2019, 20:46:26
от polezniy
Не устанавливается uddeIM

Автор Yury25

Ответов: 15
Просмотров: 3022
Последний ответ 05.01.2019, 01:49:23
от polezniy
Не устанавливается uddeim. Что не понимаю?

Автор birdsva

Ответов: 5
Просмотров: 3116
Последний ответ 05.01.2019, 01:03:53
от polezniy
mod uddeim simple notifier нужна помощь с коррекцией url

Автор n_i_x

Ответов: 2
Просмотров: 954
Последний ответ 12.10.2016, 04:42:54
от n_i_x
Не работает переход по ссылкам с главной страницы

Автор Grunya

Ответов: 0
Просмотров: 1004
Последний ответ 05.08.2016, 17:49:10
от Grunya