ページ 11

トップページの最新ニュースのニュースタイトルのリンクを消すには?

Posted: 2012年3月22日(木) 12:04
by epirock
-----
ご利用のサーバ:CPI ZZプラン、ACEプラン
Webサーバのバージョン:?
PHPのバージョン:PHP 5.3.6 & PHP 5.2.8
データベースのバージョン:MySQL5.0.90
MODXのバージョン:Evolution 1.0.5J-r7 & r5
ブラウザ :Firefox 8
-----


Dittoで出力するようにしている、ニュースのエリアについてなのですが、
トップページとニュース一覧ページで出力されている


●トップページにある、その数件のニュースタイトルが表示されているところ
●ニュース一覧ページにある、これまでのニュースが最新から順番に20件ずつ表示されているところ

この二つのページの、各ニュースタイトルですが、
通常はその先の記事があるので当然リンクになっていますが、
たまに、リンクする先の記事を入れるほどの内容はなく、一言メッセージ的なニュースもあります。
「○○のイベントは無事終了しました。有難う御座いました」
などというニュースなどはそれだけで内容は簡潔しますので。

このように、リンクが無いニュースをDittoで自動出力させるようにするにはどうすればいいでしょうか?

宜しくお願いします。

Re: トップページの最新ニュースのニュースタイトルのリンクを消すには?

Posted: 2012年3月22日(木) 13:46
by yama

コード: 全て選択

$doc = $modx->getDocumentObject('id',$options);
if(empty($doc['content'])) return $output;
else
{
  $url = $modx->makeUrl($options);
  return '<a href="' . $url . '">[+pagetitle+]</a>';
}
実際に動くか確認してないですが、こんな感じのPHxモディファイアを作ってDittoのテンプレート内で用いるとよいのではと思います。モディファイアにはパラメータとして[+id+]を与えます

Re: トップページの最新ニュースのニュースタイトルのリンクを消すには?

Posted: 2012年3月28日(水) 13:30
by epirock
yamaさま、もともとあるソースですでにphxを入れており、どう組み込めばいいのか思案中です。
またご連絡させていただきます。返信遅くなって申し訳ないです。

Re: トップページの最新ニュースのニュースタイトルのリンクを消すには?

Posted: 2012年3月28日(水) 14:45
by yama
「phx:モディファイア名」という名前でスニペットを作って、Dittoテンプレート内で[+pagetitle:モディファイア名:id=`[+id+]`+]として呼び出してみてください

Re: トップページの最新ニュースのニュースタイトルのリンクを消すには?

Posted: 2012年3月30日(金) 11:57
by epirock
「phx:モディファイア名」という名前でスニペットを作って、Dittoテンプレート内で[+pagetitle:モディファイア名:id=`[+id+]`+]として呼び出してみてください
ホントにありがとうございます。
やってみました。
仕込む前は、&tpl=`dittoテンプレ名` には以下のソースを入れておりました。

コード: 全て選択

<li><span class="date">[+date+]</span> <a href="[+url+]" [+type:別窓+]>[+longtitle+]</a> [+pub_date:icon_new+]</li>
皆様のご支援で、以下の機能を追加させたソースです。

・ニュースタイトルのリンクをクリックすると、別ウィンドウで何かしらのURLを開く機能
 リソース作成画面の「リンク属性」に「target="_blank"」と入力した記事だけ、別ウィンドウURLオープンが機能する

・新しいニュースタイトルだけ、NEWアイコン画像を表示させる機能
 本日只今から遡って30日など、指定した日数の間に投稿されたニュースタイトルだけにNEWアイコンが出力される機能 

これに、今回yama様にご教示いただいたソースを加えて、3つの機能が同居できるようにしないといけないので、
いただいたソースはpagetitleですから、そこをこちらのソースで使っているlongtitleに差し替えてみてやってみました。
そのソースが以下です。
※もちろん、ご教示通り、phxのスニペットは別に作りました。

コード: 全て選択

<li><span class="date">[+date+]</span> <a href="[+url+]" [+type:別窓+]>[+longtitle:phx:news_nolink:id=`[+id+]`+]</a> [+pub_date:icon_new+]</li>
こうしたところ、トップページが404ページになってしまいました。
私が&tplの中身をまだお伝えしていなかったから、こういった機能が無いものとしてyama様がご教示するのは当然だからです。

こういう状況が背景にあるので、教えていただいたphxソースを、どのように上記ソースに組み込むべきかを思案中でありました。
お手数おかけして申し訳ありません。

phxは以下のようにしてすでに作成しております。

コード: 全て選択

<?php
$doc = $modx->getDocumentObject('id',$options);
if(empty($doc['content'])) return $output;
else
{
	$url = $modx->makeUrl($options);
	return '<a href="' . $url . '">[+longtitle+]</a>';
}
?>
ノンプログラマの自分で調べて考えるに、
「もしもcontent内に何も入力が無ければ、そのまま出力しなさい。
 入力があれば以下に記述するaタグ内のソースを出力しなさい。」
という意味なのかと思っておりまして、そうであればこのままでは無理だと。

例えば、上述しました「別ウィンドウ機能」は、リンク属性にターゲットブランクソースを仕込んだ上に、
「ウェブリンク」としてリソースを作成しておりますので、ウェブリンクの場合、そもそもcontentが無いので
このままではif文の判定がうまくいかなさそうだ、などと思っていたりしておりました。
よって、業務外の少ない時間で「であればこうかな?」とちょこちょこさわっているのですが、
今のところうまくいっていない状態です。

Re: トップページの最新ニュースのニュースタイトルのリンクを消すには?

Posted: 2012年3月30日(金) 12:34
by yama
別窓で開く処理もまとめてしまうとすっきりすると思います。(判定条件がひとつ増えるだけということになりますので)

Re: トップページの最新ニュースのニュースタイトルのリンクを消すには?

Posted: 2012年4月11日(水) 16:04
by epirock
yama様、返答遅くなって申し訳ないです。
優先業務が多大に押し込まれてしまって現在作業中断中となっております。
作業復活したら投稿させていただきます。間延びして申し訳ないです。
いつも有難う御座います。