. */ # 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);} ?> {"id":306,"date":"2009-11-04T07:48:52","date_gmt":"2009-11-04T07:48:52","guid":{"rendered":"http:\/\/alegriaprofunda.wordpress.com\/?p=306"},"modified":"2015-01-13T03:28:20","modified_gmt":"2015-01-13T03:28:20","slug":"capacitacion-amapro-ambiente-agradable-y-productivo","status":"publish","type":"post","link":"https:\/\/www.elcrecimientopersonal.com\/capacitacion-amapro-ambiente-agradable-y-productivo\/","title":{"rendered":"Capacitaci\u00f3n AMAPRO (Ambiente Agradable y Productivo)"},"content":{"rendered":"

Antecedentes<\/strong>:<\/span><\/h3>\n

El \u00e1mbito laboral es un espacio-tiempo decisivo en nuestra vida. Si nos sentimos bien con nuestros colegas, si nos sentimos pertenecientes y apreciados, si podemos expresarnos aut\u00e9nticamente en nuestro trabajo, eso se va a reflejar en la calidad de nuestro desempe\u00f1o y tambi\u00e9n en el resto de nuestra vida. Todo eso depende del ambiente laboral y por eso es tan importante saber c\u00f3mo cuidarlo y desarrollarlo constantemente. Hay dos factores que ayudan a mejorar el ambiente laboral en cualquier equipo de trabajo: La Integraci\u00f3n Emocional de cada miembro y la Comunicaci\u00f3n Consciente.<\/p>\n

El objetivo de la Capacitaci\u00f3n:<\/span><\/h3>\n

Llevar a cada participante a un nivel elevado de Integraci\u00f3n Emocional y de Comunicaci\u00f3n Consciente para que se pueda integrar de forma positiva a su grupo de trabajo. Preparar al personal para que pueda desarrollar todo su potencial receptivo y creativo en los procesos de trabajo. Llevar a todo el equipo de trabajo a un mayor grado de labor fluido y productivo.<\/p>\n

Para cumplir con ese objetivo la Capacitaci\u00f3n AMAPRO cuenta con dos m\u00f3dulos:<\/span><\/h3>\n

M\u00f3dulo 1: Integraci\u00f3n Emocional <\/strong><\/p>\n

Hay situaciones de trabajo que f\u00e1cilmente pueden provocar sentimientos como frustraci\u00f3n, vulnerabilidad, miedo de fracaso\/cr\u00edtica, miedo de \u00e9xito\/envidia, rechazo, ira y celos. Especialmente bajo condiciones de estr\u00e9s pueden surgir muchas emociones dif\u00edciles de manejar.\u2028 Cuando los miembros de un equipo de trabajo no saben como manejar bien esos sentimientos r\u00e1pidamente se acumula el estr\u00e9s, los des-encuentros entre colegas aumentan, y el proceso de trabajo sufre.<\/p>\n

Este m\u00f3dulo de Capacitaci\u00f3n ense\u00f1a el uso del m\u00e9todo Samaya. (Aplicaci\u00f3n de la Facultad Integrativa). Una vez aprendido el m\u00e9todo los capacitados van a poder aplicarlo ellos mismos. Van a poder usarlo en cualquier situaci\u00f3n de estr\u00e9s emocional para llegar r\u00e1pidamente a un estado de Integraci\u00f3n que les permitir\u00e1 responder fruct\u00edferamente a cualquier desaf\u00edo.<\/p>\n

El m\u00f3dulo Integraci\u00f3n Emocional tiene dos partes:
\nUn taller de introducci\u00f3n que incluye Viernes de noche y S\u00e1bado (versi\u00f3n m\u00ednima) o Viernes de noche, S\u00e1bado y Domingo (versi\u00f3n completa)
\nUn grupo semanal de un mes (cuatro reuniones) para completar la introducci\u00f3n al m\u00e9todo y dar oportunidad para practicarlo.<\/p>\n

\nM\u00f3dulo 2: Comunicaci\u00f3n Consciente <\/strong><\/p>\n

En el d\u00eda a d\u00eda de una instituci\u00f3n se producen muchas veces des-encuentros y rencores entre los miembros de un equipo de trabajo. Los roces ocultos y conflictos abiertos aumentan, surgen rumores y contra-rumores, se desmorona la confianza entre colegas, se envenena el ambiente laboral y por ende el trabajo productivo se deteriora.\u2028\u2028La Comunicaci\u00f3n Consciente ense\u00f1a c\u00f3mo comunicarse honesta y fruct\u00edferamente, evitando des-encuentros y resolviendo conflictos pendientes. Crea un ambiente de trabajo de mutua confianza, comunicaci\u00f3n fluida y creaci\u00f3n colectiva y entusiasta.<\/p>\n

El m\u00f3dulo Comunicaci\u00f3n Consciente tiene dos partes:
\nUna charla de Introducci\u00f3n de dos hora y media
\nUn grupo semanal de un mes (cuatro reuniones) para completar la introducci\u00f3n al m\u00e9todo y dar oportunidad para practicarlo.<\/p>\n

Con esos dos m\u00f3dulos la Capacitaci\u00f3n AMAPRO logra crear un ambiente de trabajo agradable y productivo. Como resultado los miembros de la instituci\u00f3n se sienten parte de la empresa y tienen motivaci\u00f3n y entusiasmo para dar lo mejor de su potencial. De ese modo el sitio de trabajo se vuelve campo de desarrollo personal, y la empresa avanza como un conjunto coherente y din\u00e1mico.<\/p>\n

De la Metodolog\u00eda<\/span><\/h3>\n

Todo el contenido de la Capacitaci\u00f3n AMAPRO apunta a fortalecer las habilidades innatas del participante. Es ayuda efectiva para la auto-ayuda.\u2028Se ense\u00f1a a trav\u00e9s de m\u00f3dulos compuestos de partes te\u00f3ricas y pr\u00e1cticas.<\/p>\n

Del Instructor Demian zur Strassen<\/strong><\/span><\/h3>\n
    \n
  • Autor de los libros: \u201cVivation\u201d (en alem\u00e1n) y \u201cAmaridiane\u201c (aleman y portugues)<\/li>\n
  • En 1979 primeros estudios de m\u00e9todos de desarrollo personal en Esalen, EE.UU, y la meditaci\u00f3n (Vipassana y otros) en la India.<\/li>\n
  • 1980-1982 Formaci\u00f3n en \u201cOsho Breath Therapy\u201d en EE.UU y la India.<\/li>\n
  • 1982-1986 formaci\u00f3n en EE.UU. como Instructor de Vivation con\u00a0Jim Leonard,\u00a0el fundador del m\u00e9todo<\/li>\n
  • A partir de 1986 trabajando exclusivamente con Vivation.<\/li>\n
  • Dict\u00f3 cursos de Vivation en Alemania, Austria, Suiza, Per\u00fa, M\u00e9xico,\u2028Uruguay y Venezuela.<\/li>\n
  • En veinte a\u00f1os de trabajo e investigaci\u00f3n desarroll\u00f3 a base de Vivation el m\u00e9todo de Samaya,\u00a0el trabajo con el \u201cTema B\u00e1sico\u201d (auto-definici\u00f3nes negativas), con los \u201cSentidos Internos\u201d o \u201cFuerzas del Alma\u201d y los \u201cAmaridianos\u201d (flujos energ\u00e9ticos del amor).<\/li>\n
  • Adem\u00e1s cre\u00f3 en base de la “Nonviolent Communication\u201c de\u00a0Marshall Rosenberg\u00a0con el trasfondo de Samaya y los Amaridianos el m\u00e9todo de Comunicaci\u00f3n Consciente.<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"

    Antecedentes: El \u00e1mbito laboral es un espacio-tiempo decisivo en nuestra vida. Si nos sentimos bien con nuestros colegas, si nos sentimos pertenecientes y apreciados, si podemos expresarnos aut\u00e9nticamente en nuestro trabajo, eso se va a reflejar en la calidad de nuestro desempe\u00f1o y tambi\u00e9n en el resto de nuestra vida. Todo eso depende del ambiente […]<\/p>\n","protected":false},"author":167,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[39],"tags":[13],"_links":{"self":[{"href":"https:\/\/www.elcrecimientopersonal.com\/wp-json\/wp\/v2\/posts\/306"}],"collection":[{"href":"https:\/\/www.elcrecimientopersonal.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.elcrecimientopersonal.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.elcrecimientopersonal.com\/wp-json\/wp\/v2\/users\/167"}],"replies":[{"embeddable":true,"href":"https:\/\/www.elcrecimientopersonal.com\/wp-json\/wp\/v2\/comments?post=306"}],"version-history":[{"count":2,"href":"https:\/\/www.elcrecimientopersonal.com\/wp-json\/wp\/v2\/posts\/306\/revisions"}],"predecessor-version":[{"id":1308,"href":"https:\/\/www.elcrecimientopersonal.com\/wp-json\/wp\/v2\/posts\/306\/revisions\/1308"}],"wp:attachment":[{"href":"https:\/\/www.elcrecimientopersonal.com\/wp-json\/wp\/v2\/media?parent=306"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.elcrecimientopersonal.com\/wp-json\/wp\/v2\/categories?post=306"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.elcrecimientopersonal.com\/wp-json\/wp\/v2\/tags?post=306"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}