2016-04-15 11 views
0

これは私の設定です:Drupalのアップロードファイル(フィールド)パスモジュールの設定

コンテンツタイプメディアは、次のフィールドが含まれています

にアップロードディレクトリに提出
  • "Audio"media/books(オーディオフィールドがありますAudiofiledモジュール)
  • "Book"フィールドタームレファレンスによって提供

"Book"の語彙には、各書籍のフォルダ名を含む"Folder"という1つのテキストフィールドが含まれています。 そのフィールド値を使用して、そのサブフォルダにオーディオファイルをアップロードするためにファイルパスに追加します。

ファイルは一時フォルダにアップロードされますが、適切なフォルダにはアップロードされません。 "Book"という用語が"Book 1"の場合、"Folder"のフィールド値が"book_1"である場合、オーディオファイルを"media/books/book_1"フォルダにアップロードします。

私はファイル(フィールド)パスモジュールを使用しており、正しく構成する方法がわかりません。 は私の"Audio"分野では、私は

"media/books/[node:field-book:field-folder]"

に設定ファイルのパスを設定するしかし、何も起こりません。たぶん、私は正しいトークンを使用しない、または何か他の問題がありますか?

答えて

1

あなたのボキャブラリーには「フォルダ」フィールドは必要ありません。ここでの問題は、Drupalのコアファイルモジュールがエンティティベースのトークンをサポートしていないことです。

このためには、いくつかのモジュールをインストールする必要があります。エンティティトークンモジュール(これにはentity APIモジュールが付属しています)と、すでにfile pathsモジュールがあります。オーディオ分野での[ファイル(フィールド)を有効にファイルディレクトリのデフォルトのパスを設定した後

  • メディア/ブックパスで:

    1. entity APIモジュールをインストールして、エンティティ・トークンに
    2. にオーディオ分野のためのあなたのファイルディレクトリのパスを設定を有効にしますあなたのメディアコンテンツタイプは
    3. はであり、あなたのファイルパスを変更します。メディア/書籍/ [ノード:フィールド書籍]

    は今、あなたはあなたが欲しいものを持っている必要があります。

    アップロードするファイルを選択して[アップロード]ボタンをクリックすると、そこで選択した値がまだDrupalコアで解析されていないため、Drupalは参照用語のパスを取ることができません。以前にアップロードボタンをクリックしなくてもコンテンツを保存しようとしても、Drupalコアは最初に選択したファイルをアップロードしようとしますが、宛先はわかりません。

    ファイル(フィールド)パスのモジュールは、デフォルトのフォルダの宛先に一時的にアップロードされます(トークンなしでそのディレクトリにパスを設定する必要があるため、ケース/メディア/ブックにあります)。ノードを保存し、Drupalにノードトークン値が提供されると、ファイルは目的の場所(あなたの場合/ media/books/token_values)に移動されます。

    追加:ラインで

    media/books/[node:field-book] 
    

    トークン値は、あなたの語彙で定義されているメディアタイプからブックフィールドから取得されます。トークン値の名前を変更するということは、タクソノミ用語を自分の書籍に関連する名前に変更することを意味します。名前を変更できないフォルダがすでにサーバーにある場合は、ボキャブラリに別のフィールドを追加することをお勧めします。

    ファイルメディアコンテンツタイプのオーディオ分野では(フィールド)のパスは次のようになります。

    media/books/[node:field-book:field-folder] 
    

    ですからブック1、ブック2、等のためのbook_2用フォルダ値book_1を設定している場合...

    アップロード時に「ブック1」を選択すると、あなたが

    media/books/book_1 
    

    または

    にファイルをアップロードすることができるはずです
    media/books/book_2 
    

    注::トークンの値を変更すると、Drupalは作成したフォルダを削除しません。

    これが役に立ちます。

    +0

    質問にお答えする時間と努力に感謝します。 これは進歩です!しかし、私が欲しいものを正確に得ることはまだありません。 私の本の名前は "Book 1"で、これはタクソノミの用語名ですが、すでに/ media/booksに入っているフォルダはbook_1と呼ばれています。 mp3ファイルをbook_1フォルダにアップロードする必要があります。 Drupalが私のmedia/booksフォルダにBook 1という名前の新しいフォルダを作成するよう提案した後、 これは、タクソノミ語でフィールドフォルダを作成した理由です。各書籍には、視覚的にソートする目的で異なる通常のタイトルとフォルダがあります。 –

    +0

    私はあなたが欲しいものを手に入れません...もっと具体的に...あなたは "media/books/book_1"フォルダにファイルをアップロードしたかったのです。代わりに、メディア/書籍/書籍1にアップロードされたファイルがここにあります。 book_1をbook_1に登録します。あなたは語彙の "フォルダ"を提出することができますが、私はあなたがファイルをアップロードするためにそれを必要とする理由を理解していません... – Darko

    +0

    私の論理は、書籍のタイトルはそのサブフォルダ名(フォルダはすでにサーバー上にある)各ブックのフィールドに適切なフォルダ名を格納して、トークンを使用してノードを追加するときにmedia/booksパスに追加することができます。それが私のFolderフィールドの存在の理由でした。しかし、drupalがノードが保存/保存されているときに、その値を認識していないというあなたの説明に惑わされる必要はありません。私は約100冊の本を持ち、本の名前はサブフォルダ名と同じではありません。 How do you say Drupalはどこに特定の本のためのフォルダですか? –

    関連する問題