Перейти к содержимому
Русский язык для Invision Community 5

Fatal error при изменении шаблонов

С недавнего времени стала возникать ошибка после изменения шаблонов.

До этого все было нормально.

Проблема: изменяю, к примеру, шаблон из группы topic view или любой другой, после чего вылетает ошибка:

Fatal error: Cannot instantiate non-existent class: skin_global_7 /public_html/forum/sources/ipsclass.php on line 1364

 

В файле ipsclass.php никаких ошибочных изменений я не делал. А по указанной строке 1364 идет код:

//-----------------------------------------

// Simply require and return

//-----------------------------------------

 

if ( $name != 'skin_global')

{

if ( ! in_array( $skin_global_name, $this->loaded_templates ) )

{

require_once( CACHE_PATH."cache/skin_cache/cacheid_".$id."/skin_global.php" );

 

$this->compiled_templates['skin_global'] = new $skin_global_name();

$this->compiled_templates['skin_global']->ipsclass =& $this;

 

# Add to loaded templates

$this->loaded_templates[ $skin_global_name ] = $skin_global_name;

}

 

Строка с ошибкой выделена красным.

Я более чем уверен, что я не делаю ошибочных изменений в файле или шаблоне.

Пробовал перед изменением шаблонов бекапить файл ipsclass.php - бесполезно.

На ибресурсе.ру писали, что надо бекапить файлы скина (/cashe_7/). Тоже не помогает.

Выручает лишь восстановление бекапа файлов из админки хостера.

Но это конечно же меня не устраивает, т.к. мне нужно изменять шаблоны, вносить что-то новое в скин...

Может кто-то сталкивался с этой проблемой?

Почему безобидное изменение шаблона приводит к фатальной ошибке?

Что вы посоветуете?

Рекомендованные сообщения

Почему безобидное изменение шаблона приводит к фатальной ошибке?

Что вы посоветуете?

а что именно вы вписываете в шаблон, да и что делали с файлами самого движка, модификацию ставите какую-то?

версия ИПБ тоже не помешала бы

Обычно подобные ошибки возникают сразу после установки стилей, но не после изменений.

Попробуйте перестроить кэш.

Насчет проверки ошибочности правки скина, есть простой способ - обращение к дефолту фрагмента, который меняли.

Если после снесения изменений проблем нет, значит дело в них.

  • Автор

Тут еще хлеще.

Восстановился из бекапа. Фоурм опять работает.

Захожу в админку, запускаю перестройку кеша и опять вылетает фатал еррор)

Попробую файлы админки восстанивить. Я когда-то ставил с вашего форума стиль для админки от 2.2

Надо было не страдать ерундой. Кстати, стиль админцентра от 2.2 для 2.1, корорый у вас в архивах - не совсем корректно работал. Когда жмешь на кнопку "Компоненты", вылетала ошибка.

Я вроде бы восстановил файлы на старые, но есть подозрение, что может быть админка как-то портит шаблоны...

Попобую полностью перелазить папку skin_acp/IPB2_Standard

Если не выйдет ничего, придется апдейтиться до 2.2.

Может спасет.

Надо было не страдать ерундой. Кстати, стиль админцентра от 2.2 для 2.1, корорый у вас в архивах - не совсем корректно работал. Когда жмешь на кнопку "Компоненты", вылетала ошибка.

Напишите об этом в теме поддержи мода.

Тогда другие будут предупреждены и автор, возможно, внесет исправления.

 

Никогда не балуюсь скинами админки, там и дефолтного стиля достаточно имхо.

  • Автор
а что именно вы вписываете в шаблон, да и что делали с файлами самого движка, модификацию ставите какую-то?

версия ИПБ тоже не помешала бы

извините, не увидел ваш пост, поэтому не ответил сразу.

версия 217.

Утром поставил php2html. Работает без ошибок. Но если лезу в шаблоны и пытаюсь что-то изменить и сохранить, вылетает ошибка.

Моды стояли нормально. Глючить начало недавно. Все-таки подозрение на этот стиль админцентра.

что меняю? да хотя бы захожу в global_board_header и добавляю ссылочку в навигации. я больше чем уверен, что не делаю ничего ошибочного с кодом. там ошибиться трудно.

  • Автор

админку полностью восстановил - не помогает. буду думать о переходе на 2.2

так вроде и ничего. жить можно. но выходит, что скин теперь не отредактировать.

Кэш перестраивали?

  • Автор

Да. Вылетает фатал еррор после перестройки.

Я писал выше про это.

В общем, сейчас восстановился последний раз, ибо надоело уже, и удалил полностью папку со скином админки, залил из дистрибутива дефолтный скин админцентра.

Все работает. Но если снова полезу в шаблоны, уверен, что опять вылезет эта бяка.

Хз, отчего это. Супорт сказал, это форум виноват. Так оно и есть. Только разобраться в чем дело трудно.

 

кстати, извиняюсь. кнопка "Компоненты" в стиле админцентра от 2.2 работает. там файла одного не хватало. так что беру слова назад насчет админки.

  • Автор

Нашел частичное решение проблемы.

на ибресурсе.ру один человек писал вот что:

1. Сначала восстановите все попорченные файлы с классами cache/skin_cache/cacheid_2

2. Затем в sources/lib/admin_cache_functions.php найдите функцию _recache_templates

3. В этой функции должна быть строка типа $out = "class {$group['group_name']} {\n\n"; (у меня IPB 2.1.5 - это строка 180)

4. Меняем эту строку на следующую $out = "class {$group['group_name']}_$id {\n\n";

 

Если посмотреть внимательно, то мы просто добавляем в строку конструкцию _$id, в итоге, при сохранении кэша шаблона получаем правильное имя класса типа skin_global_2 вместо неправильного skin_global. Вот так...

После изменения шаблонов теперь фатальной ошибки нет.

Но при просмотре я не вижу изменений, сделанных мной.

В шаблоне topic_page_top после

<!--IBF.FORUM_RULES-->
<if="threaded == 0">

я вставляю строку:

<div align="center"><h2>{$data['TOPIC']['title']}</h2></div>

Вставил, сохранил. Все по-прежнему при просмотре топика.

Даже кеш перестроил. Не помогает. Засада какая-то.

Создайте аккаунт или войдите в него для комментирования

Аккаунт

Навигация

Поиск

Поиск

Настроить push-уведомления браузера

Chrome (Android)
  1. Нажмите на иконку замка рядом с адресной строкой.
  2. Нажмите Права доступа -> Уведомления.
  3. Измените свои настройки.
Chrome (компьютер)
  1. Нажмите на иконку замка в адресной строке.
  2. Выберите Настройки сайта.
  3. Найдите Уведомления и измените свои настройки.