こんにちは。
コンテンツから別のコンテンツへのリンクを入れたいのですが、どうすればよいでしょうか。
質問は二つ有ります。Drupal6です。
(1)コンテンツの中で別のコンテンツへのリンクを入れたい。
あるコンテンツを作って、そこに別のコンテンツのリンクを貼るのに、リンク先のノードを調べて リンク先にnode/3 とかのように リンク先を指定して作っていました。
このやりかただと、トップページからはいつもリンク先に飛べるけれど、あるページを表示しているところから、そこへ飛ぶことが出来ません。
例えば、あるノードをいつもコンテンツトップに表示していて、「説明はこちらへ」のリンク先をいつも同じページにしたい。
・絶対アドレスで書けば飛べるけど、サイトを移動した時に困るし、相対アドレスだと、うまく行かない。
このような場合、メニューでなんとかするしかないのでしょうか。
(2)CCkのFileFieldを使って作ったコンテンツの添付ファイルのパスを知りたい。
FileFieldを使ったコンテンツをCCKで作ります。
Viewsでリスト表示させて、FileFieldを表示させると、添付ファイルはファイル名がリストされます。
これを特定の文字列にして且つ、そのファイルへのリンクとしたい。
CCKのfieldの設定でFileFieldに説明欄をつけると、その文字列に置き換わりますが、これをViewsのリストの時だけ置き換えたい。
Viewsの設定で置き換える事はできるのですが、リンク先を取得する方法がわかりません。
Rewrite the output of this field に文字列を入れると置き換わり
Output this field as a linkに絶対パスを入れるとできるのですが、サイトを移動した時に変更が必要になります。
たぶん、簡単なことだと思うのですが
よろしくお願いいたします。

Comments
1)document root からの絶対パス 2)フォーマット:ファイルへのパス
こんにちは。
1)は ブラウザでアクセスできるサイトのDocument Rootからの絶対パスでうまくいくと思います。
ですね。この書き方でサイト内リンク、CSSの背景画像やimgタグなども統一すると、サーバー移転が楽になります。
2)はViewsの設定で
で「ファイルへのパス」
を選ぶと良いと思います。
うまく行かないんですけど
qchanさん、ありがとうございます。
1)リンクを /node/3 とすると、webサーバのDocumentルートからになります。
もう少し具体的に書くと、企業内の一つのサーバのあるディレクトリ下で作業をしています。http://127.0.0.1/drupal-test/
なので、 /drupal-test/node/3 と書けば良いと思うのですが。
最終的にこのディレクトリ名を http://127.0.0.1/drupal/ などに変えて正式運用しようとしているので、
これだと都合が悪いです。
2)これは、意図どおりうまく行きました。
どうも、ありがとうございました。
1)
こんにちは
php filterを有効にして
<? echo l('文字列', 'node/1') ?>
とかいかがでしょうか?
うまく行きました。
mattz さん
ありがとうございました。
こういった、関数と言うか、APIというかは、どこで勉強すれば良いのでしょうか。
なるほど、ドメイン直下ではないんですね。 Drupalイン
なるほど、ドメイン直下ではないんですね。
Drupalインストールフォルダの
sites/default/settings.php に
と追記するとどうでしょうか。
ありがとうございました
qchan さん
ありがとうございました。
うまくいきました。と、思ったのですが、ダメなようです。
やはり、参照したページによってはリンク先のアドレスがルートだったり、別名定義したパスの最後だったりで
うまく行かないようです・
こんにちは、king33さん(さんさんさん ルートパス直下
こんにちは、king33さん(さんさんさん
ルートパス直下にDrupalをおいてない時は、
base_path()
とすると、ディレクトリパスがかえってきますよ。
自分はよくテーマ以下に画像をおいてるので、
base_path().path_to_theme()
と書くと、今使っているテーマパスをかえしてます。
jun784さん ありがとうございました。 この方法でもで
jun784さん
ありがとうございました。
この方法でもできました。
フォローしました。
ここ数日で同じトラブルに自分も出会ったので、後の方の参考に
ここ数日で同じトラブルに自分も出会ったので、後の方の参考に。
Drupalインストールフォルダの直下に、.htaccessファイルがあります。
この中に、
# Modify the RewriteBase if you are using Drupal in a subdirectory or in a
# VirtualDocumentRoot and the rewrite rules are not working properly.
# For example if your site is at http://example.com/drupal uncomment and
# modify the following line:
# RewriteBase /drupal
というブロックがありますので、
RewriteBase /drupal
の # を外して、
RewriteBase /drupal-test
など、ご自分の環境に合わせて書き換えるとよいです。
私の場合はこの作業と、settings.phpの書き換え2つが必要でした。
Block内に直書きした画像リンクや内部リンクなどはこれでもだめですので、base_path()を挟んだほうが良いですね。