埋め込み先ファイルをroot以外に置きたい

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

埋め込み先ファイルをroot以外に置きたい

投稿記事 by blue » 2005年2月17日(木) 19:44

お世話になっております。
デフォルト表示の件では素早い対応をありがとうございました。
早速思い通りの日記帳に仕上がりましたので、いよいよ公開か? と思いきや、
中身が空っぽなのでもう少し先延ばしです(笑

日記のチュートリアルを卒業と言うことで、 :D
他にもいろいろと、既存のコンテンツに埋め込む作業をしておりまして、
大分要領が分かってきたような気がします。
で、大分コンテンツが増えてきましたので、表題のことが気になってまいりました。
マニュアルには、
>埋め込み先ファイルはルート直下に。
>回避方法はあるが、複雑なので省く
旨、記述がありました。
ですがこのまま行くと、ルートは大変混雑が予想されます。
また、従来はルートの2階層ほど下にあった物を引っ張り出したりしており、
スキーマや外部スタイルシート以外にも読み込ませるファイルが幾つもあったりするので、
パスがあっちこち飛び交っているような状況です。
大変お忙しいとは思いますが、いやゆっくりで構いませんので、
回避方法とやらをご教示願えませんでしょうか?

ちなみに本来置いていた場所でも試したりしてみました。
一行目の「定型文」のパスを書き換えることで、概ね問題ないのですが、
アップロードした「img」のみ、読み込めないようですね。
そして多分同じ理屈で、アップロードした「file」も無理なのでしょうか。
こちらは試していませんが。

ああまた我が儘を言って申し訳ございません<(_ _)>

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

Re: 埋め込み先ファイルをroot以外に置きたい

投稿記事 by webmaster » 2005年2月17日(木) 21:32

 webmasterです。
 blueさん、いつも書き込みありがとうございます。

 詳しく検証してないのですが、埋め込み先のページをroot以外に置く方法は、
次のようにすればいけると思います。

 例として、
 public-html/sub1/samplepage.php
 にファイルを置くとします。

・埋め込みページ先頭のヘッダを次のように変える。
変更前:<?php require( "cmsdesigner/include/view.php.inc" ); ?>
変更後:<?php require( "../cmsdesigner/include/view.php.inc" ); ?>

・デザイン定義ファイル中の画像表示部分を次のように指定する。
変更前:<img src="{shopphoto}" />
変更後:<img src="../{shopphoto}" />

・デザイン定義ファイル中のファイルダウンロードリンク部分を次のように指定する。
変更前:<a href="{pdffile}" ><xsl:value-of select="pdffile/@org" /></a>
変更後:<a href="../{pdffile}" ><xsl:value-of select="pdffile/@org" /></a>

 上記のように、URLの前に"../"を付けるだけです。
 ルートフォルダからの相対パスを追加してください。

 2階層下なら、"../../"となります。

 ところで、今重大な問題に気づきました・・・。
 リファレンスマニュアルのデザイン定義の章に、「file項目の表示方法」が入っていません・・・。m(_ _;)m

 <a href="{項目名}">ダウンロード</a>

 のように使います。
 ファイル名を表示したい場合は、

 <a href="{項目名}"><xsl:value-of select="項目名/@org" /></a>

 と書いて下さい。

 他、ファイルサイズなども取得できるのですが、詳しくは次回バージョンアップ
までにマニュアルに追記致します。

blue
パワーユーザー
記事: 70
登録日時: 2005年1月31日(月) 20:49

ありがとうございます

投稿記事 by blue » 2005年2月18日(金) 19:52

デザイン定義でパスを変えてやれば良かったんですねー。
ちょっと考えれば分かりそうなことでした。ごめんなさい。
でも「相対パス」である必要があるんですね、やはりお訊きして良かったかも。
実は他のページからも同じエントリを呼び出したい考えがあったのですが、
これで出来そうなことも分かってきました。
デザイン定義は複数作れるんですものね。
cmsdesigner、知れば知るほど面白くなりそうです。
そしてまた我が儘を言うかも知れませんが…。何卒よろしくお願いします。

マニュアルに「file項目の表示方法」が無いって、私も気付きませんでした(笑

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

Re: ありがとうございます

投稿記事 by webmaster » 2005年2月18日(金) 20:17

 webmasterです。

 こちらこそ、blueさんの方でかなり調べられていたので、後は簡単に説明
するだけで済みました。ありがとうございます。 :)

 尚、相対パスでなくても絶対パスでもいけると思います。

 PHP側は、サーバ上の実際のパスを、
 XSLT側は、http://から始まるURLを
 それぞれ設定すればOKだと思います(未確認ですが・・・(^^;)。

 本当は、パスを変える為だけに複数のデザイン定義を作らなくても良いように
したいのですが、今のところはまだ実現できていません・・・。

 とても参考になりますので、またご意見の方よろしくお願いいたします。m(_ _)m

返信