<?php
class Ext_Filter_File_Rename extends Zend_Filter_File_Rename
{
public function getNewName($value, $source = false)
{
$rename = $this->_getFileName($value);
if (isset($rename['target'])) { $sourceFile = basename($rename['target']); $sourceDir = dirname($rename['target']);
// Nakladamy filtry
$sourceFile = preg_replace('#[^a-z0-9_\.]+#iu', '_', $sourceFile);
$source = rtrim($sourceDir, '/\\').'/'.$sourceFile; $source = $sourceDir.$sourceFile;
}
return isset($sourceFile) ?
$sourceFile : $value; }
}
?>
Używasz jak zwykłego filtru.
Gdzie
Ext_ to po prostu prefiks mojej biblioteki.
Edit:
1. Oczywiście funkcje zmieniającą nazwę możesz dowolnie zmienić do własnych potrzeb.
2. Z tego co pamiętam tylko ten filtr jest odpalany przed rzeczywistym zapisem pliku do katalogu, dlatego go nadpisałem dla własnych potrzeb.
Edit_2:
Wywołanie:
$element->addFilter( new Ext_Filter_File_Rename( $element->getFileName() ));