Вылезла непонятная ошибка. Прошу помощи

#1 8 июня 2016 в 01:25
На сайте вылезла проблема: не получается удалить нормально ни один материал.
Вылетает ошибка:
На сайте вылезла проблема: не получается удалить нормально ни один материал.
Вылетает ошибка:
  1. Query error:
  2.  
  3. Table 'site.cms_con__fields' doesn't exist
  4. SELECT i.*
  5. FROM cms_con__fields i
  6. ORDER BY i.ordering
  7. LIMIT 1000
  8.  
  9. Recent calls:
  10.  
  11. get() @ /var/www/user249/data/www/site.com/system/controllers/content/model.php : 511
  12. getContentFields() @ /var/www/user249/data/www/site.com/system/controllers/polls/hooks/content_after_delete.php : 9
  13. run()
  14. call_user_func_array() @ /var/www/user249/data/www/site.com/system/core/controller.php : 450
  15. runExternalHook() @ /var/www/user249/data/www/site.com/system/core/controller.php : 412
  16. runHook() @ /var/www/user249/data/www/site.com/system/core/eventsmanager.php : 31
  17. hook() @ /var/www/user249/data/www/site.com/system/controllers/content/model.php : 1740
  18. deleteContentItem() @ /var/www/user249/data/www/site.com/system/controllers/content/actions/item_delete.php : 34
  19. run()
  20. call_user_func_array() @ /var/www/user249/data/www/site.com/system/core/controller.php : 382
  21. runExternalAction() @ /var/www/user249/data/www/site.com/system/core/controller.php : 308
Т.е. почему-то обращение идёт не к нужной таблице, а к site.cms_con__fields — где не подставляется тип компонента.
Подскажите, куда копать на предмет устранения ошибки?
#2 8 июня 2016 в 08:30
Проблему ищите тут /system/controllers/polls/hooks/content_after_delete.php строка 9.
#3 9 июня 2016 в 00:03

Проблему ищите тут /system/controllers/polls/hooks/content_after_delete.php строка 9.

Loadырь
вот указанный код:
  1. class onPollsContentAfterDelete extends cmsAction {
  2.  
  3. public function run($data){
  4.  
  5. $model = cmsCore::getModel('content');
  6.  
  7. $fields = $model->getContentFields($data['ctype_name']); // 9 строка
  8.  
  9. if (is_array($fields)) {
  10. ...
Проблема в том что не передается отсутствует $data['ctype_name'] об этом намекает:
  1. Query error:
  2.  
  3. Table 'site.cms_con__fields' doesn't exist
Можно, конечно добавить проверку в файл ../system/controllers/polls/hooks/content_after_delete.php:
  1. class onPollsContentAfterDelete extends cmsAction {
  2.  
  3. public function run($data){
  4.  
  5. if (empty($data['ctype_name']) || empty($data['item'])) { return $data; } // <- вот эту строку !
  6.  
  7. $model = cmsCore::getModel('content');
  8.  
  9. $fields = $model->getContentFields($data['ctype_name']);
  10.  
  11. if (is_array($fields)) {
  12. ...
но основная проблема кроется где-то выше по стеку вызовов
#4 9 июня 2016 в 06:18
Val, надо смотреть, что передаётся в хук
  1. cmsEventsManager::hook("content_after_delete", array(что тут прописано));
и почему не определена эта переменная, возможно она удалилась раньше, чем сработал этот хук.
#5 9 июня 2016 в 08:40
Loadырь, хук системный — ..\system\controllers\content\model.php (строка 1740)
  1. $success = $this->delete($table_name, $id);
  2.  
  3. if($success){
  4. cmsEventsManager::hook('content_after_delete', array('ctype_name'=>$ctype_name, 'item'=>$item));
  5. cmsEventsManager::hook("content_{$ctype_name}_after_delete", $item);
  6. }
На локалке проблема не воспроизводится, надо в условиях ТС смотреть. Возможно ранее другой компонент на этом же хуке когда отработал не вернул обратно данные
  1. return $data;
хотя здесь ничего не видно:
  1. runHook() @ /var/www/user249/data/www/site.com/system/core/eventsmanager.php : 31
  2. hook() @ /var/www/user249/data/www/site.com/system/controllers/content/model.php : 1740
  3. deleteContentItem() @ /var/www/user249/data/www/site.com/system/controllers/content/actions/item_delete.php : 34
  4. run()
  5. call_user_func_array() @ /var/www/user249/data/www/site.com/system/core/controller.php : 382
  6. runExternalAction() @ /var/www/user249/data/www/site.com/system/core/controller.php : 308
#6 9 июня 2016 в 09:15

Возможно ранее другой компонент на этом же хуке когда отработал не вернул обратно данные

Val
Скорее всего так и есть.
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.