Filefield path nem nevezi át a fileokat

moha képe

Hello!

Drupal 7.9 alatt van egy tartalmam egy imagefield mezővel. Most indítom az oldalt és először a file feltöltés sem ment, ezt a tárhelyszolgáltatóval megoldottam (nem volt beállítva tmp dir), de újabb problémám van és nem tudom, hogy szolgáltatói vagy Drupal beállítás probléma.
Nevezetesen, hogy nem működik a fileok átnevezése és áthelyezése.

A filerendszer beállításoknál "Nyilvános fájlok útvonala" egyszerűen "files" és be van kapcsolva a kisbetűre alakítás és a latin betűs átirat (transliteration).

Az imagedfield beállításainál "Fájlútvonal"-nak a tartalom neve van megadva (ebbe a könyvtárba akarnám tenni a képeket), "Fájlnév"-nek pedig az alábbi formula van megadva: "[node:title]_[node:nid].[file:ffp-extension-original]" és be van kapcsolva a transliteration és a kisbetűvé alakítás.

A könyvtárak léteznek (files és files/tartalomnév) és írhatóak. Ugyanez a beállítás a teszt szerveren tökéletesen működik. Az éles szerveren azonban feltölti a fájlokat, kisbetűssé alakítja, de simán a files könyvtárba kerülnek és az eredeti (de transliterált) nevükön, tehát a token alapú átnevezés és mozgatás nem működik.

A naplóban folyton ilyen hibaüzenetek vannak:
temporary://filetj79gq nem másolható a könyvtárba: %directory.

Kérdés: meg tudom-e ezt oldani valamilyen Drupal beállítással? Ha nem, akkor mit mondjak a szolgáltatómnak, mit állítson be?

Melyik modulhoz, modulokhoz kapcsolódik a téma?: 
Drupal verzió: 
moha képe

Kiegészíteném:
Ha az imagefield-nél üresen hagyom a célkönyvtárat, akkor működik az átnevezés (csak nyilván az alap files könyvtárban marad a file).
Érdekes módon a transliterate nem tökéletes, mert a szóközöket meghagyja. Az ékezetes betűket szépen átalakítja, de a szóköz benne marad, ami porblémát okozhat.

0
0
Voluman képe

Ha felteszed a Pathauto modult, megjelenik még egy pont: Tisztítás Pathauto használatával. Ott be lehet állítani, hogy a szóközöket cserélje valami másra.

0
0
moha képe

Fent van az is, be is kapcsoltam a tisztításnál, de nem hatja meg.

0
0
Voluman képe

A Pathautonál van egy olyan beállítás hogy elválasztó. Ott lehet megadni, hogy mire cserélje a szóközöket.

0
0
moha képe

Az elválasztó nekem a kötőjel. Az URL aliasok létrehozásakor szépen működik is, kötőjel lesz a szóközből. A fájlok feltöltésekor viszont meghagyja a szóközt. Inkább transliteration problémára gyanakszom, mint filefield path-ra, bár lehet a kettő együttesen.

0
0
moha képe

Sajna továbbra sem működik rendesen. Most alaposan leteszteltem.

  • Ha a filefield path-nál külön könyvtárat adok meg a fájloknak, akkor a file marad a public könyvtárban az eredeti néven. Könyvtár jogosultság hiba?
  • Ha nincs megadva külön könyvtár, akkor a file név rendesen elészül a tokenek alapján.
  • A file nevében a szóközök, speciális karakterek (pl &, !, #) megmaradnak, viszont kisbetűs lesz és az ékezetes karakterek átíródnak (pl Ő->o, ű->u).
  • Mindeközben a pathauto jól működik, az URL aliasok rendben létrejönnek, ékezet, spec. karakter nélkül, szóköz helyett kötőjellel.

Megőrülök!
Module weight esetleg segíthet? Ha igen, azt hogy telepítsem? Mert azt látom, hogy a Utility-be került, de az meg nincs Drupal 7-hez, csak 6-hoz.

Edit:
Egy lépéssel közelebb kerültem. Sikerült megtalálnom a hiba helyét. A filefield_path modulban van:

function filefield_paths_process_string($value, $data, $settings = array()) {
  // Process string tokens.
  $value = token_replace($value, $data);
 
  // Transliterate string.
  if (module_exists('transliteration') && isset($settings['transliterate']) && $settings['transliterate']) {
    $value = transliteration_get($value);
    if ($type == 'field') {
      $paths = explode('/', $value);
      foreach ($paths as &$path) {
        $path = transliteration_clean_filename($path);
      }
 
      $value = implode('/', $paths);
    }
  }

Itt ellenőrízné a $type-ot, aminek viszont nincs értéke. Próbaképp beleírtam az előtte lévő sorba, hogy $type = 'field'; és utána ragyogóan működött az egész.

Kérdés, hogy ezt hogy lehet elegánsan megoldani, mert nyílván ezt nem akarom bennehagyni a modulban.

0
0