• Модуль OnLine (пользователи на сайте) для DLE 9.X

 #10235   Razilator
 22 окт 2018, 21:35
Здравствуйте, у меня при установке данного модуля произошла ошибка. А именно:
Fatal error: 'break' not in the 'loop' or 'switch' context in /usr/share/nginx/html/engine/modules/online/online.class.php on line 714
Прочитал в интернете, что ошибка таится в этом моменте, т.е в PHP 7.* недопустимо, а на моём сервере как раз установлен PHP 7.1:
PHP 7.0 и выше, оператор break больше не разрешается за пределами инструкции for, foreach или switch и дает фатальную ошибку.
Но попробовал я заменить break на return, то вышло ещё больше ошибок. Поэтому я не знаю что делать, хотелось бы установить данный модуль на DLE 13.1 с PHP 7.1.

В PHP ничего не понимаю
 #10238   IgorA100
 23 окт 2018, 23:25
Этот кусок нужно будет полностью переписать. Там атавизм от предыдущей версии, который в общем-то судя по всему уже не актуален. В течении недели думаю сделаю, сейчас просто завал.....
 #10240   IgorA100
 03 ноя 2018, 10:18
Razilator писал(а):Хорошо. Делайте по своему усмотрению и удачи вам в вашей работе!

Попробуйте заменить прилагаемый файл, предварительно его разархивировав. PHP 7 у меня под руками нет, не проверял, но должно работать....
(8.17 КБ) 8 скачиваний
 #10241   Razilator
 03 ноя 2018, 18:58
Вот что получаю:
Fatal error: Uncaught ArgumentCountError: Too few arguments to function whoonline_function::get_ip(), 0 passed in /usr/share/nginx/html/engine/modules/online/online.class.php on line 61 and exactly 1 expected in /usr/share/nginx/html/engine/modules/online/online.class.php:24 Stack trace: #0 /usr/share/nginx/html/engine/modules/online/online.class.php(61): whoonline_function->get_ip() #1 /usr/share/nginx/html/engine/modules/online/online.class.php(651): whoonline_function->info() #2 /usr/share/nginx/html/engine/modules/online/online.class.php(1020): whoonline->read_online() #3 /usr/share/nginx/html/engine/modules/online/init.php(95): whoonline->GetOnUser(300, '', true) #4 /usr/share/nginx/html/engine/modules/online/online.php(17): include_once('/usr/share/ngin...') #5 /usr/share/nginx/html/engine/classes/templates.class.php(327): include('/usr/share/ngin...') #6 [internal function]: dle_template->load_file(Array) #7 /usr/share/nginx/html/engine/classes/templates.class.php(1018): preg_replace_callback('#\\{include file...', in /usr/share/nginx/html/engine/modules/online/online.class.php on line 24

С прошлой версией получал это:
Fatal error: 'break' not in the 'loop' or 'switch' context in /usr/share/nginx/html/engine/modules/online/online.class.php on line 714
 #10243   Razilator
 05 ноя 2018, 22:06
Всё заработало и с Вашим, и с моими фиксами, решил вчера проблему вечером, кое-где кое-что изменил и всё пошло. Огромное спасибо!
Кстати, у меня едиственный вопрос остался, как присвоить цвета группам? Через [user_group=1] не присваиваются... И через [group=1] тоже.
 #10244   IgorA100
 06 ноя 2018, 11:18
Razilator писал(а):Всё заработало и с Вашим, и с моими фиксами,

А что Вы меняли в коде? В чем еще была проблема?
Razilator писал(а):вопрос остался, как присвоить цвета группам? Через [user_group=1] не присваиваются... И через [group=1] тоже.

В файле шаблона "online_user.tpl "ведь есть рабочий пример:
Код: Выделить всё<span style="color:[user_group=1]red[/user_group][user_group=2]blue[/user_group][user_group=3]green[/user_group][user_group=4]black[/user_group][user_group=5]#701c1f[/user_group][user_group=6]green[/user_group][user_group=7]green[/user_group][user_group=8]green[/user_group][user_group=9]blue[/user_group];">

Если это не работает, то возможно в вашем шаблоне где-то переназначаются цвета задаваемые в стиле в "online_user.tpl "
  • 1
  • 7
  • 8
  • 9
  • 10
  • 11