BB-SW172A は 30fps でのモニタリングと同時にFTP定期アップロード動作を行うことが出来ます。
そこで、LAN環境では 30fps でのモニタリングを行い、Web公開は FTP定期アップロードの画像を使用します。
Web公開用に3本のコードを書きました。
最新から1つ前の画像を表示するショートコード
FTP定期アップロードされた画像が格納されたディレクトリから、最新から1つ前の画像を表示するショートコードを functions.php に記述します。
最新から1つ前の画像を表示するのは、アップロード中の画像を表示することを避けるためです。
[livetopdsp] をウィジェット等に記述することで、最新から1つ前の画像を表示します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
function livetopdspfunc() { // ショートコードの本体 ob_start(); // バッファを有効に $liveupdir = 'wp-content/uploads/live'; // 画像格納ディレクトリ $errimgurl = get_stylesheet_directory_uri() . '/images/cyouseicyuu.jpg'; // エラー時表示画像 // 全ての画像のファイル名を配列にスタック&降順(最新順)ソートし、最新を削除、先頭を表示 $stack = array(); foreach ( glob( $liveupdir . '/*.jpg' ) as $filename ) { // jpgファイルを検索 $stack[] = basename( $filename ); // ファイル名を格納 } if ( count( $stack ) < 2 ) { // 画像2個未満はエラー echo '<a href="' . $errimgurl . '" title="ライブ画像は存在しません。"><img src="' . $errimgurl . '" alt="ライブ画像は存在しません。" /></a>'; } else { arsort( $stack ); // 降順ソート array_shift( $stack ); // 配列の先頭を削除 echo '<a href="' . site_url() . "/$liveupdir/" . $stack[0] . '" title="最新ライブ画像"><img src="' . site_url() . "/$liveupdir/" . $stack[0] . '" alt="最新ライブ画像" /></a>'; // 画像表示 } return ob_get_clean(); // バッファを出力 } add_shortcode('livetopdsp', 'livetopdspfunc'); |
古い画像を自動的に削除する
FTP定期アップロードされた画像が格納されたディレクトリから、古い画像を自動的に削除するプログラムをcron設定により、毎日実行し古い画像を削除します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
<?php date_default_timezone_set( 'Asia/Tokyo' ); $expire = strtotime( "24 hours ago" ); // 1日前 $dir = dirname(__FILE__) . '/wp-content/uploads/live/'; $list = scandir( $dir ); foreach( $list as $value ) { $file = $dir . $value; if ( !is_file( $file ) ) continue; $mod = filemtime( $file ); if ( $mod < $expire ) { chmod( $file, 0777 ); unlink( $file ); } } ?> |
1日前(24時間前)の画像を削除します。
一覧表示する
FTP定期アップロードされた画像が格納されたディレクトリから、最新順に最新画像を除いて一覧表示するショートコードを functions.php に記述します。
最新から1つ前の画像を表示するのは、アップロード中の画像を表示することを避けるためです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
function livedspfunc() { // ショートコードの本体 ob_start(); // バッファを有効に $liveupdir = 'wp-content/uploads/live'; // 画像格納ディレクトリ $errimgurl = get_stylesheet_directory_uri() . '/images/cyouseicyuu.jpg'; // エラー時表示画像 // 全ての画像のファイル名を配列にスタック&降順(最新順)ソートし、最新を削除、先頭を表示 $stack = array(); foreach ( glob( $liveupdir . '/*.jpg' ) as $filename ) { // jpgファイルを検索 $stack[] = basename( $filename ); // ファイル名を格納 } if ( count( $stack ) < 2 ) { // 画像2個未満はエラー echo 'ライブ画像は存在しません。'; } else { arsort( $stack ); // 降順ソート array_shift( $stack ); // 配列の先頭を削除 foreach ( $stack as $filename ) { echo '<div class="livecell">'; echo '<a href="' . site_url() . "/$liveupdir/" . $filename . '" title="' . $filename . '" rel="lightbox"><img src="' . site_url() . "/$liveupdir/" . $filename . '" class="livethumb" alt="' . $filename . '" /></a>'; // 画像表示 $filepath = ABSPATH . "$liveupdir/" . $filename; echo '<br />'; echo date( 'Y年m月d日 H時i分s秒', filemtime( $filepath ) + 32400 ); echo '</div>'; } } return ob_get_clean(); // バッファを出力 } add_shortcode('livedsp', 'livedspfunc'); |
[livedsp] を固定ページ等に記述することで、最新順に最新画像を除いて一覧表示します。