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; }