From: <wis...@us...> - 2015-12-07 13:02:19
|
Revision: 13176 http://sourceforge.net/p/xoops/svn/13176 Author: wishcraft Date: 2015-12-07 13:02:17 +0000 (Mon, 07 Dec 2015) Log Message: ----------- PingTrax Pre-alpha :: More done\!\!\! Modified Paths: -------------- XoopsModules/pingtrax/trunk/class/items.php XoopsModules/pingtrax/trunk/class/pings.php XoopsModules/pingtrax/trunk/class/sitemaps.php XoopsModules/pingtrax/trunk/class/trackback.php XoopsModules/pingtrax/trunk/language/english/modinfo.php XoopsModules/pingtrax/trunk/preloads/ping.php XoopsModules/pingtrax/trunk/preloads/sitemap.php XoopsModules/pingtrax/trunk/preloads/trackback.php XoopsModules/pingtrax/trunk/sql/mysql.sql XoopsModules/pingtrax/trunk/sql/tables.json XoopsModules/pingtrax/trunk/xoops_version.php Added Paths: ----------- XoopsModules/pingtrax/trunk/api/.htaccess XoopsModules/pingtrax/trunk/api/index.php Added: XoopsModules/pingtrax/trunk/api/.htaccess =================================================================== --- XoopsModules/pingtrax/trunk/api/.htaccess (rev 0) +++ XoopsModules/pingtrax/trunk/api/.htaccess 2015-12-07 13:02:17 UTC (rev 13176) @@ -0,0 +1,2 @@ +RewriteEngine On +RewriteRule ^([0-9a-z]{32})$ index.php?referer=$1 [L] \ No newline at end of file Added: XoopsModules/pingtrax/trunk/api/index.php =================================================================== --- XoopsModules/pingtrax/trunk/api/index.php (rev 0) +++ XoopsModules/pingtrax/trunk/api/index.php 2015-12-07 13:02:17 UTC (rev 13176) @@ -0,0 +1 @@ +<?php Modified: XoopsModules/pingtrax/trunk/class/items.php =================================================================== --- XoopsModules/pingtrax/trunk/class/items.php 2015-12-07 11:07:26 UTC (rev 13175) +++ XoopsModules/pingtrax/trunk/class/items.php 2015-12-07 13:02:17 UTC (rev 13176) @@ -61,11 +61,21 @@ */ class PingtraxItems extends XoopsObject { + /** + * + * @var unknown + */ + var $_configs = array(); + /** * */ function __construct() { + $moduleHandler = xoops_gethandler('module'); + $configHandler = xoops_gethandler('config'); + $this->_configs = $configHandler->getConfigList($moduleHandler->getByDirname(basename(dirname(__DIR__)))->getVar('mid')); + $this->XoopsObject(); $this->initVar('id', XOBJ_DTYPE_INT, null, false); $this->initVar('referer', XOBJ_DTYPE_OTHER, sha1(NULL), false, 44); @@ -83,9 +93,9 @@ $this->initVar('item-domain', XOBJ_DTYPE_TXTBOX, parse_url(XOOPS_URL, PHP_URL_HOST), true, 150); $this->initVar('item-referer-uri', XOBJ_DTYPE_TXTBOX, $_SERVER["REQUEST_URI"], true, 250); $this->initVar('item-php-self', XOBJ_DTYPE_TXTBOX, str_replace(XOOPS_ROOT_PATH, "", $_SERVER["PHP_SELF"]), true, 250); - $this->initVar('feed-protocol', XOBJ_DTYPE_ENUM, XOOPS_PROT, true, false, false, false, array('https://','http://')); - $this->initVar('feed-domain', XOBJ_DTYPE_TXTBOX, parse_url(XOOPS_URL, PHP_URL_HOST), true, 150); - $this->initVar('feed-referer-uri', XOBJ_DTYPE_TXTBOX, parse_url(XOOPS_URL, PHP_URL_PATH) . '/backend.php', true, 250); + $this->initVar('feed-protocol', XOBJ_DTYPE_ENUM, parse_url(str_replace("%xoops_url%", XOOPS_URL, $this->_configs['default_feed_url']), PHP_URL_SCHEME), true, false, false, false, array('https://','http://')); + $this->initVar('feed-domain', XOBJ_DTYPE_TXTBOX, parse_url(str_replace("%xoops_url%", XOOPS_URL, $this->_configs['default_feed_url']), PHP_URL_HOST), true, 150); + $this->initVar('feed-referer-uri', XOBJ_DTYPE_TXTBOX, parse_url(str_replace("%xoops_url%", XOOPS_URL, $this->_configs['default_feed_url']), PHP_URL_PATH) . '/backend.php', true, 250); $this->initVar('discovery-hook', XOBJ_DTYPE_ENUM, 'unknown', true, false, false, false, array('php','preloader','smarty','combination','unknown')); $this->initVar('user-session', XOBJ_DTYPE_ENUM, 'unknown', true, false, false, false, array('admin','user','guest','unknown')); $this->initVar('created', XOBJ_DTYPE_INT, 0, false); @@ -93,6 +103,32 @@ $this->initVar('offline', XOBJ_DTYPE_INT, 0, false); } + /** + * + * @return string + */ + function getPingXML() + { + $xml = "<?xml version=\"1.0\"?>\n"; + $xml .= "<methodCall>\n"; + $xml .= "\t<methodName>weblogUpdates.extendedPing</methodName>\n"; + $xml .= "\t<params>\n"; + $xml .= "\t\t<param>\n"; + $xml .= "\t\t\t<value>".$this->getVar('item-title')."</value>\n"; + $xml .= "\t\t</param>\n"; + $xml .= "\t\t<param>\n"; + $xml .= "\t\t\t<value>".$this->getVar('item-protocol').$this->getVar('item-domain')."</value>\n"; + $xml .= "\t\t</param>\n"; + $xml .= "\t\t<param>\n"; + $xml .= "\t\t\t<value>".$this->getVar('item-protocol').$this->getVar('item-domain').$this->getVar('item-referer-uri')."</value>\n"; + $xml .= "\t\t</param>\n"; + $xml .= "\t\t<param>\n"; + $xml .= "\t\t\t<value>".$this->getVar('feed-protocol').$this->getVar('feed-domain').$this->getVar('feed-referer-uri')."</value>\n"; + $xml .= "\t\t</param>\n"; + $xml .= "\t</params>\n"; + $xml .= "</methodCall>"; + return $xml; + } } /** @@ -125,29 +161,43 @@ else return false; } - $sitemapsHandler = xoops_getmodulehandler('sitemaps', 'pingtrax'); - $criteria = new CriteriaCompo(new Criteria('protocol', XOOPS_PROT)); - $criteria->add(new Criteria('domain', parse_url(XOOPS_URL, PHP_URL_HOST))); - $criteria->add(new Criteria('baseurl', parse_url(XOOPS_URL, PHP_URL_PATH))); - if ($sitemapsHandler->getCount($criteria)==0) + if ($object->getVar('type') == 'local') { - $sitemap = $sitemapsHandler->create(); - $sitemap->setVar('referer', md5(XOOPS_URL.microtime(true).XOOPS_DB_USER.XOOPS_DB_PASS)); - $sitemap->setVar('protocol', XOOPS_PROT); - $sitemap->setVar('domain', parse_url(XOOPS_URL, PHP_URL_HOST)); - $sitemap->setVar('baseurl', parse_url(XOOPS_URL, PHP_URL_PATH)); - $sitemap->setVar('filename', 'sitemap.'.str_replace("://", "", XOOPS_PROT) . "." . parse_url(XOOPS_URL, PHP_URL_HOST) . '.xml'); - $sitemap = $sitemapsHandler->get($sitemap = $sitemapsHandler->insert($sitemap, true)); - } else { - $obj = $sitemapsHandler->getObjects($criteria, false); - if (is_object($obj[0])) - $sitemap = $obj[0]; + $sitemapsHandler = xoops_getmodulehandler('sitemaps', 'pingtrax'); + $criteria = new CriteriaCompo(new Criteria('protocol', XOOPS_PROT)); + $criteria->add(new Criteria('domain', parse_url(XOOPS_URL, PHP_URL_HOST))); + $criteria->add(new Criteria('baseurl', parse_url(XOOPS_URL, PHP_URL_PATH))); + if ($sitemapsHandler->getCount($criteria)==0) + { + $sitemap = $sitemapsHandler->create(); + $sitemap->setVar('referer', md5(XOOPS_URL.microtime(true).XOOPS_DB_USER.XOOPS_DB_PASS)); + $sitemap->setVar('protocol', XOOPS_PROT); + $sitemap->setVar('domain', parse_url(XOOPS_URL, PHP_URL_HOST)); + $sitemap->setVar('baseurl', parse_url(XOOPS_URL, PHP_URL_PATH)); + $sitemap->setVar('filename', 'sitemap.'.str_replace("://", "", XOOPS_PROT) . "." . parse_url(XOOPS_URL, PHP_URL_HOST) . '.xml'); + $sitemap = $sitemapsHandler->get($sitemap = $sitemapsHandler->insert($sitemap, true)); + } else { + $obj = $sitemapsHandler->getObjects($criteria, false); + if (is_object($obj[0])) + $sitemap = $obj[0]; + } + $items_sitemapsHandler = xoops_getmodulehandler('items_sitemaps', 'pingtrax'); + $itemsitemap = $items_sitemapsHandler->create(); + $itemsitemap->setVar('map-referer', $sitemap->getVar('referer')); + $itemsitemap->setVar('item-referer', $object->getVar('referer')); + $items_sitemapsHandler->insert($itemsitemap, true); + $items_pingsHandler = xoops_getmodulehandler('items_pings', 'pingtrax'); + $pingsHandler = xoops_getmodulehandler('pings', 'pingtrax'); + $criteria = new CriteriaCompo(new Criteria('type', 'XML-RPC')); + $criteria->add(new Criteria('offline', 0)); + foreach($pingsHandler->getObjects($criteria, true) as $id => $ping) + { + $itemping = $items_pingsHandler->create(); + $itemping->setVar('ping-referer', $ping->getVar('referer')); + $itemping->setVar('item-referer', $object->getVar('referer')); + $items_pingsHandler->insert($itemping, true); + } } - $items_sitemapsHandler = xoops_getmodulehandler('items_sitemaps', 'pingtrax'); - $itemsitemap = $items_sitemapsHandler->create(); - $itemsitemap->setVar('map-referer', $sitemap->getVar('referer')); - $itemsitemap->setVar('item-referer', $object->getVar('referer')); - $items_sitemapsHandler->insert($itemsitemap, true); } else { $object->setVar('updated', time()); } Modified: XoopsModules/pingtrax/trunk/class/pings.php =================================================================== --- XoopsModules/pingtrax/trunk/class/pings.php 2015-12-07 11:07:26 UTC (rev 13175) +++ XoopsModules/pingtrax/trunk/class/pings.php 2015-12-07 13:02:17 UTC (rev 13176) @@ -71,6 +71,32 @@ $this->initVar('offline', XOBJ_DTYPE_INT, 0, false); } + /** + * + * @param PingtraxItems $item + * @return mixed + */ + function getPingURL(PingtraxItems $item) + { + $uri = $this->getVar('uri'); + $uri = str_replace(urlencode($item->getVar('item-title')), '%title', $uri); + $uri = str_replace(urlencode($item->getVar('item-decription')), '%description', $uri); + $uri = str_replace(urlencode($item->getVar('item-protocol').$item->getVar('item-domain').$item->getVar('item-referer-uri')), '%url', $uri); + $uri = str_replace(urlencode($item->getVar('feed-protocol').$item->getVar('feed-domain').$item->getVar('feed-referer-uri')), '%feed', $uri); + return $uri; + } + /** + * + * @param PingtraxItems $item + * @return mixed + */ + function getSitemapURL(PingtraxSitemaps $sitemap) + { + $uri = $this->getVar('uri'); + $uri = str_replace(urlencode($sitemap->getVar('protocol').$sitemap->getVar('domain').(strlen($sitemap->getVar('baseurl'))>1?((substr($sitemap->getVar('baseurl'),0,1)!="/"?"/":"").$sitemap->getVar('baseurl').(substr($sitemap->getVar('baseurl'),strlen($sitemap->getVar('baseurl'))-1,1)!="/"?"/":"")):"/")).$sitemap->getVar('filename'), '%url', $uri); + return $uri; + } + } /** @@ -78,8 +104,13 @@ */ class PingtraxPingsHandler extends XoopsPersistableObjectHandler { - /** + * + * @var unknown + */ + var $_configs = array(); + + /** * var string URL of JSON Resource for Install */ var $_resource = "https://sourceforge.net/p/xoops/svn/HEAD/tree/XoopsModules/pingtrax/data/ping-resources.json?format=raw"; @@ -89,6 +120,10 @@ */ function __construct(&$db) { + $moduleHandler = xoops_gethandler('module'); + $configHandler = xoops_gethandler('config'); + $this->_configs = $configHandler->getConfigList($moduleHandler->getByDirname(basename(dirname(__DIR__)))->getVar('mid')); + parent::__construct($db, "pingtrax_pings", 'PingtraxPings', 'id', 'referer'); $criteria = new Criteria('id',0,"<>"); @@ -117,5 +152,101 @@ return parent::insert($object, $force); } - + + function makePings($referer = '') + { + $this->addTimeLimit(120); + $items_pingsHandler = xoops_getmodulehandler('items_pings', 'pingtrax'); + $itemsHandler = xoops_getmodulehandler('items', 'pingtrax'); + $criteria = new CriteriaCompo(new Criteria('offline', 0)); + if (!empty($referer)) + $criteria->add(new Criteria('referer', $referer)); + $sleepcriteria = new CriteriaCompo(new Criteria('sleep-till', 0), 'OR'); + $sleepcriteria->add(new Criteria('sleep-till', time(), "<="), 'OR'); + $criteria->add($sleepcriteria, 'AND'); + $criteria->add(new Criteria('type', 'XML-RPC'), 'AND'); + foreach($this->getObjects($criteria, true) as $id => $ping) + { + $start = microtime(true); + $criteria = new CriteriaCompo(new Criteria('when', 0)); + $criteria->add(new Criteria('ping-referer', $ping->getVar('referer'))); + foreach($items_pingsHandler->getObjects($criteria, true) as $piid => $itemping) + { + $item = $itemsHandler->getByReferer($itemping->getVar('item-referer')); + if (is_a($item, "PingtraxItems")) + { + $context = stream_context_create(array('http' => array( + 'method' => "POST", + 'header' => "Content-Type: text/xml\r\n", + 'content' => $item->getPingXML() + ))); + $file = @file_get_contents($ping->getPingURL($item), false, $context); + if ($file === false) { + $ping->setVar('failed-pings', $this->getVar('failed-pings') + 1); + $ping->setVar('failure-time', time()); + } + elseif ($file) { + $ping->setVar('successful-pings', $this->getVar('successful-pings') + 1); + $ping->setVar('success-time', time()); + $itemping->setVar('when', time()); + $items_pingsHandler->insert($itemping, true); + } + + } + } + switch($this->_config['pings_sleep_till']) + { + case 0: + $ping->setVar('sleep-till', time() + mt_rand(600, 3600*24)); + break; + default: + $ping->setVar('sleep-till', time() + $this->_config['pings_sleep_till']); + break; + } + $this->insert($ping, true); + } + } + + + function sendSitemap(PingtraxSitemaps $sitemap) + { + $this->addTimeLimit(120); + $items_pingsHandler = xoops_getmodulehandler('items_pings', 'pingtrax'); + $itemsHandler = xoops_getmodulehandler('items', 'pingtrax'); + $criteria = new CriteriaCompo(new Criteria('offline', 0)); + if (!empty($referer)) + $criteria->add(new Criteria('referer', $referer)); + $sleepcriteria = new CriteriaCompo(new Criteria('sleep-till', 0), 'OR'); + $sleepcriteria->add(new Criteria('sleep-till', time(), "<="), 'OR'); + $criteria->add($sleepcriteria, 'AND'); + $criteria->add(new Criteria('type', 'SITEMAPS'), 'AND'); + foreach($this->getObjects($criteria, true) as $id => $ping) + { + $start = microtime(true); + if (is_a($sitemap, "PingtraxSitemaps")) + { + $file = @file_get_contents($ping->getSitemapURL($sitemap), false); + if ($file === false) { + $ping->setVar('failed-pings', $this->getVar('failed-pings') + 1); + $ping->setVar('failure-time', time()); + } + elseif ($file) { + $ping->setVar('successful-pings', $this->getVar('successful-pings') + 1); + $ping->setVar('success-time', time()); + $itemping->setVar('when', time()); + $items_pingsHandler->insert($itemping, true); + } + } + switch($this->_config['pings_sleep_till']) + { + case 0: + $ping->setVar('sleep-till', time() + mt_rand(600, 3600*24)); + break; + default: + $ping->setVar('sleep-till', time() + $this->_config['pings_sleep_till']); + break; + } + $this->insert($ping, true); + } + } } Modified: XoopsModules/pingtrax/trunk/class/sitemaps.php =================================================================== --- XoopsModules/pingtrax/trunk/class/sitemaps.php 2015-12-07 11:07:26 UTC (rev 13175) +++ XoopsModules/pingtrax/trunk/class/sitemaps.php 2015-12-07 13:02:17 UTC (rev 13176) @@ -86,12 +86,21 @@ */ class PingtraxSitemapsHandler extends XoopsPersistableObjectHandler { - + /** + * + * @var unknown + */ + var $_configs = array(); + /** * @param null|object $db */ function __construct(&$db) { + $moduleHandler = xoops_gethandler('module'); + $configHandler = xoops_gethandler('config'); + $this->_configs = $configHandler->getConfigList($moduleHandler->getByDirname(basename(dirname(__DIR__)))->getVar('mid')); + parent::__construct($db, "pingtrax_sitemaps", 'PingtraxSitemaps', 'id', 'referer'); } @@ -122,6 +131,7 @@ { $this->addTimeLimit(120); $items_sitemapsHandler = xoops_getmodulehandler('items_sitemaps', 'pingtrax'); + $pingsHandler = xoops_getmodulehandler('pings', 'pingtrax'); $itemsHandler = xoops_getmodulehandler('items', 'pingtrax'); $criteria = new CriteriaCompo(new Criteria('offline', 0)); if (!empty($referer)) @@ -185,10 +195,18 @@ file_put_contents($flout, implode(PHP_EOL, $data)); } } - } - $sitemap->setVar('sleep-till', time() + (3600*18)); + switch($this->_config['sitemaps_sleep_till']) + { + case 0: + $sitemap->setVar('sleep-till', time() + mt_rand(600, 3600*24)); + break; + default: + $sitemap->setVar('sleep-till', time() + $this->_config['sitemaps_sleep_till']); + break; + } $this->insert($sitemap, true); + $pingsHandler->sendSitemap($sitemap); $this->addTimeLimit(microtime(true)-$start+10); } } Modified: XoopsModules/pingtrax/trunk/class/trackback.php =================================================================== --- XoopsModules/pingtrax/trunk/class/trackback.php 2015-12-07 11:07:26 UTC (rev 13175) +++ XoopsModules/pingtrax/trunk/class/trackback.php 2015-12-07 13:02:17 UTC (rev 13176) @@ -243,23 +243,23 @@ if ($success) { // PingtraxTrackback retreived successfully... // Sending back an RSS (0.91) - trackback information from $response (array)... - $return .= " <error>0</error> \n"; - $return .= " <rss version=\"0.91\"> \n"; - $return .= " <channel> \n"; - $return .= " <title>" . $this->xml_safe($response['title']) . "</title> \n"; - $return .= " <link>" . $this->xml_safe($response['trackback']) . "</link> \n"; - $return .= " <description>" . $this->xml_safe($response['expert']) . "</description> \n"; - $return .= " <item> \n"; - $return .= " <title>" . $this->xml_safe($response['title']) . "</title> \n"; - $return .= " <link>" . $this->xml_safe($response['permalink']) . "</link> \n"; - $return .= " <description>" . $this->xml_safe($response['expert']) . "</description> \n"; - $return .= " </item> \n"; - $return .= " </channel> \n"; - $return .= " </rss> \n"; + $return .= "\t<error>0</error> \n"; + $return .= "\t<rss version=\"0.91\"> \n"; + $return .= "\t<channel> \n"; + $return .= "\t\t<title>" . $this->xml_safe($response['title']) . "</title> \n"; + $return .= "\t\t<link>" . $this->xml_safe($response['trackback']) . "</link> \n"; + $return .= "\t\t<description>" . $this->xml_safe($response['expert']) . "</description> \n"; + $return .= "\t\t<item> \n"; + $return .= "\t\t\t<title>" . $this->xml_safe($response['title']) . "</title> \n"; + $return .= "\t\t\t<link>" . $this->xml_safe($response['permalink']) . "</link> \n"; + $return .= "\t\t\t<description>" . $this->xml_safe($response['expert']) . "</description> \n"; + $return .= "\t\t</item> \n"; + $return .= "\t</channel> \n"; + $return .= "\t</rss> \n"; } else { // Something went wrong - provide reason from $response (string)... - $return .= " <error>1</error> \n"; - $return .= " <message>" . $this->xml_safe($response) . "</message>\n"; + $return .= "\t<error>1</error> \n"; + $return .= "\t<message>" . $this->xml_safe($response) . "</message>\n"; } // End response to trackbacker $return .= "</response>"; @@ -296,17 +296,17 @@ $return = "<!-- \n"; $return .= "<rdf:RDF xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\" \n"; - $return .= " xmlns:dc=\"http://purl.org/dc/elements/1.1/\" \n"; - $return .= " xmlns:trackback=\"http://madskills.com/public/xml/rss/module/trackback/\"> \n"; + $return .= "\txmlns:dc=\"http://purl.org/dc/elements/1.1/\" \n"; + $return .= "\txmlns:trackback=\"http://madskills.com/public/xml/rss/module/trackback/\"> \n"; $return .= "<rdf:Description \n"; - $return .= " rdf:about=\"" . $this->xml_safe($permalink) . "\" \n"; - $return .= " dc:identifier=\"" . $this->xml_safe($permalink) . "\" \n"; - $return .= " trackback:ping=\"" . $this->xml_safe($trackback) . "\" \n"; - $return .= " dc:title=\"" . $this->xml_safe($title) . "\" \n"; - $return .= " dc:subject=\"TrackBack\" \n"; - $return .= " dc:description=\"" . $this->xml_safe($this->cut_short($expert)) . "\" \n"; - $return .= " dc:creator=\"" . $this->xml_safe($author) . "\" \n"; - $return .= " dc:date=\"" . $RFC822_date . "\" /> \n"; + $return .= "\trdf:about=\"" . $this->xml_safe($permalink) . "\" \n"; + $return .= "\tdc:identifier=\"" . $this->xml_safe($permalink) . "\" \n"; + $return .= "\ttrackback:ping=\"" . $this->xml_safe($trackback) . "\" \n"; + $return .= "\tdc:title=\"" . $this->xml_safe($title) . "\" \n"; + $return .= "\tdc:subject=\"TrackBack\" \n"; + $return .= "\tdc:description=\"" . $this->xml_safe($this->cut_short($expert)) . "\" \n"; + $return .= "\tdc:creator=\"" . $this->xml_safe($author) . "\" \n"; + $return .= "\tdc:date=\"" . $RFC822_date . "\" /> \n"; $return .= "</rdf:RDF> \n"; $return .= "--> \n"; Modified: XoopsModules/pingtrax/trunk/language/english/modinfo.php =================================================================== --- XoopsModules/pingtrax/trunk/language/english/modinfo.php 2015-12-07 11:07:26 UTC (rev 13175) +++ XoopsModules/pingtrax/trunk/language/english/modinfo.php 2015-12-07 13:02:17 UTC (rev 13176) @@ -24,4 +24,26 @@ define('_MI_PINGTRAX_DESC',"Module for Automated PingList's and Trackbacks as well as sitemaps in XML!"); define('_MI_PINGTRAX_DEFAULT_FEED_URL',"Default URL for the RSS Feed Backend"); define('_MI_PINGTRAX_DEFAULT_FEED_URL_DESC',"This will provide the default URL for the feed, <em>%xoops_url%</em> will be replaced with <em>".XOOPS_URL."</em>"); - +define('_MI_PINGTRAX_PINGS_SLEEP_TILL', 'Ping Sleeps for this period until next batch'); +define('_MI_PINGTRAX_PINGS_SLEEP_TILL_DESC', 'This is how long a ping will sleep for until called in a batch with the footer preloader!'); +define('_MI_PINGTRAX_SITEMAPS_SLEEP_TILL', 'Sitemap re-write will sleep for this period!'); +define('_MI_PINGTRAX_SITEMAPS_SLEEP_TILL_DESC', 'This is how long a sitemap re-write will sleep for until called in a batch with the footer preloader!'); +define('_MI_PINGTRAX_TIME_RANDOM', 'Random (15m ~ 24Hrs)'); +define('_MI_PINGTRAX_TIME_15M', '15 Minutes'); +define('_MI_PINGTRAX_TIME_30M', '30 Minutes'); +define('_MI_PINGTRAX_TIME_1HR', '1 Hour'); +define('_MI_PINGTRAX_TIME_2HR', '2 Hours'); +define('_MI_PINGTRAX_TIME_3HR', '3 Hours'); +define('_MI_PINGTRAX_TIME_4HR', '4 Hours'); +define('_MI_PINGTRAX_TIME_5HR', '5 Hours'); +define('_MI_PINGTRAX_TIME_6HR', '6 Hours'); +define('_MI_PINGTRAX_TIME_7HR', '7 Hours'); +define('_MI_PINGTRAX_TIME_8HR', '8 Hours'); +define('_MI_PINGTRAX_TIME_9HR', '9 Hours'); +define('_MI_PINGTRAX_TIME_10HR', '10 Hours'); +define('_MI_PINGTRAX_TIME_11HR', '11 Hours'); +define('_MI_PINGTRAX_TIME_12HR', '12 Hours'); +define('_MI_PINGTRAX_TIME_14HR', '14 Hours'); +define('_MI_PINGTRAX_TIME_16HR', '16 Hours'); +define('_MI_PINGTRAX_TIME_24HR', '24 Hours'); + \ No newline at end of file Modified: XoopsModules/pingtrax/trunk/preloads/ping.php =================================================================== --- XoopsModules/pingtrax/trunk/preloads/ping.php 2015-12-07 11:07:26 UTC (rev 13175) +++ XoopsModules/pingtrax/trunk/preloads/ping.php 2015-12-07 13:02:17 UTC (rev 13176) @@ -27,45 +27,14 @@ */ class PingtraxPingPreload extends XoopsPreloadItem { + /** * @param $args - - function eventCoreIncludeFunctionsRedirectheader($args) + */ + function eventCoreFooterEnd($args) { - $context = stream_context_create(array('http' => array( - 'method' => "POST", - 'header' => "Content-Type: text/xml\r\n", - 'content' => $xml - ))); - $file = @file_get_contents($post_to, false, $context); - if ($file === false) { echo '<p>Couldn\'t connect!</p>'; } - elseif ($file) { - echo '<p>The following response was returned:</p>'; - echo '<pre>'.htmlspecialchars($file).'</pre>'; - } else { - echo '<p>Empty response!</p>'; - } + $pingsHandler = xoops_getmodulehandler('pings', 'pingtrax'); + $pingsHanlder->makePings(''); } - - -1. <?xml version="1.0"?> -2. <methodCall> -3. <methodName>weblogUpdates.extendedPing</methodName> -4. <params> -5. <param> -6. <value>Example Blog</value> -7. </param> -8. <param> -9. <value>http://www.example.com/blog/</value> -10. </param> -11. <param> -12. <value>http://www.example.com/blog/new-post.html</value> -13. </param> -14. <param> -15. <value>http://www.example.com/blog/feed.xml</value> -16. </param> -17. </params> -18. </methodCall> - */ } Modified: XoopsModules/pingtrax/trunk/preloads/sitemap.php =================================================================== --- XoopsModules/pingtrax/trunk/preloads/sitemap.php 2015-12-07 11:07:26 UTC (rev 13175) +++ XoopsModules/pingtrax/trunk/preloads/sitemap.php 2015-12-07 13:02:17 UTC (rev 13176) @@ -29,23 +29,11 @@ { /** * @param $args - - function eventCoreIncludeFunctionsRedirectheader($args) + */ + function eventCoreFooterEnd($args) { - $context = stream_context_create(array('http' => array( - 'method' => "POST", - 'header' => "Content-Type: text/xml\r\n", - 'content' => $xml - ))); - $file = @file_get_contents($post_to, false, $context); - if ($file === false) { echo '<p>Couldn\'t connect!</p>'; } - elseif ($file) { - echo '<p>The following response was returned:</p>'; - echo '<pre>'.htmlspecialchars($file).'</pre>'; - } else { - echo '<p>Empty response!</p>'; - } + $sitemapsHandler = xoops_getmodulehandler('sitemaps', 'pingtrax'); + $sitemapsHanlder->writeSitemaps(''); } - */ } Modified: XoopsModules/pingtrax/trunk/preloads/trackback.php =================================================================== --- XoopsModules/pingtrax/trunk/preloads/trackback.php 2015-12-07 11:07:26 UTC (rev 13175) +++ XoopsModules/pingtrax/trunk/preloads/trackback.php 2015-12-07 13:02:17 UTC (rev 13176) @@ -22,30 +22,25 @@ defined('XOOPS_ROOT_PATH') || die('XOOPS root path not defined'); +require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . 'class' . DIRECTORY_SEPARATOR . 'trackback.php'; + /** * Class PingtraxTrackbackPreload */ class PingtraxTrackbackPreload extends XoopsPreloadItem { + /** * @param $args - - function eventCoreIncludeFunctionsRedirectheader($args) + */ + function eventCoreFooterEnd($args) { - $context = stream_context_create(array('http' => array( - 'method' => "POST", - 'header' => "Content-Type: text/xml\r\n", - 'content' => $xml - ))); - $file = @file_get_contents($post_to, false, $context); - if ($file === false) { echo '<p>Couldn\'t connect!</p>'; } - elseif ($file) { - echo '<p>The following response was returned:</p>'; - echo '<pre>'.htmlspecialchars($file).'</pre>'; - } else { - echo '<p>Empty response!</p>'; - } + global $pingtraxitem; + if (is_a($pingtraxitem, "PingtraxItems")) + { + $trackback = new PingtraxTrackback($pingtraxitem->getVar('item-title'), $pingtraxitem->getVar('item-author-name'), 'UTF-8'); + echo $trackback->rdf_autodiscover(RFC822_from_datetime($pingtraxitem->getVar('created')), $pingtraxitem->getVar('item-title'), $pingtraxitem->getVar('item-description'), $pingtraxitem->getVar('item-protocol').$pingtraxitem->getVar('item-domain').$pingtraxitem->getVar('item-referer-uri'), XOOPS_URL . '/modules/pingtrax/api/' . $pingtraxitem->getVar('referer'), $pingtraxitem->getVar('item-author-name')); + } } - */ } Modified: XoopsModules/pingtrax/trunk/sql/mysql.sql =================================================================== --- XoopsModules/pingtrax/trunk/sql/mysql.sql 2015-12-07 11:07:26 UTC (rev 13175) +++ XoopsModules/pingtrax/trunk/sql/mysql.sql 2015-12-07 13:02:17 UTC (rev 13176) @@ -108,16 +108,6 @@ KEY `CHRONOLOGISTICS` (`id`,`referer`,`created`,`updated`,`offlined`,`failure-time`,`success-time`,`sleep-till`) USING BTREE KEY_BLOCK_SIZE=128 ) ENGINE=InnoDB AUTO_INCREMENT=150 DEFAULT CHARSET=utf8 PACK_KEYS=1 CHECKSUM=1 DELAY_KEY_WRITE=1 ROW_FORMAT=DYNAMIC KEY_BLOCK_SIZE=16; -CREATE TABLE `pingtrax_pings_sitemaps` ( - `id` mediumint(32) NOT NULL AUTO_INCREMENT, - `map-referer` varchar(44) NOT NULL DEFAULT '', - `ping-referer` varchar(44) NOT NULL DEFAULT '', - `when` int(12) NOT NULL DEFAULT '0', - PRIMARY KEY (`id`), - KEY `SEARCH` (`id`,`map-referer`,`ping-referer`) USING BTREE, - KEY `CHRONOLOGISTICS` (`map-referer`,`ping-referer`,`when`) USING BTREE KEY_BLOCK_SIZE=64 -) ENGINE=InnoDB DEFAULT CHARSET=utf8 PACK_KEYS=1 CHECKSUM=1 DELAY_KEY_WRITE=1 ROW_FORMAT=DYNAMIC KEY_BLOCK_SIZE=8; - CREATE TABLE `pingtrax_sitemaps` ( `id` int(10) NOT NULL AUTO_INCREMENT, `referer` varchar(44) NOT NULL DEFAULT '', Modified: XoopsModules/pingtrax/trunk/sql/tables.json =================================================================== --- XoopsModules/pingtrax/trunk/sql/tables.json 2015-12-07 11:07:26 UTC (rev 13175) +++ XoopsModules/pingtrax/trunk/sql/tables.json 2015-12-07 13:02:17 UTC (rev 13176) @@ -1 +1 @@ -{"pingtrax_items","pingtrax_items_pings","pingtrax_items_sitemaps","pingtrax_pings","pingtrax_pings_sitemaps","pingtrax_sitemaps"} \ No newline at end of file +{"pingtrax_items","pingtrax_items_pings","pingtrax_items_sitemaps","pingtrax_pings","pingtrax_sitemaps"} \ No newline at end of file Modified: XoopsModules/pingtrax/trunk/xoops_version.php =================================================================== --- XoopsModules/pingtrax/trunk/xoops_version.php 2015-12-07 11:07:26 UTC (rev 13175) +++ XoopsModules/pingtrax/trunk/xoops_version.php 2015-12-07 13:02:17 UTC (rev 13176) @@ -88,3 +88,27 @@ 'default' => '%xoops_url%/backend.php' ); +$modversion['config'][] = array( + 'name' => 'pings_sleep_till', + 'title' => '_MI_PINGTRAX_PINGS_SLEEP_TILL', + 'description' => '_MI_PINGTRAX_PINGS_SLEEP_TILL_DESC', + 'formtype' => 'select', + 'valuetype' => 'int', + 'options' => array( 0 => _MI_PINGTRAX_TIME_RANDOM, 900 => _MI_PINGTRAX_TIME_15M, 1800 => _MI_PINGTRAX_TIME_30M, 3600 => _MI_PINGTRAX_TIME_1HR, (3600*2) => _MI_PINGTRAX_TIME_2HR, (3600*3) => _MI_PINGTRAX_TIME_3HR, + (3600*4) => _MI_PINGTRAX_TIME_4HR, (3600*5) => _MI_PINGTRAX_TIME_5HR, (3600*6) => _MI_PINGTRAX_TIME_6HR, (3600*7) => _MI_PINGTRAX_TIME_7HR, (3600*8) => _MI_PINGTRAX_TIME_8HR, (3600*9) => _MI_PINGTRAX_TIME_9HR, + (3600*10) => _MI_PINGTRAX_TIME_10HR, (3600*11) => _MI_PINGTRAX_TIME_11HR, (3600*12) => _MI_PINGTRAX_TIME_12HR, (3600*14) => _MI_PINGTRAX_TIME_14HR, (3600*16) => _MI_PINGTRAX_TIME_16HR, (3600*24) => _MI_PINGTRAX_TIME_24HR), + 'default' => 3600 * mt_rand(1,12) +); + +$modversion['config'][] = array( + 'name' => 'sitemaps_sleep_till', + 'title' => '_MI_PINGTRAX_SITEMAPS_SLEEP_TILL', + 'description' => '_MI_PINGTRAX_SITEMAPS_SLEEP_TILL_DESC', + 'formtype' => 'select', + 'valuetype' => 'int', + 'options' => array( 0 => _MI_PINGTRAX_TIME_RANDOM, 900 => _MI_PINGTRAX_TIME_15M, 1800 => _MI_PINGTRAX_TIME_30M, 3600 => _MI_PINGTRAX_TIME_1HR, (3600*2) => _MI_PINGTRAX_TIME_2HR, (3600*3) => _MI_PINGTRAX_TIME_3HR, + (3600*4) => _MI_PINGTRAX_TIME_4HR, (3600*5) => _MI_PINGTRAX_TIME_5HR, (3600*6) => _MI_PINGTRAX_TIME_6HR, (3600*7) => _MI_PINGTRAX_TIME_7HR, (3600*8) => _MI_PINGTRAX_TIME_8HR, (3600*9) => _MI_PINGTRAX_TIME_9HR, + (3600*10) => _MI_PINGTRAX_TIME_10HR, (3600*11) => _MI_PINGTRAX_TIME_11HR, (3600*12) => _MI_PINGTRAX_TIME_12HR, (3600*14) => _MI_PINGTRAX_TIME_14HR, (3600*16) => _MI_PINGTRAX_TIME_16HR, (3600*24) => _MI_PINGTRAX_TIME_24HR), + 'default' => 3600 * mt_rand(1,12) +); + |