0

TYPO3 バックエンドに標準の画像アップロードがあり、複数の画像をアップロードできます。

したがって、「image1.jpg、image2.jpg」のようなデータを含む画像データベース フィールドがあります。

フロントエンドでは、フィールドを爆発させ、配列を流体に送信し、それを流体で出力できます。

<f:image src="uploads/tx_myext/{image}"  />

最初の質問は、データベースから直接画像オブジェクトを作成する新しい Extbase または Fluid Magic があるのでしょうか?

2 番目の質問: 2 MB の巨大な画像があり、fluid:image 出力を幅 = 100 で作成した場合、それはブラウザーでスケーリングされているだけですか、それとも ImageMagick を使用して実際に縮小されていますか?

4

2 に答える 2

0

配列へのカンマ リスト:

残念ながら、Extbase 4.7 でわ​​かるように、カンマ区切りの文字列を反復処理するための ViewHelper はまだありません。カスタム ViewHelper を作成するか、使用している方法をそのまま使用するかの 2 つのオプションがあります。

ヒント: 追加のパラメーターを渡さないようにするために (特に、コンマで区切られたフィールドが多数ある場合やPartials、ビューのレンダリングに多くのフィールドを使用している場合) 、モデルにパブリックフィールドを追加しています。TCA で表現されていない場合は、次のように一時的なものと見なされます。

/**
 * @var array
 */
public $imagesArray;

次に、割り当ての直前にコントローラーに入力するだけ{project.imagesArray}で、ビューのようにアクセスできます。

public function showAction(Tx_Myext_Domain_Model_Project $project) {
    $project->imagesArray = explode(',', $project->getImage());
    $this->view->assign('project', $project);
}

見る

<f:for each="{project.imagesArray}" as="image">
    <f:image src="uploads/tx_myext/{image}" width="200" height="200m" alt="" />
</f:for>

ほとんどの場合、非常によく似たアプローチを使用しています...

画像のサイズ変更:

... チェックするのが最も簡単です。ImageMagickサイズ変更された画像の名前をハッシュし、デフォルトで temp フォルダーに保存するため、コード プレビューで次のようなパスが表示される場合は、typo3temp/pics/cd27baa408.jpg代わりにuploads/tx_myext/photo123.jpgIM で変換されたことを意味します。はい、イメージViewHelperは IM を使用します。

viewhelper の phpdocとして、width="200m"またはから値を指定することで、簡単な計算を実行することもできます:可能なオプションについては、imgResource.width を参照してください。width="200c"

于 2013-03-08T11:33:04.953 に答える
0

データベースから取得した画像の処理が非常に役立つと思うので、Typo3 Forge で ViewHelper を作成しました。

そして、JS ウィンドウ用の imageLinkWrap を追加しました。

http://forge.typo3.org/issues/46218

于 2013-03-12T19:07:38.167 に答える