Fatal error: Call to a member function scalarval() on a non-object in /[...path on my server...]/assets/modules/ping/modxping.inc.php on line 204
<?php
/*
* Class: WeblogUpdate.ping Sending
*
* Author: ZeRo
* Version: 1.00
* Date: 01/02/2007
*/
class MODxPing {
var $ping_sites;
var $ping_lang;
var $sitemap_name;
var $type;
var $plugin_mode; // 0:manual 1:automatic 2:automatic&manual
function MODxPing($type = "module",$list=null,$sitemap=null,$plugin_mode=0)
{
global $modx;
$this->type = strtolower($type);
if(isset($GLOBALS['manager_language']) && file_exists($modx->config['base_path']."assets/modules/ping/lang/".$GLOBALS['manager_language'].".inc.php")) {
include_once $modx->config['base_path']."assets/modules/ping/lang/".$GLOBALS['manager_language'].".inc.php";
}
else {
include_once $modx->config['base_path']."assets/modules/ping/lang/english.inc.php";
}
$this->ping_lang = $ping_lang;
$chunk_data = $modx->getChunk($list);
$chunk_data = str_replace("\r\n","\n",$chunk_data);
$this->ping_sites = explode("\n",$chunk_data);
$this->sitemap_name = $sitemap;
$this->plugin_mode = $plugin_mode;
}
//
// view Select
function viewSite()
{ $output = '';
for ($i = 0;$i < count($this->ping_sites);$i++)
{
$output .= '<input name="ping_tbl[]" type="checkbox" value="'.$i.'" checked>'.$this->ping_sites[$i]."<br />";
}
return $output;
}
//
// view Select Domain(Host)
//
function viewDomain()
{
global $modx;
$output = '';
if (isset($modx->config['subdomains']))
{
$output .= '<div class="sectionHeader"> '.$this->ping_lang['select_domain'].'</div>';
$output .= '<div class="sectionBody">';
$output .= '<select name="domain">';
$host_array = array($modx->config['site_url']);
$domains = $modx->config['subdomains'];
foreach ($domains as $domain => $value)
{
if (!strstr($domain,"http://"))
{ $domain = "http://".$domain."/";
}
array_push($host_array,$domain);
}
foreach ($host_array as $host) {
$output .= "<option value=\"{$host}\">{$host}</option>\n";
}
$output .= "</select></div>";
} else
{
$output .= '<input type="hidden" name="domain" value="'.$modx->config['site_url'].'">';
}
return $output;
}
//
// View Form
//
function viewForm()
{
switch ($this->type)
{
case "module":
$default_sitemap = $this->sitemap_name != '' ? 'checked':' disabled';
$output = '
<h1>'.$this->ping_lang['title'].'</h1>
<div id="actions">
<ul class="actionButtons">
<li id="Button4">
<a href="#" onclick="document.location.href=\'index.php?a=106\';">
<img src="media/style/MODxCarbon/images/icons/stop.png" />Cancel</a>
</li>
</ul>
</div>
<script language="JavaScript" type="text/javascript">
function postForm(opcode){
document.module.opcode.value=opcode;
document.module.submit();
}
</script>
<form name="module" method="post">
<input name="opcode" type="hidden" value="" />
'.$this->viewDomain().'
<div class="sectionHeader"> '.$this->ping_lang['select_host'].'</div>
<div class="sectionBody">
'.$this->viewSite().'
</div>
<div class="sectionHeader"> '.$this->ping_lang['sitemap_title'].'</div>
<div class="sectionBody">
<input type="checkbox" name="google_sitemap" '.$default_sitemap.' />'.$this->ping_lang['sitemap_send'].'</div>
<input type="submit" style="margin-left:5em;" name="submit" onclick="postForm(\'send\');" value="'.$this->ping_lang['submit'].'" />
</form>';
break;
case "plugin":
if (!$this->plugin_mode)
{ $default_exec = $this->plugin_mode == 0 ? 'checked':'';
$default_sitemap = $this->sitemap_name != '' ? 'checked':' disabled';
$output =
'
<div class="sectionHeader"> '.$this->ping_lang['title'].'</div>
<div class="sectionBody">
<input type="checkbox" name="ping_go" '.$default_exec.' />'.$this->ping_lang['execute'].$this->viewDomain()
.'<div class="sectionHeader"> '
.$this->ping_lang['select_host'].'</div>
<div class="sectionBody">'.$this->viewSite().'</div>
<div class="sectionHeader"> '
.$this->ping_lang['sitemap_title'].'</div>
<div class="sectionBody">
<input type="checkbox" name="google_sitemap" '.$default_sitemap.' />'.$this->ping_lang['sitemap_send'].'
</div>
</div>';
}
break;
}
return $output;
}
function Send()
{
global $modx;
require_once($modx->config['base_path']."assets/modules/ping/lib/xmlrpc.inc");
$output = '
<h1>'.$this->ping_lang['title'].'</h1>
<div id="actions">
<ul class="actionButtons">
<li id="Button4">
<a href="#" onclick="document.location.href=\'index.php?a=106\';">
<img src="media/style/MODxCarbon/images/icons/save.png" />OK</a>
</li>
</ul>
</div>
<div class="sectionHeader">'.$this->ping_lang['result_title'].'</div>';
$site_url = isset($_POST['domain']) ? $_POST['domain']:$modx->config['site_url'];
if ($site_url != $modx->config['site_url'])
{ $domainreq = substr($site_url,7,-1);
$start_id = $modx->config['subdomains'][$domainreq]['startid'];
$start_doc = $modx->getDocument($start_id);
$site_title = $modx->config['site_name']." ".$start_doc['longtitle'];
}else
{ $site_title = $modx->config['site_name'];
}
if ($this->ping_lang['encode'] != "")
{
if ($modx->config['modx_charset'] != $this->ping_lang['encode'])
{
$site_name = mb_convert_encoding($site_title,$this->ping_lang['encode'],$modx->config['modx_charset']);
} else
{ $site_name = $site_title;
}
$GLOBALS['xmlrpc_internalencoding']=$this->ping_lang['encode'];
}
$name_param = new xmlrpcval($site_name, 'string');
$url_param = new xmlrpcval($site_url.'feed.rss', 'string');
$params = array($name_param, $url_param);
if (isset($_POST['ping_tbl']) || ($this->type == "plugin" && $this->plugin_mode == 1))
{
if (isset($_POST['ping_tbl']))
{
$ping_tbl = $_POST['ping_tbl'];
} else
{
for ($i = 0;$i < count($this->ping_sites);$i++)
{ $ping_tbl[] = $i;
}
}
$output .= '<div class="sectionBody"><ul>';
foreach ($ping_tbl as $idx)
{
$ping_url = $this->ping_sites[$idx];
$output .= "<li>".$ping_url.":" ;
$target_path = parse_url($ping_url);
$message = new xmlrpcmsg("weblogUpdates.ping", $params);
$client = new xmlrpc_client($target_path['path'], $target_path['host'], 80);
if ($this->ping_lang["encode"] != "") $client->request_charset_encoding = $this->ping_lang["encode"];
$response = $client->send($message);
if ($response == 0) {
$output .= " Error pinging " . $client->errno . " " . $client->errstring;
continue;
}
if ($response->faultCode() != 0) {
$output .=" Error pinging " . $response->faultCode() . " " . $response->faultString();
continue;
}
$response_value = $response->value();
if ($response_value->scalartyp() != $GLOBALS['xmlrpcInt'])
{ $fl_error = $response_value->structmem('flerror');
$message = $response_value->structmem('message');
// read the response
$output .= $response->value()->serialize();
} else
{ $output .= " Unkown type (Success?)";
}
}
$output .= "</ul></div>";
}
if ($this->sitemap_name != '' && (isset($_POST['google_sitemap']) || ($this->type == "plugin" && $this->plugin_mode == 1)))
{
$sitemap_url = $site_url.$this->sitemap_name;
$output.= '<div class="sectionHeader">'.$this->ping_lang['sitemap_title'].'</div>';
$output .= '<div class="sectionBody">'.$sitemap_url.'</div>';
$google_ping = "http://www.google.com/webmasters/sitemaps/ping?sitemap=".urlencode($sitemap_url);
@file_get_contents($google_ping);
}
return $output;
}
}
?>
I’ve updated the modxping.inc.php file such that the designs arent screwed anymore