Keresésnél eval(unescape(... jelenik meg az email címekre

Anonymous képe

Sziasztok!

A gondom az volna, hogy ha a keresés olyan találatot hoz, ahol az eredmény megmutatott részében e-mail cím van, akkor a cím helyett az iszonyatosan hosszú eval(unescape('.... jelenik meg....

ez egyrészről teljesen széttolja az oldalt, másrészről meg nagyon nem esztétikus...

a rendszer 4.7

mit lehetne kezdeni a dologgal?

Hojtsy Gábor képe

Hogyan kerül oda az eval? Van valami modulod, ami így menti le a node-okat?

0
0
Anonymous képe

sima node, page típussal és bbcode bevitellel...

az eval cucc ugyebár egy javascript -es e-mail rejtés miatt van, amit mintha talán az alap drupal rendszerben lehetne bekapcsolni... (de lehet h rosszul emlékszem)...

0
0
Anonymous képe

nos mégsem a gyári rendszernek, hanem a bbcode modulnak az opciója az email address encoding (Whether to encode email addresses with javascript. With this method you will have clickable mailto links, but it will be a bit harder for spam robots to collect them.)

hát igen... akkor megvan a ludas de a megoldás még nem... szóval ez a funkció igen hasznos, jó lenne ha megmaradhatna de a keresésnél igen gáz az eval-os cucc megjelenése.

ahogy nézem a generált forrást amikor az eval(.. megjelenik az van, hogy egyrészről kiveszi a javascript -et az eval elöl másrészről csonkolja az eval végét mivel valszeg nem fér bele a találatként megjelenítendő karakter számba... ciki...

van arra valami mód hogy ilyen esetben ezeket kivételként kezelje és másként dolgozzon velük? vagy mi mást lehetne csinálni a funkció tiltásán kívül?

0
0
Hojtsy Gábor képe

A node_update_index() frissíti a keresési adatbázist. Namost itt a node_prepare() vagy a view hurok hívása során jut el a Drupal a szűrő modulokhoz (és így a bbcode szűréshez). Sajnos mint a kódból látszik, semmiféle extra információt nem ad a Drupal arról, hogy itt most keresés céljára kell átalakítani a tartalmat, mert azt gondolja, hogy nyilván azt kell indexelni, ami majd megjelenik úgyis.

Favágós-fejlesztős megoldás, ha a node_load() hívás után beraksz egy node_invoke_nodeapi($node, 'custom-filtering-for-search', false, false); hívást a fenti függvénybe. Ezután kell egy bbcode_nodeapi(), ami eltárolja, hogy egyszer meghívták a 'custom-filtering-for-search' operációval. Ezt a Drupal által később meghívott filter kódnak le kell kérdeznie, mielőtt szűr, és ennek megfelelően eldöntheti, hogy hogyan szűri az email címet. Érdemes megjegyezni, hogy ehhez tudni kell progamozni, kicsit érteni kell a Drupal lelkét, és két fájlt módosítasz, amire később vigyázni kell, ha frissíted a Drupal rendszert a következő hibajavító kiadással.

Sajnos ennél egyszerűbb megoldást nem tudok ajánlani a bbcode adott szolgáltatásának megtartása mellett.

0
0
Anonymous képe

hát mindenesetre köszi a debug -ot és a megoldást, de mivel csak most kezdek ismerkedni a drupal belső lelkivilágával ezért lehet, hogy ezt a módosítást kicsit késöbbre teszem, amikor már tudni is fogom, hogy mit csinálok!

azért nekilátok keményebben áttúrni és mielöbb átdolgozni!

Nagyon köszi az útbairányítást!

0
0
andrew képe

szóval valahogy csak végig kellene csinálni de akkor inkább egy patch kellene az eredeti modulhoz...

szóval az elképzelésem vmi olyasmi volna, hogy ha a node_update_index() frissíti a keresési adatbázist akkor gondolom jelen esetben a node_invoke_nodeapi($node, 'view', false, false); sor a fv -ben az ami nekünk a galibát csinálja...

mi lenne ha a node megjelenítését végző hook -ban helyeznénk el egy olyan kódot ami ellenőrizné, hogy honnan lett meghívva a fv. és ha a node_update_index() -ből akkor sima html style e-mail címet adna vissza a szövegben ha pedig máshol akkor a kódoltat...

jó egyáltalán az elképzelés v. máshogy érdemes megközelíteni?

vagy a _bbcode_encode_mailto($matches) fv-t kellene megbuherálni hasonló alapokon?

még vmi:
nagyon nem vagyok otthon a drupal hook -os témájában és belső lelkivilágában, úgyhogy lehet buta lesz a kérdés: ha egy fv -t megkampózok, akkor ellenőrizhető valahogy hook rendszeren keresztül, hogy honnan hívták meg, v. csak beépített php debug fv-ekkel?

0
0
Hojtsy Gábor képe

PHP-ben nem lehet túl kultúráltan megállapítani, hogy honnan hívtak meg egy függvényt, ha nem kap erre vonatkozó paramétert. Ezért javasoltam, hogy be kell iktatni egy extra (új, saját kitalálású) nodeapi opciót, ami értesíti a nodeapi megvalósítókat, hogy a további nodeapi és filter hívások keresés indexelésre vonatkoznak. Ezek után erre építhetsz a bbcode modulban.

0
0
andrew képe

hát akkor beletúrok így ha lesz egy kis időm.

köszi.

ha megvan a vége majd bemásolom az eredményt...

0
0