Jump to content
Дизайн и модификация IPS Community IPBSkinsBETA
Search In
  • More options...
Find results that contain...
Find results in...
Sign in to follow this  
Petrov

Не устанавливается IPB 3.4.6 на PHP 7

Recommended Posts

Добрый день.

Подскажите в чем может быть пробелема. При попытке установке версии 3.4.6 выдает вот такую ошибку

 

Fatal error: Uncaught Error: Call to undefined function set_magic_quotes_runtime() in /forum/initdata.php:394 

 

Причем если ставить версию 3.4.9 она без проблем устанавливается

 

Заранее спасибо.

Share this post


Link to post
Share on other sites

Поставил 3.4.9

Теперь когда пытаюсь зайти на в тему выдает вот такую ошибку

Fatal error: Redefinition of parameter $forum_data in /forum/cache/skin_cache/cacheid_1/skin_forum.php on line 426

Не подскажите с ней что делать?

Share this post


Link to post
Share on other sites

Fatal error: Redefinition of parameter $forum_data in \cache\skin_cache\cacheid_1\skin_forum.php on line 426

Нужно доунгрейдится с PHP7, эта ошибка типична только для этой версии.

Либо в шаблоне forumIndexTemplate во всем блоке заменить имя переменной $forum_data на $_forum_data, где эти индусы используют в качестве переменной для цикла одноименную переменную шаблона $forum_data.

 

Следующая ошибка, которая также связана с версией php 7:

 

Fatal error:  Uncaught Error: Function name must be a string in /cache/skin_cache/cacheid_1/skin_global.php:1481

лечится следующим образом:

 

Внешний вид -> %Шаблон% -> Global Template (Глобальные шаблоны) -> shareLinks

 

->$data['customOutput'][1]

Заменить на

->{$data['customOutput'][1]}

  • Upvote 2

Share this post


Link to post
Share on other sites

А тройка в обще будет работать на php7 ??

Share this post


Link to post
Share on other sites

С допилом может и будет работать. Там есть косячки с которыми форум из коробки не запустится.

Share this post


Link to post
Share on other sites

Что если я скажу что IPB 3.x может работать на php 7?

"Да ты сумасшедший, IPS сказали что 3.x не будет работать на любой версии 7x." Наверное возразят мне скептики. Вы не поверите, но у меня 2.3x работает на 7.2 буквально с несколькими правками, а тройка и подавно должна работать. Даже больше скажу, она могла бы работать из коробки если не криворукость одного нерадивого верстальщика, который использовал название входящей переменной в шаблоне в качестве переменной в цикле foreach. Здесь нужно сделать небольшую ремарку по поводу того, как работает тег foreach в шаблонах. В кеше шаблона, каждый цикл foreach это отдельная функция, а в качестве входящих переменных передаются все входящие переменные основного шаблона плюс переменные конструкции foreach. Таким образом, если использовать существующее имена, функция тега в итоге приобретает две переменные с одинаковыми именами. Если в php 5 на это закрывалось глаза, то в седьмой версии считается ошибкой. Хотя даже чисто с логической точки зрения это не правильно.

Какие есть варианты решения проблемы?

Первый - переименовать имя переменной во всем блоке foreach в шаблоне forumIndexTemplate. Простой, но не очень практичный способ, так как нужно выполнить для каждого скина и только для конкретного участка в шаблоне. Второй вариант наверное более сложный, но намного эффективный и избавляет от этого бага навсегда - при кеширование функции просто убрать дублирующие переменные, сохранив таким образом оригинальную верстку. Мне удалось относительно просто применить второй метод.

  • Upvote 2

Share this post


Link to post
Share on other sites

Первый - переименовать имя переменной во всем блоке foreach в шаблоне forumIndexTemplate. Простой, но не очень практичный способ, так как нужно выполнить для каждого скина и только для конкретного участка в шаблоне.

Вы хотите сказать что таким простым способом можно поселить IPB 3.x на php 7?

Из-за этой несовместимости я и не перехожу php 7, а значит и не могу поставить последнюю версию панели ISP.

Пока на 4-ку переходить совсем не хочу.

Share this post


Link to post
Share on other sites

Это, скажем так, основная ошибка которая не удавалось исправить без изменения логики скрипта. По тем или иным причинам хотелось сохранить оригинальные имена в шаблоне. И это удалось просто исключив дублирующаю переменную при компиляции шаблона. Кроме нее есть еще несколько фатальных ошибок которые требуют исправления, но правятся легко. Сейчас я готовлю инструкцию для фикса. Правда для 3.4.9. У 3.1.4 ошибок намного больше.

  • Upvote 2

Share this post


Link to post
Share on other sites

Здравствуйте.

Когда вы закончите с мануалом, поделитесь ссылкой и в этой теме пожалуйста :)

Был бы очень вам благодарен, не представляете сколько нервов спасли ... :)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...