Пытаюсь разобраться в компоненте объявлений. Создал пользователя, создал объявление. Но после сохранения ошибка Deprecated: Non-static method DJClassifiedsSEO::getArticleLink() should not be called statically in /components/com_djclassifieds/views/item/view.html.php on line 287
Если открыть файл, то где ошибка следующее: Код (CODE): $terms_link=''; if($par->get('terms',1)>0 && $par->get('terms_article_id',0)>0){ if($par->get('terms',1)==2){ $terms_link =DJClassifiedsSEO::getArticleLink($par->get('terms_article_id',0),1); }else{ $terms_link = DJClassifiedsSEO::getArticleLink($par->get('terms_article_id',0)); } }
В этом коде вызов метода getArticleLink уже. А метод определяется в классе DJClassifiedsSEO --- добавлено: 13.08.2018, первое сообщение размещено: 13.08.2018 --- Ты видишь как код подсвечивает редактор форума? Пробуй Код (PHP): $testin = new DJClassifiedsSEO(); $terms_link=''; if($par->get('terms',1)>0 && $par->get('terms_article_id',0)>0){ if($par->get('terms',1)==2){ $terms_link = $testin->getArticleLink($par->get('terms_article_id',0),1); }else{ $terms_link = $testin->getArticleLink($par->get('terms_article_id',0)); } }
Понял как нужно указывать объект класса и использовать его. Ошибка ушла Но на этой же странице есть еще одна Notice: Undefined index: cid in /components/com_djclassifieds/views/item/view.html.php on line 89 Код (CODE): $menus = $app->getMenu('site'); $m_active = $menus->getActive(); $cat_menu_path= array(); $cid_menu=0; if($m_active){ if(strstr($m_active->link,'com_djclassifieds') && strstr($m_active->link,'items')){ $cid_menu = $m_active->query['cid']; if($cid_menu>0){ $cat_menu_path= DJClassifiedsCategory::getParentPath(1,$cid_menu); } } } Как быть с неопределенным индексом?
Выведи до проверки $m_active->query Код (PHP): <?php $menus = $app->getMenu('site'); $m_active = $menus->getActive(); $cat_menu_path = array(); $cid_menu = 0; if ($m_active) { if (strstr($m_active->link, 'com_djclassifieds') && strstr($m_active->link, 'items')) { // Посмотрим что тут а потом удалить echo '<pre>', print_r($m_active->query, true), '</pre>'; exit(); $cid_menu = (isset($m_active->query['cid'])) ? (int) $m_active->query['cid'] : 0; // Заменить индекс если нужно if ($cid_menu > 0) { $cat_menu_path = DJClassifiedsCategory::getParentPath(1, $cid_menu); } } } Скорее всего там не cid а просто id
Отлично. Огромное спасибо, Вам. Именно с заменой кода получилось вывести без ошибок. Менять cid не пришлось. Посмотрел в браузерной строке /ads/ad?id=1:vv&cid=2:nogtevoj-servis Т.е. параметр верно - cid
Ошибки и не будет потому что я добавил проверку. Однако. Надо именно посмотреть какой там индекс у id пункта меню что оно работало как надо. Но на самом деле такое формирование путей (подозреваю что это кусок хлебных крошек) морально устарело. По хорошему все это должен делать RouteHelper + Jroute