PDA

Zobacz pełną wersję : Notice: Trying to get property 'description' of non-object in ...



Darek Czarny
22-03-2020, 02:11
Poprosze o pomoc w rozwiazaniu problemu. W ogłoszeniach na DJ Classifieds nad ogłoszeniami wyskakuje mi taki komunikat:

Notice: Trying to get property 'description' of non-object in /home/server062176/ftp/migracje/peterboroughpl.uk/public_html/components/com_djclassifieds/themes/jm-classifiedads/views/items/default_cat.php on line 272

a wiersz 272 brzmi tak:
if($par->get('main_cat_desc','0') && $this->main_cat->description){
echo '<div class="main_cat_desc">'.$this->main_cat->description.'</div>';
}

link: https://peterboroughpl.uk/ogloszenia
Jak mogę sobie z tym poradzić, aby to usunac. Co nalezy zrobic? Poprosze o pomoc. DziekiSzablon: jm-classifiedads, Joomla 3.9.14

siristru
22-03-2020, 13:02
To nie jest błąd tylko powiadomienie. Możesz je ukryć w Zaplecze -> Konfiguracja globalna -> Serwer -> Raportowanie błędów i ustawiasz na "Brak" http://prntscr.com/rkl4gc

Powiadomienie mówi, że podjęta jest próba uzyskania właściwości o nazwie "description" z elementu który nie jest obiektem, jest to prawdopodobnie tablica.
Ten fragment powinien wyglądać prawdopodobnie tak: $this->main_cat['description'].

Darek Czarny
22-03-2020, 15:38
Po ustawieniu Raportowania Blędów na Brak nic się niestety nie zmieniło. Spróbuję zmienić ten fragment tekstu.
Czy ten tekst zamienić w obu przypadkach? Bo jest taki sam tekst w górnym wierszu i ten sam w dolnym.

W górnym jak zmieniłem tylko to stronka wygasła i pokazał się komunikat:
0 syntax error, unexpected 'echo' (T_ECHO)

Jak dodałem tą samą zmianę w drugim wierszu to ten sam komunikat się pokazuje.

Jeżeli mógłbyś coś jeszcze coś dodać, podpowiedzieć to bardzo proszę.

siristru
22-03-2020, 15:55
Aj, to zmien tak: $this->main_cat[description].

Jak to nic nie da to zapisz gdzieś nad tą linijką:

print_r($this->main_cat);

i pokaż co się wyświetla od frontu.

Darek Czarny
22-03-2020, 16:39
Tylko czy to zmienić w obu wierszach? W komunikacie jest niby tylko wiersz nr 272, a to ten górny.
Jak zmieniłem tylko w górnym to wygląda tak:

if($par->get('main_cat_desc','0') && $this->main_cat[description]{
echo '<div class="main_cat_desc">'.$this->main_cat->description.'</div>';
}

i komunikat wyświetla się ten sam : 0
syntax error, unexpected 'echo' (T_ECHO)

Wkleiłem poprawkę, bo może coś źle zrobiłem, a tu jeden znak wystarczy źle postawić i tak jest.
Sprubuję jeszcze ten dolny tekst zmienić.
Za bardzo nie rozumiem co napisałeś: " Jak to nic nie da to zapisz gdzieś nad tą linijką: print_r($this->main_cat);"
Mógłbyś to trochę rozszerzyć? Dzięki

Zrobiłem coś takiego:

print_r($this->main_cat);
if($par->get('main_cat_desc','0') && $this->main_cat[description]{
echo '<div class="main_cat_desc">'.$this->main_cat->description.'</div>';
}

i ten sam komunikat.

Jak zrobiłem to tak:

print_r($this->main_cat);
if($par->get('main_cat_desc','0') && $this->main_cat[description]{
echo '<div class="main_cat_desc">'.$this->main_cat[description].'</div>';
}

To samo, ten sam błąd się wyświetla.
Możesz jeszcze coś doradzić? Dzięki

- - - Updated - - -

Może powróce do tego co było i jakbyś mógł wkleić poprawiony tekst, to poproszę.
Było w oryginale:

if($par->get('main_cat_desc','0') && $this->main_cat->description){
echo '<div class="main_cat_desc">'.$this->main_cat->description.'</div>';
}

Trochę dziwne, bo mam taką druga stronę na innej domenie i jest wszystko ok.

siristru
22-03-2020, 16:40
Masz niedomknięty warunek if:


if($par->get('main_cat_desc','0') && $this->main_cat[description]{
echo '<div class="main_cat_desc">'.$this->main_cat[description].'</div>';
}

powinno być


if($par->get('main_cat_desc','0') && $this->main_cat[description]) {
echo '<div class="main_cat_desc">'.$this->main_cat[description].'</div>';
}

Zauważ nawias tuż za nawiasem kwadratowym, on opina warunek if. Usunąłeś nawias kiedy zmieniałeś :)

Darek Czarny
22-03-2020, 16:52
Może jeszcze coś dodam. Wykasowałem ten cały tekst i błąd zniknął. Tylko nie wiem czy nie będzie to miało wpywu na całokształt. Jak ktoś, coś jeszcze może dodać to poproszę.
Jeszcze nie próbowałem twojej ostatniej podpowiedzi, więc zaraz to zrobię.

- - - Updated - - -

Po twojej ostatniej podpowiedzi, tzn jak wstawiłem:
if($par->get('main_cat_desc','0') && $this->main_cat[description]) {
echo '<div class="main_cat_desc">'.$this->main_cat[description].'</div>';
}
Pokazuje się teraz:

Warning: Use of undefined constant description - assumed 'description' (this will throw an Error in a future version of PHP) in /home/server062176/ftp/migracje/peterboroughpl.uk/public_html/components/com_djclassifieds/themes/jm-classifiedads/views/items/default_cat.php on line 272

Warning: Illegal string offset 'description' in /home/server062176/ftp/migracje/peterboroughpl.uk/public_html/components/com_djclassifieds/themes/jm-classifiedads/views/items/default_cat.php on line 272

Notice: Uninitialized string offset: 0 in /home/server062176/ftp/migracje/peterboroughpl.uk/public_html/components/com_djclassifieds/themes/jm-classifiedads/views/items/default_cat.php on line 272


ale strona normalnie działa: https://peterboroughpl.uk/ogloszenia

siristru
22-03-2020, 16:53
Ten kod jest odpowiedzialny za wyświetlanie opisu kategorii.. no jak nie będziesz z tego korzystał to możesz zakomentować ale nie usuwaj komentujesz tak:



/* if($par->get('main_cat_desc','0') && $this->main_cat[description]) {
echo '<div class="main_cat_desc">'.$this->main_cat[description].'</div>';
} */

Darek Czarny
22-03-2020, 17:08
Masz rację. Zrobiłem tak, jak napisałeś. Tekstu nie usunąłem i wstawiłem:

/* if($par->get('main_cat_desc','0') && $this->main_cat[description]) {
echo '<div class="main_cat_desc">'.$this->main_cat[description].'</div>';
} */

Jeżeli to jest tekst odpowiedzialny za opis kategorii to akurat tego nie używam, chociaż fajnie by było aby działało poprawnie.
Zrobiłem tak i po kłopocie. W każdym razie duże dzięki. Jakbyś miał jeszcze przy okazji jakąś radę dodatkowo to poproszę.
Dzięki