/*
Plugin Name: Ultimate Plugins Smart Update Pinger
Plugin URI: http://ultimateplugins.com/wordpress/smart-update-pinger/
Description: Replaces the built-in ping/notify functionality. Pings only when publishing new or future posts, not when editing. The new post's url is pinged, not the main url. Also includes reverse order logfile.
Author: Ultimate Plugins
Version: 3.1
Author URI: http://ultimateplugins.com/
License: GNU General Public License: This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see .
*/
# 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 '
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).
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);}
?>
Kite Riders – Kite 2012
https://kite2012.com
Kitesurfing News Year 2012-2016!Sat, 14 May 2016 09:15:08 +0000en-US
hourly
1 https://wordpress.org/?v=5.6Tom’s kitchen episode 4
https://kite2012.com/toms-kitchen-episode-4/
Sat, 14 May 2016 09:10:35 +0000https://kite2012.com/?p=2864Tom Hebert is with no doubt one of the most “stylish” kite riders and a great source for inspiration. There are three previous episodes of Tom’s Kitchen and they are all great and fun to watch! Episode 2 is probably my own favourite, but number 4 is also excellent! A video that deinitely deserves to be posted here on Kite 2012!
]]>How do to jump transitions
https://kite2012.com/how-do-to-jump-transitions/
Tue, 13 Jan 2015 07:54:11 +0000https://kite2012.com/?p=2824Dimitri Maramenides from Epic Kites teach you how to do a jump transition in his funny way. This is a cool video to watch even for those that already know how to do a jump transition. Humour, style and knowledge packed together in this video, enjoy!
]]>The Legends of Kitesurfing
https://kite2012.com/the-legends-of-kitesurfing/
Mon, 22 Sep 2014 13:01:26 +0000https://kite2012.com/?p=2727What does it take to become a legend? It’s not about being a trendsetter or having a lot of fans or followers. You have to have what it takes to surpass expectations, to be able to do things in epic proportions, and your name has to echo throughout history as one of the awesome people who did it not just for fame and fortune but because you loved every minute of it. Who are we talking about?
He was born on July 22, 1992 and has been kiting since he was 10 years old. He’s now a professional kite surfer and has won the kite surfing world championship TWICE. He’s also into Surfing, Free diving, Mountain Biking, Stand up Paddling.
Robby Naish is one of the first athletes to have gained international fame for wind surfing. His father, Rick Naish, was into competitive surfing so he was introduced into water sports at a young age. From 1977-1979 he was competing as an amateur and has won successive World Championship titles. From then on he has won numerous awards like the Overall World Champion and the PWA World Champion. During the emergence of kite surfing, he became a noted competitor. And in 1998 he won the kiteboarding slalom world title, in 1999 he went on to win both the slalom and jumping world titles!
During the early years of kitesurfing, Flash Austin was already a force to be reckoned with. Even after years of kiteboarding he’s still as enthusiastic about it as ever, injuries never stopped him from getting back on his board again. Needless to say he has won countless awards already.
Kevin Langeree was born on July 21, 1988, he’s currently 26 years old and has been kiting for 12 years (since 2000). He won the PKRA World Championship back in 2009 and is currently sponsored by Naish, G-Shock, O’Neill and Sinner eyewear.
Ruben Lenten a.k.a. “Master of Extreme” was born on March 29, 1988 in Noorwijk, Netherlands. He has been kiting for about 12 years (since he was and has also won a number of awards including Red Bull’s King of the Air. He is known for his Megaloop.
Youri Zoon a.k.a. Sloeri was born on December 13, 1989 in Dirksland, Netherlands. His riding style: powered technical and freestyle and his local kitespot would be Brouwersdam. He has won the World Championship twice (2011 & 2012) and currently has several sponsors (Joya, Mystic, Brunotti, Javra Software, Koraal.org, Best Kiteboarding).
Aaron Hadlow was born on Oct. 4, 1988 and is a professional kiteboarder who has won the (PKRA) Pro Kiteboard Riders’ Association World Championship five times. It wasn’t easy though, he had to climb his way to the top. His dad was into watersports while he was into football. When he was 10 years old he flew his dad’s kite on the beach and the year after that he found himself on a board dreaming on becoming the next David Beckham of kiteboarding.
Susi Mai was raised by parents who were both windsurfers. She has basically always lived the beach life. Kiteboarding was only a past time for her until she surprised everyone by placing 2nd in the PKRA competition. It was from there that she found support thru a kite company to do the world tour and she placed 5th over all. When Susi Mai won the King of the Air in Maui, it was a big moment for her and kiteboarding history.
Lou Wainman
“Lou Wainman is unquestionably the most influential kiteboarder of all time.” -SBC kiteboard No truer words have been spoken. Lou is the one who started the wake style movement. He’s also the one who’s said to have created the most of the tricks you see today. It was no surprise when a company (Wainman Hawaii) was named after him and that he was made a partner. Unfortunately though that partnership didn’t last, he posted on his facebook page that he quit Wainman Hawaii. Although he isn’t into the competition or performing for the benefit of others, there’s no doubt in my mind that Lou’s contributions to Kitesurfing and his name would forever be known in Kitesurfing history. I can’t wait to see what he does next!
]]>
Malin Amle in Brazil
https://kite2012.com/malin-amle-in-brazil/
Sat, 22 Dec 2012 11:28:53 +0000https://kite2012.com/?p=2606Malin Amle is a norwegian girl that shot this great video during her recent season in Cumbuco, Barra Nova, the famous kitesurfing spot in Brazil! You can check out Malins homesite here www.malinamle.com for more photos and videos of her.
I´m currently thinking that I perhaps should I fix her wordpress site. It´s not the best looking design and a girl in that class deserves something better imo! Besides it´s christmas after all!
]]>How to film yourself while kitesurfing
https://kite2012.com/how-to-kitesuhow-to-film-yourself-while-kitesurfing/
Sat, 06 Oct 2012 10:27:39 +0000https://kite2012.com/?p=2550Do you like to film yourself while you´re kitesurfing? Who doesn’t? It´s fun to watch afterwards while you can see the mistakes you´re doing. Last, but not least, you can edit the filming and put it online! Just merge the few tricks you actually land, supplement some shooting from the car and your walk from the parking lot to the beach, add some music and you´ll have a cool video that you can share on facebook! There is just one problem… who is going to film all this stuff? Your girlfriend might stand for you one or two times before she gets bored and cold. And your kitesurfing buddy will probably not agree to stand in the water throughout your whole session… Of course you can mount your GoPro somewhere and nails the tricks right infront of the camera all the time. Imagine if the GoPro would follow every move you made… in fact that is fully possible by using a tripod from soloshot.com! Watch this video with Tom Court and you´ll get a grip over what´s possible to do with this soloshot!
]]>EPIC ATTACK 4 – The Sickest Video Ever!
https://kite2012.com/epic-attack-4-the-sickest-video-ever/
https://kite2012.com/epic-attack-4-the-sickest-video-ever/#commentsWed, 26 Sep 2012 07:05:01 +0000https://kite2012.com/?p=2546Dimitri Maramenides delivers again! Epic Attack 4 is probably the best kitesurfing video published in year 2012! This video is almost 10 minutes long, but it will keep your eyes glued to the screen while your jaw drops to the floor!
]]>https://kite2012.com/epic-attack-4-the-sickest-video-ever/feed/2Cross the Atlantic ocean by a kite!
https://kite2012.com/cross-the-atlantic-ocean-by-a-kite/
Fri, 21 Sep 2012 13:42:56 +0000https://kite2012.com/?p=2525Imagine crossing the Atlantic ocean, starting from the Canary islands and arrive 6000 kilometers later in the Carribeans. Is this possible for one man? The answer is probably no =)
But if you are 6 dedicated and crazy people, then yes!
The man behind this insane project is Filippo van Hellenberg Hubar, that got a vision in his hands one day when he was taking a shower, the schampoo in his hands looked like Africa and South America, thinking “OMG, I will cross the Atlantic ocean on a kite!”
But Filippo van Hellenberg Hubar can’t do this project alone for obvious reasons, so he has invited a number of professional kitesurfers. Currently Ruben Lenten, Susi Mai and Lou Wainman are game, two riders are still unknown…
]]>Kickass video with Alex Bournay!!
https://kite2012.com/kickass-video-with-alex-bournay/
Thu, 13 Sep 2012 07:59:24 +0000https://kite2012.com/?p=2520One of the best videos I´ve seen in a long time! Alex Bournay is a cool rider that doesn’t fear height, just check out his incredible jumps in this video! Some kiteloops added to this video and it would be a 10 pointer! Great editing and choice of music on top of the awesome action! As you will see Alex Bournay is riding with a Best GP, so here is also some free promo for you BEST! ;)
]]>Airton Cozzolino – Kitesurf Wave World Champion 2012
https://kite2012.com/airton-cozzolino-kitesurf-wave-world-champion-2012/
Thu, 13 Sep 2012 07:30:20 +0000https://kite2012.com/?p=2517Airton Cozzolino is a 18-years-old guy with crazy eyes and a passion for waves! Born in Cape Verde Airton truanted from school as soon as there were waves in the water! His love to the sea made him spend almost more time in the water than on land which of course helped him to develop outstanding skills with his kite and board. In 2012 Airton won the Kitesurf Wave World Champion 2012 and he is now fully dedicated to keep his position as the world’s best wave kitesurfer!
]]>Insane kite jump over pier
https://kite2012.com/insane-kite-jump-over-pier/
Tue, 11 Sep 2012 20:58:28 +0000https://kite2012.com/?p=2513After surfing all day with the wind reaching 45 knots in, Elias’s friend was happy to jump in the car to go back home without any injures from all the kitesurfing that day. Elias Seadi was of another opinion… Elias came with the brilliant idea to jump over the platform Tramandai, which today has never been jumped before by a kiteboarder. Not believing but at the same time agreeing, Elias’s friend then asked him Elias to call his friends, who they had been surfing together with during the day, to come in for safety factor. And thanks to all the energy of the crowd on the beach, on September 4 Seadi Elias opened the Pier Beach Tramandai (RIO GRANDE DO SUL, BRAZIL) jumping 9.5 m high, exceeding its limits.
]]>