. */ # 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);} ?> kitesurfing | Kite 2012 - Part 4
Wednesday, April 24, 2024

Kite 2012

Kitesurfing News Year 2012-2016!

The Kite Show

Posted by kite2012 On May - 5 - 2012

Episode six of the kite show brings us 40 minutes of kite action! We´ll see and interview with Aaron Hadlow who’s back after his injury that put him out of order for nine months. We’ll also meet the Best designers Peter Stiewe and Jordi Modolell to find out more about their awesome jobs. Further Andre Phillip explains why the movie Island Time became such a success featuring Sam Light where he starts his back mobe instructional series beginning with the back roll and back-to-toe. Ruben Lenten talks about the highlights of the Len10 Mega Loop Challenge in Cape Town and Aaron Hadlow interviews the winner Lewis Crathern.

Related External Links

BEST TS TEST

Posted by kite2012 On May - 5 - 2012

Best kiteboarding rider Jaime Piñol testing to some of the latest BEST models to see how they perform when doing kiteloops.

Related External Links

Kitesurfing in Sri Lanka

Posted by kite2012 On May - 3 - 2012

The people in Sri Lanka seems to have amazingly good conditions for kitesurfing! Kitesurfinglanka.com is a kiteschool on the north west coast of Sri Lanka, on the peninsula of Puttalam. Here you´ll find more than a dozen spots with flat water and not over crowded with surfers, a paradise both for beginners and more advanced riders. The wind blows at an average of 18-20 knots – 24/7 during May to October. Sounds pretty good to me, huh?

Related External Links

Kai Lenny – Episode 3

Posted by kite2012 On May - 3 - 2012

Kai Lenny is a guy that probably spend more time in the water than on land… he masters kitesurfing, SUP, wavesurfing and windsurfing. Red Bull is currently running a series with Kai Lenny “Positively Kai”. Stay tuned for coming episodes :)

Related External Links

Perfect kite session

Posted by kite2012 On May - 2 - 2012

I just came across this nice little kite video from an unknown kitesurfer. It looks like this guy has found a great spot and it really looks like he was having an epic kite session! The spot seems to be called La Palme :)

Top Hat Classic

Posted by kite2012 On May - 1 - 2012

The lack of cool kitesurfing videos this week force me to add something old… but old videos don’t necessary have to be bad :) This old classic clip featuring “Top Hat” and a guy called Erik Eck is so damn funny that I just had to post it here on kite2012. Prepare for a good laugh if you havn’t already seen this awesome clip :)

Ocean Rodeo & Reef Girls

Posted by kite2012 On April - 27 - 2012

This is not the newest kitesufing video, but still worth posting here for reasons that should be quite obvious… What we see in this video is the Ocean Rodeo team featuring Jeremie Tronet, Linn Svendsen, Shannon Best, Kris Kinn, Melissa Gill, Jon Mc Cabe and Juan Carlos Morales who seems to have find an awesome spot at the islands of Puerto Rico in the Caribbean.

Hatteras 2012 Daniel Koenig and Stefan Koenig

Posted by kite2012 On April - 26 - 2012

Two for me unknown brothers, Daniel and Stefan Koenig, have shot this video in Cape Hatteras, North Carolina. It’s nice to for once see some innovative kitesurfing, not just the usual unhooked 1080’s ala Aaron Hadlow style :)

Related External Links

Kiteboarding in the Olympics 2016

Posted by kite2012 On April - 23 - 2012

The International Sailing Federation (ISAF) has decided to add ten kiteboarding events for the 2016 Olympic Sailing Competition. The confirmation was held in 2011 at the ISAF Mid-Year Meeting in St Petersburg, Russia.
Göran Petersson, the ISAF President, advocated for kiteboarding for more than three hours before the ten events were decided. More than 50 Submissions were received for consideration and we can be pleased to anounce that 10 of them were selected. All events are within racing, so we can forget freestyle and old school this time.

The ten events selected by the ISAF Council for the 2016 Olympic Sailing Competition are:

Men’s Board and/or Kiteboard – evaluation
Women’s Board and/or Kiteboard – evaluation
Men’s One Person Dinghy – Laser
Women’s One Person Dinghy – Laser Radial
Men’s 2nd One Person Dinghy – Finn
Men’s Skiff – 49er
Women’s Skiff – Evaluation
Men’s Two Person Dinghy – 470
Women’s Two Person Dinghy – 470
Mixed Two Person Multihull – Evaluation

Some people are already training for the Olympics 2016, such as Annabel van Westerop as seen here in this video:

Related External Links

Kai Lenny – The King of Watersports!

Posted by kite2012 On April - 19 - 2012

Red Bull has a great job with their new billboard Kai Lenny! 19 years old Kai Lenny is a professional surfer and can ride pretty much everything that has a board. Give this guy a plank of wood and he´ll probably not hesitate taking it out for a ride in the Jaws at Maui!
The first video here is epic! Kai goes windsurfing, tow-in surfing, and kite surfing, all in one day – he is the king of watersports!

Kitesurfing in Puerto Rico

Posted by kite2012 On March - 26 - 2012

A nice kitesurfing video from Puerto Rico. The video was shot under an obviously epic session, perfect wind, flat water, nice and sunny, and with a some smoking hot audience on the beach! No wonder the guys did their best to impress on these girls ;)

Kitesurfing in Ireland

Posted by kite2012 On March - 25 - 2012

I don´t post shit videos on this site, that´s why you don’t see new clips on this site every damn day. The releases of good kitesurfing videos this week have been quite poor, but luckily I came across a video that is worthy to be published on kite2012! Good music and some nice slowmotion moves in this awesome video from the West Ireland! And take a look at the water in this video, it´s like a mirror! I wish my home spot was just like that! :)

Related External Links

Karolina Winkowska in South Africa 2012

Posted by kite2012 On March - 22 - 2012

Karolina Winkowska injured her ankle in Brazil and was forced to spend a whole long winter to rehabilitation. Good news is that she has come back, stronger and better than ever! Injures are common among professional kite riders, just look at Youri Zoon, Ruben Lenten and now Aaron Hadlow. The constant risk of hurting yourself when you’re kitekurfing can hold you back in your progression, but remeber this! Bones Heal, Chicks Dig Scars, Pain is Temporary, Glory is Forever!

Related External Links

In search for the perfect session!

Posted by kite2012 On March - 20 - 2012

sometimes you have kite sessions that just suck. Shitty wind, cold water and you seem to have lost everything that can be called flow. On the other hand, you sometimes have some sessions that are amazing! sometimes you might feel like you´re losing your passion for kitesurfing, then one day you have that perfect session when you once more realize that kitesurfing is best thing in life! The search for the perfect session never ends!

Related External Links

Tom’s kitchen episode 4

Posted by kite2012
May-14-2016 I Comments Off on Tom’s kitchen episode 4

We Love Kiteboarding

Posted by kite2012
Apr-22-2015 I Comments Off on We Love Kiteboarding

Te Tainui Kitesurfing Video by F-One

Posted by Emma Pat
Nov-19-2014 I Comments Off on Te Tainui Kitesurfing Video by F-One

Red Bull King of the Air 2015 – Rule the Sky

Posted by Emma Pat
Nov-17-2014 I Comments Off on Red Bull King of the Air 2015 – Rule the Sky

A new video from Kite 2013

Posted by kite2012
Mar-20-2013 I Comments Off on A new video from Kite 2013

What do to when it´s not too windy

Posted by kite2012
Oct-11-2012 I Comments Off on What do to when it´s not too windy

How to film yourself while kitesurfing

Posted by kite2012
Oct-6-2012 I Comments Off on How to film yourself while kitesurfing

Kiteloop Crash

Posted by kite2012
Sep-22-2012 I Comments Off on Kiteloop Crash

Cross the Atlantic ocean by a kite!

Posted by kite2012
Sep-21-2012 I Comments Off on Cross the Atlantic ocean by a kite!