■ユーザーズフォーラム リニューアルのお知らせ
新規投稿は新ユーザーズフォーラムにお願いします。

特定のrssフイードだけ" target="_blank"を使う方法

bubu > 特定のrssフイードだけ" target="_blank"を使う方法 @ 2014/3/9 22:29
お世話になります。
本日は3回目のトピックを建てさせて頂きます。
また私のようなphp初心者に丁寧にサポートして頂いたgoichiさん、teckingさん本当にありがとうございました。
この場をおかりしまして御礼申し上げます。

さて本題の質問ですが、本日建てたトピックの一連の流れが、このトピックと関係があるので掲載させて下さい。

まず、複数のブログを新着表示に出力したいむねを相談させて頂きました。「新着一覧に複数のブログからの記事を表示したい。
解決方法はフィードプラグインを使う方法で解決いたしました。

次に、ニュースサイトから引っ張って来たrssを別窓で開く方法を相談させて頂きました。
新着一覧で出力させたリンクを別窓で開く方法
解決策はfeed配下のdefault.phpに" target="_blank"を張る方法をご指導頂きました。

そこで問題が生じたのがブログの新着記事(内部記事)まで当たり前ですが別窓で開いてしまう事です。

僕の考えはindex.phpの('/feed/ajax/1')に" target="_blank"を指定すれば良いかと考えてarray('target' => '_blank')を指定したりとこまごまやりましたが等々サーバーエラーがでて断念いたしました。

そこで改めてニュースフィード(('/feed/ajax/1'))だけ別窓で開く方法はありませんでしょうか?

長々と書き込ませて頂きましたがどうぞ御教授宜しくお願い致します。

index.php
<!-- BaserPageTagBegin -->
<?php $this->BcBaser->setTitle('') ?>
<?php $this->BcBaser->setDescription('') ?>
<?php $this->BcBaser->setPageEditLink(1) ?>
<!-- BaserPageTagEnd -->

<div id="news" class="clearfix">
<div class="news" style="margin-right:28px;">
<h2 id="newsHead01">baseCMS RELEASE</h2>
<div class="body">
<?php $this->BcBaser->js('/feed/ajax/2') ?>
</div>
</div>


<div class="news">
<h2 id="newsHead02">NEWS</h2>
<div class="body">
<?php $this->BcBaser->js('/feed/ajax/1') ?>
</div>
</div>
</div>


default.php ※" target="_blank"を指定
<?php
/**
 * フィード
 */
$this->Feed->saveCachetime();?>
<cake:nocache>
<?php $this->Feed->cacheHeader() ?>
</cake:nocache>
<?php if (!empty($items)): ?>
<ul>
<?php foreach ($items as $key => $item): ?>
<?php $no = sprintf('%02d', $key + 1) ?>
<?php if ($key == 0): ?>
<?php $class = ' class="clearfix first feed' . $no . '"' ?>
<?php elseif ($key == count($items) - 1): ?>
<?php $class = ' class="clearfix last feed' . $no . '"' ?>
<?php else: ?>
<?php $class = ' class="clearfix feed' . $no . '"' ?>
<?php endif ?>
<li<?php echo $class ?>> <span class="date"><?php echo date("Y.m.d", strtotime($item['pubDate']['value'])); ?></span><br />
<span class="title"><a href="<?php echo $item['link']['value']; ?>" target="_blank"><?php echo $item['title']['value']; ?></a></span> </li>
<?php endforeach; ?>
</ul>
<?php else: ?>
<p style="text-align:center">ー</p>
<?php endif; ?>

■ BaserCMSのバージョン:ver3.0.1
■ レンタルサーバー名:lolipop
■ スマートURLの利用: [ON]
■ テーマ:nada_icons
■ PHPスキル(なし)

goichi > Re: 特定のrssフイードだけ" target="_blank"を使う方法 @ 2014/3/9 23:04
具体的な作り方は公式サイトなどの情報を見て探して頂ければと思うのですが、フィードプラグインでは、フィード設定ごとにテンプレートを変更できたと思います。
いまはdefaultに対してtarget="_blank"を指定したのですよね。だとしたら、問題の「'/feed/ajax/1'」のフィードだけ、defaultテンプレートにして、他のフィードは新しくテンプレートを作って、そちらを使ってはいかがでしょうか?(フィード管理のフィード設定で、オプション部分を開くと添付画像のような画面になると思います。そこの一番下でテンプレートを指定できます)

また(ヒントだけで恐縮ですが、)もし何かしらの事情で、1つのテンプレート内で外部リンクのときだけtarget="_blank"にしたいときは、PHPの条件分岐をつかって、リンク先のURLに自分のサイトのURL(またはその一部)が含まれるかどうかをチェックすることで、処理を振り分けできると思います。

bubu > Re: 特定のrssフイードだけ" target="_blank"を使う方法 @ 2014/3/10 5:26
goichiさん

テンプレートの切り替えは有効ですね。
何分baseCMSにPHPと不慣れでまだシステムを理解しておりませんでした。

ヒントの件は私のスキルアップへの課題とさせて頂きます。
この度は大変お世話になりありがとうございました。

■ BaserCMSのバージョン:ver3.0.1
■ レンタルサーバー名:lolipop
■ スマートURLの利用: [ON]
■ テーマ:nada_icons
■ PHPスキル(なし)

ログイン
ユーザー名:
パスワード:


  新規登録 / パスワード紛失

検索

facebook
フォーラムで悩みが解決した場合など、よかったら「いいね!」をポチっとクリックしてください!質問の回答者や開発者の励みになります

フォーラムガイド


関連リンク

オンライン状況
6 人のユーザが現在オンラインです。 (6 人のユーザが フォーラム を参照しています。)

登録ユーザ: 0
ゲスト: 6