После апгрейда на сервере вылезла ошибка в модуле mod_latestnews.php Ситуация такая, есть новости, разбитые на 2 категории. на главной посредством mod_latestnews они выводятся в 2 колонки, в каждой колонке своя категория. Те есть mod_latestnews1 и его дублер mod_latestnews2 для каждой категории новостей. После апгрейда на сервере новости второй категории перестали отображаться, вместо них указанная ошибка. Новости первой категории на месте и видны на главной. Подскажите в чем может быть дело. PS искал в гугле решения проблемы, нашел сайт. на котором похожая трабла. сделал скрин для наглядности
Ответ: Ошибка модуля mod_latestnews, строка 124 И какая версия джумлы (в смысле что там на строчках от 120 до 130)
Ответ: Ошибка модуля mod_latestnews, строка 124 Код (PHP): // Output ?> <?php $firstnews=1; (строка 124) foreach ( $rows as $row ) { // get Itemid switch ( $type ) { case 2: $query = "SELECT id" . "\n FROM #__menu" . "\n WHERE type = 'content_typed'" . "\n AND componentid = $row->id" ; $database->setQuery( $query ); $Itemid = $database->loadResult(); break; case 3: if ( $row->sectionid ) { $Itemid = $mainframe->getItemid( $row->id, 0, 0, $bs, $bc, $gbs ); } else { $query = "SELECT id" . "\n FROM #__menu" . "\n WHERE type = 'content_typed'" . "\n AND componentid = $row->id" ; $database->setQuery( $query ); $Itemid = $database->loadResult(); } break; case 1: default: $Itemid = $mainframe->getItemid( $row->id, 0, 0, $bs, $bc, $gbs ); break; }
Ответ: Ошибка модуля mod_latestnews, строка 124 Тэкс. А теперь ищи то место где идет $rows = $database чего-то там и пару строчек выше, что бы запрос увидеть. Но можно сразу попробовать перед строкой с foreach написать нечто такое: echo $database->stderr();
Ответ: Ошибка модуля mod_latestnews, строка 124 встречается в 2-х местах Код (PHP): // select between Content Items, Static Content or both switch ( $type ) { case 2: //Static Content only $query = "SELECT a.id, a.title, a.created,a.created as created2, a.introtext" . "\n FROM #__content AS a" . "\n WHERE ( a.state = 1 AND a.sectionid = 0 )" . "\n AND ( a.publish_up = '$nullDate' OR a.publish_up <= '$now' )" . "\n AND ( a.publish_down = '$nullDate' OR a.publish_down >= '$now' )" . ( $access ? "\n AND a.access <= $my->gid" : '' ) . "\n ORDER BY a.created DESC" . "\n LIMIT $count" ; $database->setQuery( $query ); $rows = $database->loadObjectList(); break; case 3: //Both $query = "SELECT a.id, a.title, a.sectionid, a.created,a.created as created2, a.introtext, a.catid, cc.access AS cat_access, s.access AS sec_access, cc.published AS cat_state, s.published AS sec_state" . "\n FROM #__content AS a" . "\n LEFT JOIN #__content_frontpage AS f ON f.content_id = a.id" . "\n LEFT JOIN #__categories AS cc ON cc.id = a.catid" . "\n LEFT JOIN #__sections AS s ON s.id = a.sectionid" . "\n WHERE a.state = 1" . "\n AND ( a.publish_up = '$nullDate' OR a.publish_up <= '$now' )" . "\n AND ( a.publish_down = '$nullDate' OR a.publish_down >= '$now' )" . ( $access ? "\n AND a.access <= $my->gid" : '' ) . ( $catid ? "\n AND ( a.catid IN ( $catid ) )" : '' ) . ( $secid ? "\n AND ( a.sectionid IN ( $secid ) )" : '' ) . ( $show_front == '0' ? "\n AND f.content_id IS NULL" : '' ) . "\n ORDER BY a.created DESC" . "\n LIMIT $count" ; $database->setQuery( $query ); $temp = $database->loadObjectList(); $rows = array(); if (count($temp)) { foreach ($temp as $row ) { if (($row->cat_state == 1 || $row->cat_state == '') && ($row->sec_state == 1 || $row->sec_state == '') && ($row->cat_access <= $my->gid || $row->cat_access == '' || !$access) && ($row->sec_access <= $my->gid || $row->sec_access == '' || !$access)) { $rows[] = $row; } } } unset($temp); break; case 1: default: //Content Items only $query = "SELECT a.id, a.title, a.sectionid, a.catid, a.introtext, a.created, e.title AS cattitle, a.created as created2" . "\n FROM #__content AS a, #__categories AS e" . "\n LEFT JOIN #__content_frontpage AS f ON f.content_id = a.id" . "\n WHERE a.catid = e.id" . "\n AND ( a.state = '1' AND a.checked_out = '0' AND a.sectionid > '0' )" . "\n AND ( a.publish_up = '0000-00-00 00:00:00' OR a.publish_up <= '". $now ."' )" . "\n AND ( a.publish_down = '0000-00-00 00:00:00' OR a.publish_down >= '". $now ."' )" . ( $access ? "\n AND a.access <= '". $my->gid ."'" : '' ) . ( $catid ? "\n AND ( a.catid IN (". $catid .") )" : '' ) . ( $secid ? "\n AND ( a.sectionid IN (". $secid .") )" : '' ) . ( $show_front == "0" ? "\n AND f.content_id IS NULL" : '' ) . ( $show_front == "2" ? "\n AND f.content_id IS NOT NULL" : '' ) . "\n ORDER BY a.created DESC LIMIT $count" ; $database->setQuery( $query ); $rows = $database->loadObjectList(); break; }
Ответ: Ошибка модуля mod_latestnews, строка 124 Вызов DB функции завершен с ошибкой номер: 1054 Unknown column 'a.id' in 'on clause' SQL=SELECT a.id, a.title, a.sectionid, a.catid, a.introtext, a.created, e.title AS cattitle, a.created as created2 FROM jos_content AS a, jos_categories AS e LEFT JOIN jos_content_frontpage AS f ON f.content_id = a.id WHERE a.catid = e.id AND ( a.state = '1' AND a.checked_out = '0' AND a.sectionid > '0' ) AND ( a.publish_up = '0000-00-00 00:00:00' OR a.publish_up <= '2007-12-25 22:23' ) AND ( a.publish_down = '0000-00-00 00:00:00' OR a.publish_down >= '2007-12-25 22:23' ) AND a.access <= '0' AND ( a.catid IN (21) ) ORDER BY a.created DESC LIMIT 5
Ответ: Ошибка модуля mod_latestnews, строка 124 Ну теперь вспоминай, что делал с таблицами, с дампами. Переносил или двигал. Куда целый столбец делся.
Ответ: Ошибка модуля mod_latestnews, строка 124 собственно проблема появилась после того, как хостер произвел апгрейд. вроде и резервное копирование было сделано и все остальное, однако после восстановления модуль стал вести себя именно так. что можно предпринять для восстановления? ps очень признателен за помощь! с наступающими новогодними праздниками!
Ответ: Ошибка модуля mod_latestnews, строка 124 Это не модуль виноват. Виновата попорченная база данных. Чего с ней делать без бэкапа - я не знаю