Ékezetes probléma

retronom képe

A drupal szépen kiszolgálja képek feltöltését és megjelenítését, de írtam egy egyszerű (számomra bonyolult) blokkot ahol bizonyos szavakra kigyűjtödnek képek. A probléma ott van, hogy az itt megjelenő ékezetes és egyéb nyalánkságokat tartalmazó képek nem jelennek meg. Mi lehet a gond. MYSQL lekérés után kell még valamit csinálni a fájlnévvel?
példa: http://retronom.hu/index.php?q=node/11318
Az oldal legalján néhány kép nem jelenik meg (Telefonszám regiszter 1. és 2.). Ezek ékezetesek, de drupal által generált lekérdezéseknél megjelennek - bal oldalt friss beküldések.
Előre is kösz a segítséget.

Drupal verzió: 
Fórum: 
eMeLA képe

Én az alábbi szabályt ajánlom neked: nagybetűket, és ékezetes karaktereket ne használj fájnévben (főleg ne az interneten). Én még az üres helyeket is feltöltöm _ karakterrel. Csak bajod lesz a kis és nagybetű váltással, és az ékezetekkel.

0
0

...mit tudok: http://web.termuves.hu

sgabe képe

És ezt a módszert ne csak ebben a konkrét esetben alkalmazzuk, hanem mindig.

0
0
retronom képe

ezeket a képeket nem én töltöm fel, hanem a felhasználók. Nekik pedig mindent szabad :-)

0
0
sgabe képe

A feltöltésnél nevezd át a fájlokat és inkább egy kapcsolódó cím vagy leírás mezőt használj a szűréshez.

0
0
retronom képe

Views által generált listában látszik az ékezetes kép, az én általam lekért php-ból kinyert listában nem látszik.
Ezt hogy érted: nevezem át a feltöltött fájlokat. Hol?

0
0
gergely képe

esetleg ha megmutatod a php-t akkor lehet hogy tudunk segiteni, amugy meg menem csinalod akkor views-al ha azzal megy?

0
0

---
Tévedni mindenkinek szabad, csak a mérnöknek észre kell vennie.

retronom képe

van egy lekérés...

$result = db_query("SELECT n. nid, n.title, f.filepath, t.tid FROM {node} n JOIN ({files} f, {term_node} t) ON (n.nid=f.nid and n.nid=t.nid) WHERE    n.title LIKE  '%$szavak_1_2%' and f.filename ='thumbnail'  and n.status=1 and n.nid<>$nid ORDER BY  n.title ");

egy ciklus...
while ($node = db_fetch_object($result)

kiírás:
   $kep="http://retronom.hu/files/".$node->filepath;
   $link="http://retronom.hu/node/".$node->nid;
   print ("<div class=\"ajanlo_box_oszlop\"><a href=$link ><img src=$kep ><br>");
   print ($node->title."<br></a>");

van itt más is, de ez a lényeg

sajnos ezt az ajánló modult nem tudom megcsinálni view segítségével:
első és második szóra kigyűjti külön a találatokat és egyszerre is
pl. "videoton hangfal"-ra kidobja:
- videoton hangfal
- videoton
- hangfal
találatokat.

0
0
aboros képe

nem csinálunk ilyet, hogy print div class a href img src pera perdiv!!!
ennél sokkal okosabb a drupal.

van l() függvény, van theme('image' .. hurok azokat illik használni. (keresd meg az l -t és a theme_image -t az api.drupal.org -on!!)

lehetséges, hogy ha használod őket, akkor jó is lesz élből, bár nem tudom, lehet, hogy csak akkor ha unicodeként mented a modulodat.

0
0

-
clear: both;

sgabe képe

ahogy aboros is írja, de nem az ékezetes fájlnevekkel van a probléma, hanem a szóközökkel és az egyes tagek paramétereinek megadásával, ugyanis a szóközöknél megtörnek az értékek és innentől kezdve nem értelmezhető a böngésző számára.

Ez a kiíratásod eredménye:

<div class="ajanlo_box_oszlop"><a href=http://retronom.hu/node/7155 ><img src=http://retronom.hu/files/images/Telefonszám regiszter 1.thumbnail.jpg ><br>Telefonszám regiszter 1.<br>

és így lenne "jó":

print ("<div class=\"ajanlo_box_oszlop\"><a href=\"$link\" ><img src=\"$kep\" /></br>");
print ($node->title."</br></a>");
0
0
retronom képe

sgabe: köszönöm a javítást és a filefield paths ajánlót (hasznát fogom venni)
aboros: teljesen igazad van, sajna még én nem vagyok elég okos a drupalhoz

0
0
sgabe képe

a lényeg, hogy ne hagyd így! valahol el kell kezdeni...

0
0
pp képe

Nézzünk bele az l függvény kódjába! Látod, hogy abba egy ilyen van: check_url(url($path, $options)) Az egyik szűri az xss támadásokat a másik meg korrekt url gyárt. Használjuk már azt a tudást amit az évek alatt a profik beletoltak a kódba. Javasoljuk az l függvény használatát.

Már elnézést, de ilyenkor mindig leakadok, ha ilyet látok. Minimum egy url_encode-ot rá kéne engedni arra a nyamvadt fájlnévre! Ez nem Drupal és nem is PHP, hanem alap webes alkalmazás fejlesztés kérdéskör.

pp

0
0
aboros képe

ezt a "phpból kinyerést" egy fileban csinálod? netán egy .tpl.php -ban? vagy egy node törzsében php beviteli forma?

ha file, akkor szerintem azért van a hiba, mert az általad írt php file nem unicode hanem mondjuk ansi kódolással mentett és már bukod is az ékezeteket. ha pl beleírod a page.tpl.php -ba valahova, hogy "végtelen valószínűtlenség hajtómű" és elmented, krikszkrakszok lesznek az ékezetek helyén. a php egyelőre még nem unicode. elmentheted ugyan unicodeként, de inkább ne csináld.

ha nem file, hanem egy node törzse, akkor elvileg mennie kell, bár lehet hogy ez attól is függ hogy a kliens milyen oprendszer/böngésző párossal támad, nem tudom.

0
0

-
clear: both;

retronom képe

a hiba biztos itt van elásva. Ez egy blokk php kóddal.

0
0
sgabe képe

Ne a feltöltött fájlokat nevezd át, hanem már a feltöltésnél nevezd át a fájlokat. Van erre modul, ahol vezérjeleket használhatsz a fájlnevekhez, próbáld ki.

Ha még működne is az ékezetes csilicsálé fájlnevekkel, akkor is ez a legjobb megoldás szerintem...

0
0
nevergone képe

Esetleg (nem próbáltam) a Transliteration modul segítségedre lehet.

0
0
lili_ képe

ez teljesen jól működik csak arra vigyázz h amit eddig feltöltöttél file-t azoknak a neveit nem
fogja átnevezni

csak rakd fel engedélyezd és próbálj feltölteni egy olyan file-t aminek a nevében ékezetes betű szerepel látni fogod h az ékezetek ki fognak nyíródni

0
0

mini