eZ\Publish\Core\Repository\ContentService::internalLoadContent PHP Method

internalLoadContent() public method

If no version number is given, the method returns the current version
public internalLoadContent ( mixed $id, array $languages = null, integer | null $versionNo = null, boolean $isRemoteId = false, boolean $useAlwaysAvailable = true ) : eZ\Publish\API\Repository\Values\Content\Content
$id mixed
$languages array A language filter for fields. If not given all languages are returned
$versionNo integer | null the version number. If not given the current version is returned
$isRemoteId boolean
$useAlwaysAvailable boolean Add Main language to \$languages if true (default) and if alwaysAvailable is true
return eZ\Publish\API\Repository\Values\Content\Content
    public function internalLoadContent($id, array $languages = null, $versionNo = null, $isRemoteId = false, $useAlwaysAvailable = true)
    {
        try {
            // Get Content ID if lookup by remote ID
            if ($isRemoteId) {
                $spiContentInfo = $this->persistenceHandler->contentHandler()->loadContentInfoByRemoteId($id);
                $id = $spiContentInfo->id;
            }
            // Get current version if $versionNo is not defined
            if ($versionNo === null) {
                if (!isset($spiContentInfo)) {
                    $spiContentInfo = $this->persistenceHandler->contentHandler()->loadContentInfo($id);
                }
                $versionNo = $spiContentInfo->currentVersionNo;
            }
            $loadLanguages = $languages;
            $alwaysAvailableLanguageCode = null;
            // Set main language on $languages filter if not empty (all) and $useAlwaysAvailable being true
            if (!empty($loadLanguages) && $useAlwaysAvailable) {
                if (!isset($spiContentInfo)) {
                    $spiContentInfo = $this->persistenceHandler->contentHandler()->loadContentInfo($id);
                }
                if ($spiContentInfo->alwaysAvailable) {
                    $loadLanguages[] = $alwaysAvailableLanguageCode = $spiContentInfo->mainLanguageCode;
                    $loadLanguages = array_unique($loadLanguages);
                }
            }
            $spiContent = $this->persistenceHandler->contentHandler()->load($id, $versionNo, $loadLanguages);
        } catch (APINotFoundException $e) {
            throw new NotFoundException('Content', array($isRemoteId ? 'remoteId' : 'id' => $id, 'languages' => $languages, 'versionNo' => $versionNo), $e);
        }
        return $this->domainMapper->buildContentDomainObject($spiContent, null, empty($languages) ? null : $languages, $alwaysAvailableLanguageCode);
    }