diff --git a/contact.php b/contact.php index a9e499723..da616608a 100644 --- a/contact.php +++ b/contact.php @@ -11,9 +11,9 @@ | GNU General Public License (http://gnu.org). | | $Source: /cvs_backup/e107_0.8/contact.php,v $ -| $Revision: 1.1.1.1 $ -| $Date: 2006-12-02 04:33:02 $ -| $Author: mcfly_e107 $ +| $Revision: 1.2 $ +| $Date: 2007-03-26 06:34:56 $ +| $Author: e107coders $ +----------------------------------------------------------------------------+ */ require_once("class2.php"); @@ -37,9 +37,9 @@ if(isset($_POST['send-contactus'])){ $error = ""; - $sender_name = $tp->toEmail($_POST['author_name'],TRUE); + $sender_name = $tp->toEmail($_POST['author_name'],TRUE,"rawtext"); $sender = check_email($_POST['email_send']); - $subject = $tp->toEmail($_POST['subject'],TRUE); + $subject = $tp->toEmail($_POST['subject'],TRUE,"rawtext"); $body = $tp->toEmail($_POST['body'],TRUE); // Check Image-Code diff --git a/e107_handlers/e_parse_class.php b/e107_handlers/e_parse_class.php index 628902e9c..8641dfa24 100644 --- a/e107_handlers/e_parse_class.php +++ b/e107_handlers/e_parse_class.php @@ -11,9 +11,9 @@ | GNU General Public License (http://gnu.org). | | $Source: /cvs_backup/e107_0.8/e107_handlers/e_parse_class.php,v $ -| $Revision: 1.7 $ -| $Date: 2007-03-11 20:52:47 $ -| $Author: e107steved $ +| $Revision: 1.8 $ +| $Date: 2007-03-26 06:34:56 $ +| $Author: e107coders $ +----------------------------------------------------------------------------+ */ if (!defined('e107_INIT')) { exit; } @@ -761,14 +761,14 @@ class e_parse return $text; } - function toEmail($text,$posted="") + function toEmail($text,$posted="",$mods="parse_sc, no_make_clickable") { if ($posted === TRUE && MAGIC_QUOTES_GPC) { $text = stripslashes($text); } - $text = $this->replaceConstants($text,"full"); - $text = $this->toHTML($text,TRUE,"parse_sc, no_make_clickable"); + $text = ($mods != "rawtext") ? $this->replaceConstants($text,"full") : $text; + $text = $this->toHTML($text,TRUE,$mods); return $text; } diff --git a/e107_plugins/gsitemap/e_module.php b/e107_plugins/gsitemap/e_module.php new file mode 100644 index 000000000..05da35cf7 --- /dev/null +++ b/e107_plugins/gsitemap/e_module.php @@ -0,0 +1,32 @@ +register("newspost", "pingit"); + $e_event->register("newsupd", "pingit"); + +function pingit($vals) +{ + global $admin_log; + require(e_PLUGIN."gsitemap/weblog_pinger.php"); + $pinger = new Weblog_Pinger(); + // $pinger->ping_ping_o_matic("Ekzemplo", "http://www.ekzemplo.com/"); + + $xml_rpc_server = "blogsearch.google.com"; + $xml_rpc_port = 80; + $xml_rpc_path = "/ping/RPC2"; + $xml_rpc_method = "weblogUpdates.extendedPing"; + $weblog_name = SITENAME; + $weblog_url = $_SERVER['HTTP_HOST'].e_HTTP; + $changes_url = $_SERVER['HTTP_HOST'].e_HTTP."news.php?extend.".$vals['news_id']; + $cat_or_rss = $_SERVER['HTTP_HOST'].e_PLUGIN_ABS."rss_menu/rss.php?1.2"; + $extended = TRUE; + + $pinger->ping($xml_rpc_server, $xml_rpc_port, $xml_rpc_path, $xml_rpc_method, $weblog_name, $weblog_url, $changes_url, $cat_or_rss, $extended); + $log = strip_tags($vals['news_title']."\n".$changes_url."\n".$cat_or_rss."\n".$pinger->smessage); + $admin_log->log_event("Gsitemap Google-ping",$log, 4); + +} + +?> diff --git a/e107_plugins/gsitemap/weblog_pinger.php b/e107_plugins/gsitemap/weblog_pinger.php new file mode 100644 index 000000000..f3b691d8f --- /dev/null +++ b/e107_plugins/gsitemap/weblog_pinger.php @@ -0,0 +1,228 @@ +ping_ping_o_matic("Ekzemplo", + "http://www.ekzemplo.com/"); + +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, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + +// include the XML-RPC class library +require_once('xmlrpc/xmlrpc.inc'); + +class Weblog_Pinger { + // Weblogs.Com XML-RPC settings + var $weblogs_com_server = "rpc.weblogs.com"; + var $weblogs_com_port = 80; + var $weblogs_com_path = "/RPC2"; + var $weblogs_com_method = "weblogUpdates.ping"; + var $weblogs_com_extended_method = "weblogUpdates.extendedPing"; + // Blo.gs XML-RPC settings + var $blo_gs_server = "ping.blo.gs"; + var $blo_gs_port = 80; + var $blo_gs_path = "/"; + var $blo_gs_method = "weblogUpdates.ping"; + // Ping-o-Matic XML-RPC settings + var $ping_o_matic_server = "rpc.pingomatic.com"; + var $ping_o_matic_port = 80; + var $ping_o_matic_path = "/RPC2"; + var $ping_o_matic_method = "weblogUpdates.ping"; + // Technorati XML-RPC settings + var $technorati_server = "rpc.technorati.com"; + var $technorati_port = 80; + var $technorati_path = "/rpc/ping"; + var $technorati_method = "weblogUpdates.ping"; + // Audio.Weblogs.Com XML-RPC settings + var $audio_weblogs_com_server = "audiorpc.weblogs.com"; + var $audio_weblogs_com_port = 80; + var $audio_weblogs_com_path = "/RPC2"; + var $audio_weblogs_com_method = "weblogUpdates.ping"; + // log settings + var $log_file = ""; + var $log_level = "full"; // full, short, or none; + var $smessage = ""; + var $software_version = "1.3"; + var $debug = TRUE; + + // report errors + function report_error($message) { + error_log("Weblog Pinger: " . $message); + } + + /* Ping Weblogs.Com to indicate that a weblog has been updated. Returns true + on success and false on failure. */ + function ping_weblogs_com($weblog_name, $weblog_url, $changes_url = "", $category = "") { + return $this->ping($this->weblogs_com_server, $this->weblogs_com_port, + $this->weblogs_com_path, $this->weblogs_com_method, $weblog_name, + $weblog_url, $changes_url, $category); + } + + /* Ping Blo.gs to indicate that a weblog has been updated. Returns true on success + and false on failure. */ + function ping_blo_gs($weblog_name, $weblog_url, $changes_url = "", $category = "") { + return $this->ping($this->blo_gs_server, $this->blo_gs_port, + $this->blo_gs_path, $this->blo_gs_method, $weblog_name, $weblog_url, + $changes_url, $category); + } + + /* Ping Technorati to indicate that a weblog has been updated. Returns true on + success and false on failure. */ + function ping_technorati($weblog_name, $weblog_url, $changes_url = "", $category = "") { + return $this->ping($this->technorati_server, $this->technorati_port, + $this->technorati_path, $this->technorati_method, $weblog_name, $weblog_url, + $changes_url, $category); + } + + /* Ping all of the above services to indicate that a weblog has been updated. + Returns true on success and false on failure. */ + function ping_all($weblog_name, $weblog_url, $changes_url = "", $category = "") { + $error[0] = $this->ping_technorati($weblog_name, $weblog_url, $changes_url, $category); + $error[1] = $this->ping_weblogs_com($weblog_name, $weblog_url, $changes_url, $category); + $error[2] = $this->ping_blo_gs($weblog_name, $weblog_url, $changes_url, $category); + $all_ok = $error[0] & $error[1] & $error[2]; + return array($all_ok, $error); + } + + /* Ping Pingomatic to indicate that a weblog has been updated. Returns true on success + and false on failure. */ + function ping_ping_o_matic($weblog_name, $weblog_url, $changes_url = "", $category = "") { + return $this->ping($this->ping_o_matic_server, $this->ping_o_matic_port, + $this->ping_o_matic_path, $this->ping_o_matic_method, $weblog_name, + $weblog_url, $changes_url, $category); + } + + /* Ping Audio.Weblogs.Com to indicate that a weblog with a podcast has been updated. + Returns true on success and false on failure. */ + function ping_audio_weblogs_com($weblog_name, $weblog_url, $changes_url = "", + $category = "") { + + return $this->ping($this->audio_weblogs_com_server, $this->audio_weblogs_com_port, + $this->audio_weblogs_com_path, $this->audio_weblogs_com_method, $weblog_name, + $weblog_url, $changes_url, $category); + } + + /* Ping Weblogs.Com (extended version) to indicate that a weblog has been updated. + Returns true on success and false on failure. */ + function ping_weblogs_com_extended($weblog_name, $weblog_url, $changes_url, $rss_url) { + if ($this->debug) $this->report_error( + "Sending extended ping to Weblogs.Com for " + . "$weblog_name, $weblog_url, $changes_url, $rss_url"); + return $this->ping($this->weblogs_com_server, $this->weblogs_com_port, + $this->weblogs_com_path, $this->weblogs_com_extended_method, $weblog_name, + $weblog_url, $changes_url, $rss_url, true); + } + + /* Multi-purpose ping for any XML-RPC server that supports the Weblogs.Com interface. */ + function ping($xml_rpc_server, $xml_rpc_port, $xml_rpc_path, $xml_rpc_method, $weblog_name, $weblog_url, $changes_url, $cat_or_rss, $extended = false) + { + + // build the parameters + $name_param = new xmlrpcval($weblog_name, 'string'); + $url_param = new xmlrpcval($weblog_url, 'string'); + $changes_param = new xmlrpcval($changes_url, 'string'); + $cat_or_rss_param = new xmlrpcval($cat_or_rss, 'string'); + $method_name = "weblogUpdates.ping"; + if ($extended) $method_name = "weblogUpdates.extendedPing"; + + if ($cat_or_rss != "") { + $params = array($name_param, $url_param, $changes_param, $cat_or_rss_param); + $call_text = "$method_name(\"$weblog_name\", \"$weblog_url\", \"$changes_url\", \"$cat_or_rss\")"; + } else { + if ($changes_url != "") { + $params = array($name_param, $url_param, $changes_param); + $call_text = "$method_name(\"$weblog_name\", \"$weblog_url\", \"$changes_url\")"; + } else { + $params = array($name_param, $url_param); + $call_text = "$method_name(\"$weblog_name\", \"$weblog_url\")"; + } + } + + // create the message + $message = new xmlrpcmsg($xml_rpc_method, $params); + $client = new xmlrpc_client($xml_rpc_path, $xml_rpc_server, + $xml_rpc_port); + $response = $client->send($message); + // log the message + $this->log_ping("Request: " . $call_text); + $this->log_ping($message->serialize(), true); + if ($response == 0) { + $error_text = "Error: " . $xml_rpc_server . ": " . $client->errno . " " + . $client->errstring; + $this->report_error($error_text); + $this->log_ping($error_text); + return false; + } + if ($response->faultCode() != 0) { + $error_text = "Error: " . $xml_rpc_server . ": " . $response->faultCode() + . " " . $response->faultString(); + $this->report_error($error_text); + return false; + } + $response_value = $response->value(); + if ($this->debug) $this->report_error($response_value->serialize()); + $this->log_ping($response_value->serialize(), true); + $fl_error = $response_value->structmem('flerror'); + $message = $response_value->structmem('message'); + + // read the response + if ($fl_error->scalarval() != false) { + $error_text = "Error: " . $xml_rpc_server . ": " . $message->scalarval(); + $this->report_error($error_text); + $this->log_ping($error_text); + return false; + } + + return true; + } + + // save ping data to a log file + function log_ping($message, $xml_data = false) { + $this->smessage = $xml_data." ".$message; + return; +/* if ($this->log_level == "none") { + return; + } + if (($this->log_level == "short") & ($xml_data)) { + return; + } + if (!is_writable($this->log_file)) { + $this->report_error("File {$this->log_file} is not writable"); + return; + } + $fhandle = fopen($this->log_file, "a"); + fwrite($fhandle, $message . "\r\n"); + fclose($fhandle);*/ + } +} +?>