mediaプラグイン応用(6) Viewパーツの設定

mediaプラグインのヘルパーMediumと、編集フォーム出力用エレメントAttachmentの設定を変更する、主な変数/引数をまとめました。

Mediumヘルパー

embed($path, $options)
  1. $path

 表示ファイルのパス。

  1. $options
    1. $options['alt']

タグのalt要素を指定。

    1. $options['url']

指定のURLにリンクする。
Htmlヘルパーのlink()メソッドを使用しているので、URLの指定方法はそちらを参照。
ただし、$htmlAttributes, $confirmMessage, $escapeTitleの属性が固定になるので自由度が下がる。

    1. $options['restrict']

指定と異なる種類のファイルの場合、何も出力しない。
指定書式は、プラグインのvendor/medium/medium.phpに記載の$_mimeTypesToNamesから (Imageとか)選べばOK

static $_mimeTypesToNames = array(
	'application/ogg'	=> 'Audio',
	'application/pdf'       => 'Document',
	'application/msword'    => 'Document',
	'image/icon'            => 'Icon',
	'text/css'              => 'Css',
	'text/javascript'       => 'Js',
	'text/code'             => 'Generic',
	'text/rtf'              => 'Document',
	'text/plain'            => 'Text',
	'image/'                => 'Image',
	'audio/'                => 'Audio',
	'video/'                => 'Video',
	'text/'                 => 'Generic',
	'/'                     => 'Generic',
);
    1. $options['id'],$options['class']

出力タグのIDとclassを指定。

    1. $options['width'],$options['height']

出力タグのwidhtとheight要素を指定。
画像や動画の場合、取得できれば自動指定される。

    1. $options['autoplay'],$options['controls'],$options['background']

動画の場合、自動再生するか・動画再生のコントロールパネル出力・背景色などを指定するオプション。動画の種類によっては無効な場合もある

file($path, $Attachment)

 指定ファイルのパスを返すメソッド。
 fileメソッドの引数は本来$path1つだけですが、func_get_args()を使って第二引数の処理を行なっています。attachmentsから取得したデータをここに指定します。

  1. $path

 filter/s のように、Versionファイルのディレクトリ/設定を指定。

Viewの記載例(アップロード済み画像の表示)
$path = $upfile->file(
	'filter/m', 
	$user['Attachment'][0]
);
$url = null;
if ($user['User']['id'] == $target_user['User']['id']) {
	$url =  array(
		'controller' => 'users', 
		'action' => 'edit_image', 
	);
}
echo $medium->embed(
	$path,
	$options = array(
		'url' => $url,
		'alt' => $target_user['User']['name'],
		'id' => 'HomeUserImage',
		'restrict' => array('image')
	)
);

Attachment

エレメント。他のモデルの編集フォームに組み込んで、添付ファイルのアップロード・削除フォームを表示する。

変数
  1. $previewVersion

アップロード済み画像の表示サイズ。指定ない場合xxs

  1. $assocAlias

アップロードファイルのモデル名を指定。指定がない場合Attachment。
これを変更して、Image, Video, Document・・・のようにすると、画像・動画・文章を別々に保管できる。但しそれぞれにモデルの設定とコントローラ処理が必要。

  1. $model

アップロードファイルの親モデル。指定がない場合、現在のモデル。

Viewの記載例(編集画面にフォーム追加)
<?php echo $form->create('User', array(
	'url' => array(
		'controller' => 'users',
		'action' => 'edit',
		$user['id']
	),
	'type' => 'file',
));?>
(中略)
echo $this->element(
	'attachments', 
	$options => array(
		'plugin' => 'media',
		'previewVersion' => 'm',
	)
);