Ein Fluid ViewHelper, der Rohdaten eines Records zurückliefert

Hier ein kleiner ViewHelper, der euch aus einer Datenbanktabelle alle Werte eines Datensatzes als Array holt. Existiert der gesuchte Datensatz nicht oder wurde er in der Datenbank als „deleted = 1“ markiert, erhaltet ihr ein „false“.

Damit ist es praktisch möglich jeden Wert aus der Datenbank auszulesen.

namespace TGM\TgmLib\ViewHelpers;

use TYPO3\CMS\Backend\Utility\BackendUtility;
use TYPO3\CMS\Fluid\Core\ViewHelper\AbstractViewHelper;

/**
 * GetRecordViewHelper
 *
 * Fetches a raw record from table=$table and uid=$uid.
 *
 * This ViewHelper returns the record if:
 *  - the table exist,
 *  - the uid exist and
 *  - the record was was not deleted (deleted = 0).
 * Otherwise it'll return false.
 */
class GetRecordViewHelper extends AbstractViewHelper {

    /**
     * @return void
     */
    public function initializeArguments() {
        $this->registerArgument('table', 'string', 'The table of the record.', false, 'tt_content');
        $this->registerArgument('uid', 'int', 'The uid of the record.', true);
    }

    /**
     * @return array|bool
     */
    public function render() {
        $result = BackendUtility::getRecord($this->arguments['table'], $this->arguments['uid']);
        return (empty($result) === false) ? $result : false;
    }
}

Die Nutzung könnte dann folgendermaßen aussehen:

{namespace tgm=TGM\TgmLib\ViewHelpers}

<html>
    <f:debug>{tgm:getRecord(table: 'pages', uid: 6)}</f:debug>
</html>

Viel Spaß damit! 🙂

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Highlighting von Codes ist mit den Tags  [ts], [php], [html], [javascript], [xml] oder [code] möglich.