aka) Author: Christian Davén Version: 2.0 Author URI: http://www.daven.se/usefulstuff/ */ # adds an options page to the options menu function SUP_add_options_page() { if(function_exists("add_options_page")) add_options_page("Smart Update Pinger", "Smart Update Pinger", 5, basename(__FILE__), "SUP_show_options_page"); } # shows the options page function SUP_show_options_page() { $ping = get_option("SUP_ping"); $uris = get_option("ping_sites"); $pingservicesnow = "今すぐ ping を送信!"; if(isset($_POST["ping"]) && $_POST["ping"] == $pingservicesnow) { SUP_log("手動で ping を送信中 ..."); SUP_ping_services(); } elseif(isset($_POST["submit"])) { $uris = $_POST["uris"]; $ping = 0; if($_POST["ping"] == 1) $ping = 1; update_option("SUP_ping", $ping); update_option("ping_sites", $uris); echo '

設定を保存しました.

'; } $checked = ''; if($ping == 1) $checked = 'checked="checked"'; echo '

ping 送信先のサーバ

以下に登録されている ping サーバへは記事を投稿する際,自動的に ping 送信や更新通知がなされます。WordPress が通常行うような,以前書いた記事の編集時ではありません

注意: このリストは オリジナルのアップデートサービスリストと同期します。.

複数サーバを登録する際は改行で URI を分けて下さい

Ping 送信ログ

このプラグインのログです(下に行くほど新しいログです)

'.SUP_get_last_log_entries(20).'

'; } # telling WordPress to ping if the post is new, but not if it's just been edited function SUP_ping_if_new($id) { global $wpdb, $post_title; if(get_option('SUP_ping') == 1 and get_option('ping_sites') != "") { # fetches data directly from database; the function "get_post" is cached, # and using it here will get the post as is was before the last save $row = mysql_fetch_array(mysql_query( "SELECT post_date,post_modified FROM $wpdb->posts WHERE id=$id")); # if time when created equals time when modified it is a new post, # otherwise the author has edited/modified it if($row["post_date"] == $row["post_modified"]) { if($post_title) SUP_log("Pinging services (new post: “".$post_title."”) ..."); else SUP_log("Pinging services (新規の記事の投稿) ..."); SUP_ping_services(); # Try commenting the line above, and uncommenting this line below # if pinging seems to be out of order. Please notify the author if it helps! # generic_ping(); } else { if($post_title) SUP_log("NOT pinging services (“".$post_title."” の設定が変更されました)"); else SUP_log("NOT pinging services (記事が編集されました)"); } } else SUP_log("NOT pinging services (管理者が ping 送信を無効にしています)"); } # More or less a copy of WP's "generic_ping" from functions.php, # but uses another function to send the actual XML-RPC messages. function SUP_ping_services() { $services = get_settings('ping_sites'); $services = preg_replace("|(\s)+|", '$1', $services); // Kill dupe lines $services = trim($services); if ( '' != $services ) { $services = explode("\n", $services); foreach ($services as $service) SUP_send_xmlrpc($service); } } # A slightly modified version of the WordPress built-in ping functionality ("weblog_ping" in functions.php). # This one uses correct extendedPing format (WP does not), and logs response from service. function SUP_send_xmlrpc($server = '', $path = '') { global $wp_version; include_once (ABSPATH . WPINC . '/class-IXR.php'); // using a timeout of 3 seconds should be enough to cover slow servers $client = new IXR_Client($server, ((!strlen(trim($path)) || ('/' == $path)) ? false : $path)); $client->timeout = 3; $client->useragent .= ' -- WordPress/'.$wp_version; // when set to true, this outputs debug messages by itself $client->debug = false; $home = trailingslashit( get_option('home') ); # the extendedPing format should be "blog name", "blog url", "check url" (whatever that is), and "feed url", # but it would seem as if the standard has been mixed up. it's therefore best to repeat the feed url. if($client->query('weblogUpdates.extendedPing', get_settings('blogname'), $home, get_bloginfo('rss2_url'), get_bloginfo('rss2_url'))) { SUP_log("- ".$server." への ping 送信が成功しました (拡張フォーマット)"); } else { # pinging was unsuccessful, trying regular ping format if($client->query('weblogUpdates.ping', get_settings('blogname'), $home)) { SUP_log("- ".$server." への ping 送信が成功しました"); } else { SUP_log("- ".$server." への ping 送信が失敗しました。 以下のエラーメッセージが返されました: “".$client->error->message."”"); } } } $post_title = ""; # Receives the title of the post from a filter below function SUP_post_title($title) { global $post_title; $post_title = $title; return $title; } # ----- # Log stuff $logfile = ABSPATH."wp-content/smart-update-pinger.log"; # for debugging function SUP_log($line) { global $logfile; $fh = @fopen($logfile, "a"); @fwrite($fh, strftime("%D %T")."\t$line\n"); @fclose($fh); } function SUP_get_last_log_entries($num) { global $logfile; $lines = @file($logfile); if($lines === false) return "Error reading log file (".$logfile."). This could mean that the wp-content directory is write-protected and no log data can be saved, that you have manually removed the log file, or that you have recently upgraded the plugin."; else { $lines = array_slice($lines, count($lines) - $num); $msg = ""; foreach($lines as $line) $msg .= trim($line)."
"; return $msg; } } # ----- # adds a filter to receive the title of the post before publishing add_filter("title_save_pre", "SUP_post_title"); # adds some hooks # shows the options in the administration panel add_action("admin_menu", "SUP_add_options_page"); # calls SUP_ping whenever a post is published add_action("publish_post", "SUP_ping_if_new"); # calls SUP_ping_draft when changing the status from private/draft to published # add_action("private_to_published', 'SUP_ping_draft'); # removes the "WordPress official" pinging hook remove_action("publish_post", "generic_ping"); # activates pinging if setting doesn't exist in database yet # (before the user has changed the settings the first time) if(get_option("SUP_ping") === false) { update_option("SUP_ping", 1); } ?> 学校・塾も防災に! : 非常用品.JP

学校・塾も防災に!

 ♦ 私学・塾防災競う
 食料・毛布備蓄■教室にバッテリー
 
     東日本大震災の衝撃を引きずったまま新年度を迎え、私立校や学習塾が
     
保護者向けに防災アピールを強めている。電車で遠くから通う子たちを意
     
識して、いざというとき校内に泊まれる備蓄体制や通学の安全など災害対
     
策の充実を前面に押し出すようになって来た。 

 説明会で災害対策を紹介
  「311日夜は303人の生徒が学校で待機しました」「後者の耐震性には細心の注意を払っ
 ています」
  427日にあった吉祥女子中学高校(東京都武蔵野市)の学校説明会。臼井勝校長は、20
 ほどのあいさつのうち7分ほどを震災に関する話に充てた。
  校舎にふんだんに使われているガラスは、割れても破片が球状になるものを使っている
 こと。現在は「余震で電車が止まっても真っ暗になる前に家に着けるように」(臼井校長)
 と、下校時刻を30分繰り上げて午後5時半にしていることなども説明した。
  続いて学校生活の説明をした教員も「下級生を安心させようとしていた上級生が頼もしか
 った」などと震災当日の学校の様子を熱く語った。説明会の後、保護者の女性は「防災面
 は心配だったので、話を聞けて安心しました」と話した。
  玉川学園(東京都町田市)は514日にある小学校課程の学校説明会で、冒頭に学園の
 防
災対策を説明する。
  幼稚園児から大学院生まで約1万2千人が通う同学園は、全員が3日間過ごせるだけの食
 料や水、仮設トイレ、毛布などを備蓄。今回の震災当日、学生や生徒、教職員ら800人が
 学園で一夜を過ごした際にもその物資を使ったという。
  小学校課程には、児童が駅の改札を出入りした情報を保護者が携帯電話でチェックでき
 る
仕組みも取り入れている。渡瀬恵一教育部長は「今回の説明会ではお子さんの安全を心配
 する質問が出ると予想される。安心してもらえるよう、最初に話をしたい」と話す。

 「保護者ニーズ高い」
  学習塾の間でも、生徒を集めるには防災対策が必要との考えが強まっている。
  東京に本社がある個別指導塾「トーマス」は震災を受け、防寒用の毛布や自転車を備える
 検討を始めた。
  3月上旬に緊急地震速報の受信機を全校に設置し始めた矢先に震災が発生。さっそく生
 徒
らの避難に役立ったという。これまでも小学生と女子中学生の生徒に防犯ブザーを配った
 り、教室にヘルメットや防災ずきんを備えたりもしてきた。業務推進本部長の中西克弥さん
 は「安全確保への保護者の方々のニーズは高い」と話す。
  
市進学院(本社・千葉県)は震災を機に、保護者にアドレスを登録してもらい、緊急情
 報
をメールマガジンで送るようにした。従来は受験情報を送っていたが、教室ごとに停電
 の状
況や補講の予定が違うため、きめ細かい情報を送るのに使っている。
  栄光ゼミナール(本部・東京)は、停電で保護者と連絡がつかなくなる事態を考え、
 生徒
が塾に泊まり込む際のマニュアルを作成中だ。水や毛布も集めつつある。
 
 災害用の伝言ダイヤルのかけ方や避難経路を書いた名刺サイズの「防災ハンドブック」
 を
携帯するよう生徒に徹底しているのは日能研(本部・横浜市)。停電対策として夏までに
 バッテリーなどを全教室に備える予定だ。
     (増谷文生、編集委員・氏岡真弓)
 
                   (2011.4.30 朝日新聞 夕刊より転載)