Танцы с бубном и переустановка компонентk

  • 4 Ответов
  • 1793 Просмотров

0 Пользователей и 1 Гость просматривают эту тему.

*

intuitive

  • Захожу иногда
  • **
  • 20
  • 0
Ребят, такое дело, подскажите. (Сразу хочу сказать, что прочитал ряд схожих тем и выполнил рекомендации, но, видать, случай особый или руки не из того места :))
Решил я удалить компонент sh404SEF...

Во время удаления (как требуется: деинсталляция через управление расширениями) что-то не срослось, ошибку не запомнил, в итоге не смог заново поставить его обратно: завершается 100% установки и выплёвывает:
Fatal error: Class 'ShlDbHelper' not found in ***/public_html/tmp/install_53f48c89e1f82/installation.script.php on line 267

Нужно-таки по-человечески удалить, подумал я, и последовательно вынес:
папку /administrator/components/sh404SEF
папку /components/sh404SEF
папки /plugins и /plugins/system не содержали ничего относящегося к sh404
Из БД вынес таблицы:
_sh404sef_aliases
_sh404sef_metas
_sh404sef_pageids
_sh404sef_urls


Далее нашел все упоминания sh404 и вынес записи из

_assets 1 запись
_extensions 1 запись
_menu 9 записей

Смотрю в админке Joomla - все чисто, никакого sh404. Начинаю переустанавливать. Доходит до 100% - Fatal error: Class 'ShlDbHelper' not found in ***/public_html/tmp/install_53f48c89e1f82/installation.script.php on line 267 и привет.

Компонент появляется, но при нажатии на него страница с сообщением
sh404SEF system plugin has b een disabled or has failed initializing. Please enable it again to use sh404SEF, with Joomla! plugin manager и привет.
Плагинов от sh404 в списке нет.

Буду признателен за какие-нибудь идеи - как заставить переустановиться компонент.

На борту:
Joomla 3.3.1
sh404SEF v4.4.4
PHP 5.3


*

Тренд

  • Осваиваюсь на форуме
  • ***
  • 59
  • 6
Я так понял, что привычки делать бекап сайта перед установкой, удалением и обновлением нет?
Насчет вычищения... надо еще и кеш почистить, там тоже всякое может сохраниться. Ну и папочку tmp, можно целиком очистить кроме index.html
Ну если и это не помогает, залезаем в эти файлы, перемещаемся на указанные строки и смотрим что там требуется.

*

intuitive

  • Захожу иногда
  • **
  • 20
  • 0
Я так понял, что привычки делать бекап сайта перед установкой, удалением и обновлением нет?
В точку :(
Кэш постоянно чищу. Полез в файлы.

Цитировать
      // read saved config
         $extFile = $this->_preserveConfigFolder . 'sh404_upgrade_conf' . '/com_sh404sef_' . $this->_siteId . '.php';
         
         // remove previous if any
         if (JFile::exists($extFile))
         {
            include_once $extFile;
            if(!empty($sh404sefConfig))
            {
               // write it back into sh404SEF config field
               try {
                  ShlDbHelper::update('#__extensions', array('params' => $sh404sefConfig), array('type' => 'component', 'element' => 'com_sh404sef'));
               }
               catch (Exception $e)
               {
                  JFactory::getApplication()
                  ->enqueuemessage('Database error while restoring saved configuration. Config may be lost: ' . $e->getMessage());
               }
            }
         }

      }

Выделил 267 строчку.
Как я понял, если очень грубо : "Скрипт ищет то, что не удалено, если находит, удаляет, а в моем случае нет того, что нужно удалить"  ! :o
« Последнее редактирование: 20.08.2014, 18:52:30 от intuitive »

*

Тренд

  • Осваиваюсь на форуме
  • ***
  • 59
  • 6
Попробуй вывести что содержится в переменной $extFile
      // read saved config
         $extFile = $this->_preserveConfigFolder . 'sh404_upgrade_conf' . '/com_sh404sef_' . $this->_siteId . '.php';
print "extFile = $extFile";
потом после подключения файла посмотреть что содержит переменная $sh404sefConfig
скорее всего это будет массив и надо его просмотреть print_r($sh404sefConfig)
там скорее всего какой-то параметр кривой... надо его найти.

*

deepsky303

  • Новичок
  • *
  • 6
  • 0
Если вдруг кто столкнётся с этой же ошибкой, то вот решение :

1. Удалить записи, связанные с sh404SEF из таблиц БД вашего сайта
 
 _assets
 _extensions
 _menu

для кучи ещё две таблицы shlib.

2. После этого удалить все папки связанные с sh404SEF из :

administrator/components/
administrator/modules/
media/
plugins/
plugins/system/
components/

3. Очистить папку tmp.

После этого компонент установился без вопросов.