複数の記事に同一のファイルを1回でアップしたい

「まったく何も分からない・・・」そんなユーザーさんの為のフォーラムです。どんなご質問でもお気軽にどうぞ。
返信
bcacsato
パワーユーザー
記事: 233
登録日時: 2005年11月27日(日) 14:05

複数の記事に同一のファイルを1回でアップしたい

投稿記事 by bcacsato » 2012年8月08日(水) 14:50

クライアント様のサイトにて、製品の取扱説明書のダウンロードページを運用しています。

製品によっては、複数の製品で同一の取扱説明書となる場合もありますが、
現状では、各製品ごとに同じPDFファイルを繰り返しアップしています。

しかし、これではアップロードの手間がかかるうえ、
ファイルサイズが大きいためにサーバーの容量も食いますし、
ファイルを差し替える際にも面倒ですので、
1回のアップロードで済ませたいと相談を受けています。

そのため、URLを入力する欄を新設し、1つの製品にPDFファイルをアップしたら、
他の製品については、そのPDFのURLを入力し、直リンクさせる形を考えました。

しかし、これですと、元ファイルのファイル名が変わってしまった場合、
他の製品がすべてリンク切れになってしまいます。

理想としては、元となる製品のエントリIDを入力すれば、
そのIDのエントリ内から指定したnameのファイルを取得して、
自動でそのファイルにリンクを貼れればよいかと思ってますが、
そのようなことはできますでしょうか?

その他、よい案がありましたら、ご教示いただけますと幸いです。

webmaster
Site Admin
記事: 1451
登録日時: 2004年12月10日(金) 10:09

Re: 複数の記事に同一のファイルを1回でアップしたい

投稿記事 by webmaster » 2012年8月08日(水) 15:46

bcacsatoさん、いつもご質問ありがとうございます。

ご質問の件ですが、「共通ファイル倉庫」のような場所があると良いのかもしれない、と思いました。
別の場所でファイルのみを一元管理し、製品ページからはそこへリンクをする、というやり方です。

現状の仕組みの上でそれを実現するには、ファイル項目が1つのみ存在するスキーマ(他に管理用のタイトル項目ぐらいは必要だと思いますが)で作った「共通ファイル倉庫」というエントリフォルダを作り、そこにファイルのみをアップロードしてもらい、それぞれの製品ページ用のエントリには「共通ファイル番号」という名目で、共通ファイル倉庫エントリフォルダのエントリIDを入力する、というやり方になるかと思います。

あるエントリのファイルへのリンクは、以下のルールで組み立てることができます。fileidについては、そのエントリ内に1つしかファイルが無ければ常に00000001ですので、固定で大丈夫です。
例えば、共通ファイル倉庫のエントリフォルダ名が「commonfiles1」で、各製品ページ用のスキーマの「共通ファイル番号」の項目名(テキスト項目)が「commonfileid」の場合、各製品ページから共通ファイルへのリンクは以下のデザイン定義で作ることができます。

コード: 全て選択

<a href="http://サーバドメイン/cmsdesigner/dlfile.php?entryname=commonfiles1&entryid={commonfileid}&fileid=00000001">説明書PDF</a>
もし、「説明書」の文字の部分を任意で変えたい場合には、各製品ページ用のスキーマ側に「リンク用テキスト」みたいな項目をつくり、それを使ってください。おそらく、「せっかく共通ファイル倉庫側でファイルを一括しているのだから、そちらにリンク用テキストも追加して、そちらで一元管理できないのか」という話があるかと思いますが、現在のところ、仕組み的に非常に難しいです(やるとしたら、JavaScriptなどと併用したり、共通ファイル倉庫のエントリ内容をiframeで埋め込む、などの方法になるかと思います)。

現在、このあたりの「二つのエントリフォルダ間で関連を持たせる」機能を検討中ですが、シンプルさを保ちながらどこまで汎用性を高められるか、という部分で苦しんでおります。

以上、ご希望に沿えるものではなく申し訳ありません。ご不明な点がございましたらまたご連絡頂ければ幸いです。

bcacsato
パワーユーザー
記事: 233
登録日時: 2005年11月27日(日) 14:05

Re: 複数の記事に同一のファイルを1回でアップしたい

投稿記事 by bcacsato » 2012年8月08日(水) 17:43

webmasterさま

ご回答ありがとうございます。

実は、製品の数(つまりエントリの数)が膨大にあるのです。
しかも、各製品ごとにPDFが1つだけではなく、
「取扱説明書」、「カタログ」、「工事説明書」のように、複数のPDFをアップする形になっています。

そのため、共通ファイル倉庫を別途用意して1個1個紐付けるというのは、
複雑になりすぎて、クライアント様にて管理が難しいかと思っております。

すでにひと通りPDFファイルをアップ済みのため、基本的にそれは活かしつつ、
今後の分については、共通するPDFは複数のエントリで共有することができればと思っておりました。

無理であればかまませんので、もしよい案がありましたらご教示いただけますと幸いです。

webmaster
Site Admin
記事: 1451
登録日時: 2004年12月10日(金) 10:09

Re: 複数の記事に同一のファイルを1回でアップしたい

投稿記事 by webmaster » 2012年8月12日(日) 03:21

webmasterです。
なるほど、そういうことでしたか…それは確かに、前述の方法は使えないですね…。

あれからいろいろと考えてみたのですが、今のところ、良い方法が思いつきません。

ただ、すでにbcacsatoさんのほうでご検討中の、「すでにアップロード済みのファイルのURLをコピーしてそのURLを入力する欄を作る」というのは、ベストとはいかないまでもベターかと思います。

実はCMS Designerでは、一度ファイルをアップロードしたファイル項目を別のファイルで上書きアップロードしても、過去のURLでアクセスすることができます。(削除してアップロードしなおした場合は、URLが変わることがあります) ファイル名が変わったとしても、です。URLの最後についている「&/ファイル名」の部分は、おまじないのようなもので、削除してしまってもファイルはダウンロード可能です。

ですので、「既存のファイルを別のファイルで上書きすると、URLが変わって問題がおこる」ということはありませんので、もしそれでうまくいくようでしたら、その方法をお試し頂ければと思います。

うまい方法をご提案できず、申し訳ありません。m(__)m
他に何か良い方法を思いつきましたら、また提案させていただきたいと思います。

bcacsato
パワーユーザー
記事: 233
登録日時: 2005年11月27日(日) 14:05

Re: 複数の記事に同一のファイルを1回でアップしたい

投稿記事 by bcacsato » 2012年8月12日(日) 04:01

なるほど、ファイル名が変わっても大丈夫なのですね!
であれば、現状ではこの方法がベストかもしれませんね。
この方法で進めたいと思います。
ご回答ありがとうございました。

bcacsato
パワーユーザー
記事: 233
登録日時: 2005年11月27日(日) 14:05

Re: 複数の記事に同一のファイルを1回でアップしたい

投稿記事 by bcacsato » 2012年9月20日(木) 14:41

webmasterさま

ご教示いただいた方法で、アップロード済みのファイルに直リンクさせる形で対応しました。

しかし、この形ですと、リファレンスマニュアル5.5.4の方法でファイルサイズを取得することができません。

直リンクさせた場合でも、リンク先のファイルサイズを取得して表示させる方法はありますでしょうか?

webmaster
Site Admin
記事: 1451
登録日時: 2004年12月10日(金) 10:09

Re: 複数の記事に同一のファイルを1回でアップしたい

投稿記事 by webmaster » 2012年9月20日(木) 17:26

webmasterです。bcacsatoさん、いつもお世話になっております。

ファイル直リンクの場合のファイルサイズ表示方法ですが、JavaScriptによって取得し、表示する方法がございます。

その手順をライブラリ化したものも、ネット上でいろいろと公開されているようです。
例えばこちらのサイトで公開しているライブラリは、ファイルへのリンクの後に[25KB]などのデータを自動的に追加するようになっているようです。

[JavaScript] ファイルのサイズを自動で取得して表示する | Library | Development Reference
http://mashimonator.weblike.jp/library/ ... pt-20.html

CMS Designerの機能ではなくて申し訳ないのですが、今回の場合、この方法がもっともシンプルに解決できるように思います。

一度お試し頂ければ幸いです。

bcacsato
パワーユーザー
記事: 233
登録日時: 2005年11月27日(日) 14:05

Re: 複数の記事に同一のファイルを1回でアップしたい

投稿記事 by bcacsato » 2012年9月20日(木) 17:44

webmasterさま

ライブラリのご紹介ありがとうございます。こちらを使わせていただきます。
CMSDとは直接関係ない内容にもかかわらず、調べていただきありがとうございました。

返信