Prowadzę niewielki serwis ogłoszeniowy i mam pewien problem z wyświetlaniem się litery "ó" na stronie
Problem dotyczy sytuacji w gdy na stronie główej wyświetla się tytuł ogłoszenia w formie linku , a pod spodem kilkadziesiąt pierwszych wyrazów z opisu z ogłoszenia i w tym opisie zamiast litery "ó" wyskajuje krzaczek. W całym serwisie nie występują żadne problemy , czy błędy z kodowaniem polskich znaków. Również przechodząc do szczegółów ogłoszenia wszystko jest ok.
W oryginalnym projekcie skryptu nie ma opcji wyświetlania początku treści ogłoszenia pod jego tytułem na głównej stronie. Pomysł ten zaczerpnięty został z forum autora skryptu (zagranicznego) i rozwiązanie to chyba nie było testowane z polską wersją jezykową.
Poniżej wszystko co może pomóc w rozwiązaniu problemu.
Serwis zbudowany jest na szablonach smatry.
Sposób na dodanie opisu pod tytułem ogłoszenia był taki:
w links.php dopisać 1 wiersz (to ten ostatni wiersz , czytat pokazuje tylko część kodu tego pliku)
<?php $fArray[$ad_id]["CATEGORYNAME"] = $catname; $fArray[$ad_id]["CATIMAGE"] = $cat_image; $fArray[$ad_id]["DATE_URL"] = "<a href=\"?catid=$catid&=ad_id&searchword=$searchword\">"; $fArray[$ad_id]["DATEADDED"] = $ad_date; $fArray[$ad_id]["EXPIREDATE"] = $ad_date_expire; $fArray[$ad_id]["VIEWED"] = $ad_views; $fArray[$ad_id]["SPECIAL"] = $row["ad_is_special"];; $fArray[$ad_id]["COLOR"] = $color; $fArray[$ad_id]["LINK"] = linkDetail($ad_id); $fArray[$ad_id]["TITLE"] = $ad_title; $fArray[$ad_id]["REGDATE"] = $ad_date; $fArray[$ad_id]["NUM_VOTERS"] = $ad_voters; $fArray[$ad_id]["ID"] = $ad_id; $fArray[$ad_id]["ad_id"] = $ad_id; $fArray[$ad_id]["AD_OWNER_NOTIFIED"]=$row["ad_owner_notified"]; $fArray[$ad_id]["AD_SOLD"]=$row["ad_is_sold"]; $fArray[$ad_id]["NB"] = $i; $fArray[$ad_id]["DESCRIPTION"] = $ad_description; ?>
a w templatce :latest_frontpage.tpl dopisać $ad.DESCRIPTION z ogranicznikiem wyświtlania liter, co dało taki zapis kodu w wierszu tabeli:
No i wszystko pięknie poza "ó"
Dziwi mnie to że opis ogłoszenia zupełnie poprawnie wyświetla się, gdy klikniemy na link i otworzy się podstrona ze szczegółami :tytuł , treść ogłoszenia itp.
Zauważyłem, że tam nieco inaczej wywoływana jest zmienna ( tzn. $ad_description, a nie $ad.DESCRIPTION) poprzedzona wcześniej tagiem form method="post" (nie wiem czy ma to jakiekolwiek znaczenie)
to jest templatka ze szczegółami ogłoszenia detali.tpl (cytat zawiera tylko część kodu)
Skoro w obu przypadkach dane są pobierane z tej samej tablicy, pradopodobnie czegoś brakuje w powyższych kodach , aby wyświetlało prowidłowe "ó" - niestety nie mam pojęcia czego.
Pozstałe informacje:
- wszystkie pliki kodowane są w utf-8 (jest odpowienie meta .....charset=utf-8")
- baza jest kodowana w latin
- szukałem na róznych forach i próbowałem róznych "recept" - bez efektu
- na php się nie znam - więc ewentualny opis rozwiązania poproszę łopatoloicznie
- jeśli coś jeszcze powinieniem podać - to podam
===============
Sprawa nieaktualna , temat do zamknięcia.
PS -> pomogło zastąpienie $ad_description; =>$row["ad_description"]; w 19 wierszu kodu z pierwszego "cytatu"