Тема для никого - 1.10.7 и PHP 7.1 (часть 4)

В программе всегда есть еще одна ошибка
(Законы Мерфи для программистов)


Часть 3

Параллельно с упражнениями по работоспособности instant 1.10.7 с PHP 5.2.12 (на Денвере), своим чередом велась работа над новым сайтом, развёрнутом в Open Server, где по умолчанию установлен PHP 7.1
Помня о том, что 1.10.7 работает с PHP от 5.3 до 7.0 подвох приходилось ожидать в любой момент.

И вот случилось!

При попытке редактирования рубрики в разделе "Меню" появлялось сообщение об ошибке:

Fatal error: Uncaught ArgumentCountError: Too few arguments to function cpAddPathway(), 1 passed in \admin\applets\menu.php on line 528 and exactly 2 expected in \admin\includes\cp.php:326

Но тут долгой истории не сложилось. Собственно из самой ошибки понятно, что функция cpAddPathway() получает только один параметр из двух.
PHP 5 на это внимания не обращает, а PHP 7 — относится более ревностно.

Меняем
function cpAddPathway($title, $link){
на
function cpAddPathway($title, $link=false){

и работаем дальше.



В результате.
Чтобы расширить ограничения для instant 1.10.7 в плане допустимых PHP, нужно выполнить следующие изменения:

\admin\includes\cp.php:326
function cpAddPathway($title, $link){
на
function cpAddPathway($title, $link=false){


\core\classes\db.class.php on line 39
$this->db_link = static::initConnection();
на
$this->db_link = self::initConnection();


\core\classes\plugin.class.php on line 22
$this->config = array_merge($this->config, $this->inCore->loadPluginConfig(get_called_class()));
на
$this->config = array_merge($this->config, $this->inCore->loadPluginConfig($this->info['plugin']));


\admin\applets\menu.php on line 107
\admin\applets\modules.php on line 172
'prc'=> function ($i){
$i['titles'] = cmsCore::yamlToArray($i['titles']);
// переопределяем название пункта меню в зависимости от языка
if(!empty($i['titles'][cmsConfig::getConfig('lang')])){
$i['title'] = $i['titles'][cmsConfig::getConfig('lang')];
}
return $i['title'];
}
на
'prc'=>'cpLangTitle'

\admin\includes\cp.php добавить функцию
function cpLangTitle($i){
$i['titles'] = cmsCore::yamlToArray($i['titles']);
// переопределяем название пункта меню в зависимости от языка
if(!empty($i['titles'][cmsConfig::getConfig('lang')])){
$i['title'] = $i['titles'][cmsConfig::getConfig('lang')];
}
return $i['title'];
}
0
Реклама Реклама #
+2
Loadырь Loadырь 1 год назад #
Ленивый, а не поленился столько написать.
0
Олег Васильевич я Олег Васильевич я 1 год назад #
А он такой же ленивый. как и вы - лодырь))
+2
Fuze Fuze 1 год назад #
Даже комментировать нечего тут.
Ленивый, убедительно прошу больше не тратить своё время на подобное, заспамливая ленту блогов.
0
Олег Васильевич я Олег Васильевич я 1 год назад #
Ну как же нет? zlo
Да одни только законы Мерфи чего стоят!
+1
Олег Васильевич я Олег Васильевич я 1 год назад #
Последняя часть имеет практическую пользу, а остальные помогут продвинуть офсайт в выдаче.
Получается, что всё по делу.
Я лично с нетерпением жду части о 7.2, 7.3... popcorn
+1
Максим Анисимов Максим Анисимов 1 год назад #
Спасибо, тема полезная v
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.