Обновление расширения MediaWiki, file_exists()

Я обновляю наши системы до нового 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

1 ответ

Пути в $src а также $dst были пути MediaWiki. Изменение их путей к путям файловой системы решило проблему.

$src = $this->file->getLocalRefPath();
$dst = $this->getLocalCopyPath();
Другие вопросы по тегам