Прошу помощи в замене create_function на Bitrix

TN
На сайте с 10.02.2008
Offline
131
253

При переходе на php8 естественно вылезла ошибка при использовании create_function. Поискал в инете, есть пару ответов с примерами для WP, но для меня как для не программиста темный лес. Одно понятно, что в принципе правок не много. Если не сложно помогите исправить:

<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?>
<?
echo preg_replace_callback(
                        "/#VOTE_ID_([\d]+)#/is".BX_UTF_PCRE_MODIFIER,
                        create_function('$matches', 'ob_start();
                                                                                $GLOBALS["APPLICATION"]->IncludeComponent(
                                                                                        "bitrix:voting.current",
                                                                                        "main_page",
                                                                                        Array(
                                                                                                "CHANNEL_SID" => "ANKETA",
                                                                                                "VOTE_ID" => $matches[1],
                                                                                                "CACHE_TYPE"    =>      "A",
                                                                                                "CACHE_TIME"    =>      "3600",
                                                                                                "AJAX_MODE" => "N",
                                                                                                "AJAX_OPTION_SHADOW" => "Y",
                                                                                                "AJAX_OPTION_JUMP" => "Y",
                                                                                                "AJAX_OPTION_STYLE" => "Y",
                                                                                                "AJAX_OPTION_HISTORY" => "N",
                                                                                        )
                                                                                );
                                                                                $retrunStr = @ob_get_contents();
                                                                                ob_get_clean();
                                                                                return $retrunStr;'),
                                                                                $arResult["CACHED_TPL"]);
?>


A6
На сайте с 02.09.2019
Offline
73
#1
А чего вы хотели добиться этим кодом? Я не стебусь, просто расскажите и может я предложу другой вариант
W1
На сайте с 22.01.2021
Offline
304
#2
Teh.Nik :
При переходе на php8

Не надо бежать впереди паровоза. Битрикс работает на PHP 7.

Мой форум - https://webinfo.guru –Там я всегда на связи
Aisamiery
На сайте с 12.04.2015
Offline
297
#3
webinfo #:

Не надо бежать впереди паровоза. Битрикс работает на PHP 7.

на 8.0 он нормально работает, и мне кажется что битрикс анонсировал в этом году минимальное требование будет php8, тем более что 7.4 больше не поддерживается вообще и считается устаревшей так то

PS. ТС, что то такого кода не нашел в ядре, это что у вас за фигня такая? перепишите по человечески

Разработка проектов на Symfony, Laravel, 1C-Bitrix, UMI.CMS, OctoberCMS
TN
На сайте с 10.02.2008
Offline
131
#4
В ядре этого и нет. Это костыль для вставки опроса в новость.
TN
На сайте с 10.02.2008
Offline
131
#5
webinfo #:
Не надо бежать впереди паровоза. Битрикс работает на PHP 7.

Это если обновления не нужны, то да, можно сидеть еще пару лет на 7.

W1
На сайте с 22.01.2021
Offline
304
#6
Aisamiery #:

7.4 больше не поддерживается вообще и считается устаревшей

Да, как-то быстро время бежит... 🤔

Aisamiery #:
перепишите по человечески

Так он и просит переписать, поскольку сам не кодер. Ему надо переписать через анонимную функцию.

C
На сайте с 04.02.2005
Offline
277
#7
Все давно написано за вас
Надо только прочитать

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий