Перейти к публикации
View in the app

A better way to browse. Learn more.

Дизайн и модификация Invision Community

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

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>

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

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

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

Сейчас на странице 0

  • Нет пользователей, просматривающих эту страницу.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.