以前から社内グループウェア(開発中)を使ってましたが
wordpressダッシュボードと自社開発のグループウェアをフィックスさせようということで
今回作業を行いました。
wp-admin/includes/dashboard.phpにて
☆dashuboard.php
//////////////////////////////////////////////
/* ダッシュボードウィジェットをつくる①
—————————————- */
function my_dashboard_test() {
?>
<iframe src=”http://sys-guard.com/businessControl/todo/index.php” width=”100%” height=”800px”>この部分はインラインフレームを使用しています。</iframe>
<?php
}
function my_dashboard_test_setup() {
wp_add_dashboard_widget(‘my_dashboard_test’,__(‘業務リストTODO’),’my_dashboard_test’);
}
add_action(‘wp_dashboard_setup’,’my_dashboard_test_setup’);
//////////////////////////////////////////////////////
/* ダッシュボードウィジェットをつくる②
—————————————- */
echo ‘<div id =”normal-sortables” class=”meta-box-sortables”>’ ;
function example_dashboard_widget_function() {
echo file_get_contents(‘http://sys-guard.com/contents/wp-admin/includes/businessControl/todo/index.php’);
}
function example_add_dashboard_widgets() {
wp_add_dashboard_widget(‘example_dashboard_widget’, ‘業務リストTODO’, ‘example_dashboard_widget_function’);
}
add_action(‘wp_dashboard_setup’, ‘example_add_dashboard_widgets’ );
echo ‘</div>’;
///////////////////////////////////////////////////////
ダッシュボードにウィジェットを追加する方法は2通りできました。
①は<iframe src=”URL”></iframe>で呼び出し
②はecho file_get_contents(‘URL’);関数でファイルをゲットして呼び出してきます。
結果として①のほうが処理が早かったので①を採用しました。
②は①に比べ処理が重く、①はページ遷移をiframe内で行ってくれてスマートな処理です。<iframe>便利ですー!
///////////////////////////////////////////////////////
RSSウィジェットをつくる。
simple_load_file()関数を使う
->item as $item
$x[‘link’] = (string)$item->link;
$x[‘title’] = (string)$item->title;
などはSimpleXMLElementオブジェクト
//////////////////////////////////
以下実際のコード
//////////////////////////////////
add_action(‘wp_dashboard_setup’, ‘my_custom_dashboard_widgets’);
function my_custom_dashboard_widgets() {
global $wp_meta_boxes;
wp_add_dashboard_widget(‘custom_help_widget’, ‘スタッフ外部ブログ’, ‘dashboard_text’);
}
function dashboard_text() {
//フィード取得
$rss_1 = simplexml_load_file(“http://feedblog.ameba.jp/rss/ameblo/amebloID/rss20.xml”);
$rss_2 = simplexml_load_file(“http://feedblog.ameba.jp/rss/ameblo/yuu-sys-guard/rss20.xml”);
$rss_3 = simplexml_load_file(“http://feedblog.ameba.jp/rss/ameblo/amebloID/rss20.xml”);
echo “ほげほげ社員<hr>”;
$i = 0; foreach ($rss_1->channel->item as $item) {
if( $i++ == 5 ) { break; }
$link = $item->link;
$title = $item->title;
$date = date(‘Y.m.d’, strtotime($item->pubDate));
if(substr($title, 0, 2) != “PR”){ echo $date.'<a href=”‘ . $link . ‘” target=”_blank”>’ . $title . ‘</a></br>’;}
}
echo “優社員<hr>”;
$i = 0; foreach ($rss_2->channel->item as $item) {
if( $i++ == 5 ) { break; }
$link = $item->link;
$title = $item->title;
$date = date(‘Y.m.d’, strtotime($item->pubDate));
if(substr($title, 0, 2) != “PR”){ echo $date.'<a href=”‘ . $link . ‘” target=”_blank”>’ . $title . ‘</a></br>’;}
}
echo “げふんげふん社員<hr>”;
$i = 0; foreach ($rss_3->channel->item as $item) {
if( $i++ == 5 ) { break; }
$link = $item->link;
$title = $item->title;
$date = date(‘Y.m.d’, strtotime($item->pubDate));
if(substr($title, 0, 2) != “PR”){ echo $date.'<a href=”‘ . $link . ‘” target=”_blank”>’ . $title . ‘</a></br>’;}
}
}
//上記のように繰り返しで増やせます。
//////////////////////////////////////////
じゃじゃーん☆
twitterの場合
$xml=simplexml_load_file(‘https://api.twitter.com/1/statuses/user_timeline/twitterID.xml?count=5&include_rts=1callback=?’);
$i= 0;
foreach($xml ->status as $item){
if(++$i>4) break;
$text = (string)$item->text;
$id = (string)$item->id;
$text = mb_strimwidth($text,0,48);
print (“<p><a href=https://twitter.com/twitterID/status/”.$id.”>”.$text.” …</a></p>”);
}
仕様変更でsimplexml_load_fileで取得できなくなるようです。
その都度対応していく感じですね。