3

私はいくつかの FE プラグインで TYPO3 (6.2) 拡張機能を開発しました。

ページ ビューのバックエンドに表示されるプラグインに関する情報を変更する必要があります。

プラグインのタイトルと名前だけが表示されるようになりました...

プラグインの構成にフレックスフォームを使用しました。バックエンドのプラグイン「プレースホルダー」の構成の一部を表示したいと思います。

数年前にその方法についていくつかのドキュメントを読んだことを覚えていますが、もう見つけることができません...

誰かがそれを行う正しい方法を知っていますか?

4

1 に答える 1

3

私がよく理解していれば、あなたは ContentElement のプレビューを求めています。cms/layout/class.tx_cms_layout.phpこれにはフックを使用する必要があります。これは非常に素晴らしい要点です

2 つだけ追加します。

  1. 7.x以降に削除されたクラスを使用しないt3lib_extMgmでください。このフックを次のように登録できます。

    $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['cms/layout/class.tx_cms_layout.php']['tt_content_drawItem'][$_EXTKEY] 
    =  'EXT:your_ext/Classes/Hooks/PageLayoutView.php:\Vendor\YourExt\Hooks\PageLayoutView';
    
  2. プラグインをどのように登録したか (言及していません) によっては$row['list_type']$row['CType']単に一般的なlist.

FlexForm フィールドの値を持つサンプル クラス

<?php

namespace Vendor\YourExt\Hooks;

class PageLayoutView implements \TYPO3\CMS\Backend\View\PageLayoutViewDrawItemHookInterface {

    public function preProcess(\TYPO3\CMS\Backend\View\PageLayoutView &$parentObject, &$drawItem, &$headerContent, &$itemContent, array &$row) {
        if ($row['CType'] == 'list' && $row['list_type'] == 'yourext_yourplugin') {

            $drawItem = false;

            $linkStart = '<a href="#" onclick="window.location.href=\'../../../alt_doc.php?returnUrl=%2Ftypo3%2Fsysext%2Fcms%2Flayout%2Fdb_layout.php%3Fid%3D' . $row['pid'] . '&amp;edit[tt_content][' . $row['uid'] . ']=edit\'; return false;" title="Edit">';
            $linkEnd = '</a>';


            $headerContent = 
                $linkStart . 
                "<strong>Selected slides</strong>" .
                $linkEnd;


            $ffXml = \TYPO3\CMS\Core\Utility\GeneralUtility::xml2array($row['pi_flexform']);

            $itemContent =
                $linkStart .
                $ffXml['data']['sDEF']['lDEF']['settings.myFlexField']['vDEF'] .
                $linkEnd;
        }
    }
}
于 2015-05-13T11:08:54.287 に答える