[QUOTE] написал:
Методы вызываются как статические. Я бы выкинул CUserTypeEnum, отнаследовался от \Bitrix\Main\UserField\Types\EnumType и изменил методы.[/QUOTE]
Здравствуйте. Тоже столкнулись с проблемой при переходе на PHP 8.1
Используем на сайте под управлением битрикса стороннюю доработку и вот какую ошибку выдает:
[ErrorException] E_COMPILE_ERROR
Declaration of Acat_ggbm::MakeData($id_site, $idtypeauto, $idmark, $model) must be compatible with Acat::MakeData() (0)
/acat/classes/acat_ggbm_class.php:8
[CODE]<?php
include_once('acat_class.php');
include_once('acat_gmbm_class.php');
include_once('acat_gmbt_class.php');
class Acat_ggbm extends Acat {
function MakeData($id_site,$idtypeauto,$idmark,$model)
{
$__model=new Acat_gmbm();
$__model->MakeData($id_site,$idtypeauto,$idmark,$model);
$__mark=new Acat_gmbt();
$__mark->MakeData($id_site,$idtypeauto,$idmark);
$this->sort="SORTORDER, GROUPNO";
$_data=$this->DB->Query("SEL ECT * FR OM `".AC_DB_PREFIX."grouptree` wh ere idmodel=".$model." order by ".$this->sort);
if (count($_data)==0) {$_data=$this->DB->Query("SELECT * FR OM `".AC_DB_PREFIX."grouptree` where idmodel=(SEL ECT BASIS_MODEL_ID fr om ".AC_DB_PREFIX."models where ID= ".$model.") order by ".$this->sort);}
$this->data['modelinfo']=$__model->data[0];
$this->data['markinfo']=$__mark->data[0];
foreach ($_data as $__data) {
$_imgfile=AC_ROOT.'/data'.$__data['PICTUREINDEX'];
if (!file_exists($_imgfile) && $__data['PICTLENGTH']!=0) {
$_len=strlen($__data['PICTUREINDEX'])-4;
for ($i=$_len;$i<$this->data['modelinfo']['PICTLENGTH']; $i++) {$__data['PICTUREINDEX']='0'.$__data['PICTUREINDEX'];}
}
$___data[] = Array (
"id" => $__data['GROUPNO'],
"nameshort" =>$__data['GROUPNAME'],
"enameshort"=>$__data['GROUPNAMEEN'],
"picture" =>AC_WWW_ROOT.'/data'.$this->data['modelinfo']['PATHIMAGE'].$__data['PICTUREINDEX'].'.gif',
"parent" => $__data['PARENT'],
"link"=> $this->makelink($idtypeauto,$idmark,$model,$__data['GROUPNO']),
"onclick"=> $this->onclick($idtypeauto,$idmark,$model,$__data['GROUPNO'])
);
}
$this->getGroupsTree(0,$___data,$this->data['tree']);
parent::MakeData();
}
function getGroupsTree($id, $tree, &$_result, &$level = 0)
{
while (list($row_key, $row) = each($tree))
{
if ($row['parent'] == $id)
{
$level++;
unset($row['parent']);
$_result[$row['id']] = $row;
$_parentNode = &$_result[$row['id']];
if ($level < 3) $this->getGroupsTree($row['id'], $tree, $_parentNode, $level);
$level--;
}
}
}
function GetList($id_site,$idtypeauto,$idmark,$model)
{
$_data=$this->DB->Query("SEL ECT * FR OM `".AC_DB_PREFIX."grouptree` wh ere idmodel=".$model." and pictureindex is not null and pictureindex<>'' order by SORTORDER, GROUPNO");
if (count($_data)==0) {$_data=$this->DB->Query("SELECT * FR OM `".AC_DB_PREFIX."grouptree` where idmodel=(SEL ECT BASIS_MODEL_ID fr om ".AC_DB_PREFIX."models where ID= ".$model.") and pictureindex is not null and pictureindex<>'' order by SORTORDER, GROUPNO");}
foreach ($_data as $__data) {
$this->data[] = Array (
"id" => $__data['GROUPNO'],
"nameshort" => $__data['GROUPNAME']
);
}
}
}
[/CODE]
Методы вызываются как статические. Я бы выкинул CUserTypeEnum, отнаследовался от \Bitrix\Main\UserField\Types\EnumType и изменил методы.[/QUOTE]
Здравствуйте. Тоже столкнулись с проблемой при переходе на PHP 8.1
Используем на сайте под управлением битрикса стороннюю доработку и вот какую ошибку выдает:
[ErrorException] E_COMPILE_ERROR
Declaration of Acat_ggbm::MakeData($id_site, $idtypeauto, $idmark, $model) must be compatible with Acat::MakeData() (0)
/acat/classes/acat_ggbm_class.php:8
[CODE]<?php
include_once('acat_class.php');
include_once('acat_gmbm_class.php');
include_once('acat_gmbt_class.php');
class Acat_ggbm extends Acat {
function MakeData($id_site,$idtypeauto,$idmark,$model)
{
$__model=new Acat_gmbm();
$__model->MakeData($id_site,$idtypeauto,$idmark,$model);
$__mark=new Acat_gmbt();
$__mark->MakeData($id_site,$idtypeauto,$idmark);
$this->sort="SORTORDER, GROUPNO";
$_data=$this->DB->Query("SEL ECT * FR OM `".AC_DB_PREFIX."grouptree` wh ere idmodel=".$model." order by ".$this->sort);
if (count($_data)==0) {$_data=$this->DB->Query("SELECT * FR OM `".AC_DB_PREFIX."grouptree` where idmodel=(SEL ECT BASIS_MODEL_ID fr om ".AC_DB_PREFIX."models where ID= ".$model.") order by ".$this->sort);}
$this->data['modelinfo']=$__model->data[0];
$this->data['markinfo']=$__mark->data[0];
foreach ($_data as $__data) {
$_imgfile=AC_ROOT.'/data'.$__data['PICTUREINDEX'];
if (!file_exists($_imgfile) && $__data['PICTLENGTH']!=0) {
$_len=strlen($__data['PICTUREINDEX'])-4;
for ($i=$_len;$i<$this->data['modelinfo']['PICTLENGTH']; $i++) {$__data['PICTUREINDEX']='0'.$__data['PICTUREINDEX'];}
}
$___data[] = Array (
"id" => $__data['GROUPNO'],
"nameshort" =>$__data['GROUPNAME'],
"enameshort"=>$__data['GROUPNAMEEN'],
"picture" =>AC_WWW_ROOT.'/data'.$this->data['modelinfo']['PATHIMAGE'].$__data['PICTUREINDEX'].'.gif',
"parent" => $__data['PARENT'],
"link"=> $this->makelink($idtypeauto,$idmark,$model,$__data['GROUPNO']),
"onclick"=> $this->onclick($idtypeauto,$idmark,$model,$__data['GROUPNO'])
);
}
$this->getGroupsTree(0,$___data,$this->data['tree']);
parent::MakeData();
}
function getGroupsTree($id, $tree, &$_result, &$level = 0)
{
while (list($row_key, $row) = each($tree))
{
if ($row['parent'] == $id)
{
$level++;
unset($row['parent']);
$_result[$row['id']] = $row;
$_parentNode = &$_result[$row['id']];
if ($level < 3) $this->getGroupsTree($row['id'], $tree, $_parentNode, $level);
$level--;
}
}
}
function GetList($id_site,$idtypeauto,$idmark,$model)
{
$_data=$this->DB->Query("SEL ECT * FR OM `".AC_DB_PREFIX."grouptree` wh ere idmodel=".$model." and pictureindex is not null and pictureindex<>'' order by SORTORDER, GROUPNO");
if (count($_data)==0) {$_data=$this->DB->Query("SELECT * FR OM `".AC_DB_PREFIX."grouptree` where idmodel=(SEL ECT BASIS_MODEL_ID fr om ".AC_DB_PREFIX."models where ID= ".$model.") and pictureindex is not null and pictureindex<>'' order by SORTORDER, GROUPNO");}
foreach ($_data as $__data) {
$this->data[] = Array (
"id" => $__data['GROUPNO'],
"nameshort" => $__data['GROUPNAME']
);
}
}
}
[/CODE]