2012-05-07 2 views
7

Tridionの管理フォルダには多くのマルチメディアタイプがあります。 与えられたMIMEタイプのtcm idを返すメソッドを記述したいと思います。 gif MIMEタイプの場合は、 "tcm:0-1-65544"を返します。TridionからCore Serviceまでのマルチメディアタイプのtcm idを取得するにはどうすればいいですか?

これ以上のアイデアはありますか?

+1

を? –

+1

コアサービスを利用したい場合 – Aquarius24

答えて

3

あなただけのすべてのマルチメディアタイプのリストを取得し、あなたが必要とするいずれかを選択することができます:あなたは、クライアントまたはサーバサイドをやりたいか

var mmType = ClientAdmin.GetSystemWideList(new MultimediaTypesFilterData()).Single(mt => ((MultimediaTypeData)mt).MimeType == "image/jpeg"); 
+0

@ user978511それは私に多くの助けてくれてありがとう – Aquarius24

4

各スキーマにはAllowedMultimediaTypesという名前のプロパティがあり、リストを返します。デフォルトのマルチメディアスキーマは通常、すべてのタイプを許可するように設定されています。すべての型を許可しない場合、この目的のために特別なスキーマを作成できます。

デフォルトのマルチメディアスキーマ(またはすべてのタイプを許可する特別なスキーマ)のAllowedMultimediaTypesを取得してから、入力したMIMEタイプを返されたMultimediaTypeのmimetimesにマッチさせるだけです。ここで

が上からいくつかのサンプル(テストしていない)である。また

Schema defaultMMSchema = (Schema)engine.GetObject("Your-Default-MMSchema-WebDav-Path"); 
IList<MultimediaType> mmTypes = defaultMMSchema.AllowedMultimediaTypes; 
foreach(MultimediaType mt in mmTypes) 
{ 
    switch(mt.MimeType) 
    { 
    case "jpg": 

    ... 
    } 
} 

、すぐにマルチメディアタイプのTCM IDが一定であるので、あなたは心配する必要はありません。コンテンツの移植後に別の環境に変わることについてしたがって、mimeタイプからtcm IDへのマッピングを提供するクラスを書くことができます。注意:カスタムアイテムタイプを作成する場合は、Tridion環境ごとにTCM IDを使用してコードを更新する必要があるため、これはエレガントではありません。

+0

@ Nickoli の情報をありがとうございますが、AllowedMultimediaTypesの使用についてコードブリーフィングを行うことができれば、大きな助けになります。 ありがとう – Aquarius24

+0

いくつかのサンプルコードで回答を更新しました(注意:サンプルコードのswitch文でmimeタイプを確認する必要があります)。ハッピーコーディング! –

+0

@ thanks Nickoli .. – Aquarius24

関連する問題