Hibás fájlnevek migrálást követően

tiburi képe

Mostanában többször kellett oldalakat mozgatnom, migrálnom.

Áltzalánosan előforduló dolog, hogy sok oldalon nincs transliteration és mindenféle ékezetes, space-s nevű képeket töltögetnek fel az oldalra. Az így felment képek a szerveren így jelennek meg Pl.:

Buta Formátumú KÉP vagyok.jpg

Amikor megnézem a kép linkjét a html kódban pedig így mutatkozik:

Buta%C3%A1cz%20For%C3%A1um%C3%A1%C3%A1cz%20K%C3%A1P%C3%A1cz%20vagyok.jpg

Azaz az ékezetek, space-ek a kódjukkal helyettesítődnek.

Egy-egy ilyen mozgatást követően mindig lesz pár ilyen kép ami elérhetetlen lesz az oldalon. Hiába van ott a kép nem tölti be a html. Szerencsére nem mindegyiknél, de ez a pár is zavaró, ráadásul nem is nagyon értem, hogy mi alapján tűnik el és jelenik meg a kép. Mindegyik "buta" formátumú.

Tudtok valami jó módszert az ilyen jelenségek orvoslására? Most nem a megelőzésre gondolok, mert az alap, csak ha más dolgát kell mentened, azaz amikor a nyakadon a baj.

Köszönöm!

Drupal verzió: 
aruna képe

Elég összetett a dolog.

Egy feltöltött fájl a fájlrendszeren többször is tárolódik (az eredeti kép és a preset-ek), mindent át kell nevezni.

Az adatbázisban is több táblába belekerül a fájnév:

file_managed
field_data_field_tartalomtipus_body
field_revision_field_tartalomtipus_body

de ha egy képet több field-be is engedsz beilleszteni, pl az insert modul-al, akkor még több táblába is bekerül a "hibás" képnév.

Nem tudom létezik-e kész megoldás, engem is érdekelne.

Elvileg meg lehetne tenni hogy az adatbázisban és a fájlrendszerben, minden %XX karaktert kicserélni globálisan mindenhol, ahol a kiterjesztés pl. jpg, png.

De hogy ez mennyire biztonságos mutatvány, az jó kérdés.

0
0
Robert Petras képe

Talán a Transliteration modul segíthet a már korábban felvitt fájlok automatikus átnevezésében anélkül, hogy metörné a fáljok vagy képek elérhetőségét a weblapon (nemcsak a fájlokat nevezi át, hanem az adatbázisban is frissíti a módosult adatokat).

Translitaration modul: https://drupal.org/project/transliteration

(A) Állítsd be a feltelepített modult a Beállítás -> Média -> Fájlrendszer (config/media/file-system) oldalon.

1. A fájlnevek latinbetűs átirata feltöltés közben. - Jelöld be
2. Kisbetűsre átírt fájlnevek. - Jelöld be

(B) A Fájlrendszer Beállítás fül mellett találni fogsz egy "Latinbetűs átirat" fülecskét is (config/media/file-system/transliteration) ahol azokat a fájlokat fogod látni, amelyek javításra szorulnak. Itt van lehetőséged a rossz fájlnevek automatikus módosítására. Próbáltad már?

Megjegyzés: ha manuálisan adtad meg egy fájl vagy egy kép elérési címét/nevét a weblapon, akkor ezt nem fogja a Transliteration modul javítani. Mindenképpen egy fejlesztői környezetben teszteld le a modul működésését.

Kimásolt rész a modul README.txt fejlesztői megjegyzésből (a kövéren kiszedett szöveg éppen rád vonatkozik):

-- INSTALLATION --

1. Install as usual, see http://drupal.org/node/70151 for further information.

2. If you are installing to an existing Drupal site, you might want to fix
existing file names after installation, which will update all file names
containing non-ASCII characters. However, if you have manually entered links to those files in any contents, these links will break since the original
files are renamed. Therefore it is a good idea to test the conversion
first on a copy of your web site. You'll find the retroactive conversion at
Configuration and modules >> Media >> File system >> Transliteration.

2
0
tiburi képe

Máris nézem, és igen szól is és figyelmeztet időben:

FIGYELEM: Ha vannak kézzel megadott képek vagy fájlok a szövegmezőkben (például a WYSIWYG szerkesztők szövegdobozaiban), akkor a fájlok átnevezése rossz hivatkozásokat fog eredményezni. Mivel jelenleg nincs automatikus mód a tartalomban lévő hivatkozások módosítására, célszerű legelőször az adatbázisról és a akarmi/sites/default/files könyvtárról egy biztonsági mentést készíteni. Azokat a modulokat ez nem érinti, melyek a belső azonosító alapján érik el a fájlokat.

CKEditorból beillesztett képekkel van tele a legtöbb node, szóval jogos. A fejlesztőin le akartam futtatni, egyelőre ezt kapom csak válaszként:

A webhelyen nem várt hiba történt. Később érdemes újra megpróbálni.

A világ legjobb dolga az lenne, ha a modul a node html-ében található fájl-neveket is változtatná :)

1
0
nevergone képe

Ha nem sok kép, vagy vállalod a macerát, a képek hivatkozását kicserélheted sima SQL paranccsal, ilyesmi:

UPDATE field_data_body SET body_value = replace(body_value, 'errol', 'erre');

Szerintem a field_data_body és a field_revision_body tábla kell neked. Persze szigorúan tesztoldal stb, illetve érdemes előtte a cache-t űrítened, akár a cache_* táblák tartalmának eldobásával is.

2
0
DruTa képe

Én sosem használnék ékezetes file-neveket, sem képeknél, sem egyebeknél.

Akkor pl. ilyen probléma sem lenne.

Biztos van olyan modul, ami nem engedi az ilyenek feltöltését, vagy akár át is nevezi ékezet nélkülire, ahogy maga az alap Drupal is, pl. a mezőneveknél kreál egy gépi nevet is, igaz az elég olvashatatlan néha.

1
-1
nevergone képe

Az a „baj”, hogy az igényeket általában nem a fejlesztők, hanem a megrendelők határozzák meg. Néha le lehet róla beszélni őket, máskor viszont teljesen jogos az elvárásuk. Arról nem is beszélve, hogy 2013-ban már nem szabadna gondot okoznia, hogy milyen nevű fájlokat használok.

2
0
tiburi képe

Legalább 30ezer képről van szó :)

Ráadásul D5-ről D6-ra is volt korabban egy átalakítás, ahonnan örökölt hibák jöttek.

pl. Köve Ági.jpg a D6-ban Köve ázi.jpg formátumra alakult.
Ez a hiba bement az adatbázisokba is, így a képek ugyan megjelentek az oldalon, de nem mindegyik.
Az akkori migrálók, hogy kiküszöböljék a felületen eltűnő képeket minden képből csináltak kettőt, így a szerveren most van pár gigányi képismétlődés a következők szerint: Köve ázi.jpg és Köve Ági.jpg

A D6-ban felvitt fájlnevek pl. Tombáz J.jpg -ről Tomb%C3%A1c%20J.jpg alakultak az új oldalon, amit visszaállítottam, de pl a Safari nem tölti be a képeket csak ha olyan a fájlnév, persze nem fogok emiatt duplikálni.

A helyzetet komplikálja hogy korábban pár hónapig be volt kapcsolva egy transliteration(szerű dolog, nem tudom mi lehetett), de rosszul volt konfigurálva az tuti, ugyan egyszerűsített a formulákon de úgy hogy letörte az ékezeteket. Van pár gigányi kép ami kb így néz ki: Eredetiben: Némán sírt vártújjába.jpg, Átírva: n_em_n_s_rt_v_rt_jj_ba.jpg

A lényeg, hogy a transliteration alap kel legyen minden oldalon, ez a kis hiány óriási hibává dagasztotta ezt a frissítést.

Köszönöm a hozzászólásotokat.

1
0
Robert Petras képe

Ez nem semmi! Remélem, hogy jól megfizet és értékeli a munkádat az Ügyfeled. Enélkül nem is nagyon lehetne egy ilyen szörnyeteg webhellyel foglalkozni.

Nagyságrendekkel kissebb, de hasonlóan sz*rpucolás jellegű munkán dolgozok én is egy tudakozó weblapon, úgyhogy fogadd az együttérzésemet! Szerinted felaprózva a feladatot, meg lehetne még menti ezt a migrálást úgy hogy működjön is a dolog? ;-)

1
0