Example #1
0
         if ($node === null) {
             return $Module->handleError(eZError::KERNEL_NOT_AVAILABLE, 'kernel');
         }
         if ($object === null) {
             return $Module->handleError(eZError::KERNEL_ACCESS_DENIED, 'kernel');
         }
         if (!$object->attribute('can_read')) {
             return $Module->handleError(eZError::KERNEL_ACCESS_DENIED, 'kernel');
         }
         if (!$node->attribute('can_pdf')) {
             return $Module->handleError(eZError::KERNEL_ACCESS_DENIED, 'kernel');
         }
         if ($node->attribute('is_invisible') && !eZContentObjectTreeNode::showInvisibleNodes()) {
             return $Module->handleError(eZError::KERNEL_ACCESS_DENIED, 'kernel');
         }
         $cachePathInfo = eZContentCache::cachePathInfo($designSetting, $NodeID, 'pdf', $language, $Offset, $roleList, $discountList, $layout, false, array('view_parameters' => $viewParameters));
         $node = eZContentObjectTreeNode::fetch($NodeID);
         contentPDFGenerate($cachePathInfo['path'], $node, false, $viewCacheEnabled, $LanguageCode, $viewParameters);
         if ($viewCacheEnabled) {
             eZDebugSetting::writeDebug('kernel-content-pdf-cache', 'cache written', 'content/pdf');
         }
         contentPDFPassthrough($cachePathInfo['path']);
     }
     break;
 case eZModuleOperationInfo::STATUS_HALTED:
     if (isset($operationResult['redirect_url'])) {
         $Module->redirectTo($operationResult['redirect_url']);
         return;
     } else {
         if (isset($operationResult['result'])) {
             $result = $operationResult['result'];
    static function store( $siteDesign, $objectID, $classID, $classIdentifier,
                    $nodeID, $parentNodeID, $nodeDepth, $urlAlias, $viewMode, $sectionID,
                    $language, $offset, $roleList, $discountList, $layout, $navigationPartIdentifier,
                    $result, $cacheTTL = -1,
                    $parameters = array() )
    {
        $cachePathInfo = eZContentCache::cachePathInfo( $siteDesign, $nodeID, $viewMode, $language, $offset, $roleList, $discountList,
                                                        $layout, false, $parameters );
        $cacheDir = $cachePathInfo['dir'];
        $cacheFile = $cachePathInfo['file'];

        $serializeArray = array();

        if ( isset( $parameters['view_parameters']['offset'] ) )
        {
            $offset = $parameters['view_parameters']['offset'];
        }
        $viewParameters = false;
        if ( isset( $parameters['view_parameters'] ) )
        {
            $viewParameters = $parameters['view_parameters'];
        }
        $contentInfo = array( 'site_design' => $siteDesign,
                              'node_id' => $nodeID,
                              'parent_node_id' => $parentNodeID,
                              'node_depth' => $nodeDepth,
                              'url_alias' => $urlAlias,
                              'object_id' => $objectID,
                              'class_id' => $classID,
                              'class_identifier' => $classIdentifier,
                              'navigation_part' => $navigationPartIdentifier,
                              'viewmode' => $viewMode,
                              'language' => $language,
                              'offset' => $offset,
                              'view_parameters' => $viewParameters,
                              'role_list' => $roleList,
                              'discount_list' => $discountList,
                              'section_id' => $result['section_id'] );

        $serializeArray['content_info'] = $contentInfo;

        foreach ( array( 'path', 'node_id', 'section_id', 'navigation_part' ) as $item )
        {
            if ( isset( $result[$item] ) )
            {
                $serializeArray[$item] = $result[$item];
            }
        }

        $serializeArray['cache_ttl'] = $cacheTTL;

        $serializeArray['cache_code_date'] = self::CODE_DATE;
        $serializeArray['content'] = $result['content'];

        $serializeString = serialize( $serializeArray );

        if ( !file_exists( $cacheDir ) )
        {
            eZDir::mkdir( $cacheDir, false, true );
        }

        $path = $cacheDir . '/' . $cacheFile;
        $uniqid = md5( uniqid( 'ezpcache'. getmypid(), true ) );

        $file = eZClusterFileHandler::instance( "$cacheDir/$uniqid" );
        $file->storeContents( $serializeString, 'viewcache', 'pdf' );
        $file->move( $path );

        return true;
    }