バージョン選択

フォーラム

メニュー

オンライン状況

20 人のユーザが現在オンラインです。 (13 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 20
もっと...

サイト内検索

質問 > フロント機能 > magpierssの設定

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
harumoone
投稿日時: 2011/9/13 23:20
対応状況: −−−
常連
登録日: 2011/7/14
居住地:
投稿: 66
magpierssの設定
ライブドアブログを読み込んでるのですが日付が1970年1月1日になってしまいます。
いろいろ日付をいじっても直りません。
ここで聞くべきことじゃないかも知れませんがよろしければ教えてください。
rss.phpの中身は次のとおりです。
よろしくお願いします。

<?php
define('MAGPIE_OUTPUT_ENCODING', 'UTF-8'); //文字コード化け対策
require_once 'rss_fetch.inc';
$url = 'http://blog.livedoor.jp/kisetunohanakashin/atom.xml';
$rss = fetch_rss($url);
$rss->items = array_slice($rss->items, 0, 5);
$title = $rss->channel['title'];
echo "<h2>$title</h2>\n";
echo "<ul>\n";
foreach ($rss->items as $item ) {
$title = $item[title];
//記事更新日時
//$date = date('Y年m月d日 H時i分',strtotime($item['pubdate']));
$date_timestamp = $item[date_timestamp];
$date = Date("(Y/m/d)",$date_timestamp);

$url = $item[link];
echo "<li><a href=\"$url\">$title</a> $date</li>\n";
}
echo "</ul>\n";
?>









[EC-CUBE] 2.11.2

[レンタルサーバ] sixcore

[OS] win 7 64bit

[PHP] 5.2.6

[データベース] my sql 5.0.22

[WEBサーバ] わかりません

[ブラウザ] ie8
flealog
投稿日時: 2011/9/13 23:35
対応状況: −−−
仙人
登録日: 2008/6/10
居住地:
投稿: 485
Re: magpierssの設定


//記事更新日時
//$date = date('Y年m月d日 H時i分',strtotime($item['pubdate']));
$date_timestamp = $item[date_timestamp];
$date = Date("(Y/m/d)",$date_timestamp);



この部分で取得できてないのではないでしょうか?

http://dezimo.com/web/rssphp.php

↑こんなブログ見つけました。
ご参考までに・・・


----------------
EC-CUBE3っぽいテンプレート
GitHub で公開中
https://github.com/bluestylejp

お問い合わせ番号CSV登録&メール送信プラグイン
http://urx.red/qDT6

harumoone
投稿日時: 2011/9/14 5:08
対応状況: −−−
常連
登録日: 2011/7/14
居住地:
投稿: 66
Re: magpierssの設定
お返事ありがとうございます。

上記のアドレスのphpでやっても結果は同じく1970年1月1日でした。
そのままコピーして下のように書きました。
よろしくお願いします。

<?php
require_once('rss_fetch.inc'); //MagpieRSSロード
define('MAGPIE_OUTPUT_ENCODING','UTF-8');

//読み込むRSSを配列に格納
$rssUrl=array(
"http://blog.livedoor.jp/○○/atom.xml"
);

//表示する記事の件数
$num=20;
$HTMLbody ="";

if($datacount !== 0){

foreach ($rssUrl as $no => $rss_url) {
if ($rss_url != '') {
//URLからRSSを取得
$rss = @fetch_rss($rss_url);
if ($rss != NULL) {
for ($i=0; $i<count($rss->items); $i++) {
//サイトのタイトルをitemsに格納
$rss->items[$i]["site_title"] = $rss->channel["title"];
$rss->items[$i]["site_link"] = $rss->channel["link"];
}
//itemsだけ別配列に格納
$rssItemsArray[] = $rss->items;
}
}
}

$concatArray = array();
if (is_array($rssItemsArray)) {
for($i=0;$i<count($rssItemsArray);$i++){
//配列を統合する
$concatArray = array_merge($concatArray,$rssItemsArray[$i]);
}

foreach ($concatArray as $no => $values) {

//「RSS広告は除外する」
if(preg_match("/PR:/", $values["title"])){
}else{
//RSSの種類によって日付を取得
if($values['published']){$date = $values['published'];}
elseif($values['created']){$date = $values['created'];}
elseif($values['pubdate']){$date = $values['pubdate'];}
elseif($values['dc']['date']){$date = $values['dc']['date'];
}
$date=date("Y-m-d",strtotime($date));
$title=$values["title"];
$link=$values["link"];
$site_title=$values["site_title"];
$site_link=$values["site_link"];
//記事ごとに必要な項目を抽出
$rssArray[]=array($date, $title, $link, $site_title, $site_link);
}
}

//配列をユーザー定義関数でソート
if ($rssArray) { usort($rssArray, 'cmp'); }
if (count($rssArray) > $num) {
$count=$num;
} else {
$count=count($rssArray);
}

//必要な件数分だけHTML整形
for ($i=0; $i<$count; $i++) {
$date=date("Y年m月d日",strtotime($rssArray[$i][0]));
$title=$rssArray[$i][1];
$link=$rssArray[$i][2];
$site_title=$rssArray[$i][3];
$site_link=$rssArray[$i][4];
$HTMLbody .="<ul>";
$HTMLbody .="<li><div class=\"blog_date\">[".$date."]</div><div class=\"blog_con\"><span class=\"entry_title\"><a href=\"".$link."\" target=\"_blank\">".$title."</a></span><br /><span class=\"blog_title\"><a href=\"".$site_link."\" target=\"_blank\">".$site_title."</a></span></div></li>";
$HTMLbody .="</ul>";
}
}
}else{
$HTMLbody .="まだ記事がありません。";
}

//=======================================================
// 多次元配列ソート用比較関数
// この場合は配列の1番目の項目を降順にソート
//=======================================================
function cmp($a, $b) {
if ($a[0] == $b[0]) return 0;
return ($a[0] > $b[0]) ? -1 : 1;
}
?>
<?=$HTMLbody ?>
――――――――――――――――――――――――――――――――――


flealog
投稿日時: 2011/9/14 10:48
対応状況: −−−
仙人
登録日: 2008/6/10
居住地:
投稿: 485
Re: magpierssの設定
では、最初のコードに戻して、以下のRSSではどうでしょうか?
http://blog.livedoor.jp/kisetunohanakashin/index.rdf


----------------
EC-CUBE3っぽいテンプレート
GitHub で公開中
https://github.com/bluestylejp

お問い合わせ番号CSV登録&メール送信プラグイン
http://urx.red/qDT6

harumoone
投稿日時: 2011/9/14 19:07
対応状況: −−−
常連
登録日: 2011/7/14
居住地:
投稿: 66
Re: magpierssの設定
ありがとうございます。
2回目のコードに教えていただいたアドレスの組み合わせでできました。

甘えついでに、これにNEW!をつけたいのですが
いろいろ試すと白いページになり参ってます。
かとおもい違うコードを使うとまた1970年になってしまいます^_^;
もし何かあればご教授お願いします。
flealog
投稿日時: 2011/9/14 22:37
対応状況: −−−
仙人
登録日: 2008/6/10
居住地:
投稿: 485
Re: magpierssの設定
素人の私のやり方は、やってみる > 失敗 の繰り返しで実装していく100打ちゃ当たる作戦なので、的確なアドバイスはできません^^;

すみません。

ちなみに私のサイトでは以下のコードでnewを表示させています。
(コピペしても絶対にうまく表示されませんので、理解して検索して実装してください。)



//記事更新日時
$date_timestamp = $item[date_timestamp];
$date = Date("Y/m/d",$date_timestamp);

$week_timestamp = mktime(date(G), date(i), date(s), date("m"), date("d")-7, date("Y"));
$new = "<img src=\"http://www.****.net/user_data/packages/default/img/top/new.gif\" width=\"43\" height=\"12\" alt=\"new\" />";

$url = $item[link];
  if ($date_timestamp > $week_timestamp) {
    echo "<dt><a href=\"$url\" target=\"_blank\">$title</a> $new</dt><dd>- $date</dd>\n";
  } else {
    echo "<dt><a href=\"$url\" target=\"_blank\">$title</a></dt><dd>- $date</dd>\n";
  }
}
echo "</dl></div>\n";


----------------
EC-CUBE3っぽいテンプレート
GitHub で公開中
https://github.com/bluestylejp

お問い合わせ番号CSV登録&メール送信プラグイン
http://urx.red/qDT6

harumoone
投稿日時: 2011/9/15 7:41
対応状況: −−−
常連
登録日: 2011/7/14
居住地:
投稿: 66
Re: magpierssの設定
いつもありがとうございます。
下記のコードで作ってみたのですが
newが出ません。

<?php
define('MAGPIE_OUTPUT_ENCODING', 'UTF-8'); //文字コード化け対策
require_once 'rss_fetch.inc';
$url = 'http://blog.livedoor.jp/**/index.rdf';
$rss = fetch_rss($url);
$rss->items = array_slice($rss->items, 0, 5);
$title = $rss->channel['title'];

foreach ($rss->items as $item ) {
$title = $item[title];
//記事更新日時
$date_timestamp = $item[date_timestamp];
$date = Date("m/d",strtotime($item['dc']['date']));

$week_timestamp = mktime(date(G), date(i), date(s), date("m"), date("d")-3, date("Y"));
$new = "<img src=\"http://www.**.jp/user_data/packages/**/img/icon/new.gif\" width=\"43\" height=\"12\" alt=\"new\" />";



$url = $item[link];
if ($date_timestamp > $week_timestamp) {
echo "<li>$date<a href=\"$url\">$title</a>$new</li>\n";
} else {
echo "<li>$date<a href=\"$url\">$title</a></li>\n";
}
}
echo "</ul>\n";

?>

NEWが出ません。
$date_timestamp < $week_timestamp)
にしたら出るので

$week_timestamp = mktime
あたりが原因かと思います。
うーーんなかなかすんなりうまくいかないものですね^_^;
harumoone
投稿日時: 2011/9/15 19:57
対応状況: 解決済
常連
登録日: 2011/7/14
居住地:
投稿: 66
Re: magpierssの設定
できました。

いろいろ試して結局
http://www.ishiiweb.com/labs/magpie/
このページを参考にできました。

ちょっとした違いで表示されたりされなかったり・・・

うきーーー!!となりますが
できたときの達成感は最高ですね(^^♪
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は89,390名です
総投稿数は110,082件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2314
5
umebius
2085
6
yuh
1819
7
h_tanaka
1652
8
red
1570
9
mcontact
1304
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.