Я обновляю наши системы до нового MediaWiki (с 1.18.3 до 1.25.1)
У нас есть расширение, которое отображает файл .gnumeric в html, чтобы мы могли его отобразить.
Следующий код частично переписан для новой версии
class GnumericImage extends MediaTransformOutput {
function GnumericImage( $file, $url, $path = false, $page = false ) {
$this->file = $file;
$this->url = $url;
# These should be integers when they get here.
# If not, there's a bug somewhere. But let's at
# least produce valid HTML code regardless.
$this->path = $path;
$this->page = $page;
}
//... <snip> ...
// MEMBER OF GnumericImage
function toHtml( $options = array() ) {
$src = $this->file->getPath();
$dst = $this->getStoragePath(); // was $this->getPath();
if($this->file->exists()) {
exec("LC_ALL=nl_NL.UTF-8 /usr/bin/ssconvert \"$src\" \"$dst\" > /dev/null");
echo($dst);
// This line errors
// Converting might fail so check if there is a file
if(! file_exists($dst)) return("ssconvert failed");
$data = file_get_contents($dst);
// ... MORE CODE TO DISPLAY RESULT ...
}
}
с помощью file_exists($dst)
выдает ошибку:
Warning: file_exists(): Unable to find the wrapper "mwstore"- did you forget to enable it when you configured PHP?
in /var/www/engineering/extensions/Gnumeric/Gnumeric.php on line 72
$dst
содержит: mwstore://local-backend/local-thumb/c/ca/file_name/-file_name.html
Пути в $src
а также $dst
были пути MediaWiki. Изменение их путей к путям файловой системы решило проблему.
$src = $this->file->getLocalRefPath();
$dst = $this->getLocalCopyPath();
Других решений пока нет …