コード例 #1
0
    /**
     * @param string $logoField
     * @return string
     */
    public function getFile( $logoField )
    {
        if( $this->attribute( $logoField ) != null && $this->attribute( $logoField ) != '' )
        {
            $storageDir = eZSys::storageDirectory();
            $clusterIdentifier = ClusterTool::clusterIdentifier();
            $publisherFolderPath = $this->publisherFolder['path'];

            $outputDirectory = "{$storageDir}/static-data/{$clusterIdentifier}/publisher_folders/{$publisherFolderPath}";
            if (!is_readable($outputDirectory) || !is_dir($outputDirectory))
            {
                mkdir($outputDirectory, 0777, true);
            }
            $outputFile =  "{$outputDirectory}/{$logoField}.png";

            $fileUtils = eZClusterFileHandler::instance( $outputFile );

            if( !$fileUtils->fileExists( $outputFile ) )
            {
                if ( $fileUtils->requiresClusterizing() )
                {
                    eZDFSFileHandler::fileStoreContents( $outputFile, $this->attribute( $logoField ) );
                }
                else
                {
                    file_put_contents( $outputFile, $this->attribute( $logoField ) );
                }
            }

            return '/' . $outputFile;
        }
        else
        {
            return null;
        }
    }