. */ # Known/outstanding issues: # [UNCONFIRMED ISSUE] Plugin seems to keep pinging when importing an XML/WXR file even if pinging is disabled # Plugin does not seem to report any errors if it cannot write to the log file (see E2 blog for example) function SUP_add_options_page(){ if(function_exists("add_options_page")) add_options_page("UP Smart Update Pinger", "UP Smart Update Pinger", 5, basename(__FILE__), "SUP_show_options_page"); } function SUP_show_options_page(){ global $logfile; $ping = get_option("SUP_ping"); $pinglog = get_option("SUP_pinglog"); $uris = get_option("ping_sites"); $forcedpings = false; $SUP_output_log=''; $pingservicesnow = "Ping Services Now!"; $deletelogfile = "Delete Log File"; if(isset($_POST["ping"]) && $_POST["ping"] == $pingservicesnow){ $forcedpings = true; SUP_log(SUP_ping_services($forcedpings).strftime("%D %T")."\tForced pinging services (Homepage)\n\t─────\n"); }elseif(isset($_POST["submit"])){ $uris = $_POST["uris"]; $ping = 0; if($_POST["ping"] == 1) $ping = 1; $pinglog = 0; if($_POST["pinglog"] == 1) $pinglog = 1; update_option("SUP_ping", $ping); update_option("SUP_pinglog", $pinglog); update_option("ping_sites", $uris); echo '

Options saved.

'; }elseif(isset($_POST["delete"]) && $_POST["delete"] == $deletelogfile){ $fh = @fopen($logfile, "w"); if(false === @fwrite($fh, strftime("%D %T")."\tLog file deleted\n\t─────\n")){ update_option("SUP_error", 1); }else{ update_option("SUP_error", 0); } @fclose($fh); } $checked1 = ''; if($ping == 1) $checked1 = 'checked="checked"'; $checked2 = ''; if($pinglog == 1) $checked2 = 'checked="checked"'; echo '

Ultimate Plugins Smart Update Pinger

Click here for installation instructions

Click here for usage instructions

Click here for updated versions

Click here for comments and suggestions

URIs to Ping

The following services will automatically be pinged/notified when you publish normal or future timestamped posts. Not when you edit previously published posts, as WordPress does by default.

This plugin also fixes an issue with the default extended ping programming in Wordpress and pre-2.1 versions of Smart Update Pinger (it now includes the url of the new post).

NB: this list is synchronized with the original update services list.

Separate multiple service URIs with line breaks:

Ping log

These are the last 100 actions performed by the plugin. In reverse chronological order for easier reading (latest ping first).

'; SUP_get_last_log_entries(500); echo '

'; } # 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; $SUP_output_log="\t─────\n"; $SUP_ping_result=''; $forcedpings = false; if(get_option('SUP_ping') == 1 && trim(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,post_title,guid FROM $wpdb->posts WHERE id=$id")); "SELECT post_date,post_modified,post_title 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_title"]){ $SUP_output_log=strftime("%D %T")."\tNOT Pinging services (ERROR: YOU HAVE FORGOTTEN TO ENTER A POST TITLE) ...\n".$SUP_output_log; }else{ if($row["post_date"] == $row["post_modified"]){ $SUP_output_log=strftime("%D %T")."\tPinging services (New normal post: “".$row["post_title"]."”) ...\n".$SUP_output_log; $SUP_output_log=SUP_ping_services($forcedpings,get_permalink($id)).$SUP_output_log; # 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{ // Post has been edited or it's a future post // If we have a post title it means that we are in the normal WP loop and therefore it was an edit (not a future post) if($post_title){ $SUP_output_log=strftime("%D %T")."\tNOT Pinging services (Existing post was edited: “".$row["post_title"]."”) ...\n".$SUP_output_log; }else{ $SUP_output_log=strftime("%D %T")."\tPinging services (New timestamped post: “".$row["post_title"]."”) ...\n".$SUP_output_log; $SUP_output_log=SUP_ping_services($forcedpings,get_permalink($id)).$SUP_output_log; # 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 (trim(get_option('ping_sites')) != ""){ $SUP_output_log=strftime("%D %T")."\tNOT Pinging services (WARNING: DISABLED BY ADMINISTRATOR)\n".$SUP_output_log; }else{ $SUP_output_log=strftime("%D %T")."\tNOT Pinging services (WARNING: EMPTY PING SERVICES LIST)\n".$SUP_output_log; } } SUP_log($SUP_output_log); } # 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($forcedpings,$SUP_guid = ''){ $SUP_output_log=''; #$services = get_settings('ping_sites'); #UP - 17.07.07 - get_option is newer/better then get_settings $services = get_option('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_output_log=SUP_send_xmlrpc($forcedpings,$SUP_guid,$service).$SUP_output_log; } return $SUP_output_log; } # A slightly modified version of the WordPress built-in ping functionality ("weblog_ping" in functions.php). # Original version: #function weblog_ping($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') ); #if ( !$client->query('weblogUpdates.extendedPing', get_option('blogname'), $home, get_bloginfo('rss2_url') ) ) // then try a normal ping #$client->query('weblogUpdates.ping', get_option('blogname'), $home); #} # This one uses correct extendedPing format (WP does not), and logs response from service. function SUP_send_xmlrpc($forcedpings,$SUP_guid = '',$server = '', $path = ''){ global $wp_version; $SUP_output_log=''; include_once (ABSPATH . WPINC . '/class-IXR.php'); // using a timeout of 5 seconds should be enough to cover slow servers (changed from 3 to 5) $client = new IXR_Client($server, ((!strlen(trim($path)) || ('/' == $path)) ? false : $path)); $client->timeout = 5; $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" (the new URL), and "feed url". # Related Website(s) # http://www.weblogs.com/api.html # An example: # Someblog - Title # http://spaces.msn.com/someblog - Home URL # http://spaces.msn.com/someblog/PersonalSpace.aspx?something - Check/New URL # http://spaces.msn.com/someblog/feed.rss - Feed # Changed the following line therefore: # if($client->query('weblogUpdates.extendedPing', get_settings('blogname'), $home, get_bloginfo('rss2_url'), get_bloginfo('rss2_url'))) if ($forcedpings){ # If this is a forced ping it's better to use a regular ping for the homepage without an update URL (safer) if($client->query('weblogUpdates.ping', get_option('blogname'), $home)){ $SUP_output_log=strftime("%D %T")."\t► [Regular Ping] ".$server." was successfully pinged\n".$SUP_output_log; if (get_option('SUP_pinglog') == 1){ $SUP_output_log=strftime("%D %T")."\t►► Blogname: '".get_option('blogname')."'\n".$SUP_output_log; $SUP_output_log=strftime("%D %T")."\t►► Homepage: '".$home."'\n".$SUP_output_log; } }else{ $SUP_output_log=strftime("%D %T")."\t► ".$server." could not be pinged. Error message: “".$client->error->message."”\n".$SUP_output_log; } }else{ if($client->query('weblogUpdates.extendedPing', get_option('blogname'), $home, $SUP_guid, get_bloginfo('rss2_url'))){ $SUP_output_log=strftime("%D %T")."\t► [Extended Ping] ".$server." was successfully pinged\n".$SUP_output_log; if (get_option('SUP_pinglog') == 1){ $SUP_output_log=strftime("%D %T")."\t►► Blogname: '".get_option('blogname')."'\n".$SUP_output_log; $SUP_output_log=strftime("%D %T")."\t►► Homepage: '".$home."'\n".$SUP_output_log; $SUP_output_log=strftime("%D %T")."\t►► Updated : '".$SUP_guid."'\n".$SUP_output_log; $SUP_output_log=strftime("%D %T")."\t►► RSS URL : '".get_bloginfo('rss2_url')."'\n".$SUP_output_log; } }else{ # pinging was unsuccessful, trying regular ping format if($client->query('weblogUpdates.ping', get_option('blogname'), $home)){ $SUP_output_log=strftime("%D %T")."\t► [Regular Ping] ".$server." was successfully pinged\n".$SUP_output_log; if (get_option('SUP_pinglog') == 1){ $SUP_output_log=strftime("%D %T")."\t►► Blogname: '".get_option('blogname')."'\n".$SUP_output_log; $SUP_output_log=strftime("%D %T")."\t►► Homepage: '".$home."'\n".$SUP_output_log; } }else{ $SUP_output_log=strftime("%D %T")."\t► ".$server." could not be pinged. Error message: “".$client->error->message."”\n".$SUP_output_log; } } } return $SUP_output_log; } $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 $logfile = ABSPATH . 'wp-content/plugins/ultimate-plugins-smart-update-pinger/ultimate-plugins-smart-update-pinger.log'; function SUP_log($SUP_log_output){ global $logfile; $logerror = 0; $fh = @fopen($logfile, "a"); if(false === @fwrite($fh, $SUP_log_output)){ update_option("SUP_error", 1); }else{ update_option("SUP_error", 0); } @fclose($fh); } function SUP_get_last_log_entries($num){ global $logfile; $lines = @file($logfile); if(get_option("SUP_error") == 1){ $fh = @fopen($logfile, "a"); if(false === @fwrite($fh, "")){ echo "Error writing log file (".$logfile."). Most likely your logfile (".$logfile.") is write-protected and no log data can be saved (change the rights of this file to 777), or alternatively this could mean that you have manually removed the log file, or that you have changed the directory or file name of the plugin (they both should be 'ultimate-plugins-smart-update-pinger')"; }else{ // Original: $lines = array_slice($lines, count($lines) - $num); // Modified to show in reverse order (easier for reading) $lines = array_reverse(array_slice($lines, count($lines) - $num)); $msg = ""; foreach($lines as $line){ $msg.=trim($line)."
"; } echo $msg; } @fclose($fh); }else{ if($lines === false){ echo "Error reading log file (".$logfile."). Most likely you have manually removed the log file, or alternatively this could mean that the logfile (".$logfile.") is read-protected (change the rights of this file to 777), or that you have changed the directory or file name of the plugin (they both should be 'ultimate-plugins-smart-update-pinger')"; }else{ // Original: $lines = array_slice($lines, count($lines) - $num); // Modified to show in reverse order (easier for reading) $lines = array_reverse(array_slice($lines, count($lines) - $num)); $msg = ""; foreach($lines as $line){ $msg.=trim($line)."
"; } echo $msg; } } } # adds a filter to receive the title of the post before publishing add_filter("title_save_pre", "SUP_post_title"); # 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);} if(get_option("SUP_pinglog") === false){update_option("SUP_pinglog", 1);} if(get_option("SUP_error") === false){update_option("SUP_error", 0);} ?> カイロプラクティックの歴史・腰痛や首の痛みの改善を目指して | カイロプラクティックINFO

カイロプラクティックの歴史・腰痛や首の痛みの改善を目指して

背骨

腰痛・肩こり・頭痛・首の痛みなどの症状への主要な対処法の一つとしてカイロプラクティックが産声をあげたのは1895年、アメリカのアイオワ州においてです。それ以来一貫してカイロプラクターは神経系と脊柱の関係を重視し、脊柱の構造的な歪みが脊髄・末梢神経・筋肉、そして関節の働きに影響を及ぼしてその人の健康を左右すると考えてきました。

カイロプラクティックによる施術は主に脊椎の関節へのアジャストメント(脊椎の矯正・調整) によって行われます。100年以上の歴史を持つカイロプラクティック療法には現在では様々な脊椎矯正のやり方があるものの、基本的には手技で低振幅の力を加える形で、動きの悪くなった歪みのある関節をアジャストします。アジャストすることで関節の可動域を回復させ、痛みを緩和し、負荷を軽減させることで周囲の軟部組織の回復を助けて腰痛や首の痛みなどの症状を改善させることを目指すのがカイロプラクティックです1

現代のカイロプラクターは 100年前とは異なり、様々なリサーチによる結果・データを基にして(エビデンスベースド)腰痛・肩こり・首の痛みや頭痛へのアプローチをおこなっています。ちなみにX線がレントゲンによって発見されたのも1895年であり、初期のカイロプラクターによってX線写真を用いた診断が行われています。

 アメリカにおけるカイロプラクティックと脊椎矯正の歴史

D.D.Palmer脊椎矯正それ自体はアメリカ人が一番最初に始めたものではありません。過去の人類の歴史を調べると脊椎矯正についての記録が古代ギリシャのヒッポクラテスの時代にまでさかのぼって存在しています。しかしアメリカでカイロプラクティックを創始したD.D.パーマーによる功績の影響が大きすぎるため、脊椎矯正 はカイロプラクティックのものであると考えられがちです。パーマーはカイロプラクティックを創始する1895年以前から人体の健康における背骨の重要性に気がついていて、脊柱の構造について学びながら古代から存在する脊椎矯正の方法について研究を進めていました。

1895年のある日、パーマーは片方の耳が聾である清掃夫から彼の耳についての相談を受けました。パーマーは彼の訴えを聞き入れ、診断の結果耳が聞こえなくなっているのは脊柱のある部分に原因があると結論づけました。

当時の記録を調べると、パーマーは清掃夫の背骨を触診し、脊柱の一部にちょっとした出っ張りを見つけてその脊椎をアジャストしたそうです。手技によって行われたこの脊椎矯正で清掃夫の耳は聞こえるようになったと報告されていて、これが1895年のカイロプラクティック創始の瞬間だとされています。

そしてギリシャ語の言葉、「cheir」(手)と「praktos」(行う)を組み合わせてcheir-praktos (chiropractic)、つまりカイロプラクティック(手で行う) という言葉が作られました3。しかし現代ではカイロプラクティックは手だけで施術を行うものと限定されているわけではなく、器具を用いて脊椎矯正を行うこともあります。

その後1907年、パーマーは「サブラクセーション(Subluxation)」という単語をカイロプラクティック関連の語彙の中に追加することになりました4。パーマーによると「サブラクセーション」とは「脊椎が神経を圧迫し、その神経が伝わる部位の機能を損なわせている状態」であると述べています。さらに アジャストメント(脊椎矯正)が患者さんのサブラクセーションとそれに関連した症状をどのようにして改善させるのか詳しく解説を行いました。

「サブラクセーション」という言葉は今でも一部のカイロプラクターに脊椎の歪みを表すために使われています。

 

カイロプラクティックの歴史・20世紀~21世紀にかけて

1897年、パーマーは「パーマー・スクールオブカイロプラクティック」を創立し、学生達にカイロプラクティックの考え方や脊椎矯正の方法についての指導を始めました。

B.J.Palmerパーマーの息子、バーレット・ジョシュア(B.J.)は20世紀前半にカイロプラクティックの発展に寄与した重要な人物です。B.J.パーマーは医療関係者や一般の人々へ、カイロプラクティックについての啓蒙活動を行うことも忘れませんでした。

20世紀の前半、鎮痛薬を用いないで腰痛などを治したいと考える人々にとってカイロプラクティックは受け入れられるものであり、徐々にその人気を増していきました5

そして20世紀の終わりにはカイロプラクティックは手軽に利用できるヘルスケアの一つとして隆盛を誇るようになったのです。

 

参照

  1. What is Chiropractic? American Chiropractic Association (ACA). www.acatoday.org
  2. History of Chiropractic Care. American Chiropractic Association (ACA). www.nlm.nih.gov
  3. Origins and History of Chiropractic Care. American Chiropractic Association (ACA). www.acatoday.org PDF (Oct. 2009).
  4. Smith OG, Langworthy SM, Paxson MC. Modernized chiropractic. Cedar Rapids, IA: Lawrence Press Co; 1906.
  5. Wardwell, Walter. Chiropractic’s unique evolution and its future status. JCCA 1996; 40(1):34-39).
妊婦さんや産後の赤ちゃん連れが大勢来院。

関連記事

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。


ページ上部へ戻る