protected function getFullItemRecord(Item $item, $language = 0)
    {
        Util::initializeTsfe($item->getRootPageUid(), $language);

        $systemLanguageContentOverlay = $GLOBALS['TSFE']->sys_language_contentOL;
        $itemRecord = $this->getItemRecordOverlayed($item, $language, $systemLanguageContentOverlay);

        /*
         * Skip disabled records. This happens if the default language record
         * is hidden but a certain translation isn't. Then the default language
         * document appears here but must not be indexed.
         */
        if (!empty($GLOBALS['TCA'][$item->getType()]['ctrl']['enablecolumns']['disabled'])
            && $itemRecord[$GLOBALS['TCA'][$item->getType()]['ctrl']['enablecolumns']['disabled']]
        ) {
            $itemRecord = null;
        }

        /*
         * Skip translation mismatching records. Sometimes the requested language
         * doesn't fit the returned language. This might happen with content fallback
         * and is perfectly fine in general.
         * But if the requested language doesn't match the returned language and
         * the given record has no translation parent, the indexqueue_item most
         * probably pointed to a non-translated language record that is dedicated
         * to a very specific language. Now we have to avoid indexing this record
         * into all language cores.
         */
        $translationOriginalPointerField = 'l10n_parent';
        if (!empty($GLOBALS['TCA'][$item->getType()]['ctrl']['transOrigPointerField'])) {
            $translationOriginalPointerField = $GLOBALS['TCA'][$item->getType()]['ctrl']['transOrigPointerField'];
        }

        $languageField = $GLOBALS['TCA'][$item->getType()]['ctrl']['languageField'];
        if ($itemRecord[$translationOriginalPointerField] == 0
            && $systemLanguageContentOverlay != 1
            && !empty($languageField)
            && $itemRecord[$languageField] != $language
            && $itemRecord[$languageField] != '-1'
        ) {
            $itemRecord = null;
        }

        if (!is_null($itemRecord)) {
            $itemRecord['__solr_index_language'] = $language;
        }

        return $itemRecord;
    }
protected function getFullItemRecord(Item $item, $language = 0)
    {
        Util::initializeTsfe($item->getRootPageUid(), $language);

        $systemLanguageContentOverlay = $GLOBALS['TSFE']->sys_language_contentOL;
        $itemRecord = $this->getItemRecordOverlayed($item, $language, $systemLanguageContentOverlay);

        /*
         * Skip disabled records. This happens if the default language record
         * is hidden but a certain translation isn't. Then the default language
         * document appears here but must not be indexed.
         */
        if (!empty($GLOBALS['TCA'][$item->getType()]['ctrl']['enablecolumns']['disabled'])
            && $itemRecord[$GLOBALS['TCA'][$item->getType()]['ctrl']['enablecolumns']['disabled']]
        ) {
            $itemRecord = null;
        }

        /*
         * Skip translation mismatching records. Sometimes the requested language
         * doesn't fit the returned language. This might happen with content fallback
         * and is perfectly fine in general.
         * But if the requested language doesn't match the returned language and
         * the given record has no translation parent, the indexqueue_item most
         * probably pointed to a non-translated language record that is dedicated
         * to a very specific language. Now we have to avoid indexing this record
         * into all language cores.
         */
        $translationOriginalPointerField = 'l10n_parent';
        if (!empty($GLOBALS['TCA'][$item->getType()]['ctrl']['transOrigPointerField'])) {
            $translationOriginalPointerField = $GLOBALS['TCA'][$item->getType()]['ctrl']['transOrigPointerField'];
        }

        $languageField = $GLOBALS['TCA'][$item->getType()]['ctrl']['languageField'];
        if ($itemRecord[$translationOriginalPointerField] == 0
            && $systemLanguageContentOverlay != 1
            && !empty($languageField)
            && $itemRecord[$languageField] != $language
            && $itemRecord[$languageField] != '-1'
        ) {
            $itemRecord = null;
        }

        if (!is_null($itemRecord)) {
            $itemRecord['__solr_index_language'] = $language;
        }

        return $itemRecord;
    }
protected function getFullItemRecord ( Item $ item , $ language = 0 ) { Util :: initializeTsfe ( $ item -> getRootPageUid ( ) , $ language ) ; $ systemLanguageContentOverlay = $ GLOBALS [ 'TSFE' ] -> sys_language_contentOL ; $ itemRecord = $ this -> getItemRecordOverlayed ( $ item , $ language , $ systemLanguageContentOverlay ) ; /*
         * Skip disabled records. This happens if the default language record
         * is hidden but a certain translation isn't. Then the default language
         * document appears here but must not be indexed.
         */ if ( ! empty ( $ GLOBALS [ 'TCA' ] [ $ item -> getType ( ) ] [ 'ctrl' ] [ 'enablecolumns' ] [ 'disabled' ] ) && $ itemRecord [ $ GLOBALS [ 'TCA' ] [ $ item -> getType ( ) ] [ 'ctrl' ] [ 'enablecolumns' ] [ 'disabled' ] ] ) { $ itemRecord = null ; } /*
         * Skip translation mismatching records. Sometimes the requested language
         * doesn't fit the returned language. This might happen with content fallback
         * and is perfectly fine in general.
         * But if the requested language doesn't match the returned language and
         * the given record has no translation parent, the indexqueue_item most
         * probably pointed to a non-translated language record that is dedicated
         * to a very specific language. Now we have to avoid indexing this record
         * into all language cores.
         */ $ translationOriginalPointerField = 'l10n_parent' ; if ( ! empty ( $ GLOBALS [ 'TCA' ] [ $ item -> getType ( ) ] [ 'ctrl' ] [ 'transOrigPointerField' ] ) ) { $ translationOriginalPointerField = $ GLOBALS [ 'TCA' ] [ $ item -> getType ( ) ] [ 'ctrl' ] [ 'transOrigPointerField' ] ; } $ languageField = $ GLOBALS [ 'TCA' ] [ $ item -> getType ( ) ] [ 'ctrl' ] [ 'languageField' ] ; if ( $ itemRecord [ $ translationOriginalPointerField ] == 0 && $ systemLanguageContentOverlay != 1 && ! empty ( $ languageField ) && $ itemRecord [ $ languageField ] != $ language && $ itemRecord [ $ languageField ] != '-1' ) { $ itemRecord = null ; } if ( ! is_null ( $ itemRecord ) ) { $ itemRecord [ '__solr_index_language' ] = $ language ; } return $ itemRecord ; }
Gets the full item record.

This general record indexer simply gets the record from the item. Other
more specialized indexers may provide more data for their specific item
types.

@param Item $item The item to be indexed
@param int $language Language Id (sys_language.uid)
@return array|NULL The full record with fields of data to be used for indexing or NULL to prevent an item from being indexed
Gets the full item record .