From: <wis...@us...> - 2015-12-01 11:48:30
|
Revision: 13170 http://sourceforge.net/p/xoops/svn/13170 Author: wishcraft Date: 2015-12-01 11:48:27 +0000 (Tue, 01 Dec 2015) Log Message: ----------- Pingtrax -- the Pinglist and Trackback Automated module -- Pre-alpha 1.01 -- Planning Added Paths: ----------- XoopsModules/pingtrax/data/ XoopsModules/pingtrax/data/ping-resources.json Added: XoopsModules/pingtrax/data/ping-resources.json =================================================================== --- XoopsModules/pingtrax/data/ping-resources.json (rev 0) +++ XoopsModules/pingtrax/data/ping-resources.json 2015-12-01 11:48:27 UTC (rev 13170) @@ -0,0 +1 @@ +{"7316f65ff94cfaddad8f757278b7739fe651291f":{"type":"XML-RPC","uri":"http:\/\/feedburner.google.com\/fb\/a\/pingSubmit?bloglink=%url"},"c04a74256fe9eb8e10b7ddad3129a279cf958612":{"type":"XML-RPC","uri":"http:\/\/rpc.weblogs.com\/pingSiteForm?name=%title&url=%url"},"cc793152f02383ca15ef3a31e467f1e4b6b3c423":{"type":"XML-RPC","uri":"http:\/\/blogsearch.google.com\/ping\/RPC2"},"382c38f300f113f0f45f0fc404da76964d5d46fa":{"type":"XML-RPC","uri":"http:\/\/api.my.yahoo.com\/RPC2"},"529fb0320405c9a67cdaec0ee866355e69715cd7":{"type":"SITEMAPS","uri":"http:\/\/www.bing.com\/ping?sitemap=%url"},"6222205ce495f0a60f36fa6414216e0a1be2494c":{"type":"XML-RPC","uri":"http:\/\/api.my.yahoo.com\/rss\/ping"},"8fb83eeffec9e8b6a3c0783ec9b046a3fc66c6c6":{"type":"XML-RPC","uri":"http:\/\/bblog.com\/ping.php"},"f0683d5bd56fae5b3b014f83377630c590bcad0a":{"type":"XML-RPC","uri":"http:\/\/blog.goo.ne.jp\/XMLRPC"},"2944b7d8115f5b4997c62901b833b19ee5634fb6":{"type":"XML-RPC","uri":"http:\/\/blogdb.jp\/xmlrpc"},"af57e5bbb1734f7c7cca2f1931916e3af3fdd650":{"type":"XML-RPC","uri":"http:\/\/blogmatcher.com\/u.php"},"9e893b41ef46001780476321d8fc0dbb2b035236":{"type":"XML-RPC","uri":"http:\/\/bulkfeeds.net\/rpc"},"2bc4776643a440d33dd190edc23f2373d889c24d":{"type":"XML-RPC","uri":"http:\/\/coreblog.org\/ping\/"},"28ec8143dd32a3772bb78953e5832a4dae2c9304":{"type":"XML-RPC","uri":"http:\/\/mod-pubsub.org\/kn_apps\/blogchatt"},"6a3c21035d8d90c067d77a4ecfc1ec63b50e66db":{"type":"XML-RPC","uri":"http:\/\/www.lasermemory.com\/lsrpc\/"},"39524c5c101a4ada73ac2e976e9ded030f64f999":{"type":"XML-RPC","uri":"http:\/\/ping.amagle.com\/"},"b476efa949c3cabd28b2dd5832f18f933489b39d":{"type":"XML-RPC","uri":"http:\/\/ping.bitacoras.com"},"b2e77f4e79d4d25f16fd3c216a9217cbc3cbea89":{"type":"XML-RPC","uri":"http:\/\/ping.blo.gs\/"},"2332c6e7a4afefa85054afd2199ecfb34f8b07cf":{"type":"XML-RPC","uri":"http:\/\/ping.bloggers.jp\/rpc\/"},"3438b9c7e6f78c1bb504b06f63eb73e30272387e":{"type":"XML-RPC","uri":"http:\/\/ping.cocolog-nifty.com\/xmlrpc"},"7eeaeea6789c0b1151befb69ed0686b741cc4320":{"type":"XML-RPC","uri":"http:\/\/ping.blogmura.jp\/rpc\/"},"7dbde537866d978ec2ac7292c28b3dff589feb43":{"type":"XML-RPC","uri":"http:\/\/ping.feedburner.com"},"360b63598d7475264e7bfd893d3700d373928398":{"type":"XML-RPC","uri":"http:\/\/ping.myblog.jp"},"5991bd2f360b140c76f0d0b185d3b813c862b6e5":{"type":"XML-RPC","uri":"http:\/\/ping.rootblog.com\/rpc.php"},"29d6c22480a1ec546b186305eb9613f4db996c74":{"type":"XML-RPC","uri":"http:\/\/ping.weblogs.se\/"},"aa03e735a7250164fb4cbc6048ec2c3d12e6aa3d":{"type":"XML-RPC","uri":"http:\/\/pingoat.com\/goat\/RPC2"},"931a3eccc17023c4903e948b1e2cc73d859a76c6":{"type":"XML-RPC","uri":"http:\/\/rcs.datashed.net\/RPC2\/"},"c61f5629941a8067dac826bdd362ff885b97224b":{"type":"XML-RPC","uri":"http:\/\/rpc.blogbuzzmachine.com\/RPC2"},"a5ee3040e5629a5ad130025b711287d2f000d38e":{"type":"XML-RPC","uri":"http:\/\/rpc.icerocket.com:10080\/"},"baa599e29fe35baa81907a9c60e1de62bb3853eb":{"type":"XML-RPC","uri":"http:\/\/rpc.newsgator.com\/"},"65c065933ba53b9ebc811acac8ba09b8412437a0":{"type":"XML-RPC","uri":"http:\/\/rpc.pingomatic.com"},"183e07e3fd1ac30c73403c8d0aac246a1cb2b845":{"type":"XML-RPC","uri":"http:\/\/rpc.technorati.com\/rpc\/ping"},"525d9f79190a8246f64205c893ad6920daa97b6a":{"type":"XML-RPC","uri":"http:\/\/rpc.weblogs.com\/RPC2"},"1011261ef2a170c2a2e1c089dcce9fc90b739d2a":{"type":"XML-RPC","uri":"http:\/\/topicexchange.com\/RPC2"},"3a81f63dc6fd19a2afd90ba2608750d14d78b8b1":{"type":"XML-RPC","uri":"http:\/\/trackback.bakeinu.jp\/bakeping.php"},"72a73954d397374491f86221da0c7ba7f8e129b0":{"type":"XML-RPC","uri":"http:\/\/www.a2b.cc\/setloc\/bp.a2b"},"a2c5c61f9dda5b97d3118881afdb290706ebc878":{"type":"XML-RPC","uri":"http:\/\/www.blogoole.com\/ping\/"},"1f63ad887f47832c8fbf5ec05da4fa0868b1d0aa":{"type":"XML-RPC","uri":"http:\/\/www.blogoon.net\/ping\/"},"f1c24832456fadc1507a2c7713cb888c2d6b66f5":{"type":"XML-RPC","uri":"http:\/\/www.blogpeople.net\/servlet\/weblogUpdates"},"9d272966b012bf19a34fc8b4073f2303821727c4":{"type":"XML-RPC","uri":"http:\/\/www.blogroots.com\/tb_populi.blog?id=1"},"5b11eeba3663d3a79304d16cfb5991a1071f7030":{"type":"XML-RPC","uri":"http:\/\/www.blogstreet.com\/xrbin\/xmlrpc.cgi"},"8cfd88dba0cd1e0921c257b9e7a1216fbf932881":{"type":"XML-RPC","uri":"http:\/\/www.mod-pubsub.org\/kn_apps\/blogchatter\/ping.php"},"277cd44a3d69292d4c79186dfbee485e0b82e137":{"type":"XML-RPC","uri":"http:\/\/www.popdex.com\/addsite.php"},"a7487cd6db1e14d23db34420ae3a226ac29f9fe8":{"type":"XML-RPC","uri":"http:\/\/www.snipsnap.org\/RPC2"},"3e3fb95faf0d2361e50a507090eba40abcdb8606":{"type":"XML-RPC","uri":"http:\/\/www.weblogues.com\/RPC\/"},"38457437eba9b6a329c370d7b19cce7ef06af757":{"type":"XML-RPC","uri":"http:\/\/xmlrpc.blogg.de"},"f11db7253708f9ec5c580c65ba69d38483e15d0f":{"type":"XML-RPC","uri":"http:\/\/xping.pubsub.com\/ping\/"},"bbe0dba709b6dfe73faa935debd18a9c60b00096":{"type":"XML-RPC","uri":"http:\/\/ping.blo.gs\/"},"1a68c1c1caaa56715a63e386e8ea549954ecdff2":{"type":"XML-RPC","uri":"http:\/\/blog.goo.ne.jp\/XMLRPC"},"b42a50aa3bb05f1bfc0784eceef7c51933fe28ac":{"type":"XML-RPC","uri":"http:\/\/blog.with2.net\/ping.php"},"88796b1030f253d849280474b7413bdc94b6e32e":{"type":"XML-RPC","uri":"http:\/\/blogping.unidatum.com\/RPC2"},"c332e3141d1b292e425b139ff5e1d979081d352f":{"type":"XML-RPC","uri":"http:\/\/blogpingr.de\/ping\/rpc2"},"cf145feb5a01325acfd9ed5c8386a6cbd7165a8d":{"type":"XML-RPC","uri":"https:\/\/ping.blogs.yandex.ru\/RPC2"},"460333f2ec808f56be029face63adb9774f8ad87":{"type":"XML-RPC","uri":"http:\/\/blogsearch.google.ae\/ping\/RPC2"},"019091155f30938f66d5d527ddd3df8b3bac61a0":{"type":"XML-RPC","uri":"http:\/\/blogsearch.google.at\/ping\/RPC2"},"c6439a72e25a99ef95200173afbdf183ef64e3b9":{"type":"XML-RPC","uri":"http:\/\/blogsearch.google.be\/ping\/RPC2"},"d294000e738a28705b666c8a01908f610122b099":{"type":"XML-RPC","uri":"http:\/\/blogsearch.google.bg\/ping\/RPC2"},"b1f41598cf155eeaf3c0c4d1b40ea817bb17fb07":{"type":"XML-RPC","uri":"http:\/\/blogsearch.google.ca\/ping\/RPC2"},"81ab67d50dd66f2a40982a75f22a75eeef7417ef":{"type":"XML-RPC","uri":"http:\/\/blogsearch.google.ch\/ping\/RPC2"},"6b55c5dab140bf10f27223da2381c3e27acbe6c0":{"type":"XML-RPC","uri":"http:\/\/blogsearch.google.cl\/ping\/RPC2"},"31a89b7a87e789e3df41ecaa638228f2fedfb969":{"type":"XML-RPC","uri":"http:\/\/blogsearch.google.co.cr\/ping\/RPC2"},"f648fc1be9f114c2b7ad4e1a1e04b3ddf901be74":{"type":"XML-RPC","uri":"http:\/\/blogsearch.google.co.hu\/ping\/RPC2"},"bcdc1dcfa961e77d7f6e5a2b3791e74cec4eef07":{"type":"XML-RPC","uri":"http:\/\/blogsearch.google.co.id\/ping\/RPC2"},"53c67e8aa62f0a29831a41f3a41ce6b3fbe68162":{"type":"XML-RPC","uri":"http:\/\/blogsearch.google.co.il\/ping\/RPC2"},"638c8b404ea1375fb1b3321a895d4eee71b1c4d7":{"type":"XML-RPC","uri":"http:\/\/blogsearch.google.co.in\/ping\/RPC2"},"6b3c9bbd32757f5e0e4d9a0a504fde8fe58c8061":{"type":"XML-RPC","uri":"http:\/\/blogsearch.google.co.it\/ping\/RPC2"},"76b8f98acad1cec3d44e6a823ad94197d5be473c":{"type":"XML-RPC","uri":"http:\/\/blogsearch.google.co.jp\/ping\/RPC2"},"b795f319c290cdab4e4211c189d4989bd46ce40d":{"type":"XML-RPC","uri":"http:\/\/blogsearch.google.co.ma\/ping\/RPC2"},"ce746bf1ea3594a3c813390ca9001580702600b4":{"type":"XML-RPC","uri":"http:\/\/blogsearch.google.co.nz\/ping\/RPC2"},"6727276f4843f869ebc88cfc20fd9536898aa33d":{"type":"XML-RPC","uri":"http:\/\/blogsearch.google.co.th\/ping\/RPC2"},"23b91df58c00f7bc205773b939a7c7b5ec8718a4":{"type":"XML-RPC","uri":"http:\/\/blogsearch.google.co.uk\/ping\/RPC2"},"e93a15ffbb01bdb74eb4c1103b78e631e0918e9c":{"type":"XML-RPC","uri":"http:\/\/blogsearch.google.co.ve\/ping\/RPC2"},"5fb894edab2d240f4d94d2166a9a937a784a849b":{"type":"XML-RPC","uri":"http:\/\/blogsearch.google.co.za\/ping\/RPC2"},"942332df8fa0c6d35d84f271606f6503821a5ec1":{"type":"XML-RPC","uri":"http:\/\/blogsearch.google.com.ar\/ping\/RPC2"},"b4acdda0cf8bdaf285c88da38a9e642697c77146":{"type":"XML-RPC","uri":"http:\/\/blogsearch.google.com.au\/ping\/RPC2"},"5a29022c4578b19eeb2c58a0cc1929e6175a11cd":{"type":"XML-RPC","uri":"http:\/\/blogsearch.google.com.br\/ping\/RPC2"},"7a7312fbd01dcaaf37655c0c0dd6a3fe61ba0440":{"type":"XML-RPC","uri":"http:\/\/blogsearch.google.com.co\/ping\/RPC2"},"8a0ae89c6e611f9093b98ecdd8831b762e39fbd1":{"type":"XML-RPC","uri":"http:\/\/blogsearch.google.com.do\/ping\/RPC2"},"02cc2cdf073640c761837f73f441552698a99b56":{"type":"XML-RPC","uri":"http:\/\/blogsearch.google.com.mx\/ping\/RPC2"},"366dbe9d547cf62128aa6298260369df655a2a99":{"type":"XML-RPC","uri":"http:\/\/blogsearch.google.com.my\/ping\/RPC2"},"6f947e5debc331ede9eb31bf4da4bf032ff079b8":{"type":"XML-RPC","uri":"http:\/\/blogsearch.google.com.pe\/ping\/RPC2"},"ee2c83597c4b7e7ab3e55aaf7d689aaf2cd5cc3a":{"type":"XML-RPC","uri":"http:\/\/blogsearch.google.com.sa\/ping\/RPC2"},"71b08d645ae9777d122208b4c9b68fbaceda4f5c":{"type":"XML-RPC","uri":"http:\/\/blogsearch.google.com.sg\/ping\/RPC2"},"0989a43db8f2f9ecaed1853e134f9587cb2dbd58":{"type":"XML-RPC","uri":"http:\/\/blogsearch.google.com.tr\/ping\/RPC2"},"89a579322e118b4eef7b7a3acc8aadba2d6b43f9":{"type":"XML-RPC","uri":"http:\/\/blogsearch.google.com.tw\/ping\/RPC2"},"ba17f76352dad5d67d44417fb2dd5e5c9eafc40c":{"type":"XML-RPC","uri":"http:\/\/blogsearch.google.com.ua\/ping\/RPC2"},"4afdd9e9e312a5a0f90386e5fbb891a73e586cce":{"type":"XML-RPC","uri":"http:\/\/blogsearch.google.com.uy\/ping\/RPC2"},"399ce59dc4eb766d7c80ba93e215b7cc425c1f7a":{"type":"XML-RPC","uri":"http:\/\/blogsearch.google.com.vn\/ping\/RPC2"},"a45bb56738bdbc9fc50ff3f01b792b4857dfa8db":{"type":"XML-RPC","uri":"http:\/\/blogsearch.google.com\/ping\/RPC2"},"88a697eeb34f3ecc4730486095a00021742142a5":{"type":"XML-RPC","uri":"http:\/\/blogsearch.google.de\/ping\/RPC2"},"f08fb186bccdb92e6cf28193e485f30cfe5045f4":{"type":"XML-RPC","uri":"http:\/\/blogsearch.google.es\/ping\/RPC2"},"102f15d72bae6b762b49b4e2bf5f0ae75b511d24":{"type":"XML-RPC","uri":"http:\/\/blogsearch.google.fi\/ping\/RPC2"},"33671d0b4601ddfb44cdbc6143719046c6b78641":{"type":"XML-RPC","uri":"http:\/\/blogsearch.google.fr\/ping\/RPC2"},"83650edecb9a245bff5fa6d63b77a9164747ea19":{"type":"XML-RPC","uri":"http:\/\/blogsearch.google.gr\/ping\/RPC2"},"51c7593d04dab395445ca837a19ff22c1c62de3b":{"type":"XML-RPC","uri":"http:\/\/blogsearch.google.hr\/ping\/RPC2"},"ac1a080eae9b1ce92df1c5304cefbf96789eeaee":{"type":"XML-RPC","uri":"http:\/\/blogsearch.google.ie\/ping\/RPC2"},"1c8547d977f3546d77d47f3d5252540827148bdd":{"type":"XML-RPC","uri":"http:\/\/blogsearch.google.in\/ping\/RPC2"},"eb1d1f6c71f40ad389959d42d2ddc5d1b163176c":{"type":"XML-RPC","uri":"http:\/\/blogsearch.google.it\/ping\/RPC2"},"53d47f5785340beebde422a91bdec911dea9ad8e":{"type":"XML-RPC","uri":"http:\/\/blogsearch.google.jp\/ping\/RPC2"},"60171b59160dac4e7e357ded51cd74173a8b1fa0":{"type":"XML-RPC","uri":"http:\/\/blogsearch.google.ki\/ping\/RPC2"},"acffc7361697e2edda8bea8977c8576795bd5008":{"type":"XML-RPC","uri":"http:\/\/blogsearch.google.kz\/ping\/RPC2"},"4a6a3e402b8f1b75d6f0cc5b5e7f6e8ef229b86f":{"type":"XML-RPC","uri":"http:\/\/blogsearch.google.la\/ping\/RPC2"},"b9e9756e0df597a274e6629dfa889676c3f90cc7":{"type":"XML-RPC","uri":"http:\/\/blogsearch.google.li\/ping\/RPC2"},"22d53b028a5dd0f543bca8a6b1399b70c25df038":{"type":"XML-RPC","uri":"http:\/\/blogsearch.google.lk\/ping\/RPC2"},"1ae28b9caeab31919018a19b571295ac996a0729":{"type":"XML-RPC","uri":"http:\/\/blogsearch.google.lt\/ping\/RPC2"},"78ae49807132da0e22ea7394fbb5fec0eb313050":{"type":"XML-RPC","uri":"http:\/\/blogsearch.google.lu\/ping\/RPC2"},"3326366b3984112495ca5f75381c4df3f1d81512":{"type":"XML-RPC","uri":"http:\/\/blogsearch.google.md\/ping\/RPC2"},"7e583c8560a7c7fb9c08e9d4c00c2888b5128fc6":{"type":"XML-RPC","uri":"http:\/\/blogsearch.google.mn\/ping\/RPC2"},"9ad60a2d2977d3dc615e9467e2a95efbddfb6d13":{"type":"XML-RPC","uri":"http:\/\/blogsearch.google.ms\/ping\/RPC2"},"dbd474bcdf6b6a53a912ae67369ad6f4cb00902b":{"type":"XML-RPC","uri":"http:\/\/blogsearch.google.mu\/ping\/RPC2"},"095689ab1246371c6ae5753b2cf1e84b7993d285":{"type":"XML-RPC","uri":"http:\/\/blogsearch.google.mv\/ping\/RPC2"},"b5ebe472a6da2c79c8b4426708be216d6ee7d9b7":{"type":"XML-RPC","uri":"http:\/\/blogsearch.google.mw\/ping\/RPC2"},"ab069dfa2aa25d9fdbde3c0661b878cbf660ecff":{"type":"XML-RPC","uri":"http:\/\/blogsearch.google.nl\/ping\/RPC2"},"def11305df119e03193369dfd689c94a6b520e43":{"type":"XML-RPC","uri":"http:\/\/blogsearch.google.no\/ping\/RPC2"},"722d28d8d34318ab4f5a74017f15a2915e7afde2":{"type":"XML-RPC","uri":"http:\/\/blogsearch.google.nr\/ping\/RPC2"},"5974b1e708336bc9381dca3e0d73434dac0a0dbf":{"type":"XML-RPC","uri":"http:\/\/blogsearch.google.nu\/ping\/RPC2"},"ea09012bd02272c56472cf07e0c3fd09c96b478f":{"type":"XML-RPC","uri":"http:\/\/blogsearch.google.pl\/ping\/RPC2"},"ca87c63b294595a69cc47681e8bb12ec08bad20a":{"type":"XML-RPC","uri":"http:\/\/blogsearch.google.pn\/ping\/RPC2"},"9c7896bbb9c9a7ce8a0f67e65ebe060fa6f7006f":{"type":"XML-RPC","uri":"http:\/\/blogsearch.google.pt\/ping\/RPC2"},"9f81539271b3c620e182a0568b251cd93926626a":{"type":"XML-RPC","uri":"http:\/\/blogsearch.google.ro\/ping\/RPC2"},"3478adffacda66919463825886405f4bd92932da":{"type":"XML-RPC","uri":"http:\/\/blogsearch.google.ru\/ping\/RPC2"},"bcebe6d4df240654ed13e9f98bf7cca5423b8458":{"type":"XML-RPC","uri":"http:\/\/blogsearch.google.rw\/ping\/RPC2"},"d9119b44be77e41f6555770bcea3f270176b3886":{"type":"XML-RPC","uri":"http:\/\/blogsearch.google.sc\/ping\/RPC2"},"0af16277ab509b09552611db8fa857e676f94e88":{"type":"XML-RPC","uri":"http:\/\/blogsearch.google.se\/ping\/RPC2"},"4afa80bb4a158d8dc3b3e88d3b908d57fdbd8ecd":{"type":"XML-RPC","uri":"http:\/\/blogsearch.google.sh\/ping\/RPC2"},"22db7327c408be9982e64d4b13b7dfb2aaba3102":{"type":"XML-RPC","uri":"http:\/\/blogsearch.google.si\/ping\/RPC2"},"4ea4e9594f2662bfa8ffd3282c00b401a9d2f5bc":{"type":"XML-RPC","uri":"http:\/\/blogsearch.google.sk\/ping\/RPC2"},"2fe8b83635088583a458147b9529820b735e274f":{"type":"XML-RPC","uri":"http:\/\/blogsearch.google.sm\/ping\/RPC2"},"36f2894f6d2aba1e6538aca827ff94c0a7587397":{"type":"XML-RPC","uri":"http:\/\/blogsearch.google.sn\/ping\/RPC2"},"d2b857da222f5426a1481c808d45e54da01a8c13":{"type":"XML-RPC","uri":"http:\/\/blogsearch.google.st\/ping\/RPC2"},"88c269654839720c29aec21385c561e584dd0e72":{"type":"XML-RPC","uri":"http:\/\/blogsearch.google.tk\/ping\/RPC2"},"87d0eaa7f3f00c35fc8edf9d5d4382f86d0499b3":{"type":"XML-RPC","uri":"http:\/\/blogsearch.google.tl\/ping\/RPC2"},"8621a435345964d34613978f430b98ccd09ae589":{"type":"XML-RPC","uri":"http:\/\/blogsearch.google.tm\/ping\/RPC2"},"e1ca0585c2b5a92cc0f6596596a9401d3e61f379":{"type":"XML-RPC","uri":"http:\/\/blogsearch.google.to\/ping\/RPC2"},"2614665a9b5ccd568b4145e31e95c78ef480aee6":{"type":"XML-RPC","uri":"http:\/\/blogsearch.google.tp\/ping\/RPC2"},"b269945ef9985135d7f0b9b9026036acb7907712":{"type":"XML-RPC","uri":"http:\/\/blogsearch.google.tt\/ping\/RPC2"},"46da9c8ecaaae611db7deb7c1419d7277972b306":{"type":"XML-RPC","uri":"http:\/\/blogsearch.google.tw\/ping\/RPC2"},"43cf6fcb82b80f6b708ca15e20c8b78cd88cadef":{"type":"XML-RPC","uri":"http:\/\/blogsearch.google.us\/ping\/RPC2"},"47e54e8fe919200d08c68f98192d44106cfe9f2d":{"type":"XML-RPC","uri":"http:\/\/blogsearch.google.vg\/ping\/RPC2"},"edcc57888cf3d14eac38f4fe6280e98fec214c84":{"type":"XML-RPC","uri":"http:\/\/blogsearch.google.vu\/ping\/RPC2"},"114ec0c1c6a1f70f87d1b0df8603e5fa8d72e412":{"type":"XML-RPC","uri":"http:\/\/blogsearch.google.ws\/ping\/RPC2"},"5bedee508aca71c3054664fddc8181b974ababa8":{"type":"XML-RPC","uri":"http:\/\/news2paper.com\/ping"},"6a39c650b84c03b6b7a51a7bd5797142d1453629":{"type":"XML-RPC","uri":"http:\/\/ping.bloggers.jp\/rpc"},"4526584784861b57dcd1a9d602d65adb8528c92e":{"type":"XML-RPC","uri":"http:\/\/ping.fc2.com"},"111052cd4d6f2a7e7aab08c4f70d09d770971cb3":{"type":"XML-RPC","uri":"http:\/\/ping.rss.drecom.jp"},"2b6df6456594f96b23c048437f5af4ce5b0e5d8c":{"type":"XML-RPC","uri":"http:\/\/rpc.bloggerei.de\/ping\/"},"731cf9c74c99b8986f24a5944cf9274341abbe9c":{"type":"XML-RPC","uri":"http:\/\/rpc.pingomatic.com"},"bb5dd04b9ff18f4a3087c38c727faa9b41437f85":{"type":"XML-RPC","uri":"http:\/\/rpc.technorati.com\/rpc\/ping"},"ebe83fd384fc762c6bc8472976d76988cfc123e8":{"type":"XML-RPC","uri":"http:\/\/rpc.twingly.com"},"047d5d2930e8615c9c0f89059393bdd405abee90":{"type":"XML-RPC","uri":"http:\/\/services.newsgator.com\/ngws\/xmlrpcping.aspx"}} \ No newline at end of file |
From: <wis...@us...> - 2015-12-07 14:25:25
|
Revision: 13180 http://sourceforge.net/p/xoops/svn/13180 Author: wishcraft Date: 2015-12-07 14:25:21 +0000 (Mon, 07 Dec 2015) Log Message: ----------- PingTrax Pre-alpha :: More done\!\!\! Added Paths: ----------- XoopsModules/pingtrax/trunk/ XoopsModules/pingtrax/trunk/class/ XoopsModules/pingtrax/trunk/class/smarty/ XoopsModules/pingtrax/trunk/class/smarty/xoops_plugins/ XoopsModules/pingtrax/trunk/class/smarty/xoops_plugins/function.xoTrackbacks.php XoopsModules/pingtrax/trunk/modules/ XoopsModules/pingtrax/trunk/modules/pingtrax/ XoopsModules/pingtrax/trunk/modules/pingtrax/admin/ XoopsModules/pingtrax/trunk/modules/pingtrax/admin/index.html XoopsModules/pingtrax/trunk/modules/pingtrax/api/ XoopsModules/pingtrax/trunk/modules/pingtrax/api/.htaccess XoopsModules/pingtrax/trunk/modules/pingtrax/api/index.php XoopsModules/pingtrax/trunk/modules/pingtrax/blocks/ XoopsModules/pingtrax/trunk/modules/pingtrax/blocks/index.html XoopsModules/pingtrax/trunk/modules/pingtrax/class/ XoopsModules/pingtrax/trunk/modules/pingtrax/class/index.html XoopsModules/pingtrax/trunk/modules/pingtrax/class/items.php XoopsModules/pingtrax/trunk/modules/pingtrax/class/items_pings.php XoopsModules/pingtrax/trunk/modules/pingtrax/class/items_sitemaps.php XoopsModules/pingtrax/trunk/modules/pingtrax/class/pings.php XoopsModules/pingtrax/trunk/modules/pingtrax/class/plugins.php XoopsModules/pingtrax/trunk/modules/pingtrax/class/simple_html_dom.php XoopsModules/pingtrax/trunk/modules/pingtrax/class/sitemaps.php XoopsModules/pingtrax/trunk/modules/pingtrax/class/trackback.php XoopsModules/pingtrax/trunk/modules/pingtrax/images/ XoopsModules/pingtrax/trunk/modules/pingtrax/images/link.png XoopsModules/pingtrax/trunk/modules/pingtrax/images/logo.png XoopsModules/pingtrax/trunk/modules/pingtrax/include/ XoopsModules/pingtrax/trunk/modules/pingtrax/include/category-id-names.txt XoopsModules/pingtrax/trunk/modules/pingtrax/include/exclude-names.txt XoopsModules/pingtrax/trunk/modules/pingtrax/include/index.html XoopsModules/pingtrax/trunk/modules/pingtrax/include/item-id-names.txt XoopsModules/pingtrax/trunk/modules/pingtrax/language/ XoopsModules/pingtrax/trunk/modules/pingtrax/language/english/ XoopsModules/pingtrax/trunk/modules/pingtrax/language/english/help/ XoopsModules/pingtrax/trunk/modules/pingtrax/language/english/help/help.html XoopsModules/pingtrax/trunk/modules/pingtrax/language/english/help/index.html XoopsModules/pingtrax/trunk/modules/pingtrax/language/english/index.html XoopsModules/pingtrax/trunk/modules/pingtrax/language/english/modinfo.php XoopsModules/pingtrax/trunk/modules/pingtrax/language/index.html XoopsModules/pingtrax/trunk/modules/pingtrax/plugins/ XoopsModules/pingtrax/trunk/modules/pingtrax/plugins/default.php XoopsModules/pingtrax/trunk/modules/pingtrax/plugins/index.html XoopsModules/pingtrax/trunk/modules/pingtrax/preloads/ XoopsModules/pingtrax/trunk/modules/pingtrax/preloads/index.html XoopsModules/pingtrax/trunk/modules/pingtrax/preloads/items.php XoopsModules/pingtrax/trunk/modules/pingtrax/preloads/ping.php XoopsModules/pingtrax/trunk/modules/pingtrax/preloads/sitemap.php XoopsModules/pingtrax/trunk/modules/pingtrax/preloads/trackback.php XoopsModules/pingtrax/trunk/modules/pingtrax/sql/ XoopsModules/pingtrax/trunk/modules/pingtrax/sql/index.html XoopsModules/pingtrax/trunk/modules/pingtrax/sql/mysql.sql XoopsModules/pingtrax/trunk/modules/pingtrax/sql/tables.json XoopsModules/pingtrax/trunk/modules/pingtrax/templates/ XoopsModules/pingtrax/trunk/modules/pingtrax/templates/admin/ XoopsModules/pingtrax/trunk/modules/pingtrax/templates/admin/index.html XoopsModules/pingtrax/trunk/modules/pingtrax/templates/blocks/ XoopsModules/pingtrax/trunk/modules/pingtrax/templates/blocks/index.html XoopsModules/pingtrax/trunk/modules/pingtrax/templates/index.html XoopsModules/pingtrax/trunk/modules/pingtrax/templates/sitemaps.xml.html XoopsModules/pingtrax/trunk/modules/pingtrax/templates/xoTrackback.html XoopsModules/pingtrax/trunk/modules/pingtrax/xoops_version.php Removed Paths: ------------- XoopsModules/pingtrax/trunk/ Added: XoopsModules/pingtrax/trunk/class/smarty/xoops_plugins/function.xoTrackbacks.php =================================================================== --- XoopsModules/pingtrax/trunk/class/smarty/xoops_plugins/function.xoTrackbacks.php (rev 0) +++ XoopsModules/pingtrax/trunk/class/smarty/xoops_plugins/function.xoTrackbacks.php 2015-12-07 14:25:21 UTC (rev 13180) @@ -0,0 +1,51 @@ +<?php +/** + * PingTrax Smarty Trackback Function + * + * You may not change or alter any portion of this comment or credits + * of supporting developers from this source code or any supporting source code + * which is considered copyrighted (c) material of the original comment or credit authors. + * 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. + * + * @copyright Chronolabs Cooperative http://sourceforge.net/projects/chronolabs/ + * @license GNU GPL 3 (http://labs.coop/briefs/legal/general-public-licence/13,3.html) + * @author Simon Antony Roberts <wis...@us...> + * @see http://sourceforge.net/projects/xoops/ + * @see http://sourceforge.net/projects/chronolabs/ + * @see http://sourceforge.net/projects/chronolabsapi/ + * @see http://labs.coop + * @version 1.0.1 + * @since 1.0.1 + */ + +function smarty_function_xoTrackbacks($tag_args, &$comp) +{ + $attrs = $comp->_parse_attrs($tag_args); + foreach ($attrs as $arg_name => $arg_value) { + if ($arg_name == 'dirname') { + $dirname = $arg_value; + continue; + } + } + global $pingtraxitem; + if (is_a($pingtraxitem, "PingtraxItems")) + { + $GLOBALS['xoTheme']->addStylesheet(XOOPS_URL . "/modules/pingtrax/pingtrax.css"); + $trackbacksTpl = new XoopsTpl(); + $trackbacksTpl->assign('permlink', $pingtraxitem->getVar('item-protocol').$pingtraxitem->getVar('item-domain').$pingtraxitem->getVar('item-referer-uri')); + $commentHandler = xoops_gethandler('comment'); + $moduleHandler = xoops_gethandler('module'); + $criteria = new CriteriaCompo(new Criteria('com_modid', $moduleHandler->getByDirname('pingtrax')->getVar('mid'))); + $criteria->add(new Criteria('com_itemid', $pingtraxitem->getVar('id'))); + $criteria->setOrder('com_created'); + $criteria->setSort('DESC'); + foreach($commentHandler->getObjects($criteria) as $comid => $comment) + $trackbacksTpl->append('trackbacks', array('subject'=>$comment->getVar('com_title'), 'comment'=>$comment->getVar('com_text'))); + ob_start(); + $trackbacksTpl->display($GLOBALS['xoops']->path('/modules/pingtrax/templates/xoTrackback.html')); + return ob_get_clean(); + } + return ''; +} Added: XoopsModules/pingtrax/trunk/modules/pingtrax/admin/index.html =================================================================== --- XoopsModules/pingtrax/trunk/modules/pingtrax/admin/index.html (rev 0) +++ XoopsModules/pingtrax/trunk/modules/pingtrax/admin/index.html 2015-12-07 14:25:21 UTC (rev 13180) @@ -0,0 +1 @@ + <script>history.go(-1);</script> \ No newline at end of file Property changes on: XoopsModules/pingtrax/trunk/modules/pingtrax/admin/index.html ___________________________________________________________________ Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Added: XoopsModules/pingtrax/trunk/modules/pingtrax/api/.htaccess =================================================================== --- XoopsModules/pingtrax/trunk/modules/pingtrax/api/.htaccess (rev 0) +++ XoopsModules/pingtrax/trunk/modules/pingtrax/api/.htaccess 2015-12-07 14:25:21 UTC (rev 13180) @@ -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/modules/pingtrax/api/index.php =================================================================== --- XoopsModules/pingtrax/trunk/modules/pingtrax/api/index.php (rev 0) +++ XoopsModules/pingtrax/trunk/modules/pingtrax/api/index.php 2015-12-07 14:25:21 UTC (rev 13180) @@ -0,0 +1,50 @@ +<?php + +require_once dirname(dirname(dirname(__DIR__))) . DIRECTORY_SEPARATOR . "mainfile.php"; +require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . "class". DIRECTORY_SEPARATOR . "trackback.php"; + +$trackback = new PingtraxTrackback($GLOBALS['xoopsConfig']['sitename'], $GLOBALS['xoopsConfig']['sitename'], 'UTF-8'); + +if (!isset($_GET['referer'])) + die($trackback->recieve(false, "\$_GET['referer'] not specified and is required for trackback API!")); + +xoops_load("XoopsUserUtility"); +$moduleHandler = xoops_gethandler('module'); +$commentHandler = xoops_gethandler('comment'); +$itemsHandler = xoops_getmodulehandler('items', 'pingtrax'); +$item = $itemsHandler->getByReferer($_GET['referer']); + +if (!is_a($item, "PingtraxItems")) + die($trackback->recieve(false, $_GET['referer'] . " does not match any recorded item on the trackback API!")); + +$url = $_REQUEST["url"]; +if ($url) { + $excerpt = $_REQUEST["excerpt"]; + $name = ($_REQUEST["blog_name"]) ? $_REQUEST["blog_name"] : $url; + $subject = ($_REQUEST["title"]) ? $_REQUEST["title"] : $url; + $comment = "<strong> TrackBack from <a href=\"$url\">$name</a>:</strong><br />"; + $comment .= "<blockquote>$excerpt</blockquote>"; + + $pluginHandler = xoops_getmodulehandler('plugins', 'pingtrax'); + $remoteitem = $pluginHandler->getRemoteObject($item, $url, $name, $subject, $comment); + if (is_a($remoteitem, "PingtraxItems")) + { + $comment = $commentHandler->create(); + $comment->setVar('com_modid', $moduleHandler->getByDirname('pingtrax')->getVar('mid')); + $comment->setVar('com_title', $subject); + $comment->setVar('com_text', $comment); + $comment->setVar('com_created', time()); + $comment->setVar('com_url', $url); + $comment->setVar('com_ip', XoopsUserUtility::getIP(true)); + $comment->setVar('com_itemid', $item->getVar('id')); + $comment->setVar('dohtml', true); + $comment->setVar('dosmiley', true); + $comment->setVar('doxcode', true); + $comment->setVar('doimage', true); + $comment->setVar('dobr', true); + $commentHandler->insert($comment); + } +} else { + die($trackback->recieve(false, "Missing URL for trackback API!")); +} +die($trackback->recieve(true, "")); Added: XoopsModules/pingtrax/trunk/modules/pingtrax/blocks/index.html =================================================================== --- XoopsModules/pingtrax/trunk/modules/pingtrax/blocks/index.html (rev 0) +++ XoopsModules/pingtrax/trunk/modules/pingtrax/blocks/index.html 2015-12-07 14:25:21 UTC (rev 13180) @@ -0,0 +1 @@ + <script>history.go(-1);</script> \ No newline at end of file Property changes on: XoopsModules/pingtrax/trunk/modules/pingtrax/blocks/index.html ___________________________________________________________________ Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Added: XoopsModules/pingtrax/trunk/modules/pingtrax/class/index.html =================================================================== --- XoopsModules/pingtrax/trunk/modules/pingtrax/class/index.html (rev 0) +++ XoopsModules/pingtrax/trunk/modules/pingtrax/class/index.html 2015-12-07 14:25:21 UTC (rev 13180) @@ -0,0 +1 @@ + <script>history.go(-1);</script> \ No newline at end of file Property changes on: XoopsModules/pingtrax/trunk/modules/pingtrax/class/index.html ___________________________________________________________________ Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Added: XoopsModules/pingtrax/trunk/modules/pingtrax/class/items.php =================================================================== --- XoopsModules/pingtrax/trunk/modules/pingtrax/class/items.php (rev 0) +++ XoopsModules/pingtrax/trunk/modules/pingtrax/class/items.php 2015-12-07 14:25:21 UTC (rev 13180) @@ -0,0 +1,242 @@ +<?php +/** + * Pingtrax Database Class Handler module + * + * You may not change or alter any portion of this comment or credits + * of supporting developers from this source code or any supporting source code + * which is considered copyrighted (c) material of the original comment or credit authors. + * 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. + * + * @copyright Chronolabs Cooperative http://sourceforge.net/projects/chronolabs/ + * @license GNU GPL 3 (http://labs.coop/briefs/legal/general-public-licence/13,3.html) + * @author Simon Antony Roberts <wis...@us...> + * @see http://sourceforge.net/projects/xoops/ + * @see http://sourceforge.net/projects/chronolabs/ + * @see http://sourceforge.net/projects/chronolabsapi/ + * @see http://labs.coop + * @version 1.0.1 + * @since 1.0.1 + */ + + +/** + * Class PingtraxItems + * + * @subpackage pingtrax + * + * Database MySQL Table:- + * + * CREATE TABLE `pingtrax_items` ( + * `id` mediumint(20) NOT NULL AUTO_INCREMENT, + * `parent-id` mediumint(20) NOT NULL DEFAULT '0', + * `referer` varchar(44) NOT NULL DEFAULT '', + * `type` enum('local','remote','unknown') NOT NULL DEFAULT 'unknown', + * `module-dirname` varchar(30) NOT NULL DEFAULT '', + * `module-class` varchar(100) NOT NULL DEFAULT '', + * `module-item-id` mediumint(30) NOT NULL DEFAULT '0', + * `module-php-self` varchar(150) NOT NULL DEFAULT '', + * `module-get` tinytext, + * `item-author-uid` int(13) NOT NULL DEFAULT '0', + * `item-author-name` varchar(64) NOT NULL DEFAULT '', + * `item-category-id` int(20) NOT NULL DEFAULT '0', + * `item-title` varchar(180) NOT NULL DEFAULT '', + * `item-description` varchar(250) NOT NULL DEFAULT '', + * `item-protocol` enum('https://','http://') NOT NULL DEFAULT 'http://', + * `item-domain` varchar(150) NOT NULL DEFAULT '', + * `item-referer-uri` varchar(250) NOT NULL DEFAULT '', + * `item-php-self` varchar(250) NOT NULL DEFAULT '', + * `feed-protocol` enum('https://','http://') NOT NULL DEFAULT 'http://', + * `feed-domain` varchar(150) NOT NULL DEFAULT '', + * `feed-referer-uri` varchar(250) NOT NULL DEFAULT '', + * `discovery-hook` enum('php','preloader','smarty','combination','unknown') NOT NULL DEFAULT 'unknown', + * `user-session` enum('admin','user','guest','unknown') NOT NULL DEFAULT 'unknown', + * `created` int(12) NOT NULL DEFAULT '0', + * `updated` int(12) NOT NULL DEFAULT '0', + * `offlined` int(12) NOT NULL DEFAULT '0', + * PRIMARY KEY (`id`), + * KEY `SEARCH` (`referer`,`item-author-uid`,`item-author-name`,`module-dirname`,`item-protocol`,`item-domain`,`item-referer-uri`,`module-php-self`,`item-php-self`,`discovery-hook`,`id`) KEY_BLOCK_SIZE=128, + * KEY `CHRONOLOGISTICS` (`id`,`referer`,`created`,`updated`,`offlined`) USING BTREE KEY_BLOCK_SIZE=64 + * ) ENGINE=InnoDB DEFAULT CHARSET=utf8 PACK_KEYS=1 DELAY_KEY_WRITE=1 ROW_FORMAT=DYNAMIC KEY_BLOCK_SIZE=16; + */ +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('parent-id', XOBJ_DTYPE_INT, null, false); + $this->initVar('referer', XOBJ_DTYPE_OTHER, sha1(NULL), false, 44); + $this->initVar('type', XOBJ_DTYPE_ENUM, 'unknown', true, false, false, false, array('local','remote','unknown')); + $this->initVar('module-dirname', XOBJ_DTYPE_OTHER, '', false, 30); + $this->initVar('module-class', XOBJ_DTYPE_OTHER, '', false, 100); + $this->initVar('module-item-id', XOBJ_DTYPE_INT, 0, false); + $this->initVar('module-php-self', XOBJ_DTYPE_OTHER, '', false, 150); + $this->initVar('module-get', XOBJ_DTYPE_ARRAY, array(), false); + $this->initVar('item-author-uid', XOBJ_DTYPE_INT, 0, false); + $this->initVar('item-author-name', XOBJ_DTYPE_TXTBOX, '', false, 64); + $this->initVar('item-category-id', XOBJ_DTYPE_INT, null, false); + $this->initVar('item-title', XOBJ_DTYPE_TXTBOX, '', false, 180); + $this->initVar('item-description', XOBJ_DTYPE_TXTBOX, '', false, 250); + $this->initVar('item-protocol', XOBJ_DTYPE_ENUM, XOOPS_PROT, true, false, false, false, array('https://','http://')); + $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, 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); + $this->initVar('updated', XOBJ_DTYPE_INT, 0, false); + $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; + } +} + +/** + * Class PingtraxItemsHandler + */ +class PingtraxItemsHandler extends XoopsPersistableObjectHandler +{ + + /** + * @param null|object $db + */ + function __construct(&$db) + { + parent::__construct($db, "pingtrax_items", 'PingtraxItems', 'id', 'referer'); + } + + + function insert($object = NULL, $force = true) + { + if ($object->isNew()) + { + $criteria = new Criteria('referer', $object->getVar('referer')); + if ($this->getCount($criteria)==0) + $object->setVar('created', time()); + else + { + $objs = $this->getObjects($criteria, false); + if (isset($objs[0])) + return $objs[0]->getVar('id'); + else + return false; + } + if ($object->getVar('type') == 'local') + { + $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); + } + } + } else { + $object->setVar('updated', time()); + } + switch ($object->getVar('user-session')) + { + default: + case 'unknown': + if (is_object($GLOBALS['xoopsUser'])) + { + if ($GLOBALS['xoopsUser']->isAdmin()) + $object->setVar('user-session', 'admin'); + } + case 'admin': + if (is_object($GLOBALS['xoopsUser'])) + { + if (!$GLOBALS['xoopsUser']->isAdmin()) + $object->setVar('user-session', 'user'); + } + case 'user': + if (!is_object($GLOBALS['xoopsUser'])) + $object->setVar('user-session', 'guest'); + case 'guest': + break; + } + return parent::insert($object, $force); + } + + function getByReferer($referer = '') + { + $criteria = new CriteriaCompo(new Criteria('referer', $referer)); + $criteria->add(new Criteria('offline', 0)); + if ($this->getCount($criteria)==0) + return NULL; + $objs = $this->getObjects($criteria, false); + if (isset($objs[0]) && is_a($objs[0], "PingtraxItems")) + return $objs[0]; + return NULL; + } +} Added: XoopsModules/pingtrax/trunk/modules/pingtrax/class/items_pings.php =================================================================== --- XoopsModules/pingtrax/trunk/modules/pingtrax/class/items_pings.php (rev 0) +++ XoopsModules/pingtrax/trunk/modules/pingtrax/class/items_pings.php 2015-12-07 14:25:21 UTC (rev 13180) @@ -0,0 +1,73 @@ +<?php +/** + * Pingtrax Database Class Handler module + * + * You may not change or alter any portion of this comment or credits + * of supporting developers from this source code or any supporting source code + * which is considered copyrighted (c) material of the original comment or credit authors. + * 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. + * + * @copyright Chronolabs Cooperative http://sourceforge.net/projects/chronolabs/ + * @license GNU GPL 3 (http://labs.coop/briefs/legal/general-public-licence/13,3.html) + * @author Simon Antony Roberts <wis...@us...> + * @see http://sourceforge.net/projects/xoops/ + * @see http://sourceforge.net/projects/chronolabs/ + * @see http://sourceforge.net/projects/chronolabsapi/ + * @see http://labs.coop + * @version 1.0.1 + * @since 1.0.1 + */ + + +/** + * Class PingtraxItems_pings + * + * @subpackage itemtrax + * + * Database MySQL Table:- + * + * CREATE TABLE `pingtrax_items_pings` ( + * `id` mediumint(32) NOT NULL AUTO_INCREMENT, + * `ping-referer` varchar(44) NOT NULL DEFAULT '', + * `item-referer` varchar(44) NOT NULL DEFAULT '', + * `when` int(12) NOT NULL DEFAULT '0', + * PRIMARY KEY (`id`), + * KEY `SEARCH` (`id`,`ping-referer`,`item-referer`) USING BTREE, + * KEY `CHRONOLOGISTICS` (`ping-referer`,`item-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; + * + */ +class PingtraxItems_pings extends XoopsObject +{ + /** + * + */ + function __construct() + { + $this->XoopsObject(); + $this->initVar('id', XOBJ_DTYPE_INT, null, false); + $this->initVar('ping-referer', XOBJ_DTYPE_TXTBOX, null, true, 44); + $this->initVar('item-referer', XOBJ_DTYPE_TXTBOX, null, true, 44); + $this->initVar('when', XOBJ_DTYPE_INT, 0, false); + } + +} + +/** + * Class PingtraxItems_pingsHandler + */ +class PingtraxItems_pingsHandler extends XoopsPersistableObjectHandler +{ + + /** + * @param null|object $db + */ + function __construct(&$db) + { + parent::__construct($db, "pingtrax_items_pings", 'PingtraxItems_pings', 'id', 'ping-referer'); + } + + +} Added: XoopsModules/pingtrax/trunk/modules/pingtrax/class/items_sitemaps.php =================================================================== --- XoopsModules/pingtrax/trunk/modules/pingtrax/class/items_sitemaps.php (rev 0) +++ XoopsModules/pingtrax/trunk/modules/pingtrax/class/items_sitemaps.php 2015-12-07 14:25:21 UTC (rev 13180) @@ -0,0 +1,353 @@ +<?php +/** + * Pingtrax Database Class Handler module + * + * You may not change or alter any portion of this comment or credits + * of supporting developers from this source code or any supporting source code + * which is considered copyrighted (c) material of the original comment or credit authors. + * 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. + * + * @copyright Chronolabs Cooperative http://sourceforge.net/projects/chronolabs/ + * @license GNU GPL 3 (http://labs.coop/briefs/legal/general-public-licence/13,3.html) + * @author Simon Antony Roberts <wis...@us...> + * @see http://sourceforge.net/projects/xoops/ + * @see http://sourceforge.net/projects/chronolabs/ + * @see http://sourceforge.net/projects/chronolabsapi/ + * @see http://labs.coop + * @version 1.0.1 + * @since 1.0.1 + */ + +require_once __DIR__ . DIRECTORY_SEPARATOR . 'simple_html_dom.php'; + +/** + * Class PingtraxItems_sitemaps + * + * @subpackage itemtrax + * + * Database MySQL Table:- + * + * CREATE TABLE `pingtrax_items_sitemaps` ( + * `id` mediumint(32) NOT NULL AUTO_INCREMENT, + * `map-referer` varchar(44) NOT NULL DEFAULT '', + * `item-referer` varchar(44) NOT NULL DEFAULT '', + * `frequency` enum('monthly','fortnightly','weekly','daily') NOT NULL DEFAULT 'monthly', + * `priority` float(2,1) NOT NULL DEFAULT '0.9', + * `checking` int(12) NOT NULL DEFAULT '0', + * `changed` int(12) NOT NULL DEFAULT '0', + * `changes` int(12) NOT NULL DEFAULT '0', + * `when` int(12) NOT NULL DEFAULT '0', + * `header-md5` varchar(32) NOT NULL DEFAULT '0', + * `header-changes` int(12) NOT NULL DEFAULT '0', + * `header-changed` int(12) NOT NULL DEFAULT '0', + * `header-bytes` int(12) NOT NULL DEFAULT '0', + * `body-md5` varchar(32) NOT NULL DEFAULT '0', + * `body-changes` int(12) NOT NULL DEFAULT '0', + * `body-changed` int(12) NOT NULL DEFAULT '0', + * `body-bytes` int(12) NOT NULL DEFAULT '0', + * `tabled-md5` varchar(32) NOT NULL DEFAULT '0', + * `tabled-changes` int(12) NOT NULL DEFAULT '0', + * `tabled-changed` int(12) NOT NULL DEFAULT '0', + * `tabled-bytes` int(12) NOT NULL DEFAULT '0', + * `dived-md5` varchar(32) NOT NULL DEFAULT '0', + * `dived-changes` int(12) NOT NULL DEFAULT '0', + * `dived-changed` int(12) NOT NULL DEFAULT '0', + * `dived-bytes` int(12) NOT NULL DEFAULT '0', + * `header-md5-last` varchar(32) NOT NULL DEFAULT '0', + * `header-changes-last` int(12) NOT NULL DEFAULT '0', + * `header-changed-last` int(12) NOT NULL DEFAULT '0', + * `header-bytes-last` int(12) NOT NULL DEFAULT '0', + * `body-md5-last` varchar(32) NOT NULL DEFAULT '0', + * `body-changes-last` int(12) NOT NULL DEFAULT '0', + * `body-changed-last` int(12) NOT NULL DEFAULT '0', + * `body-bytes-last` int(12) NOT NULL DEFAULT '0', + * `tabled-md5-last` varchar(32) NOT NULL DEFAULT '0', + * `tabled-changes-last` int(12) NOT NULL DEFAULT '0', + * `tabled-changed-last` int(12) NOT NULL DEFAULT '0', + * `tabled-bytes-last` int(12) NOT NULL DEFAULT '0', + * `dived-md5-last` varchar(32) NOT NULL DEFAULT '0', + * `dived-changes-last` int(12) NOT NULL DEFAULT '0', + * `dived-changed-last` int(12) NOT NULL DEFAULT '0', + * `dived-bytes-last` int(12) NOT NULL DEFAULT '0', + * PRIMARY KEY (`id`), + * KEY `SEARCH` (`id`,`map-referer`,`item-referer`) USING BTREE, + * KEY `CHRONOLOGISTICS` (`map-referer`,`item-referer`) 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; + * + */ +class PingtraxItems_sitemaps extends XoopsObject +{ + /** + * + */ + function __construct() + { + $this->XoopsObject(); + $this->initVar('id', XOBJ_DTYPE_INT, null, false); + $this->initVar('map-referer', XOBJ_DTYPE_TXTBOX, null, true, 44); + $this->initVar('item-referer', XOBJ_DTYPE_TXTBOX, null, true, 44); + $this->initVar('frequency', XOBJ_DTYPE_ENUM, 'daily', false, false, false, false, false, array('monthly','fortnightly','weekly','daily')); + $this->initVar('priority', XOBJ_DTYPE_FLOAT, 0.9, false); + $this->initVar('checking', XOBJ_DTYPE_INT, time(), false); + $this->initVar('changed', XOBJ_DTYPE_INT, time(), false); + $this->initVar('changes', XOBJ_DTYPE_INT, 0, false); + $this->initVar('when', XOBJ_DTYPE_INT, time(), false); + $this->initVar('header-md5', XOBJ_DTYPE_OTHER, md5(NULL), false, 32); + $this->initVar('header-changes', XOBJ_DTYPE_INT, 0, false); + $this->initVar('header-changed', XOBJ_DTYPE_INT, time(), false); + $this->initVar('header-bytes', XOBJ_DTYPE_INT, 0, false); + $this->initVar('body-md5', XOBJ_DTYPE_OTHER, md5(NULL), false, 32); + $this->initVar('body-changes', XOBJ_DTYPE_INT, 0, false); + $this->initVar('body-changed', XOBJ_DTYPE_INT, time(), false); + $this->initVar('body-bytes', XOBJ_DTYPE_INT, 0, false); + $this->initVar('tabled-md5', XOBJ_DTYPE_OTHER, md5(NULL), false, 32); + $this->initVar('tabled-changes', XOBJ_DTYPE_INT, 0, false); + $this->initVar('tabled-changed', XOBJ_DTYPE_INT, time(), false); + $this->initVar('tabled-bytes', XOBJ_DTYPE_INT, 0, false); + $this->initVar('dived-md5', XOBJ_DTYPE_OTHER, md5(NULL), false, 32); + $this->initVar('dived-changes', XOBJ_DTYPE_INT, 0, false); + $this->initVar('dived-changed', XOBJ_DTYPE_INT, time(), false); + $this->initVar('dived-bytes', XOBJ_DTYPE_INT, 0, false); + $this->initVar('header-md5-last', XOBJ_DTYPE_OTHER, md5(NULL), false, 32); + $this->initVar('header-changes-last', XOBJ_DTYPE_INT, 0, false); + $this->initVar('header-changed-last', XOBJ_DTYPE_INT, time(), false); + $this->initVar('header-bytes-last', XOBJ_DTYPE_INT, 0, false); + $this->initVar('body-md5-last', XOBJ_DTYPE_OTHER, md5(NULL), false, 32); + $this->initVar('body-changes-last', XOBJ_DTYPE_INT, 0, false); + $this->initVar('body-changed-last', XOBJ_DTYPE_INT, time(), false); + $this->initVar('body-bytes-last', XOBJ_DTYPE_INT, 0, false); + $this->initVar('tabled-md5-last', XOBJ_DTYPE_OTHER, md5(NULL), false, 32); + $this->initVar('tabled-changes-last', XOBJ_DTYPE_INT, 0, false); + $this->initVar('tabled-changed-last', XOBJ_DTYPE_INT, time(), false); + $this->initVar('tabled-bytes-last', XOBJ_DTYPE_INT, 0, false); + $this->initVar('dived-md5-last', XOBJ_DTYPE_OTHER, md5(NULL), false, 32); + $this->initVar('dived-changes-last', XOBJ_DTYPE_INT, 0, false); + $this->initVar('dived-changed-last', XOBJ_DTYPE_INT, time(), false); + $this->initVar('dived-bytes-last', XOBJ_DTYPE_INT, 0, false); + } + + /** + * + */ + function checkForChanges() + { + $changes = 0; + $itemsHandler = xoops_getmodulehandler('items', 'pingtrax'); + $item = $itemsHandler->getByReferer($this->getVar('item-referer')); + if (is_a($item, "PingtraxItems")) + { + $html = $this->getURIData($item->getVar('item-protocol').$item->getVar('item-domain').$item->getVar('item-referer-uri'), 65, 65, $item->getVar('module-get')); + if (strlen($html)==0) + { + foreach($item->getVar('module-get') as $item => $value) + $get[$item] = $value; + $html = $this->getURIData($item->getVar('item-protocol').$item->getVar('item-domain').$item->getVar('item-php-self')."?".http_build_query($get), 65, 65, $get); + } + if (strlen($html)!=0) + { + $dom = str_get_html($html); + // Does headers + $head = $dom->find("head"); + $changes .+ $this->setVars(array('header-md5' => md5($head->innertext), 'header-bytes' => strlen($head->innertext))); + // Does Full Body + $body = $dom->find("body"); + $changes .+ $this->setVars(array('body-md5' => md5($body->plaintext), 'body-bytes' => strlen($body->plaintext))); + // Does Tables + $tablesbytes = 0; + $tablesmd5 = ''; + foreach($dom->find('table') as $table) + { + $tablesmd5 = md5($tablesmd5 . sha1($table->plaintext)); + $tablesbytes = $tablesbytes + strlen($table->plaintext); + } + $changes .+ $this->setVars(array('tabled-md5' => $tablesmd5, 'tabled-bytes' => $tablesbytes)); + // Does Div's + $divsbytes = 0; + $divsmd5 = ''; + foreach($dom->find('div') as $div) + { + $divsmd5 = md5($divsmd5 . sha1($div->plaintext)); + $divsbytes = $divsbytes + strlen($div->plaintext); + } + $changes .+ $this->setVars(array('dived-md5' => $divsmd5, 'dived-bytes' => $divsbytes)); + } + } + return $changes; + } + + /** + * + * {@inheritDoc} + * @see XoopsObject::setVars() + */ + function setVars($var_arr = array()) + { + $changes = 0; + $lasting = array('header' => array('-md5', '-bytes'), 'body' => array('-md5', '-bytes'), 'tabled' => array('-md5', '-bytes'), 'dived' => array('-md5', '-bytes')); + foreach($lasting as $key=> $values) + { + $found = false; + foreach($values as $value) + if (in_array($key.$value, array_keys($var_arr))) + { + if ($this->getVar($key.$value)!=$var_arr[$key.$value]) + foreach($values as $val) + $this->setVar($key.$val.'-last', $this->getVar($key.$val)); + $found = true; + } + if ($found == true) + { + $changes .+ 1; + $this->setVar($key.'-changes', $this->getVar($key.'-changes')+1); + $this->setVar($key.'-changed', time()); + if ($this->getVar('changed')>0) + { + if (time() - $this->getVar('changed') < (3600 * 24)) + { + $this->setvar('frequency', 'daily'); + } elseif (time() - $this->getVar('changed') < (3600 * 24 * 7)) + { + $this->setvar('frequency', 'weekly'); + } elseif (time() - $this->getVar('changed') < (3600 * 24 * 14)) + { + $this->setvar('frequency', 'fortnightly'); + } else { + $this->setvar('frequency', 'monthly'); + } + } else + $this->setvar('frequency', 'daily'); + $this->setVar('changed', time()); + $this->setVar('changes', $this->getVar('changes')+1); + if ($this->getvar('priority') < 0.9) + $this->setVar('priority', $this->getVar('priority') + 0.1); + } else { + if ($this->getVar('changed')>0) + { + if (time() - $this->getVar('changed') < (3600 * 24)) + { + $this->setvar('frequency', 'daily'); + } elseif (time() - $this->getVar('changed') < (3600 * 24 * 7)) + { + $this->setvar('frequency', 'weekly'); + } elseif (time() - $this->getVar('changed') < (3600 * 24 * 14)) + { + $this->setvar('frequency', 'fortnightly'); + } else { + $this->setvar('frequency', 'monthly'); + } + } else { + $this->setvar('frequency', 'daily'); + $this->setVar('changed', time()); + } + if ($this->getvar('frequency')=='') + $this->setvar('frequency', 'daily'); + if ($this->getvar('priority') > 0.1) + $this->setVar('priority', $this->getVar('priority') - 0.1); + } + } + + switch($this->getVar('frequency')) + { + case 'daily': + default: + $this->setvar('frequency', 'daily'); + $this->setVar('checking', time() + (3600 * 24 - 900)); + break; + case 'weekly': + $this->setVar('checking', time() + (3600 * 24 * 7 - 900)); + break; + case 'fortnightly': + $this->setVar('checking', time() + (3600 * 24 * 14 - 900)); + break; + case 'monthly': + $this->setVar('checking', time() + (3600 * 24 * 7 * 4 - 900)); + break; + } + parent::setVars($var_arr); + return ($changes>0?$changes:false); + } + + + /* function getURIData() + * + * cURL Routine + * @author Simon Roberts (Chronolabs) si...@la... + * + * @return float() + */ + private function getURIData($uri = '', $timeout = 65, $connectout = 65, $post_data = array()) + { + if (!function_exists("curl_init")) + { + return file_get_contents($uri); + } + if (!$btt = curl_init($uri)) { + return false; + } + curl_setopt($btt, CURLOPT_HEADER, 0); + curl_setopt($btt, CURLOPT_POST, (count($posts)==0?false:true)); + if (count($posts)!=0) + curl_setopt($btt, CURLOPT_POSTFIELDS, http_build_query($post_data)); + curl_setopt($btt, CURLOPT_CONNECTTIMEOUT, $connectout); + curl_setopt($btt, CURLOPT_TIMEOUT, $timeout); + curl_setopt($btt, CURLOPT_RETURNTRANSFER, true); + curl_setopt($btt, CURLOPT_VERBOSE, false); + curl_setopt($btt, CURLOPT_SSL_VERIFYHOST, false); + curl_setopt($btt, CURLOPT_SSL_VERIFYPEER, false); + $data = curl_exec($btt); + curl_close($btt); + return $data; + } + + +} + +/** + * Class PingtraxItems_sitemapsHandler + */ +class PingtraxItems_sitemapsHandler extends XoopsPersistableObjectHandler +{ + + /** + * @param null|object $db + */ + function __construct(&$db) + { + parent::__construct($db, "itemtrax_items_sitemaps", 'PingtraxItems_sitemaps', 'id', 'map-referer'); + } + + + /** + * + * @param array $array + */ + private function addTimeLimit($seconds = 30) + { + global $timelimit; + $timelimit .+ $seconds; + set_time_limit($timelimit); + } + + /** + * + * @param string $mapreferer + */ + function checkForChanges($mapreferer = '') + { + $changes = 0; + $this->addTimeLimit(120); + $criteria = new CriteriaCompo(new Criteria('checking', time(), "<=")); + if (!empty($mapreferer)) + $criteria->add(new Criteria('map-referer', $mapreferer)); + foreach($this->getObjects($criteria, true) as $id => $item) + { + $start = microtime(true); + if (is_a($item, "PingtraxItems_sitemaps")) + $changes = $changes + $item->checkForChanges(); + $this->addTimeLimit(microtime(true)-$start+5); + } + return $changes; + } +} Added: XoopsModules/pingtrax/trunk/modules/pingtrax/class/pings.php =================================================================== --- XoopsModules/pingtrax/trunk/modules/pingtrax/class/pings.php (rev 0) +++ XoopsModules/pingtrax/trunk/modules/pingtrax/class/pings.php 2015-12-07 14:25:21 UTC (rev 13180) @@ -0,0 +1,252 @@ +<?php +/** + * Pingtrax Database Class Handler module + * + * You may not change or alter any portion of this comment or credits + * of supporting developers from this source code or any supporting source code + * which is considered copyrighted (c) material of the original comment or credit authors. + * 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. + * + * @copyright Chronolabs Cooperative http://sourceforge.net/projects/chronolabs/ + * @license GNU GPL 3 (http://labs.coop/briefs/legal/general-public-licence/13,3.html) + * @author Simon Antony Roberts <wis...@us...> + * @see http://sourceforge.net/projects/xoops/ + * @see http://sourceforge.net/projects/chronolabs/ + * @see http://sourceforge.net/projects/chronolabsapi/ + * @see http://labs.coop + * @version 1.0.1 + * @since 1.0.1 + */ + + +/** + * Class PingtraxPings + * + * @subpackage pingtrax + * + * Database MySQL Table:- + * + * CREATE TABLE `pingtrax_pings` ( + * `id` int(14) NOT NULL AUTO_INCREMENT, + * `referer` varchar(44) NOT NULL DEFAULT '', + * `type` enum('XML-RPC','SITEMAPS') NOT NULL DEFAULT 'XML-RPC', + * `uri` varchar(250) NOT NULL DEFAULT '', + * `last-item-referer` varchar(44) NOT NULL DEFAULT '', + * `successful-pings` int(18) NOT NULL DEFAULT '0', + * `failed-pings` int(18) NOT NULL DEFAULT '0', + * `sleep-till` int(12) NOT NULL DEFAULT '0', + * `success-time` int(12) NOT NULL DEFAULT '0', + * `failure-time` int(12) NOT NULL DEFAULT '0', + * `created` int(12) NOT NULL DEFAULT '0', + * `updated` int(12) NOT NULL DEFAULT '0', + * `offlined` int(12) NOT NULL DEFAULT '0', + * PRIMARY KEY (`id`,`referer`,`type`,`uri`), + * KEY `SEARCH` (`referer`,`type`,`uri`,`last-item-referer`,`successful-pings`,`failed-pings`,`id`) USING BTREE, + * 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; + * + */ +class PingtraxPings extends XoopsObject +{ + /** + * + */ + function __construct() + { + $this->XoopsObject(); + $this->initVar('id', XOBJ_DTYPE_INT, null, false); + $this->initVar('referer', XOBJ_DTYPE_OTHER, sha1(NULL), false, 44); + $this->initVar('type', XOBJ_DTYPE_ENUM, 'XML-RPC', true, false, false, false, array('XML-RPC','SITEMAPS')); + $this->initVar('uri', XOBJ_DTYPE_TXTBOX, null, true, 250); + $this->initVar('last-item-referer', XOBJ_DTYPE_OTHER, sha1(NULL), false, 44); + $this->initVar('successful-pings', XOBJ_DTYPE_INT, 0, false); + $this->initVar('failed-pings', XOBJ_DTYPE_INT, 0, false); + $this->initVar('sleep-till', XOBJ_DTYPE_INT, 0, false); + $this->initVar('success-time', XOBJ_DTYPE_INT, 0, false); + $this->initVar('failure-time', XOBJ_DTYPE_INT, 0, false); + $this->initVar('created', XOBJ_DTYPE_INT, 0, false); + $this->initVar('updated', XOBJ_DTYPE_INT, 0, false); + $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; + } + +} + +/** + * Class PingtraxPingsHandler + */ +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"; + + /** + * @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_pings", 'PingtraxPings', 'id', 'referer'); + + $criteria = new Criteria('id',0,"<>"); + if ($this->getCount($criteria)==0) + { + $data = json_decode(file_get_contents($this->_resource), true); + foreach($data as $referer => $values) + { + $obj = $this->create(true); + $obj->setVar('referer', $referer); + $obj->setVar('type', $values['type']); + $obj->setVar('uri', $values['uri']); + $this->insert($obj); + } + } + } + + function insert($object = NULL, $force = true) + { + if ($object->isNew()) + { + $object->setVar('created', time()); + } else { + $object->setVar('updated', time()); + } + 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); + } + } +} Added: XoopsModules/pingtrax/trunk/modules/pingtrax/class/plugins.php =================================================================== --- XoopsModules/pingtrax/trunk/modules/pingtrax/class/plugins.php (rev 0) +++ XoopsModules/pingtrax/trunk/modules/pingtrax/class/plugins.php 2015-12-07 14:25:21 UTC (rev 13180) @@ -0,0 +1,520 @@ +<?php +/** + * PingTrax Constructor for Plugin's + * + * You may not change or alter any portion of this comment or credits + * of supporting developers from this source code or any supporting source code + * which is considered copyrighted (c) material of the original comment or credit authors. + * 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. + * + * @copyright Chronolabs Cooperative http://sourceforge.net/projects/chronolabs/ + * @license GNU GPL 3 (http://labs.coop/briefs/legal/general-public-licence/13,3.html) + * @author Simon Antony Roberts <wis...@us...> + * @see http://sourceforge.net/projects/xoops/ + * @see http://sourceforge.net/projects/chronolabs/ + * @see http://sourceforge.net/projects/chronolabsapi/ + * @see http://labs.coop + * @version 1.0.1 + * @since 1.0.1 + */ + +defined('XOOPS_ROOT_PATH') || die('XOOPS root path not defined'); + +/** + * Class PingtraxPlugins + */ +class PingtraxPlugins extends XoopsObject +{ + + /** + * @var array + */ + var $_configs = array(); + + /** + * + */ + function __construct() + { + $this->XoopsObject(); + + // Load Module Config's into object array + $moduleHandler = xoops_gethandler('module'); + $module = $moduleHandler->getByDirname('pingtrax'); + if (is_a($module, 'XoopsModule')) + { + $configHandler = xoops_gethandler('config'); + $this->_configs = $configHandler->getConfigList($module->getVar('mid')); + } + } + + /** + * + */ + function getModuleDirname() + { + if (is_a($GLOBALS['xoopsModule'], 'XoopsModule')) + { + return $GLOBALS['xoopsModule']->getVar('dirname'); + } + } + + /** + * + */ + function getModuleClass() + { + switch ($this->getModulePHPSelf()) + { + default: + + foreach(get_declared_classes() as $class) + { + if ($this->getModuleDirname() != '' && substr(strtolower($class), 0, strlen($this->getModuleDirname()))==strtolower($this->getModuleDirname()) && (!strpos(strtolower($class), 'categor') && !strpos(strtolower($this->getModulePHPSelf()), 'categor'))) + { + @$obj = new $class(); + if (is_a($obj, "XoopsPersistableObjectHandler")) + return strtolower(str_replace(array(ucfirst($this->getModuleDirname()), $this->getModuleDirname(), 'handler', 'Handler'), '', $class)); + } + } + + break; + } + } + + /** + * + */ + function getModuleItemID() + { + $id = 0; + switch ($this->getModulePHPSelf()) + { + default: + + $idnaming = explode(PHP_EOL, file_get_contents(dirname(__DIR__) . DIRECTORY_SEPARATOR . 'include' . DIRECTORY_SEPARATOR . 'item-id-names.txt')); + foreach($_GET as $key => $value) + { + if (!is_array($value)) + { + foreach($idnaming as $idname) + { + if (strpos($key, $idname) && is_numeric($_GET[$key])) + $id = $_GET[$key]; + elseif (is_numeric($_GET[$key]) && !in_array($key, explode(PHP_EOL, file_get_contents(dirname(__DIR__) . DIRECTORY_SEPARATOR . 'include' . DIRECTORY_SEPARATOR . 'exclude-names.txt')))) + $id = $_GET[$key]; + } + } + } + } + return $id; + } + + /** + * + */ + function getModulePHPSelf() + { + $parts = explode(DIRECTORY_SEPARATOR, $this->getItemPHPSelf()); + $found = false; + foreach($parts as $id => $value) + { + if ($found == false) + unset($parts[$id]); + if ($value == 'modules') + $found = true; + } + return implode(DIRECTORY_SEPARATOR, $parts); + } + + /** + * + */ + function getModuleGet() + { + return $_GET; + } + + + /** + * + */ + function getItemCategoryID() + { + $id = 0; + switch ($this->getModulePHPSelf()) + { + default: + + $idnaming = explode(PHP_EOL, file_get_contents(dirname(__DIR__) . DIRECTORY_SEPARATOR . 'include' . DIRECTORY_SEPARATOR . 'category-id-names.txt')); + foreach($_GET as $key => $value) + { + if (!is_array($value)) + { + foreach($idnaming as $idname) + { + if (strpos($key, $idname) && is_numeric($_GET[$key])) + $id = $_GET[$key]; + elseif ($id = 0 && is_numeric($_GET[$key]) && !in_array($key, explode(PHP_EOL, file_get_contents(dirname(__DIR__) . DIRECTORY_SEPARATOR . 'include' . DIRECTORY_SEPARATOR . 'exclude-names.txt')))) + $id = $_GET[$key]; + } + } + } + } + return $id; + } + + /** + * + */ + function getItemProtocol() + { + return strtolower(XOOPS_PROT); + } + + /** + * + */ + function getItemDomain() + { + return parse_url(strtolower(XOOPS_URL), PHP_URL_HOST); + } + + /** + * + */ + function getItemRefererURI() + { + return $_SERVER["REQUEST_URI"]; + } + + /** + * + */ + function getItemPHPSelf() + { + if (XOOPS_ROOT_PATH == substr(strtolower($_SERVER["REQUEST_URI"]), 0, strlen(XOOPS_ROOT_PATH))) + return substr($_SERVER["PHP_SELF"], strlen(XOOPS_ROOT_PATH)-1); + return $_SERVER["PHP_SELF"]; + } + + + /** + * + */ + function getItemTitle() + { + switch ($this->getModulePHPSelf()) + { + default: + + if (is_object($GLOBALS['xoopsTpl'])) + return $GLOBALS['xoopsTpl']->_tpl_vars['xoops_pagetitle']; + break; + } + return $GLOBALS["xoopsConfig"]['sitename']; + } + + + /** + * + */ + function getItemDescription() + { + switch ($this->getModulePHPSelf()) + { + default: + + if (is_object($GLOBALS['xoopsTpl'])) + return $GLOBALS['xoopsTpl']->_tpl_vars['xoops_meta_description']; + break; + } + return $GLOBALS["xoopsConfigMetaFooter"]['meta_description']; + } + + /** + * + */ + function getItemAuthorUID() + { + static $uid = 0; + if ($uid = 0) + switch ($this->getModulePHPSelf()) + { + default: + foreach($GLOBALS['xoopsTpl']->_tpl_vars as $key => $values) + { + if ($key = 'uid' && is_numeric($values)) + $uid = $values; + elseif(is_array($values)) + $uid = explore_array($values, 'uid', 'uid=([0-9]+)'); + elseif(is_string($values)) + { + preg_match('uid=([0-9])+', $values, $matches); + if (!empty($matches)) + { + foreach($matches as $match) + { + if (is_array($match)) + { + foreach($match as $value) + if (is_numeric($value)) + { + $uid = $value; + continue; + continue; + continue; + continue; + } + } else { + $uid = $match; + continue; + continue; + continue; + } + } + } + } + if ($uid>0) + continue; + } + } + return $uid; + } + + function explore_array($array = array(), $key = 'uid', $pattern = 'uid=([0-9]+)') + { + foreach($array as $key => $values) + { + if ($key = 'uid' && is_numeric($values)) + return $values; + elseif(is_array($values)) + return explore_array($values, 'uid', 'uid=([0-9]+)'); + elseif(is_string($values)) + { + preg_match('uid=([0-9])+', $values, $matches); + if (!empty($matches)) + foreach($matches as $match) + if (is_array($match)) + foreach($match as $value) + if (is_numeric($value)) + { + return $value; + } + else + return $match; + } + } + } + + /** + * + */ + function getItemAuthorName() + { + switch ($this->getModulePHPSelf()) + { + default: + if ($this->getItemAuthorUID()>0) + { + $userHandler = xoops_gethandler('user'); + $user = $userHandler->get($this->getItemAuthorUID()); + if (is_a($user, "XoopsUser")) + { + if (trim($user->getVar('name'))!='') + return trim($user->getVar('name')); + else + return trim($user->getVar('uname')); + } + } + } + return $GLOBALS["xoopsConfig"]['sitename']; + } + + + /** + * + */ + function getFeedProtocol() + { + return parse_url(strtolower(str_replace("%xoops_url%", XOOPS_URL, $this->_configs['default_feed_url'])), PHP_URL_SCHEME); + } + + /** + * + */ + function getFeedDomain() + { + return parse_url(strtolower(str_replace("%xoops_url%", XOOPS_URL, $this->_configs['default_feed_url'])), PHP_URL_HOST); + } + + /** + * + */ + function getFeedRefererURI() + { + return parse_url(strtolower(str_replace("%xoops_url%", XOOPS_URL, $this->_configs['default_feed_url'])), PHP_URL_PATH) . "?" .parse_url(strtolower($this->_configs['default_feed_url']), PHP_URL_QUERY); + } + +} + + +/** + * Class PingtraxPluginsHandler + */ +class PingtraxPluginsHandler extends XoopsPersistableObjectHandler +{ + + /** + * @var string + */ + var $_default = 'default'; + + /** + * @var array + */ + var $_plugins = array(); + + /** + * @param null|object $db + */ + function __construct(&$db) + { + parent::__construct($db); + } + + + function getRemoteObject(PingtraxItems $item, $url = '', $name = '', $subject = '', $comment = '') +... [truncated message content] |
From: <wis...@us...> - 2015-12-07 15:47:59
|
Revision: 13184 http://sourceforge.net/p/xoops/svn/13184 Author: wishcraft Date: 2015-12-07 15:47:57 +0000 (Mon, 07 Dec 2015) Log Message: ----------- PingTrax Beta 1.01 -- Final Release of Beta Modified Paths: -------------- XoopsModules/pingtrax/releases/1.01/modules/pingtrax/class/items_sitemaps.php XoopsModules/pingtrax/trunk/modules/pingtrax/class/items_sitemaps.php Modified: XoopsModules/pingtrax/releases/1.01/modules/pingtrax/class/items_sitemaps.php =================================================================== --- XoopsModules/pingtrax/releases/1.01/modules/pingtrax/class/items_sitemaps.php 2015-12-07 14:35:39 UTC (rev 13183) +++ XoopsModules/pingtrax/releases/1.01/modules/pingtrax/class/items_sitemaps.php 2015-12-07 15:47:57 UTC (rev 13184) @@ -149,11 +149,24 @@ { $dom = str_get_html($html); // Does headers - $head = $dom->find("head"); - $changes .+ $this->setVars(array('header-md5' => md5($head->innertext), 'header-bytes' => strlen($head->innertext))); + $headbytes = 0; + $headmd5 = ''; + foreach($dom->find("head") as $head) + { + $headmd5 = md5($headmd5 . sha1($head->innertext)); + $headbytes = $headbytes + strlen($head->innertext); + } + $changes .+ $this->setVars(array('header-md5' => $headmd5, 'header-bytes' => $headbytes)); // Does Full Body - $body = $dom->find("body"); - $changes .+ $this->setVars(array('body-md5' => md5($body->plaintext), 'body-bytes' => strlen($body->plaintext))); + + $bodybytes = 0; + $bodymd5 = ''; + foreach($dom->find('body') as $body) + { + $bodymd5 = md5($bodymd5 . sha1($body->plaintext)); + $bodybytes = $bodybytes + strlen($body->plaintext); + } + $changes .+ $this->setVars(array('body-md5' => $bodymd5, 'body-bytes' => $bodybytes)); // Does Tables $tablesbytes = 0; $tablesmd5 = ''; Modified: XoopsModules/pingtrax/trunk/modules/pingtrax/class/items_sitemaps.php =================================================================== --- XoopsModules/pingtrax/trunk/modules/pingtrax/class/items_sitemaps.php 2015-12-07 14:35:39 UTC (rev 13183) +++ XoopsModules/pingtrax/trunk/modules/pingtrax/class/items_sitemaps.php 2015-12-07 15:47:57 UTC (rev 13184) @@ -149,11 +149,24 @@ { $dom = str_get_html($html); // Does headers - $head = $dom->find("head"); - $changes .+ $this->setVars(array('header-md5' => md5($head->innertext), 'header-bytes' => strlen($head->innertext))); + $headbytes = 0; + $headmd5 = ''; + foreach($dom->find("head") as $head) + { + $headmd5 = md5($headmd5 . sha1($head->innertext)); + $headbytes = $headbytes + strlen($head->innertext); + } + $changes .+ $this->setVars(array('header-md5' => $headmd5, 'header-bytes' => $headbytes)); // Does Full Body - $body = $dom->find("body"); - $changes .+ $this->setVars(array('body-md5' => md5($body->plaintext), 'body-bytes' => strlen($body->plaintext))); + + $bodybytes = 0; + $bodymd5 = ''; + foreach($dom->find('body') as $body) + { + $bodymd5 = md5($bodymd5 . sha1($body->plaintext)); + $bodybytes = $bodybytes + strlen($body->plaintext); + } + $changes .+ $this->setVars(array('body-md5' => $bodymd5, 'body-bytes' => $bodybytes)); // Does Tables $tablesbytes = 0; $tablesmd5 = ''; |
From: <wis...@us...> - 2016-08-19 16:03:52
|
Revision: 13214 http://sourceforge.net/p/xoops/svn/13214 Author: wishcraft Date: 2016-08-19 16:03:48 +0000 (Fri, 19 Aug 2016) Log Message: ----------- PingTrax 1.04 ~ For XOOPS 2.5.8+ Modified Paths: -------------- XoopsModules/pingtrax/trunk/modules/pingtrax/sql/mysql.sql XoopsModules/pingtrax/trunk/modules/pingtrax/xoops_version.php Added Paths: ----------- XoopsModules/pingtrax/releases/1.04/ XoopsModules/pingtrax/releases/1.04/README.md XoopsModules/pingtrax/releases/1.04/htdocs/ XoopsModules/pingtrax/releases/1.04/htdocs/class/ XoopsModules/pingtrax/releases/1.04/htdocs/class/smarty/ XoopsModules/pingtrax/releases/1.04/htdocs/class/smarty/xoops_plugins/ XoopsModules/pingtrax/releases/1.04/htdocs/class/smarty/xoops_plugins/function.xoTrackbacks.php XoopsModules/pingtrax/releases/1.04/htdocs/modules/ XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/ XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/admin/ XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/admin/about.php XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/admin/admin.php XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/admin/admin_footer.php XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/admin/admin_header.php XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/admin/index.html XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/admin/items.php XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/admin/menu.php XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/admin/pings.php XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/api/ XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/api/.htaccess XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/api/index.php XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/blocks/ XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/blocks/index.html XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/blocks/pingtrax_blocks.php XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/class/ XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/class/index.html XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/class/items.php XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/class/items_pings.php XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/class/items_sitemaps.php XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/class/pings.php XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/class/plugins.php XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/class/simple_html_dom.php XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/class/sitemaps.php XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/class/trackback.php XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/images/ XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/images/add.png XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/images/copy.png XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/images/delete.png XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/images/edit.png XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/images/index.html XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/images/link.png XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/images/logo.png XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/include/ XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/include/category-id-names.txt XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/include/exclude-names.txt XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/include/index.html XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/include/install.php XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/include/item-id-names.txt XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/language/ XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/language/english/ XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/language/english/admin.php XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/language/english/help/ XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/language/english/help/help.html XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/language/english/help/index.html XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/language/english/index.html XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/language/english/modinfo.php XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/language/index.html XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/pingtrax.css XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/plugins/ XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/plugins/default.php XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/plugins/index.html XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/plugins/xcenter.php XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/preloads/ XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/preloads/index.html XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/preloads/items.php XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/preloads/ping.php XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/preloads/sitemap.php XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/preloads/trackback.php XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/sql/ XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/sql/index.html XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/sql/mysql.sql XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/sql/tables.json XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/templates/ XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/templates/admin/ XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/templates/admin/index.html XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/templates/admin/items.html XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/templates/admin/pings.html XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/templates/blocks/ XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/templates/blocks/index.html XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/templates/blocks/trackbacks_block.html XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/templates/index.html XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/templates/sitemaps.xml.html XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/templates/xoTrackback.html XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/xoops.org.news.article.txt XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/xoops_version.php Added: XoopsModules/pingtrax/releases/1.04/README.md =================================================================== --- XoopsModules/pingtrax/releases/1.04/README.md (rev 0) +++ XoopsModules/pingtrax/releases/1.04/README.md 2016-08-19 16:03:48 UTC (rev 13214) @@ -0,0 +1,22 @@ +# Pinging + Trackbacks + Sitemaps +## for XOOPS 2.5 ~ http://xoops.org +### (PHP Framework Example) + +# Introduction:- + +PingTrax is a module for XOOPS 2.5 which allows for the discovery of pages on the system for both pingback discovery and recrawling updates as well as sitemaps that are actually maintained on popularity as well as trackbacks (these are also known as permilinks). + +The Trackbacks has two blocks which are generally displayed on all pages except the front one, one which displays the trackback URL, and the other for the trackback comments (This uses the XOOPS Comments System). + +It will notify pingbacks with locations of information on your site as well as poll it when it is updated, this partly uses an extra smarty class for the trackbacking, make sure this is included, it is an extra plugin + +## Requirements:- + + * You will require a system running XOOPS 2.5 + * You will require a site not running on localhost + +## Downloads:- + +You can download this module and others from sourceforge.net at the following project: https://sourceforge.net/projects/chronolabs/files/XOOPS%202.5/Modules/ + + Added: XoopsModules/pingtrax/releases/1.04/htdocs/class/smarty/xoops_plugins/function.xoTrackbacks.php =================================================================== --- XoopsModules/pingtrax/releases/1.04/htdocs/class/smarty/xoops_plugins/function.xoTrackbacks.php (rev 0) +++ XoopsModules/pingtrax/releases/1.04/htdocs/class/smarty/xoops_plugins/function.xoTrackbacks.php 2016-08-19 16:03:48 UTC (rev 13214) @@ -0,0 +1,51 @@ +<?php +/** + * PingTrax Smarty Trackback Function + * + * You may not change or alter any portion of this comment or credits + * of supporting developers from this source code or any supporting source code + * which is considered copyrighted (c) material of the original comment or credit authors. + * 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. + * + * @copyright Chronolabs Cooperative http://sourceforge.net/projects/chronolabs/ + * @license GNU GPL 3 (http://labs.coop/briefs/legal/general-public-licence/13,3.html) + * @author Simon Antony Roberts <wis...@us...> + * @see http://sourceforge.net/projects/xoops/ + * @see http://sourceforge.net/projects/chronolabs/ + * @see http://sourceforge.net/projects/chronolabsapi/ + * @see http://labs.coop + * @version 1.0.1 + * @since 1.0.1 + */ + +function smarty_function_xoTrackbacks($tag_args, &$comp) +{ + $attrs = $comp->_parse_attrs($tag_args); + foreach ($attrs as $arg_name => $arg_value) { + if ($arg_name == 'dirname') { + $dirname = $arg_value; + continue; + } + } + global $pingtraxitem; + if (is_a($pingtraxitem, "PingtraxItems")) + { + $GLOBALS['xoTheme']->addStylesheet(XOOPS_URL . "/modules/pingtrax/pingtrax.css"); + $trackbacksTpl = new XoopsTpl(); + $trackbacksTpl->assign('permlink', $pingtraxitem->getVar('item-protocol').$pingtraxitem->getVar('item-domain').$pingtraxitem->getVar('item-referer-uri')); + $commentHandler = xoops_gethandler('comment'); + $moduleHandler = xoops_gethandler('module'); + $criteria = new CriteriaCompo(new Criteria('com_modid', $moduleHandler->getByDirname('pingtrax')->getVar('mid'))); + $criteria->add(new Criteria('com_itemid', $pingtraxitem->getVar('id'))); + $criteria->setOrder('com_created'); + $criteria->setSort('DESC'); + foreach($commentHandler->getObjects($criteria) as $comid => $comment) + $trackbacksTpl->append('trackbacks', array('subject'=>$comment->getVar('com_title'), 'comment'=>$comment->getVar('com_text'))); + ob_start(); + $trackbacksTpl->display($GLOBALS['xoops']->path('/modules/pingtrax/templates/xoTrackback.html')); + return ob_get_clean(); + } + return ''; +} Added: XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/admin/about.php =================================================================== --- XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/admin/about.php (rev 0) +++ XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/admin/about.php 2016-08-19 16:03:48 UTC (rev 13214) @@ -0,0 +1,34 @@ +<?php +/** + * PingTrax Admin + * + * You may not change or alter any portion of this comment or credits + * of supporting developers from this source code or any supporting source code + * which is considered copyrighted (c) material of the original comment or credit authors. + * 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. + * + * @copyright Chronolabs Cooperative http://sourceforge.net/projects/chronolabs/ + * @license GNU GPL 3 (http://labs.coop/briefs/legal/general-public-licence/13,3.html) + * @author Simon Antony Roberts <wis...@us...> + * @see http://sourceforge.net/projects/xoops/ + * @see http://sourceforge.net/projects/chronolabs/ + * @see http://sourceforge.net/projects/chronolabsapi/ + * @see http://labs.coop + * @version 1.0.1 + * @since 1.0.1 + */ + +include_once dirname(__FILE__) . '/../../../include/cp_header.php'; +include '../../../class/xoopsformloader.php'; +include_once dirname(__FILE__) . '/admin_header.php'; +xoops_cp_header(); + +$aboutAdmin = new ModuleAdmin(); + +echo $aboutAdmin->addNavigation('about.php'); +echo $aboutAdmin->renderabout('6KJ7RW5DR3VTJ', false); + +include_once dirname(__FILE__) . '/admin_footer.php'; +//xoops_cp_footer(); Property changes on: XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/admin/about.php ___________________________________________________________________ Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Added: XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/admin/admin.php =================================================================== --- XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/admin/admin.php (rev 0) +++ XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/admin/admin.php 2016-08-19 16:03:48 UTC (rev 13214) @@ -0,0 +1,48 @@ +<?php +/** + * PingTrax Admin + * + * You may not change or alter any portion of this comment or credits + * of supporting developers from this source code or any supporting source code + * which is considered copyrighted (c) material of the original comment or credit authors. + * 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. + * + * @copyright Chronolabs Cooperative http://sourceforge.net/projects/chronolabs/ + * @license GNU GPL 3 (http://labs.coop/briefs/legal/general-public-licence/13,3.html) + * @author Simon Antony Roberts <wis...@us...> + * @see http://sourceforge.net/projects/xoops/ + * @see http://sourceforge.net/projects/chronolabs/ + * @see http://sourceforge.net/projects/chronolabsapi/ + * @see http://labs.coop + * @version 1.0.1 + * @since 1.0.1 + */ + +include_once dirname(__FILE__) . '/admin_header.php'; +xoops_cp_header(); + + +$pingsHandler = xoops_getmodulehandler('pings', 'pingtrax'); +$itemsHandler = xoops_getmodulehandler('items', 'pingtrax'); + +$indexAdmin = new ModuleAdmin(); + +$indexAdmin->addInfoBox(_AM_PINGTRAX_STATISTICS); + +$indexAdmin->addInfoBoxLine(_AM_PINGTRAX_STATISTICS, "<label>"._AM_PINGTRAX_STATISTICS_PINGLISTS."</label>", $pingsHandler->getCountPinglists(), 'Green'); +$indexAdmin->addInfoBoxLine(_AM_PINGTRAX_STATISTICS, "<label>"._AM_PINGTRAX_STATISTICS_SITEMAPS."</label>", $pingsHandler->getCountSitemaps(), 'Green'); +$indexAdmin->addInfoBoxLine(_AM_PINGTRAX_STATISTICS, "<label>"._AM_PINGTRAX_STATISTICS_PINGSUCCESS."</label>", $pingsHandler->getSumSuccessful(), 'Green'); +$indexAdmin->addInfoBoxLine(_AM_PINGTRAX_STATISTICS, "<label>"._AM_PINGTRAX_STATISTICS_PINGFAILURES."</label>", $pingsHandler->getSumFailures(), 'Green'); +$indexAdmin->addInfoBoxLine(_AM_PINGTRAX_STATISTICS, "<label>"._AM_PINGTRAX_STATISTICS_PINGLASTSUCCESS."</label>", $pingsHandler->getLastSuccessDate('Y-m-d H:i:s'), 'Purple'); +$indexAdmin->addInfoBoxLine(_AM_PINGTRAX_STATISTICS, "<label>"._AM_PINGTRAX_STATISTICS_PINGLASTFAILED."</label>", $pingsHandler->getLastFailedDate('Y-m-d H:i:s'), 'Red'); +$indexAdmin->addInfoBoxLine(_AM_PINGTRAX_STATISTICS, "<label>"._AM_PINGTRAX_STATISTICS_URISADMIN."</label>", $itemsHandler->getCount(new Criteria('user-session', 'admin')), 'Blue'); +$indexAdmin->addInfoBoxLine(_AM_PINGTRAX_STATISTICS, "<label>"._AM_PINGTRAX_STATISTICS_URISUSERS."</label>", $itemsHandler->getCount(new Criteria('user-session', 'user')), 'Blue'); +$indexAdmin->addInfoBoxLine(_AM_PINGTRAX_STATISTICS, "<label>"._AM_PINGTRAX_STATISTICS_URISGUEST."</label>", $itemsHandler->getCount(new Criteria('user-session', 'guest')), 'Blue'); + +echo $indexAdmin->addNavigation('admin.php'); +echo $indexAdmin->renderIndex(); + +include_once dirname(__FILE__) . '/admin_footer.php'; +//xoops_cp_footer(); Property changes on: XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/admin/admin.php ___________________________________________________________________ Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Added: XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/admin/admin_footer.php =================================================================== --- XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/admin/admin_footer.php (rev 0) +++ XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/admin/admin_footer.php 2016-08-19 16:03:48 UTC (rev 13214) @@ -0,0 +1,30 @@ +<?php +/** + * PingTrax Admin + * + * You may not change or alter any portion of this comment or credits + * of supporting developers from this source code or any supporting source code + * which is considered copyrighted (c) material of the original comment or credit authors. + * 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. + * + * @copyright Chronolabs Cooperative http://sourceforge.net/projects/chronolabs/ + * @license GNU GPL 3 (http://labs.coop/briefs/legal/general-public-licence/13,3.html) + * @author Simon Antony Roberts <wis...@us...> + * @see http://sourceforge.net/projects/xoops/ + * @see http://sourceforge.net/projects/chronolabs/ + * @see http://sourceforge.net/projects/chronolabsapi/ + * @see http://labs.coop + * @version 1.0.1 + * @since 1.0.1 + */ + +echo "<div class='adminfooter'>\n" + ." <div style='text-align: center;'>\n" + ." <a href='http://www.xoops.org' rel='external'><img src='{$pathIcon32}/xoopsmicrobutton.gif' alt='XOOPS' title='XOOPS'></a>\n" + ." </div>\n" + ." " . _AM_MODULEADMIN_ADMIN_FOOTER . "\n" + ."</div>"; + +xoops_cp_footer(); Property changes on: XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/admin/admin_footer.php ___________________________________________________________________ Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Added: XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/admin/admin_header.php =================================================================== --- XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/admin/admin_header.php (rev 0) +++ XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/admin/admin_header.php 2016-08-19 16:03:48 UTC (rev 13214) @@ -0,0 +1,69 @@ +<?php +/** + * PingTrax Admin + * + * You may not change or alter any portion of this comment or credits + * of supporting developers from this source code or any supporting source code + * which is considered copyrighted (c) material of the original comment or credit authors. + * 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. + * + * @copyright Chronolabs Cooperative http://sourceforge.net/projects/chronolabs/ + * @license GNU GPL 3 (http://labs.coop/briefs/legal/general-public-licence/13,3.html) + * @author Simon Antony Roberts <wis...@us...> + * @see http://sourceforge.net/projects/xoops/ + * @see http://sourceforge.net/projects/chronolabs/ + * @see http://sourceforge.net/projects/chronolabsapi/ + * @see http://labs.coop + * @version 1.0.1 + * @since 1.0.1 + */ + + +$path = dirname(dirname(dirname(dirname(__FILE__)))); +include_once $path . '/mainfile.php'; +include_once $path . '/include/cp_functions.php'; +require_once $path . '/include/cp_header.php'; +require_once $path . '/class/pagenav.php'; + +global $xoopsModule; + +$thisModuleDir = $GLOBALS['xoopsModule']->getVar('dirname'); + +//if functions.php file exist +//require_once dirname(dirname(__FILE__)) . '/include/functions.php'; + +// Load language files +xoops_loadLanguage('admin', $thisModuleDir); +xoops_loadLanguage('modinfo', $thisModuleDir); +xoops_loadLanguage('main', $thisModuleDir); + +$pathIcon16 = '../'.$xoopsModule->getInfo('icons16'); +$pathIcon32 = '../'.$xoopsModule->getInfo('icons32'); +$pathModuleAdmin = $xoopsModule->getInfo('dirmoduleadmin'); + +include_once $GLOBALS['xoops']->path($pathModuleAdmin.'/moduleadmin.php'); + +if ($xoopsUser) { + $moduleperm_handler =& xoops_gethandler('groupperm'); + if (!$moduleperm_handler->checkRight('module_admin', $xoopsModule->getVar('mid'), $xoopsUser->getGroups())) { + redirect_header(XOOPS_URL, 1, _NOPERM); + exit(); + } +} else { + redirect_header(XOOPS_URL . "/user.php", 1, _NOPERM); + exit(); +} + +if (!isset($xoopsTpl) || !is_object($xoopsTpl)) { + include_once(XOOPS_ROOT_PATH."/class/template.php"); + $xoopsTpl = new XoopsTpl(); +} + +//$xoopsTpl->assign('pathIcon16', $pathIcon16); + +if (!isset($GLOBALS['xoopsTpl']) || !is_object($GLOBALS['xoopsTpl'])) { + include_once XOOPS_ROOT_PATH . '/class/template.php'; + $GLOBALS['xoopsTpl'] = new XoopsTpl(); +} Property changes on: XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/admin/admin_header.php ___________________________________________________________________ Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Added: XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/admin/index.html =================================================================== --- XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/admin/index.html (rev 0) +++ XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/admin/index.html 2016-08-19 16:03:48 UTC (rev 13214) @@ -0,0 +1 @@ + <script>history.go(-1);</script> \ No newline at end of file Property changes on: XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/admin/index.html ___________________________________________________________________ Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Added: XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/admin/items.php =================================================================== --- XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/admin/items.php (rev 0) +++ XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/admin/items.php 2016-08-19 16:03:48 UTC (rev 13214) @@ -0,0 +1,103 @@ +<?php +/** + * PingTrax Admin + * + * You may not change or alter any portion of this comment or credits + * of supporting developers from this source code or any supporting source code + * which is considered copyrighted (c) material of the original comment or credit authors. + * 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. + * + * @copyright Chronolabs Cooperative http://sourceforge.net/projects/chronolabs/ + * @license GNU GPL 3 (http://labs.coop/briefs/legal/general-public-licence/13,3.html) + * @author Simon Antony Roberts <wis...@us...> + * @see http://sourceforge.net/projects/xoops/ + * @see http://sourceforge.net/projects/chronolabs/ + * @see http://sourceforge.net/projects/chronolabsapi/ + * @see http://labs.coop + * @version 1.0.1 + * @since 1.0.1 + */ + +include_once dirname(__FILE__) . '/admin_header.php'; +xoops_cp_header(); + +xoops_load('PageNav'); +xoops_load('XoopsFormLoader'); + +$indexAdmin = new ModuleAdmin(); +echo $indexAdmin->addNavigation('pings.php'); + +$start = !isset($_REQUEST['start'])?0:(integer)$_REQUEST['start']; +$num = !isset($_REQUEST['num'])?30:(integer)$_REQUEST['num']; +$domain = !isset($_REQUEST['domain'])?'':(string)$_REQUEST['domain']; +$protocol = !isset($_REQUEST['protocol'])?'':(string)$_REQUEST['protocol']; + +$sitemapsHandler = xoops_getmodulehandler('sitemaps', 'pingtrax'); +$itemsHandler = xoops_getmodulehandler('items', 'pingtrax'); +$itemsSitemapsHandler = xoops_getmodulehandler('items_sitemaps', 'pingtrax'); + +$criteria = new Criteria('offlined', 0); +foreach($sitemapsHandler->getObjects($criteria) as $id => $sitemap) + $GLOBALS['xoopsTpl']->append('filter', array('protocol'=>$sitemap->getVar('protocol'), 'domain'=>$sitemap->getVar('domain'),'filename'=>$sitemap->getVar('filename'))); + + +$criteria = new CriteriaCompo(new Criteria('`offlined`', 0)); +if (!empty($protocol)) + $criteria->add(new Criteria('`item-protocol`', mysql_escape_string($protocol))); +if (!empty($domain)) + $criteria->add(new Criteria('`item-domain`', $domain)); +$criteria->add(new Criteria('`type`', 'local')); +$total = $itemsHandler->getCount($criteria); +$criteria->setStart($start); +$criteria->setLimit($num); + +foreach($itemsHandler->getObjects($criteria, true) as $id => $item) +{ + $local = array(); + $local['id'] = $item->getVar('id'); + $local['dirname'] = $item->getVar('module-dirname'); + $local['class'] = $item->getVar('module-class'); + $local['itemid'] = $item->getVar('module-item-id'); + $local['catid'] = $item->getVar('item-category-id'); + $local['author']['uid'] = $item->getVar('item-author-uid'); + $local['author']['name'] = $item->getVar('item-author-name'); + $local['uri'] = $item->getVar('item-protocol').$item->getVar('item-domain').$item->getVar('item-referer-uri'); + $local['title'] = $item->getVar('item-title'); + $local['refereruri'] = $item->getVar('item-referer-uri'); + $local['discovery'] = $item->getVar('discovery-hook'); + $local['session'] = $item->getVar('user-session'); + $criteria = new CriteriaCompo(new Criteria('type', 'remote')); + $criteria->add(new Criteria('parent-id', $local['id'])); + $local['children'] = $itemsHandler->getCount($criteria); + $criteria = new CriteriaCompo(new Criteria('item-referer', $item->getVar('referer'))); + if ($itemsSitemapsHandler->getCount($criteria)==0) + { + $local['changed'] = $local['checking'] = $local['priority'] = $local['frequency'] = '---'; + } else { + $itemsitemaps = $itemsSitemapsHandler->getObjects($criteria, false); + if (isset($itemsitemaps[0]) && is_object($itemsitemaps[0])) + { + $local['frequency'] = $itemsitemaps[0]->getVar('frequency'); + $local['priority'] = $itemsitemaps[0]->getVar('priority'); + $local['changed'] = ($itemsitemaps[0]->getVar('changed')==0?"---":date('Y-m-d H:i:s', $itemsitemaps[0]->getVar('changed'))); + $local['checking'] = ($itemsitemaps[0]->getVar('checking')==0?"---":date('Y-m-d H:i:s', $itemsitemaps[0]->getVar('checking'))); + } else + $local['changed'] = $local['checking'] = $local['priority'] = $local['frequency'] = '---'; + } + $GLOBALS['xoopsTpl']->append('locals', $local); +} + +$pagenav = new XoopsPageNav($total, $num, $start, 'start', "&num=$num&protocol=$protocol&domain=$domain"); +$GLOBALS['xoopsTpl']->assign('pagenav', $pagenav->renderNav(5)); +$GLOBALS['xoopsTpl']->assign('start', $start); +$GLOBALS['xoopsTpl']->assign('num', $num); +$GLOBALS['xoopsTpl']->assign('protocol', $protocol); +$GLOBALS['xoopsTpl']->assign('domain', $domain); +$GLOBALS['xoopsTpl']->assign('phpself', XOOPS_URL . $_SERVER["PHP_SELF"]); +$GLOBALS['xoopsTpl']->display($GLOBALS['xoops']->path('/modules/pingtrax/templates/admin/items.html')); + + +include_once dirname(__FILE__) . '/admin_footer.php'; +//xoops_cp_footer(); Added: XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/admin/menu.php =================================================================== --- XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/admin/menu.php (rev 0) +++ XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/admin/menu.php 2016-08-19 16:03:48 UTC (rev 13214) @@ -0,0 +1,58 @@ +<?php +/** + * PingTrax Admin + * + * You may not change or alter any portion of this comment or credits + * of supporting developers from this source code or any supporting source code + * which is considered copyrighted (c) material of the original comment or credit authors. + * 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. + * + * @copyright Chronolabs Cooperative http://sourceforge.net/projects/chronolabs/ + * @license GNU GPL 3 (http://labs.coop/briefs/legal/general-public-licence/13,3.html) + * @author Simon Antony Roberts <wis...@us...> + * @see http://sourceforge.net/projects/xoops/ + * @see http://sourceforge.net/projects/chronolabs/ + * @see http://sourceforge.net/projects/chronolabsapi/ + * @see http://labs.coop + * @version 1.0.1 + * @since 1.0.1 + */ + +// defined("XOOPS_ROOT_PATH") || die("XOOPS root path not defined"); + +$path = dirname(dirname(dirname(dirname(__FILE__)))); +include_once $path . '/mainfile.php'; + +$dirname = basename(dirname(dirname(__FILE__))); +$module_handler = xoops_gethandler('module'); +$module = $module_handler->getByDirname($dirname); +$pathIcon32 = $module->getInfo('icons32'); +$pathModuleAdmin = $module->getInfo('dirmoduleadmin'); +$pathLanguage = $path . $pathModuleAdmin; + +if (!file_exists($fileinc = $pathLanguage . '/language/' . $GLOBALS['xoopsConfig']['language'] . '/' . 'main.php')) { + $fileinc = $pathLanguage . '/language/english/main.php'; +} + +include_once $fileinc; + +$adminmenu = array(); + +$i = 1; +$adminmenu[$i]['title'] = _MI_PINGTRAX_DASHBOARD; +$adminmenu[$i]['link'] = "admin/admin.php"; +$adminmenu[$i]['icon'] = $pathIcon32.'/home.png' ; +++$i; +$adminmenu[$i]['title'] = _MI_PINGTRAX_PINGS; +$adminmenu[$i]['link'] = 'admin/pings.php'; +$adminmenu[$i]['icon'] = $pathIcon32.'/globe.png'; +++$i; +$adminmenu[$i]['title'] = _MI_PINGTRAX_ITEMS; +$adminmenu[$i]['link'] = 'admin/items.php'; +$adminmenu[$i]['icon'] = $pathIcon32.'/playlist.png'; +++$i; +$adminmenu[$i]['title'] = _MI_PINGTRAX_ABOUT; +$adminmenu[$i]['link'] = 'admin/about.php'; +$adminmenu[$i]['icon'] = $pathIcon32.'/about.png'; Property changes on: XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/admin/menu.php ___________________________________________________________________ Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Added: XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/admin/pings.php =================================================================== --- XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/admin/pings.php (rev 0) +++ XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/admin/pings.php 2016-08-19 16:03:48 UTC (rev 13214) @@ -0,0 +1,109 @@ +<?php +/** + * PingTrax Admin + * + * You may not change or alter any portion of this comment or credits + * of supporting developers from this source code or any supporting source code + * which is considered copyrighted (c) material of the original comment or credit authors. + * 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. + * + * @copyright Chronolabs Cooperative http://sourceforge.net/projects/chronolabs/ + * @license GNU GPL 3 (http://labs.coop/briefs/legal/general-public-licence/13,3.html) + * @author Simon Antony Roberts <wis...@us...> + * @see http://sourceforge.net/projects/xoops/ + * @see http://sourceforge.net/projects/chronolabs/ + * @see http://sourceforge.net/projects/chronolabsapi/ + * @see http://labs.coop + * @version 1.0.1 + * @since 1.0.1 + */ + +include_once dirname(__FILE__) . '/admin_header.php'; +xoops_cp_header(); + +xoops_load('PageNav'); +xoops_load('XoopsFormLoader'); + +$indexAdmin = new ModuleAdmin(); +echo $indexAdmin->addNavigation('pings.php'); + +$start = !isset($_REQUEST['start'])?0:(integer)$_REQUEST['start']; +$num = !isset($_REQUEST['num'])?30:(integer)$_REQUEST['num']; +$id = !isset($_REQUEST['id'])?0:(integer)$_REQUEST['id']; +$op = !isset($_REQUEST['op'])?'default':(string)$_REQUEST['op']; + +$pingsHandler = xoops_getmodulehandler('pings', 'pingtrax'); +$itemsHandler = xoops_getmodulehandler('items', 'pingtrax'); + +switch ($op) +{ + default: + $criteria = new Criteria('offlined', 0); + $total = $pingsHandler->getCount($criteria); + $criteria->setStart($start); + $criteria->setLimit($num); + + foreach($pingsHandler->getObjects($criteria, true) as $id => $ping) + { + if ($ping->getVar('last-item-referer')!='') + { + $item = $itemsHandler->getByReferer($ping->getVar('last-item-referer')); + if (is_object($item)) + $last = array('uri'=>$item->getVar('item-protocol').$item->getVar('item-domain').$item->getVar('item-referer-uri'), 'title' => $item->getVar('item-title')); + else + $last = array(); + } else + $last = array(); + $GLOBALS['xoopsTpl']->append('pings', array('id' => $ping->getVar('id'), 'type' => $ping->getVar('type'), 'uri' => $ping->getVar('uri'), 'last' => $last, "successes" => number_format($ping->getVar('successful-pings'), 0), "failures" => number_format($ping->getVar('failed-pings'), 0), 'success' => ($ping->getVar('success-time')!=0?date("Y-m-d H:i:s", $ping->getVar('success-time')):"---"), 'failed' => ($ping->getVar('failure-time')!=0?date("Y-m-d H:i:s", $ping->getVar('failure-time')):"---"), 'sleeptill' => ($ping->getVar('sleep-till')!=0?date("Y-m-d H:i:s", $ping->getVar('sleep-till')):"---"))); + } + + $pagenav = new XoopsPageNav($total, $num, $start, 'start', "&num=$num"); + $GLOBALS['xoopsTpl']->assign('pagenav', $pagenav->renderNav(5)); + $GLOBALS['xoopsTpl']->assign('start', $start); + $GLOBALS['xoopsTpl']->assign('num', $num); + + $form = new XoopsThemeForm(_AM_PINGTRAX_PING_ADD, 'add-pinglist', $_SERVER['PHP_SELF']."?op=add&start=$start&num=&num"); + $form->addElement(new XoopsFormText(_AM_PINGTRAX_PING_URI, 'uri', 50, 250)); + $type = new XoopsFormSelect(_AM_PINGTRAX_PING_TYPE, 'type'); + $type->addOption('XML-RPC', 'XML-RPC'); + $type->addOption('SITEMAPS', 'SITEMAPS'); + $form->addElement($type); + $form->addElement(new XoopsFormButton(_SUBMIT, 'submit', _SUBMIT)); + $GLOBALS['xoopsTpl']->assign('addform', $form->render()); + $GLOBALS['xoopsTpl']->display($GLOBALS['xoops']->path('/modules/pingtrax/templates/admin/pings.html')); + break; + case "add": + if (!empty($_POST['uri']) && !empty($_POST['type'])) + { + $ping = $pingsHandler->create(); + $ping->setVar('uri', $_POST['uri']); + $ping->setVar('type', $_POST['type']); + if($pingsHandler->insert($ping)) + redirect_header($_SERVER["PHP_SELF"]."?start=$start&num=$num", 7, _AM_PINGTRAX_PING_ADD_SUCCESSFUL); + } + redirect_header($_SERVER["PHP_SELF"]."?start=$start&num=$num", 7, _AM_PINGTRAX_PING_ADD_FAILED); + exit(0); + case "edit": + foreach($_POST['uri'] as $id=> $uri) + { + $ping = $pingsHandler->get($id); + $ping->setVar('uri', $uri); + $ping->setVar('type', $_POST['type'][$id]); + $pingsHandler->insert($ping); + } + redirect_header($_SERVER["PHP_SELF"]."?start=$start&num=$num", 7, _AM_PINGTRAX_PING_EDIT_COMPLETE); + exit(0); + case "delete": + $ping = $pingsHandler->get($id); + if (is_a($ping, "PingtraxPings")) + if ($pingsHandler->delete($ping)) + redirect_header($_SERVER["PHP_SELF"]."?start=$start&num=$num", 7, _AM_PINGTRAX_PING_DELETE_SUCCESS); + redirect_header($_SERVER["PHP_SELF"]."?start=$start&num=$num", 7, _AM_PINGTRAX_PING_DELETE_FAILED); + exit(0); + break; +} + +include_once dirname(__FILE__) . '/admin_footer.php'; +//xoops_cp_footer(); Added: XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/api/.htaccess =================================================================== --- XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/api/.htaccess (rev 0) +++ XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/api/.htaccess 2016-08-19 16:03:48 UTC (rev 13214) @@ -0,0 +1,2 @@ +RewriteEngine On +RewriteRule ^([0-9a-z]{32,44})$ index.php?referer=$1 [L] \ No newline at end of file Added: XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/api/index.php =================================================================== --- XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/api/index.php (rev 0) +++ XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/api/index.php 2016-08-19 16:03:48 UTC (rev 13214) @@ -0,0 +1,50 @@ +<?php + +require_once dirname(dirname(dirname(__DIR__))) . DIRECTORY_SEPARATOR . "mainfile.php"; +require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . "class". DIRECTORY_SEPARATOR . "trackback.php"; + +$trackback = new PingtraxTrackback($GLOBALS['xoopsConfig']['sitename'], $GLOBALS['xoopsConfig']['sitename'], 'UTF-8'); + +if (!isset($_GET['referer'])) + die($trackback->recieve(false, "\$_GET['referer'] not specified and is required for trackback API!")); + +xoops_load("XoopsUserUtility"); +$moduleHandler = xoops_gethandler('module'); +$commentHandler = xoops_gethandler('comment'); +$itemsHandler = xoops_getmodulehandler('items', 'pingtrax'); +$item = $itemsHandler->getByReferer($_GET['referer']); + +if (!is_a($item, "PingtraxItems")) + die($trackback->recieve(false, $_GET['referer'] . " does not match any recorded item on the trackback API!")); + +$url = $_REQUEST["url"]; +if ($url) { + $excerpt = $_REQUEST["excerpt"]; + $name = ($_REQUEST["blog_name"]) ? $_REQUEST["blog_name"] : $url; + $subject = ($_REQUEST["title"]) ? $_REQUEST["title"] : $url; + $comment = "<strong> TrackBack from <a href=\"$url\">$name</a>:</strong><br />"; + $comment .= "<blockquote>$excerpt</blockquote>"; + + $pluginHandler = xoops_getmodulehandler('plugins', 'pingtrax'); + $remoteitem = $pluginHandler->getRemoteObject($item, $url, $name, $subject, $comment); + if (is_a($remoteitem, "PingtraxItems")) + { + $comment = $commentHandler->create(); + $comment->setVar('com_modid', $moduleHandler->getByDirname('pingtrax')->getVar('mid')); + $comment->setVar('com_title', $subject); + $comment->setVar('com_text', $comment); + $comment->setVar('com_created', time()); + $comment->setVar('com_url', $url); + $comment->setVar('com_ip', XoopsUserUtility::getIP(true)); + $comment->setVar('com_itemid', $item->getVar('id')); + $comment->setVar('dohtml', true); + $comment->setVar('dosmiley', true); + $comment->setVar('doxcode', true); + $comment->setVar('doimage', true); + $comment->setVar('dobr', true); + $commentHandler->insert($comment); + } +} else { + die($trackback->recieve(false, "Missing URL for trackback API!")); +} +die($trackback->recieve(true, "")); Added: XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/blocks/index.html =================================================================== --- XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/blocks/index.html (rev 0) +++ XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/blocks/index.html 2016-08-19 16:03:48 UTC (rev 13214) @@ -0,0 +1 @@ + <script>history.go(-1);</script> \ No newline at end of file Property changes on: XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/blocks/index.html ___________________________________________________________________ Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Added: XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/blocks/pingtrax_blocks.php =================================================================== --- XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/blocks/pingtrax_blocks.php (rev 0) +++ XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/blocks/pingtrax_blocks.php 2016-08-19 16:03:48 UTC (rev 13214) @@ -0,0 +1,33 @@ +<?php +/** + * Pingtrax Block Trackbacks Handler module + * + * You may not change or alter any portion of this comment or credits + * of supporting developers from this source code or any supporting source code + * which is considered copyrighted (c) material of the original comment or credit authors. + * 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. + * + * @copyright Chronolabs Cooperative http://sourceforge.net/projects/chronolabs/ + * @license GNU GPL 3 (http://labs.coop/briefs/legal/general-public-licence/13,3.html) + * @author Simon Antony Roberts <wis...@us...> + * @see http://sourceforge.net/projects/xoops/ + * @see http://sourceforge.net/projects/chronolabs/ + * @see http://sourceforge.net/projects/chronolabsapi/ + * @see http://labs.coop + * @version 1.0.1 + * @since 1.0.1 + */ + + +function pingtrax_trackbacks_block_show($args = array()) +{ + +} + + +function pingtrax_trackbacks_block_edit($args = array()) +{ + +} \ No newline at end of file Added: XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/class/index.html =================================================================== --- XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/class/index.html (rev 0) +++ XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/class/index.html 2016-08-19 16:03:48 UTC (rev 13214) @@ -0,0 +1 @@ + <script>history.go(-1);</script> \ No newline at end of file Property changes on: XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/class/index.html ___________________________________________________________________ Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Added: XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/class/items.php =================================================================== --- XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/class/items.php (rev 0) +++ XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/class/items.php 2016-08-19 16:03:48 UTC (rev 13214) @@ -0,0 +1,242 @@ +<?php +/** + * Pingtrax Database Class Handler module + * + * You may not change or alter any portion of this comment or credits + * of supporting developers from this source code or any supporting source code + * which is considered copyrighted (c) material of the original comment or credit authors. + * 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. + * + * @copyright Chronolabs Cooperative http://sourceforge.net/projects/chronolabs/ + * @license GNU GPL 3 (http://labs.coop/briefs/legal/general-public-licence/13,3.html) + * @author Simon Antony Roberts <wis...@us...> + * @see http://sourceforge.net/projects/xoops/ + * @see http://sourceforge.net/projects/chronolabs/ + * @see http://sourceforge.net/projects/chronolabsapi/ + * @see http://labs.coop + * @version 1.0.1 + * @since 1.0.1 + */ + + +/** + * Class PingtraxItems + * + * @subpackage pingtrax + * + * Database MySQL Table:- + * + * CREATE TABLE `pingtrax_items` ( + * `id` mediumint(20) NOT NULL AUTO_INCREMENT, + * `parent-id` mediumint(20) NOT NULL DEFAULT '0', + * `referer` varchar(44) NOT NULL DEFAULT '', + * `type` enum('local','remote','unknown') NOT NULL DEFAULT 'unknown', + * `module-dirname` varchar(30) NOT NULL DEFAULT '', + * `module-class` varchar(100) NOT NULL DEFAULT '', + * `module-item-id` mediumint(30) NOT NULL DEFAULT '0', + * `module-php-self` varchar(150) NOT NULL DEFAULT '', + * `module-get` tinytext, + * `item-author-uid` int(13) NOT NULL DEFAULT '0', + * `item-author-name` varchar(64) NOT NULL DEFAULT '', + * `item-category-id` int(20) NOT NULL DEFAULT '0', + * `item-title` varchar(180) NOT NULL DEFAULT '', + * `item-description` varchar(250) NOT NULL DEFAULT '', + * `item-protocol` enum('https://','http://') NOT NULL DEFAULT 'http://', + * `item-domain` varchar(150) NOT NULL DEFAULT '', + * `item-referer-uri` varchar(250) NOT NULL DEFAULT '', + * `item-php-self` varchar(250) NOT NULL DEFAULT '', + * `feed-protocol` enum('https://','http://') NOT NULL DEFAULT 'http://', + * `feed-domain` varchar(150) NOT NULL DEFAULT '', + * `feed-referer-uri` varchar(250) NOT NULL DEFAULT '', + * `discovery-hook` enum('php','preloader','smarty','combination','unknown') NOT NULL DEFAULT 'unknown', + * `user-session` enum('admin','user','guest','unknown') NOT NULL DEFAULT 'unknown', + * `created` int(12) NOT NULL DEFAULT '0', + * `updated` int(12) NOT NULL DEFAULT '0', + * `offlined` int(12) NOT NULL DEFAULT '0', + * PRIMARY KEY (`id`), + * KEY `SEARCH` (`referer`,`item-author-uid`,`item-author-name`,`module-dirname`,`item-protocol`,`item-domain`,`item-referer-uri`,`module-php-self`,`item-php-self`,`discovery-hook`,`id`) KEY_BLOCK_SIZE=128, + * KEY `CHRONOLOGISTICS` (`id`,`referer`,`created`,`updated`,`offlined`) USING BTREE KEY_BLOCK_SIZE=64 + * ) ENGINE=InnoDB DEFAULT CHARSET=utf8 PACK_KEYS=1 DELAY_KEY_WRITE=1 ROW_FORMAT=DYNAMIC KEY_BLOCK_SIZE=16; + */ +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('parent-id', XOBJ_DTYPE_INT, null, false); + $this->initVar('referer', XOBJ_DTYPE_OTHER, sha1(NULL), false, 44); + $this->initVar('type', XOBJ_DTYPE_ENUM, 'unknown', true, false, false, false, array('local','remote','unknown')); + $this->initVar('module-dirname', XOBJ_DTYPE_OTHER, '', false, 30); + $this->initVar('module-class', XOBJ_DTYPE_OTHER, '', false, 100); + $this->initVar('module-item-id', XOBJ_DTYPE_INT, 0, false); + $this->initVar('module-php-self', XOBJ_DTYPE_OTHER, '', false, 150); + $this->initVar('module-get', XOBJ_DTYPE_ARRAY, array(), false); + $this->initVar('item-author-uid', XOBJ_DTYPE_INT, 0, false); + $this->initVar('item-author-name', XOBJ_DTYPE_TXTBOX, '', false, 64); + $this->initVar('item-category-id', XOBJ_DTYPE_INT, null, false); + $this->initVar('item-title', XOBJ_DTYPE_TXTBOX, '', false, 180); + $this->initVar('item-description', XOBJ_DTYPE_TXTBOX, '', false, 250); + $this->initVar('item-protocol', XOBJ_DTYPE_ENUM, XOOPS_PROT, true, false, false, false, array('https://','http://')); + $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, 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); + $this->initVar('updated', XOBJ_DTYPE_INT, 0, false); + $this->initVar('offlined', 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; + } +} + +/** + * Class PingtraxItemsHandler + */ +class PingtraxItemsHandler extends XoopsPersistableObjectHandler +{ + + /** + * @param null|object $db + */ + function __construct(&$db) + { + parent::__construct($db, "pingtrax_items", 'PingtraxItems', 'id', 'referer'); + } + + + function insert($object = NULL, $force = true) + { + if ($object->isNew()) + { + $criteria = new Criteria('referer', $object->getVar('referer')); + if ($this->getCount($criteria)==0) + $object->setVar('created', time()); + else + { + $objs = $this->getObjects($criteria, false); + if (isset($objs[0])) + return $objs[0]->getVar('id'); + else + return false; + } + if ($object->getVar('type') == 'local') + { + $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('`offlined`', 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); + } + } + } else { + $object->setVar('updated', time()); + } + switch ($object->getVar('user-session')) + { + default: + case 'unknown': + if (is_object($GLOBALS['xoopsUser'])) + { + if ($GLOBALS['xoopsUser']->isAdmin()) + $object->setVar('user-session', 'admin'); + } + case 'admin': + if (is_object($GLOBALS['xoopsUser'])) + { + if (!$GLOBALS['xoopsUser']->isAdmin()) + $object->setVar('user-session', 'user'); + } + case 'user': + if (!is_object($GLOBALS['xoopsUser'])) + $object->setVar('user-session', 'guest'); + case 'guest': + break; + } + return parent::insert($object, $force); + } + + function getByReferer($referer = '') + { + $criteria = new CriteriaCompo(new Criteria('referer', $referer)); + $criteria->add(new Criteria('offline', 0)); + if ($this->getCount($criteria)==0) + return NULL; + $objs = $this->getObjects($criteria, false); + if (isset($objs[0]) && is_a($objs[0], "PingtraxItems")) + return $objs[0]; + return NULL; + } +} Added: XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/class/items_pings.php =================================================================== --- XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/class/items_pings.php (rev 0) +++ XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/class/items_pings.php 2016-08-19 16:03:48 UTC (rev 13214) @@ -0,0 +1,73 @@ +<?php +/** + * Pingtrax Database Class Handler module + * + * You may not change or alter any portion of this comment or credits + * of supporting developers from this source code or any supporting source code + * which is considered copyrighted (c) material of the original comment or credit authors. + * 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. + * + * @copyright Chronolabs Cooperative http://sourceforge.net/projects/chronolabs/ + * @license GNU GPL 3 (http://labs.coop/briefs/legal/general-public-licence/13,3.html) + * @author Simon Antony Roberts <wis...@us...> + * @see http://sourceforge.net/projects/xoops/ + * @see http://sourceforge.net/projects/chronolabs/ + * @see http://sourceforge.net/projects/chronolabsapi/ + * @see http://labs.coop + * @version 1.0.1 + * @since 1.0.1 + */ + + +/** + * Class PingtraxItems_pings + * + * @subpackage itemtrax + * + * Database MySQL Table:- + * + * CREATE TABLE `pingtrax_items_pings` ( + * `id` mediumint(32) NOT NULL AUTO_INCREMENT, + * `ping-referer` varchar(44) NOT NULL DEFAULT '', + * `item-referer` varchar(44) NOT NULL DEFAULT '', + * `when` int(12) NOT NULL DEFAULT '0', + * PRIMARY KEY (`id`), + * KEY `SEARCH` (`id`,`ping-referer`,`item-referer`) USING BTREE, + * KEY `CHRONOLOGISTICS` (`ping-referer`,`item-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; + * + */ +class PingtraxItems_pings extends XoopsObject +{ + /** + * + */ + function __construct() + { + $this->XoopsObject(); + $this->initVar('id', XOBJ_DTYPE_INT, null, false); + $this->initVar('ping-referer', XOBJ_DTYPE_TXTBOX, null, true, 44); + $this->initVar('item-referer', XOBJ_DTYPE_TXTBOX, null, true, 44); + $this->initVar('when', XOBJ_DTYPE_INT, 0, false); + } + +} + +/** + * Class PingtraxItems_pingsHandler + */ +class PingtraxItems_pingsHandler extends XoopsPersistableObjectHandler +{ + + /** + * @param null|object $db + */ + function __construct(&$db) + { + parent::__construct($db, "pingtrax_items_pings", 'PingtraxItems_pings', 'id', 'ping-referer'); + } + + +} Added: XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/class/items_sitemaps.php =================================================================== --- XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/class/items_sitemaps.php (rev 0) +++ XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/class/items_sitemaps.php 2016-08-19 16:03:48 UTC (rev 13214) @@ -0,0 +1,366 @@ +<?php +/** + * Pingtrax Database Class Handler module + * + * You may not change or alter any portion of this comment or credits + * of supporting developers from this source code or any supporting source code + * which is considered copyrighted (c) material of the original comment or credit authors. + * 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. + * + * @copyright Chronolabs Cooperative http://sourceforge.net/projects/chronolabs/ + * @license GNU GPL 3 (http://labs.coop/briefs/legal/general-public-licence/13,3.html) + * @author Simon Antony Roberts <wis...@us...> + * @see http://sourceforge.net/projects/xoops/ + * @see http://sourceforge.net/projects/chronolabs/ + * @see http://sourceforge.net/projects/chronolabsapi/ + * @see http://labs.coop + * @version 1.0.1 + * @since 1.0.1 + */ + +require_once __DIR__ . DIRECTORY_SEPARATOR . 'simple_html_dom.php'; + +/** + * Class PingtraxItems_sitemaps + * + * @subpackage itemtrax + * + * Database MySQL Table:- + * + * CREATE TABLE `pingtrax_items_sitemaps` ( + * `id` mediumint(32) NOT NULL AUTO_INCREMENT, + * `map-referer` varchar(44) NOT NULL DEFAULT '', + * `item-referer` varchar(44) NOT NULL DEFAULT '', + * `frequency` enum('monthly','fortnightly','weekly','daily') NOT NULL DEFAULT 'monthly', + * `priority` float(2,1) NOT NULL DEFAULT '0.9', + * `checking` int(12) NOT NULL DEFAULT '0', + * `changed` int(12) NOT NULL DEFAULT '0', + * `changes` int(12) NOT NULL DEFAULT '0', + * `when` int(12) NOT NULL DEFAULT '0', + * `header-md5` varchar(32) NOT NULL DEFAULT '0', + * `header-changes` int(12) NOT NULL DEFAULT '0', + * `header-changed` int(12) NOT NULL DEFAULT '0', + * `header-bytes` int(12) NOT NULL DEFAULT '0', + * `body-md5` varchar(32) NOT NULL DEFAULT '0', + * `body-changes` int(12) NOT NULL DEFAULT '0', + * `body-changed` int(12) NOT NULL DEFAULT '0', + * `body-bytes` int(12) NOT NULL DEFAULT '0', + * `tabled-md5` varchar(32) NOT NULL DEFAULT '0', + * `tabled-changes` int(12) NOT NULL DEFAULT '0', + * `tabled-changed` int(12) NOT NULL DEFAULT '0', + * `tabled-bytes` int(12) NOT NULL DEFAULT '0', + * `dived-md5` varchar(32) NOT NULL DEFAULT '0', + * `dived-changes` int(12) NOT NULL DEFAULT '0', + * `dived-changed` int(12) NOT NULL DEFAULT '0', + * `dived-bytes` int(12) NOT NULL DEFAULT '0', + * `header-md5-last` varchar(32) NOT NULL DEFAULT '0', + * `header-changes-last` int(12) NOT NULL DEFAULT '0', + * `header-changed-last` int(12) NOT NULL DEFAULT '0', + * `header-bytes-last` int(12) NOT NULL DEFAULT '0', + * `body-md5-last` varchar(32) NOT NULL DEFAULT '0', + * `body-changes-last` int(12) NOT NULL DEFAULT '0', + * `body-changed-last` int(12) NOT NULL DEFAULT '0', + * `body-bytes-last` int(12) NOT NULL DEFAULT '0', + * `tabled-md5-last` varchar(32) NOT NULL DEFAULT '0', + * `tabled-changes-last` int(12) NOT NULL DEFAULT '0', + * `tabled-changed-last` int(12) NOT NULL DEFAULT '0', + * `tabled-bytes-l... [truncated message content] |
From: <wis...@us...> - 2016-08-19 16:23:16
|
Revision: 13215 http://sourceforge.net/p/xoops/svn/13215 Author: wishcraft Date: 2016-08-19 16:23:14 +0000 (Fri, 19 Aug 2016) Log Message: ----------- PingTrax 1.04 ~ For XOOPS 2.5.8+ Modified Paths: -------------- XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/admin/items.php XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/blocks/pingtrax_blocks.php XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/class/trackback.php XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/xoops_version.php XoopsModules/pingtrax/trunk/modules/pingtrax/admin/items.php XoopsModules/pingtrax/trunk/modules/pingtrax/blocks/pingtrax_blocks.php XoopsModules/pingtrax/trunk/modules/pingtrax/class/trackback.php XoopsModules/pingtrax/trunk/modules/pingtrax/xoops_version.php Added Paths: ----------- XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/templates/blocks/trackbacks_url.html XoopsModules/pingtrax/trunk/modules/pingtrax/templates/blocks/trackbacks_url.html Modified: XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/admin/items.php =================================================================== --- XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/admin/items.php 2016-08-19 16:03:48 UTC (rev 13214) +++ XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/admin/items.php 2016-08-19 16:23:14 UTC (rev 13215) @@ -45,7 +45,7 @@ $criteria = new CriteriaCompo(new Criteria('`offlined`', 0)); if (!empty($protocol)) - $criteria->add(new Criteria('`item-protocol`', mysql_escape_string($protocol))); + $criteria->add(new Criteria('`item-protocol`', mysqli_escape_string($protocol))); if (!empty($domain)) $criteria->add(new Criteria('`item-domain`', $domain)); $criteria->add(new Criteria('`type`', 'local')); Modified: XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/blocks/pingtrax_blocks.php =================================================================== --- XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/blocks/pingtrax_blocks.php 2016-08-19 16:03:48 UTC (rev 13214) +++ XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/blocks/pingtrax_blocks.php 2016-08-19 16:23:14 UTC (rev 13215) @@ -30,4 +30,15 @@ function pingtrax_trackbacks_block_edit($args = array()) { +} + +function pingtrax_trackurl_block_show($args = array()) +{ + return array('url'=>XOOPS_URL . $_SERVER["REQUEST_URI"]); +} + + +function pingtrax_trackurl_block_edit($args = array()) +{ + } \ No newline at end of file Modified: XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/class/trackback.php =================================================================== --- XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/class/trackback.php 2016-08-19 16:03:48 UTC (rev 13214) +++ XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/class/trackback.php 2016-08-19 16:23:14 UTC (rev 13215) @@ -294,7 +294,7 @@ $author = $this->author; } - $return = "<!-- \n"; + $return = "\n\n<!--\n"; $return .= "<rdf:RDF xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\" \n"; $return .= "\txmlns:dc=\"http://purl.org/dc/elements/1.1/\" \n"; $return .= "\txmlns:trackback=\"http://madskills.com/public/xml/rss/module/trackback/\"> \n"; @@ -308,7 +308,7 @@ $return .= "\tdc:creator=\"" . $this->xml_safe($author) . "\" \n"; $return .= "\tdc:date=\"" . $RFC822_date . "\" /> \n"; $return .= "</rdf:RDF> \n"; - $return .= "--> \n"; + $return .= "-->\n"; return $return; } Added: XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/templates/blocks/trackbacks_url.html =================================================================== --- XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/templates/blocks/trackbacks_url.html (rev 0) +++ XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/templates/blocks/trackbacks_url.html 2016-08-19 16:23:14 UTC (rev 13215) @@ -0,0 +1 @@ +@:<{$block.url}> \ No newline at end of file Modified: XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/xoops_version.php =================================================================== --- XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/xoops_version.php 2016-08-19 16:03:48 UTC (rev 13214) +++ XoopsModules/pingtrax/releases/1.04/htdocs/modules/pingtrax/xoops_version.php 2016-08-19 16:23:14 UTC (rev 13215) @@ -128,3 +128,14 @@ "template" => "trackbacks_block.html", ); + +$modversion["blocks"][2] = array( + "file" => "pingtrax_blocks.php", + "name" => "Trackbacks URL", + "description" => "Show's Trackback URL", + "show_func" => "pingtrax_trackurl_block_show", + "edit_func" => "pingtrax_trackurl_block_edit", + "options" => "", + "template" => "trackbacks_url.html", +); + Modified: XoopsModules/pingtrax/trunk/modules/pingtrax/admin/items.php =================================================================== --- XoopsModules/pingtrax/trunk/modules/pingtrax/admin/items.php 2016-08-19 16:03:48 UTC (rev 13214) +++ XoopsModules/pingtrax/trunk/modules/pingtrax/admin/items.php 2016-08-19 16:23:14 UTC (rev 13215) @@ -45,7 +45,7 @@ $criteria = new CriteriaCompo(new Criteria('`offlined`', 0)); if (!empty($protocol)) - $criteria->add(new Criteria('`item-protocol`', mysql_escape_string($protocol))); + $criteria->add(new Criteria('`item-protocol`', mysqli_escape_string($protocol))); if (!empty($domain)) $criteria->add(new Criteria('`item-domain`', $domain)); $criteria->add(new Criteria('`type`', 'local')); Modified: XoopsModules/pingtrax/trunk/modules/pingtrax/blocks/pingtrax_blocks.php =================================================================== --- XoopsModules/pingtrax/trunk/modules/pingtrax/blocks/pingtrax_blocks.php 2016-08-19 16:03:48 UTC (rev 13214) +++ XoopsModules/pingtrax/trunk/modules/pingtrax/blocks/pingtrax_blocks.php 2016-08-19 16:23:14 UTC (rev 13215) @@ -30,4 +30,15 @@ function pingtrax_trackbacks_block_edit($args = array()) { +} + +function pingtrax_trackurl_block_show($args = array()) +{ + return array('url'=>XOOPS_URL . $_SERVER["REQUEST_URI"]); +} + + +function pingtrax_trackurl_block_edit($args = array()) +{ + } \ No newline at end of file Modified: XoopsModules/pingtrax/trunk/modules/pingtrax/class/trackback.php =================================================================== --- XoopsModules/pingtrax/trunk/modules/pingtrax/class/trackback.php 2016-08-19 16:03:48 UTC (rev 13214) +++ XoopsModules/pingtrax/trunk/modules/pingtrax/class/trackback.php 2016-08-19 16:23:14 UTC (rev 13215) @@ -294,7 +294,7 @@ $author = $this->author; } - $return = "<!-- \n"; + $return = "\n\n<!--\n"; $return .= "<rdf:RDF xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\" \n"; $return .= "\txmlns:dc=\"http://purl.org/dc/elements/1.1/\" \n"; $return .= "\txmlns:trackback=\"http://madskills.com/public/xml/rss/module/trackback/\"> \n"; @@ -308,7 +308,7 @@ $return .= "\tdc:creator=\"" . $this->xml_safe($author) . "\" \n"; $return .= "\tdc:date=\"" . $RFC822_date . "\" /> \n"; $return .= "</rdf:RDF> \n"; - $return .= "--> \n"; + $return .= "-->\n"; return $return; } Added: XoopsModules/pingtrax/trunk/modules/pingtrax/templates/blocks/trackbacks_url.html =================================================================== --- XoopsModules/pingtrax/trunk/modules/pingtrax/templates/blocks/trackbacks_url.html (rev 0) +++ XoopsModules/pingtrax/trunk/modules/pingtrax/templates/blocks/trackbacks_url.html 2016-08-19 16:23:14 UTC (rev 13215) @@ -0,0 +1 @@ +@:<{$block.url}> \ No newline at end of file Modified: XoopsModules/pingtrax/trunk/modules/pingtrax/xoops_version.php =================================================================== --- XoopsModules/pingtrax/trunk/modules/pingtrax/xoops_version.php 2016-08-19 16:03:48 UTC (rev 13214) +++ XoopsModules/pingtrax/trunk/modules/pingtrax/xoops_version.php 2016-08-19 16:23:14 UTC (rev 13215) @@ -128,3 +128,14 @@ "template" => "trackbacks_block.html", ); + +$modversion["blocks"][2] = array( + "file" => "pingtrax_blocks.php", + "name" => "Trackbacks URL", + "description" => "Show's Trackback URL", + "show_func" => "pingtrax_trackurl_block_show", + "edit_func" => "pingtrax_trackurl_block_edit", + "options" => "", + "template" => "trackbacks_url.html", +); + |
From: <wis...@us...> - 2017-05-12 15:27:38
|
Revision: 13241 http://sourceforge.net/p/xoops/svn/13241 Author: wishcraft Date: 2017-05-12 15:27:34 +0000 (Fri, 12 May 2017) Log Message: ----------- Pingtrax 2.01 ~ Final Release after Candidate in Major+Minor! Modified Paths: -------------- XoopsModules/pingtrax/trunk/modules/pingtrax/class/pings.php XoopsModules/pingtrax/trunk/modules/pingtrax/class/plugins.php XoopsModules/pingtrax/trunk/modules/pingtrax/xoops.org.news.article.txt XoopsModules/pingtrax/trunk/modules/pingtrax/xoops_version.php Added Paths: ----------- XoopsModules/pingtrax/releases/2.00/ XoopsModules/pingtrax/releases/2.00/README.md XoopsModules/pingtrax/releases/2.00/htdocs/ XoopsModules/pingtrax/releases/2.00/htdocs/class/ XoopsModules/pingtrax/releases/2.00/htdocs/class/smarty/ XoopsModules/pingtrax/releases/2.00/htdocs/class/smarty/xoops_plugins/ XoopsModules/pingtrax/releases/2.00/htdocs/class/smarty/xoops_plugins/function.xoTrackbacks.php XoopsModules/pingtrax/releases/2.00/htdocs/modules/ XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/ XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/admin/ XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/admin/about.php XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/admin/admin.php XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/admin/admin_footer.php XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/admin/admin_header.php XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/admin/index.html XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/admin/items.php XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/admin/menu.php XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/admin/pings.php XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/api/ XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/api/.htaccess XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/api/index.php XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/blocks/ XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/blocks/index.html XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/blocks/pingtrax_blocks.php XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/class/ XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/class/index.html XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/class/items.php XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/class/items_pings.php XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/class/items_sitemaps.php XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/class/pings.php XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/class/plugins.php XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/class/simple_html_dom.php XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/class/sitemaps.php XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/class/trackback.php XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/images/ XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/images/add.png XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/images/copy.png XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/images/delete.png XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/images/edit.png XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/images/index.html XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/images/link.png XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/images/logo.png XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/include/ XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/include/category-id-names.txt XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/include/exclude-names.txt XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/include/index.html XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/include/install.php XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/include/item-id-names.txt XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/language/ XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/language/english/ XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/language/english/admin.php XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/language/english/help/ XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/language/english/help/help.html XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/language/english/help/index.html XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/language/english/index.html XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/language/english/modinfo.php XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/language/index.html XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/pingtrax.css XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/plugins/ XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/plugins/default.php XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/plugins/index.html XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/plugins/xcenter.php XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/preloads/ XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/preloads/index.html XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/preloads/items.php XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/preloads/ping.php XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/preloads/sitemap.php XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/preloads/trackback.php XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/sql/ XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/sql/index.html XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/sql/mysql.sql XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/sql/tables.json XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/templates/ XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/templates/admin/ XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/templates/admin/index.html XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/templates/admin/items.html XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/templates/admin/pings.html XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/templates/blocks/ XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/templates/blocks/index.html XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/templates/blocks/trackbacks_block.html XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/templates/blocks/trackbacks_url.html XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/templates/index.html XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/templates/sitemaps.xml.html XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/templates/xoTrackback.html XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/xoops.org.news.article.txt XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/xoops_version.php XoopsModules/pingtrax/releases/2.01/ XoopsModules/pingtrax/releases/2.01/README.md XoopsModules/pingtrax/releases/2.01/htdocs/ XoopsModules/pingtrax/releases/2.01/htdocs/class/ XoopsModules/pingtrax/releases/2.01/htdocs/class/smarty/ XoopsModules/pingtrax/releases/2.01/htdocs/class/smarty/xoops_plugins/ XoopsModules/pingtrax/releases/2.01/htdocs/class/smarty/xoops_plugins/function.xoTrackbacks.php XoopsModules/pingtrax/releases/2.01/htdocs/modules/ XoopsModules/pingtrax/releases/2.01/htdocs/modules/pingtrax/ XoopsModules/pingtrax/releases/2.01/htdocs/modules/pingtrax/admin/ XoopsModules/pingtrax/releases/2.01/htdocs/modules/pingtrax/admin/about.php XoopsModules/pingtrax/releases/2.01/htdocs/modules/pingtrax/admin/admin.php XoopsModules/pingtrax/releases/2.01/htdocs/modules/pingtrax/admin/admin_footer.php XoopsModules/pingtrax/releases/2.01/htdocs/modules/pingtrax/admin/admin_header.php XoopsModules/pingtrax/releases/2.01/htdocs/modules/pingtrax/admin/index.html XoopsModules/pingtrax/releases/2.01/htdocs/modules/pingtrax/admin/items.php XoopsModules/pingtrax/releases/2.01/htdocs/modules/pingtrax/admin/menu.php XoopsModules/pingtrax/releases/2.01/htdocs/modules/pingtrax/admin/pings.php XoopsModules/pingtrax/releases/2.01/htdocs/modules/pingtrax/api/ XoopsModules/pingtrax/releases/2.01/htdocs/modules/pingtrax/api/.htaccess XoopsModules/pingtrax/releases/2.01/htdocs/modules/pingtrax/api/index.php XoopsModules/pingtrax/releases/2.01/htdocs/modules/pingtrax/blocks/ XoopsModules/pingtrax/releases/2.01/htdocs/modules/pingtrax/blocks/index.html XoopsModules/pingtrax/releases/2.01/htdocs/modules/pingtrax/blocks/pingtrax_blocks.php XoopsModules/pingtrax/releases/2.01/htdocs/modules/pingtrax/class/ XoopsModules/pingtrax/releases/2.01/htdocs/modules/pingtrax/class/index.html XoopsModules/pingtrax/releases/2.01/htdocs/modules/pingtrax/class/items.php XoopsModules/pingtrax/releases/2.01/htdocs/modules/pingtrax/class/items_pings.php XoopsModules/pingtrax/releases/2.01/htdocs/modules/pingtrax/class/items_sitemaps.php XoopsModules/pingtrax/releases/2.01/htdocs/modules/pingtrax/class/pings.php XoopsModules/pingtrax/releases/2.01/htdocs/modules/pingtrax/class/plugins.php XoopsModules/pingtrax/releases/2.01/htdocs/modules/pingtrax/class/simple_html_dom.php XoopsModules/pingtrax/releases/2.01/htdocs/modules/pingtrax/class/sitemaps.php XoopsModules/pingtrax/releases/2.01/htdocs/modules/pingtrax/class/trackback.php XoopsModules/pingtrax/releases/2.01/htdocs/modules/pingtrax/images/ XoopsModules/pingtrax/releases/2.01/htdocs/modules/pingtrax/images/add.png XoopsModules/pingtrax/releases/2.01/htdocs/modules/pingtrax/images/copy.png XoopsModules/pingtrax/releases/2.01/htdocs/modules/pingtrax/images/delete.png XoopsModules/pingtrax/releases/2.01/htdocs/modules/pingtrax/images/edit.png XoopsModules/pingtrax/releases/2.01/htdocs/modules/pingtrax/images/index.html XoopsModules/pingtrax/releases/2.01/htdocs/modules/pingtrax/images/link.png XoopsModules/pingtrax/releases/2.01/htdocs/modules/pingtrax/images/logo.png XoopsModules/pingtrax/releases/2.01/htdocs/modules/pingtrax/include/ XoopsModules/pingtrax/releases/2.01/htdocs/modules/pingtrax/include/category-id-names.txt XoopsModules/pingtrax/releases/2.01/htdocs/modules/pingtrax/include/exclude-names.txt XoopsModules/pingtrax/releases/2.01/htdocs/modules/pingtrax/include/index.html XoopsModules/pingtrax/releases/2.01/htdocs/modules/pingtrax/include/install.php XoopsModules/pingtrax/releases/2.01/htdocs/modules/pingtrax/include/item-id-names.txt XoopsModules/pingtrax/releases/2.01/htdocs/modules/pingtrax/language/ XoopsModules/pingtrax/releases/2.01/htdocs/modules/pingtrax/language/english/ XoopsModules/pingtrax/releases/2.01/htdocs/modules/pingtrax/language/english/admin.php XoopsModules/pingtrax/releases/2.01/htdocs/modules/pingtrax/language/english/help/ XoopsModules/pingtrax/releases/2.01/htdocs/modules/pingtrax/language/english/help/help.html XoopsModules/pingtrax/releases/2.01/htdocs/modules/pingtrax/language/english/help/index.html XoopsModules/pingtrax/releases/2.01/htdocs/modules/pingtrax/language/english/index.html XoopsModules/pingtrax/releases/2.01/htdocs/modules/pingtrax/language/english/modinfo.php XoopsModules/pingtrax/releases/2.01/htdocs/modules/pingtrax/language/index.html XoopsModules/pingtrax/releases/2.01/htdocs/modules/pingtrax/pingtrax.css XoopsModules/pingtrax/releases/2.01/htdocs/modules/pingtrax/plugins/ XoopsModules/pingtrax/releases/2.01/htdocs/modules/pingtrax/plugins/default.php XoopsModules/pingtrax/releases/2.01/htdocs/modules/pingtrax/plugins/index.html XoopsModules/pingtrax/releases/2.01/htdocs/modules/pingtrax/plugins/xcenter.php XoopsModules/pingtrax/releases/2.01/htdocs/modules/pingtrax/preloads/ XoopsModules/pingtrax/releases/2.01/htdocs/modules/pingtrax/preloads/index.html XoopsModules/pingtrax/releases/2.01/htdocs/modules/pingtrax/preloads/items.php XoopsModules/pingtrax/releases/2.01/htdocs/modules/pingtrax/preloads/ping.php XoopsModules/pingtrax/releases/2.01/htdocs/modules/pingtrax/preloads/sitemap.php XoopsModules/pingtrax/releases/2.01/htdocs/modules/pingtrax/preloads/trackback.php XoopsModules/pingtrax/releases/2.01/htdocs/modules/pingtrax/sql/ XoopsModules/pingtrax/releases/2.01/htdocs/modules/pingtrax/sql/index.html XoopsModules/pingtrax/releases/2.01/htdocs/modules/pingtrax/sql/mysql.sql XoopsModules/pingtrax/releases/2.01/htdocs/modules/pingtrax/sql/tables.json XoopsModules/pingtrax/releases/2.01/htdocs/modules/pingtrax/templates/ XoopsModules/pingtrax/releases/2.01/htdocs/modules/pingtrax/templates/admin/ XoopsModules/pingtrax/releases/2.01/htdocs/modules/pingtrax/templates/admin/index.html XoopsModules/pingtrax/releases/2.01/htdocs/modules/pingtrax/templates/admin/items.html XoopsModules/pingtrax/releases/2.01/htdocs/modules/pingtrax/templates/admin/pings.html XoopsModules/pingtrax/releases/2.01/htdocs/modules/pingtrax/templates/blocks/ XoopsModules/pingtrax/releases/2.01/htdocs/modules/pingtrax/templates/blocks/index.html XoopsModules/pingtrax/releases/2.01/htdocs/modules/pingtrax/templates/blocks/trackbacks_block.html XoopsModules/pingtrax/releases/2.01/htdocs/modules/pingtrax/templates/blocks/trackbacks_url.html XoopsModules/pingtrax/releases/2.01/htdocs/modules/pingtrax/templates/index.html XoopsModules/pingtrax/releases/2.01/htdocs/modules/pingtrax/templates/sitemaps.xml.html XoopsModules/pingtrax/releases/2.01/htdocs/modules/pingtrax/templates/xoTrackback.html XoopsModules/pingtrax/releases/2.01/htdocs/modules/pingtrax/xoops.org.news.article.txt XoopsModules/pingtrax/releases/2.01/htdocs/modules/pingtrax/xoops_version.php Added: XoopsModules/pingtrax/releases/2.00/README.md =================================================================== --- XoopsModules/pingtrax/releases/2.00/README.md (rev 0) +++ XoopsModules/pingtrax/releases/2.00/README.md 2017-05-12 15:27:34 UTC (rev 13241) @@ -0,0 +1,22 @@ +# Pinging + Trackbacks + Sitemaps +## for XOOPS 2.5 ~ http://xoops.org +### (PHP Framework Example) + +# Introduction:- + +PingTrax is a module for XOOPS 2.5 which allows for the discovery of pages on the system for both pingback discovery and recrawling updates as well as sitemaps that are actually maintained on popularity as well as trackbacks (these are also known as permilinks). + +The Trackbacks has two blocks which are generally displayed on all pages except the front one, one which displays the trackback URL, and the other for the trackback comments (This uses the XOOPS Comments System). + +It will notify pingbacks with locations of information on your site as well as poll it when it is updated, this partly uses an extra smarty class for the trackbacking, make sure this is included, it is an extra plugin + +## Requirements:- + + * You will require a system running XOOPS 2.5 + * You will require a site not running on localhost + +## Downloads:- + +You can download this module and others from sourceforge.net at the following project: https://sourceforge.net/projects/chronolabs/files/XOOPS%202.5/Modules/ + + Added: XoopsModules/pingtrax/releases/2.00/htdocs/class/smarty/xoops_plugins/function.xoTrackbacks.php =================================================================== --- XoopsModules/pingtrax/releases/2.00/htdocs/class/smarty/xoops_plugins/function.xoTrackbacks.php (rev 0) +++ XoopsModules/pingtrax/releases/2.00/htdocs/class/smarty/xoops_plugins/function.xoTrackbacks.php 2017-05-12 15:27:34 UTC (rev 13241) @@ -0,0 +1,51 @@ +<?php +/** + * PingTrax Smarty Trackback Function + * + * You may not change or alter any portion of this comment or credits + * of supporting developers from this source code or any supporting source code + * which is considered copyrighted (c) material of the original comment or credit authors. + * 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. + * + * @copyright Chronolabs Cooperative http://sourceforge.net/projects/chronolabs/ + * @license GNU GPL 3 (http://labs.coop/briefs/legal/general-public-licence/13,3.html) + * @author Simon Antony Roberts <wis...@us...> + * @see http://sourceforge.net/projects/xoops/ + * @see http://sourceforge.net/projects/chronolabs/ + * @see http://sourceforge.net/projects/chronolabsapi/ + * @see http://labs.coop + * @version 1.0.1 + * @since 1.0.1 + */ + +function smarty_function_xoTrackbacks($tag_args, &$comp) +{ + $attrs = $comp->_parse_attrs($tag_args); + foreach ($attrs as $arg_name => $arg_value) { + if ($arg_name == 'dirname') { + $dirname = $arg_value; + continue; + } + } + global $pingtraxitem; + if (is_a($pingtraxitem, "PingtraxItems")) + { + $GLOBALS['xoTheme']->addStylesheet(XOOPS_URL . "/modules/pingtrax/pingtrax.css"); + $trackbacksTpl = new XoopsTpl(); + $trackbacksTpl->assign('permlink', $pingtraxitem->getVar('item-protocol').$pingtraxitem->getVar('item-domain').$pingtraxitem->getVar('item-referer-uri')); + $commentHandler = xoops_gethandler('comment'); + $moduleHandler = xoops_gethandler('module'); + $criteria = new CriteriaCompo(new Criteria('com_modid', $moduleHandler->getByDirname('pingtrax')->getVar('mid'))); + $criteria->add(new Criteria('com_itemid', $pingtraxitem->getVar('id'))); + $criteria->setOrder('com_created'); + $criteria->setSort('DESC'); + foreach($commentHandler->getObjects($criteria) as $comid => $comment) + $trackbacksTpl->append('trackbacks', array('subject'=>$comment->getVar('com_title'), 'comment'=>$comment->getVar('com_text'))); + ob_start(); + $trackbacksTpl->display($GLOBALS['xoops']->path('/modules/pingtrax/templates/xoTrackback.html')); + return ob_get_clean(); + } + return ''; +} Added: XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/admin/about.php =================================================================== --- XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/admin/about.php (rev 0) +++ XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/admin/about.php 2017-05-12 15:27:34 UTC (rev 13241) @@ -0,0 +1,34 @@ +<?php +/** + * PingTrax Admin + * + * You may not change or alter any portion of this comment or credits + * of supporting developers from this source code or any supporting source code + * which is considered copyrighted (c) material of the original comment or credit authors. + * 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. + * + * @copyright Chronolabs Cooperative http://sourceforge.net/projects/chronolabs/ + * @license GNU GPL 3 (http://labs.coop/briefs/legal/general-public-licence/13,3.html) + * @author Simon Antony Roberts <wis...@us...> + * @see http://sourceforge.net/projects/xoops/ + * @see http://sourceforge.net/projects/chronolabs/ + * @see http://sourceforge.net/projects/chronolabsapi/ + * @see http://labs.coop + * @version 1.0.1 + * @since 1.0.1 + */ + +include_once dirname(__FILE__) . '/../../../include/cp_header.php'; +include '../../../class/xoopsformloader.php'; +include_once dirname(__FILE__) . '/admin_header.php'; +xoops_cp_header(); + +$aboutAdmin = new ModuleAdmin(); + +echo $aboutAdmin->addNavigation('about.php'); +echo $aboutAdmin->renderabout('6KJ7RW5DR3VTJ', false); + +include_once dirname(__FILE__) . '/admin_footer.php'; +//xoops_cp_footer(); Property changes on: XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/admin/about.php ___________________________________________________________________ Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Added: XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/admin/admin.php =================================================================== --- XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/admin/admin.php (rev 0) +++ XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/admin/admin.php 2017-05-12 15:27:34 UTC (rev 13241) @@ -0,0 +1,48 @@ +<?php +/** + * PingTrax Admin + * + * You may not change or alter any portion of this comment or credits + * of supporting developers from this source code or any supporting source code + * which is considered copyrighted (c) material of the original comment or credit authors. + * 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. + * + * @copyright Chronolabs Cooperative http://sourceforge.net/projects/chronolabs/ + * @license GNU GPL 3 (http://labs.coop/briefs/legal/general-public-licence/13,3.html) + * @author Simon Antony Roberts <wis...@us...> + * @see http://sourceforge.net/projects/xoops/ + * @see http://sourceforge.net/projects/chronolabs/ + * @see http://sourceforge.net/projects/chronolabsapi/ + * @see http://labs.coop + * @version 1.0.1 + * @since 1.0.1 + */ + +include_once dirname(__FILE__) . '/admin_header.php'; +xoops_cp_header(); + + +$pingsHandler = xoops_getmodulehandler('pings', 'pingtrax'); +$itemsHandler = xoops_getmodulehandler('items', 'pingtrax'); + +$indexAdmin = new ModuleAdmin(); + +$indexAdmin->addInfoBox(_AM_PINGTRAX_STATISTICS); + +$indexAdmin->addInfoBoxLine(_AM_PINGTRAX_STATISTICS, "<label>"._AM_PINGTRAX_STATISTICS_PINGLISTS."</label>", $pingsHandler->getCountPinglists(), 'Green'); +$indexAdmin->addInfoBoxLine(_AM_PINGTRAX_STATISTICS, "<label>"._AM_PINGTRAX_STATISTICS_SITEMAPS."</label>", $pingsHandler->getCountSitemaps(), 'Green'); +$indexAdmin->addInfoBoxLine(_AM_PINGTRAX_STATISTICS, "<label>"._AM_PINGTRAX_STATISTICS_PINGSUCCESS."</label>", $pingsHandler->getSumSuccessful(), 'Green'); +$indexAdmin->addInfoBoxLine(_AM_PINGTRAX_STATISTICS, "<label>"._AM_PINGTRAX_STATISTICS_PINGFAILURES."</label>", $pingsHandler->getSumFailures(), 'Green'); +$indexAdmin->addInfoBoxLine(_AM_PINGTRAX_STATISTICS, "<label>"._AM_PINGTRAX_STATISTICS_PINGLASTSUCCESS."</label>", $pingsHandler->getLastSuccessDate('Y-m-d H:i:s'), 'Purple'); +$indexAdmin->addInfoBoxLine(_AM_PINGTRAX_STATISTICS, "<label>"._AM_PINGTRAX_STATISTICS_PINGLASTFAILED."</label>", $pingsHandler->getLastFailedDate('Y-m-d H:i:s'), 'Red'); +$indexAdmin->addInfoBoxLine(_AM_PINGTRAX_STATISTICS, "<label>"._AM_PINGTRAX_STATISTICS_URISADMIN."</label>", $itemsHandler->getCount(new Criteria('user-session', 'admin')), 'Blue'); +$indexAdmin->addInfoBoxLine(_AM_PINGTRAX_STATISTICS, "<label>"._AM_PINGTRAX_STATISTICS_URISUSERS."</label>", $itemsHandler->getCount(new Criteria('user-session', 'user')), 'Blue'); +$indexAdmin->addInfoBoxLine(_AM_PINGTRAX_STATISTICS, "<label>"._AM_PINGTRAX_STATISTICS_URISGUEST."</label>", $itemsHandler->getCount(new Criteria('user-session', 'guest')), 'Blue'); + +echo $indexAdmin->addNavigation('admin.php'); +echo $indexAdmin->renderIndex(); + +include_once dirname(__FILE__) . '/admin_footer.php'; +//xoops_cp_footer(); Property changes on: XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/admin/admin.php ___________________________________________________________________ Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Added: XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/admin/admin_footer.php =================================================================== --- XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/admin/admin_footer.php (rev 0) +++ XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/admin/admin_footer.php 2017-05-12 15:27:34 UTC (rev 13241) @@ -0,0 +1,30 @@ +<?php +/** + * PingTrax Admin + * + * You may not change or alter any portion of this comment or credits + * of supporting developers from this source code or any supporting source code + * which is considered copyrighted (c) material of the original comment or credit authors. + * 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. + * + * @copyright Chronolabs Cooperative http://sourceforge.net/projects/chronolabs/ + * @license GNU GPL 3 (http://labs.coop/briefs/legal/general-public-licence/13,3.html) + * @author Simon Antony Roberts <wis...@us...> + * @see http://sourceforge.net/projects/xoops/ + * @see http://sourceforge.net/projects/chronolabs/ + * @see http://sourceforge.net/projects/chronolabsapi/ + * @see http://labs.coop + * @version 1.0.1 + * @since 1.0.1 + */ + +echo "<div class='adminfooter'>\n" + ." <div style='text-align: center;'>\n" + ." <a href='http://www.xoops.org' rel='external'><img src='{$pathIcon32}/xoopsmicrobutton.gif' alt='XOOPS' title='XOOPS'></a>\n" + ." </div>\n" + ." " . _AM_MODULEADMIN_ADMIN_FOOTER . "\n" + ."</div>"; + +xoops_cp_footer(); Property changes on: XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/admin/admin_footer.php ___________________________________________________________________ Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Added: XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/admin/admin_header.php =================================================================== --- XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/admin/admin_header.php (rev 0) +++ XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/admin/admin_header.php 2017-05-12 15:27:34 UTC (rev 13241) @@ -0,0 +1,69 @@ +<?php +/** + * PingTrax Admin + * + * You may not change or alter any portion of this comment or credits + * of supporting developers from this source code or any supporting source code + * which is considered copyrighted (c) material of the original comment or credit authors. + * 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. + * + * @copyright Chronolabs Cooperative http://sourceforge.net/projects/chronolabs/ + * @license GNU GPL 3 (http://labs.coop/briefs/legal/general-public-licence/13,3.html) + * @author Simon Antony Roberts <wis...@us...> + * @see http://sourceforge.net/projects/xoops/ + * @see http://sourceforge.net/projects/chronolabs/ + * @see http://sourceforge.net/projects/chronolabsapi/ + * @see http://labs.coop + * @version 1.0.1 + * @since 1.0.1 + */ + + +$path = dirname(dirname(dirname(dirname(__FILE__)))); +include_once $path . '/mainfile.php'; +include_once $path . '/include/cp_functions.php'; +require_once $path . '/include/cp_header.php'; +require_once $path . '/class/pagenav.php'; + +global $xoopsModule; + +$thisModuleDir = $GLOBALS['xoopsModule']->getVar('dirname'); + +//if functions.php file exist +//require_once dirname(dirname(__FILE__)) . '/include/functions.php'; + +// Load language files +xoops_loadLanguage('admin', $thisModuleDir); +xoops_loadLanguage('modinfo', $thisModuleDir); +xoops_loadLanguage('main', $thisModuleDir); + +$pathIcon16 = '../'.$xoopsModule->getInfo('icons16'); +$pathIcon32 = '../'.$xoopsModule->getInfo('icons32'); +$pathModuleAdmin = $xoopsModule->getInfo('dirmoduleadmin'); + +include_once $GLOBALS['xoops']->path($pathModuleAdmin.'/moduleadmin.php'); + +if ($xoopsUser) { + $moduleperm_handler =& xoops_gethandler('groupperm'); + if (!$moduleperm_handler->checkRight('module_admin', $xoopsModule->getVar('mid'), $xoopsUser->getGroups())) { + redirect_header(XOOPS_URL, 1, _NOPERM); + exit(); + } +} else { + redirect_header(XOOPS_URL . "/user.php", 1, _NOPERM); + exit(); +} + +if (!isset($xoopsTpl) || !is_object($xoopsTpl)) { + include_once(XOOPS_ROOT_PATH."/class/template.php"); + $xoopsTpl = new XoopsTpl(); +} + +//$xoopsTpl->assign('pathIcon16', $pathIcon16); + +if (!isset($GLOBALS['xoopsTpl']) || !is_object($GLOBALS['xoopsTpl'])) { + include_once XOOPS_ROOT_PATH . '/class/template.php'; + $GLOBALS['xoopsTpl'] = new XoopsTpl(); +} Property changes on: XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/admin/admin_header.php ___________________________________________________________________ Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Added: XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/admin/index.html =================================================================== --- XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/admin/index.html (rev 0) +++ XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/admin/index.html 2017-05-12 15:27:34 UTC (rev 13241) @@ -0,0 +1 @@ + <script>history.go(-1);</script> \ No newline at end of file Property changes on: XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/admin/index.html ___________________________________________________________________ Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Added: XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/admin/items.php =================================================================== --- XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/admin/items.php (rev 0) +++ XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/admin/items.php 2017-05-12 15:27:34 UTC (rev 13241) @@ -0,0 +1,103 @@ +<?php +/** + * PingTrax Admin + * + * You may not change or alter any portion of this comment or credits + * of supporting developers from this source code or any supporting source code + * which is considered copyrighted (c) material of the original comment or credit authors. + * 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. + * + * @copyright Chronolabs Cooperative http://sourceforge.net/projects/chronolabs/ + * @license GNU GPL 3 (http://labs.coop/briefs/legal/general-public-licence/13,3.html) + * @author Simon Antony Roberts <wis...@us...> + * @see http://sourceforge.net/projects/xoops/ + * @see http://sourceforge.net/projects/chronolabs/ + * @see http://sourceforge.net/projects/chronolabsapi/ + * @see http://labs.coop + * @version 1.0.1 + * @since 1.0.1 + */ + +include_once dirname(__FILE__) . '/admin_header.php'; +xoops_cp_header(); + +xoops_load('PageNav'); +xoops_load('XoopsFormLoader'); + +$indexAdmin = new ModuleAdmin(); +echo $indexAdmin->addNavigation('pings.php'); + +$start = !isset($_REQUEST['start'])?0:(integer)$_REQUEST['start']; +$num = !isset($_REQUEST['num'])?30:(integer)$_REQUEST['num']; +$domain = !isset($_REQUEST['domain'])?'':(string)$_REQUEST['domain']; +$protocol = !isset($_REQUEST['protocol'])?'':(string)$_REQUEST['protocol']; + +$sitemapsHandler = xoops_getmodulehandler('sitemaps', 'pingtrax'); +$itemsHandler = xoops_getmodulehandler('items', 'pingtrax'); +$itemsSitemapsHandler = xoops_getmodulehandler('items_sitemaps', 'pingtrax'); + +$criteria = new Criteria('offlined', 0); +foreach($sitemapsHandler->getObjects($criteria) as $id => $sitemap) + $GLOBALS['xoopsTpl']->append('filter', array('protocol'=>$sitemap->getVar('protocol'), 'domain'=>$sitemap->getVar('domain'),'filename'=>$sitemap->getVar('filename'))); + + +$criteria = new CriteriaCompo(new Criteria('`offlined`', 0)); +if (!empty($protocol)) + $criteria->add(new Criteria('`item-protocol`', mysqli_escape_string($protocol))); +if (!empty($domain)) + $criteria->add(new Criteria('`item-domain`', $domain)); +$criteria->add(new Criteria('`type`', 'local')); +$total = $itemsHandler->getCount($criteria); +$criteria->setStart($start); +$criteria->setLimit($num); + +foreach($itemsHandler->getObjects($criteria, true) as $id => $item) +{ + $local = array(); + $local['id'] = $item->getVar('id'); + $local['dirname'] = $item->getVar('module-dirname'); + $local['class'] = $item->getVar('module-class'); + $local['itemid'] = $item->getVar('module-item-id'); + $local['catid'] = $item->getVar('item-category-id'); + $local['author']['uid'] = $item->getVar('item-author-uid'); + $local['author']['name'] = $item->getVar('item-author-name'); + $local['uri'] = $item->getVar('item-protocol').$item->getVar('item-domain').$item->getVar('item-referer-uri'); + $local['title'] = $item->getVar('item-title'); + $local['refereruri'] = $item->getVar('item-referer-uri'); + $local['discovery'] = $item->getVar('discovery-hook'); + $local['session'] = $item->getVar('user-session'); + $criteria = new CriteriaCompo(new Criteria('type', 'remote')); + $criteria->add(new Criteria('parent-id', $local['id'])); + $local['children'] = $itemsHandler->getCount($criteria); + $criteria = new CriteriaCompo(new Criteria('item-referer', $item->getVar('referer'))); + if ($itemsSitemapsHandler->getCount($criteria)==0) + { + $local['changed'] = $local['checking'] = $local['priority'] = $local['frequency'] = '---'; + } else { + $itemsitemaps = $itemsSitemapsHandler->getObjects($criteria, false); + if (isset($itemsitemaps[0]) && is_object($itemsitemaps[0])) + { + $local['frequency'] = $itemsitemaps[0]->getVar('frequency'); + $local['priority'] = $itemsitemaps[0]->getVar('priority'); + $local['changed'] = ($itemsitemaps[0]->getVar('changed')==0?"---":date('Y-m-d H:i:s', $itemsitemaps[0]->getVar('changed'))); + $local['checking'] = ($itemsitemaps[0]->getVar('checking')==0?"---":date('Y-m-d H:i:s', $itemsitemaps[0]->getVar('checking'))); + } else + $local['changed'] = $local['checking'] = $local['priority'] = $local['frequency'] = '---'; + } + $GLOBALS['xoopsTpl']->append('locals', $local); +} + +$pagenav = new XoopsPageNav($total, $num, $start, 'start', "&num=$num&protocol=$protocol&domain=$domain"); +$GLOBALS['xoopsTpl']->assign('pagenav', $pagenav->renderNav(5)); +$GLOBALS['xoopsTpl']->assign('start', $start); +$GLOBALS['xoopsTpl']->assign('num', $num); +$GLOBALS['xoopsTpl']->assign('protocol', $protocol); +$GLOBALS['xoopsTpl']->assign('domain', $domain); +$GLOBALS['xoopsTpl']->assign('phpself', XOOPS_URL . $_SERVER["PHP_SELF"]); +$GLOBALS['xoopsTpl']->display($GLOBALS['xoops']->path('/modules/pingtrax/templates/admin/items.html')); + + +include_once dirname(__FILE__) . '/admin_footer.php'; +//xoops_cp_footer(); Added: XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/admin/menu.php =================================================================== --- XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/admin/menu.php (rev 0) +++ XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/admin/menu.php 2017-05-12 15:27:34 UTC (rev 13241) @@ -0,0 +1,58 @@ +<?php +/** + * PingTrax Admin + * + * You may not change or alter any portion of this comment or credits + * of supporting developers from this source code or any supporting source code + * which is considered copyrighted (c) material of the original comment or credit authors. + * 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. + * + * @copyright Chronolabs Cooperative http://sourceforge.net/projects/chronolabs/ + * @license GNU GPL 3 (http://labs.coop/briefs/legal/general-public-licence/13,3.html) + * @author Simon Antony Roberts <wis...@us...> + * @see http://sourceforge.net/projects/xoops/ + * @see http://sourceforge.net/projects/chronolabs/ + * @see http://sourceforge.net/projects/chronolabsapi/ + * @see http://labs.coop + * @version 1.0.1 + * @since 1.0.1 + */ + +// defined("XOOPS_ROOT_PATH") || die("XOOPS root path not defined"); + +$path = dirname(dirname(dirname(dirname(__FILE__)))); +include_once $path . '/mainfile.php'; + +$dirname = basename(dirname(dirname(__FILE__))); +$module_handler = xoops_gethandler('module'); +$module = $module_handler->getByDirname($dirname); +$pathIcon32 = $module->getInfo('icons32'); +$pathModuleAdmin = $module->getInfo('dirmoduleadmin'); +$pathLanguage = $path . $pathModuleAdmin; + +if (!file_exists($fileinc = $pathLanguage . '/language/' . $GLOBALS['xoopsConfig']['language'] . '/' . 'main.php')) { + $fileinc = $pathLanguage . '/language/english/main.php'; +} + +include_once $fileinc; + +$adminmenu = array(); + +$i = 1; +$adminmenu[$i]['title'] = _MI_PINGTRAX_DASHBOARD; +$adminmenu[$i]['link'] = "admin/admin.php"; +$adminmenu[$i]['icon'] = $pathIcon32.'/home.png' ; +++$i; +$adminmenu[$i]['title'] = _MI_PINGTRAX_PINGS; +$adminmenu[$i]['link'] = 'admin/pings.php'; +$adminmenu[$i]['icon'] = $pathIcon32.'/globe.png'; +++$i; +$adminmenu[$i]['title'] = _MI_PINGTRAX_ITEMS; +$adminmenu[$i]['link'] = 'admin/items.php'; +$adminmenu[$i]['icon'] = $pathIcon32.'/playlist.png'; +++$i; +$adminmenu[$i]['title'] = _MI_PINGTRAX_ABOUT; +$adminmenu[$i]['link'] = 'admin/about.php'; +$adminmenu[$i]['icon'] = $pathIcon32.'/about.png'; Property changes on: XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/admin/menu.php ___________________________________________________________________ Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Added: XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/admin/pings.php =================================================================== --- XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/admin/pings.php (rev 0) +++ XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/admin/pings.php 2017-05-12 15:27:34 UTC (rev 13241) @@ -0,0 +1,109 @@ +<?php +/** + * PingTrax Admin + * + * You may not change or alter any portion of this comment or credits + * of supporting developers from this source code or any supporting source code + * which is considered copyrighted (c) material of the original comment or credit authors. + * 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. + * + * @copyright Chronolabs Cooperative http://sourceforge.net/projects/chronolabs/ + * @license GNU GPL 3 (http://labs.coop/briefs/legal/general-public-licence/13,3.html) + * @author Simon Antony Roberts <wis...@us...> + * @see http://sourceforge.net/projects/xoops/ + * @see http://sourceforge.net/projects/chronolabs/ + * @see http://sourceforge.net/projects/chronolabsapi/ + * @see http://labs.coop + * @version 1.0.1 + * @since 1.0.1 + */ + +include_once dirname(__FILE__) . '/admin_header.php'; +xoops_cp_header(); + +xoops_load('PageNav'); +xoops_load('XoopsFormLoader'); + +$indexAdmin = new ModuleAdmin(); +echo $indexAdmin->addNavigation('pings.php'); + +$start = !isset($_REQUEST['start'])?0:(integer)$_REQUEST['start']; +$num = !isset($_REQUEST['num'])?30:(integer)$_REQUEST['num']; +$id = !isset($_REQUEST['id'])?0:(integer)$_REQUEST['id']; +$op = !isset($_REQUEST['op'])?'default':(string)$_REQUEST['op']; + +$pingsHandler = xoops_getmodulehandler('pings', 'pingtrax'); +$itemsHandler = xoops_getmodulehandler('items', 'pingtrax'); + +switch ($op) +{ + default: + $criteria = new Criteria('offlined', 0); + $total = $pingsHandler->getCount($criteria); + $criteria->setStart($start); + $criteria->setLimit($num); + + foreach($pingsHandler->getObjects($criteria, true) as $id => $ping) + { + if ($ping->getVar('last-item-referer')!='') + { + $item = $itemsHandler->getByReferer($ping->getVar('last-item-referer')); + if (is_object($item)) + $last = array('uri'=>$item->getVar('item-protocol').$item->getVar('item-domain').$item->getVar('item-referer-uri'), 'title' => $item->getVar('item-title')); + else + $last = array(); + } else + $last = array(); + $GLOBALS['xoopsTpl']->append('pings', array('id' => $ping->getVar('id'), 'type' => $ping->getVar('type'), 'uri' => $ping->getVar('uri'), 'last' => $last, "successes" => number_format($ping->getVar('successful-pings'), 0), "failures" => number_format($ping->getVar('failed-pings'), 0), 'success' => ($ping->getVar('success-time')!=0?date("Y-m-d H:i:s", $ping->getVar('success-time')):"---"), 'failed' => ($ping->getVar('failure-time')!=0?date("Y-m-d H:i:s", $ping->getVar('failure-time')):"---"), 'sleeptill' => ($ping->getVar('sleep-till')!=0?date("Y-m-d H:i:s", $ping->getVar('sleep-till')):"---"))); + } + + $pagenav = new XoopsPageNav($total, $num, $start, 'start', "&num=$num"); + $GLOBALS['xoopsTpl']->assign('pagenav', $pagenav->renderNav(5)); + $GLOBALS['xoopsTpl']->assign('start', $start); + $GLOBALS['xoopsTpl']->assign('num', $num); + + $form = new XoopsThemeForm(_AM_PINGTRAX_PING_ADD, 'add-pinglist', $_SERVER['PHP_SELF']."?op=add&start=$start&num=&num"); + $form->addElement(new XoopsFormText(_AM_PINGTRAX_PING_URI, 'uri', 50, 250)); + $type = new XoopsFormSelect(_AM_PINGTRAX_PING_TYPE, 'type'); + $type->addOption('XML-RPC', 'XML-RPC'); + $type->addOption('SITEMAPS', 'SITEMAPS'); + $form->addElement($type); + $form->addElement(new XoopsFormButton(_SUBMIT, 'submit', _SUBMIT)); + $GLOBALS['xoopsTpl']->assign('addform', $form->render()); + $GLOBALS['xoopsTpl']->display($GLOBALS['xoops']->path('/modules/pingtrax/templates/admin/pings.html')); + break; + case "add": + if (!empty($_POST['uri']) && !empty($_POST['type'])) + { + $ping = $pingsHandler->create(); + $ping->setVar('uri', $_POST['uri']); + $ping->setVar('type', $_POST['type']); + if($pingsHandler->insert($ping)) + redirect_header($_SERVER["PHP_SELF"]."?start=$start&num=$num", 7, _AM_PINGTRAX_PING_ADD_SUCCESSFUL); + } + redirect_header($_SERVER["PHP_SELF"]."?start=$start&num=$num", 7, _AM_PINGTRAX_PING_ADD_FAILED); + exit(0); + case "edit": + foreach($_POST['uri'] as $id=> $uri) + { + $ping = $pingsHandler->get($id); + $ping->setVar('uri', $uri); + $ping->setVar('type', $_POST['type'][$id]); + $pingsHandler->insert($ping); + } + redirect_header($_SERVER["PHP_SELF"]."?start=$start&num=$num", 7, _AM_PINGTRAX_PING_EDIT_COMPLETE); + exit(0); + case "delete": + $ping = $pingsHandler->get($id); + if (is_a($ping, "PingtraxPings")) + if ($pingsHandler->delete($ping)) + redirect_header($_SERVER["PHP_SELF"]."?start=$start&num=$num", 7, _AM_PINGTRAX_PING_DELETE_SUCCESS); + redirect_header($_SERVER["PHP_SELF"]."?start=$start&num=$num", 7, _AM_PINGTRAX_PING_DELETE_FAILED); + exit(0); + break; +} + +include_once dirname(__FILE__) . '/admin_footer.php'; +//xoops_cp_footer(); Added: XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/api/.htaccess =================================================================== --- XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/api/.htaccess (rev 0) +++ XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/api/.htaccess 2017-05-12 15:27:34 UTC (rev 13241) @@ -0,0 +1,2 @@ +RewriteEngine On +RewriteRule ^([0-9a-z]{32,44})$ index.php?referer=$1 [L] \ No newline at end of file Added: XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/api/index.php =================================================================== --- XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/api/index.php (rev 0) +++ XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/api/index.php 2017-05-12 15:27:34 UTC (rev 13241) @@ -0,0 +1,50 @@ +<?php + +require_once dirname(dirname(dirname(__DIR__))) . DIRECTORY_SEPARATOR . "mainfile.php"; +require_once dirname(__DIR__) . DIRECTORY_SEPARATOR . "class". DIRECTORY_SEPARATOR . "trackback.php"; + +$trackback = new PingtraxTrackback($GLOBALS['xoopsConfig']['sitename'], $GLOBALS['xoopsConfig']['sitename'], 'UTF-8'); + +if (!isset($_GET['referer'])) + die($trackback->recieve(false, "\$_GET['referer'] not specified and is required for trackback API!")); + +xoops_load("XoopsUserUtility"); +$moduleHandler = xoops_gethandler('module'); +$commentHandler = xoops_gethandler('comment'); +$itemsHandler = xoops_getmodulehandler('items', 'pingtrax'); +$item = $itemsHandler->getByReferer($_GET['referer']); + +if (!is_a($item, "PingtraxItems")) + die($trackback->recieve(false, $_GET['referer'] . " does not match any recorded item on the trackback API!")); + +$url = $_REQUEST["url"]; +if ($url) { + $excerpt = $_REQUEST["excerpt"]; + $name = ($_REQUEST["blog_name"]) ? $_REQUEST["blog_name"] : $url; + $subject = ($_REQUEST["title"]) ? $_REQUEST["title"] : $url; + $comment = "<strong> TrackBack from <a href=\"$url\">$name</a>:</strong><br />"; + $comment .= "<blockquote>$excerpt</blockquote>"; + + $pluginHandler = xoops_getmodulehandler('plugins', 'pingtrax'); + $remoteitem = $pluginHandler->getRemoteObject($item, $url, $name, $subject, $comment); + if (is_a($remoteitem, "PingtraxItems")) + { + $comment = $commentHandler->create(); + $comment->setVar('com_modid', $moduleHandler->getByDirname('pingtrax')->getVar('mid')); + $comment->setVar('com_title', $subject); + $comment->setVar('com_text', $comment); + $comment->setVar('com_created', time()); + $comment->setVar('com_url', $url); + $comment->setVar('com_ip', XoopsUserUtility::getIP(true)); + $comment->setVar('com_itemid', $item->getVar('id')); + $comment->setVar('dohtml', true); + $comment->setVar('dosmiley', true); + $comment->setVar('doxcode', true); + $comment->setVar('doimage', true); + $comment->setVar('dobr', true); + $commentHandler->insert($comment); + } +} else { + die($trackback->recieve(false, "Missing URL for trackback API!")); +} +die($trackback->recieve(true, "")); Added: XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/blocks/index.html =================================================================== --- XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/blocks/index.html (rev 0) +++ XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/blocks/index.html 2017-05-12 15:27:34 UTC (rev 13241) @@ -0,0 +1 @@ + <script>history.go(-1);</script> \ No newline at end of file Property changes on: XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/blocks/index.html ___________________________________________________________________ Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Added: XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/blocks/pingtrax_blocks.php =================================================================== --- XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/blocks/pingtrax_blocks.php (rev 0) +++ XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/blocks/pingtrax_blocks.php 2017-05-12 15:27:34 UTC (rev 13241) @@ -0,0 +1,44 @@ +<?php +/** + * Pingtrax Block Trackbacks Handler module + * + * You may not change or alter any portion of this comment or credits + * of supporting developers from this source code or any supporting source code + * which is considered copyrighted (c) material of the original comment or credit authors. + * 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. + * + * @copyright Chronolabs Cooperative http://sourceforge.net/projects/chronolabs/ + * @license GNU GPL 3 (http://labs.coop/briefs/legal/general-public-licence/13,3.html) + * @author Simon Antony Roberts <wis...@us...> + * @see http://sourceforge.net/projects/xoops/ + * @see http://sourceforge.net/projects/chronolabs/ + * @see http://sourceforge.net/projects/chronolabsapi/ + * @see http://labs.coop + * @version 1.0.1 + * @since 1.0.1 + */ + + +function pingtrax_trackbacks_block_show($args = array()) +{ + +} + + +function pingtrax_trackbacks_block_edit($args = array()) +{ + +} + +function pingtrax_trackurl_block_show($args = array()) +{ + return array('url'=>XOOPS_URL . $_SERVER["REQUEST_URI"]); +} + + +function pingtrax_trackurl_block_edit($args = array()) +{ + +} \ No newline at end of file Added: XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/class/index.html =================================================================== --- XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/class/index.html (rev 0) +++ XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/class/index.html 2017-05-12 15:27:34 UTC (rev 13241) @@ -0,0 +1 @@ + <script>history.go(-1);</script> \ No newline at end of file Property changes on: XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/class/index.html ___________________________________________________________________ Added: svn:executable ## -0,0 +1 ## +* \ No newline at end of property Added: XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/class/items.php =================================================================== --- XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/class/items.php (rev 0) +++ XoopsModules/pingtrax/releases/2.00/htdocs/modules/pingtrax/class/items.php 2017-05-12 15:27:34 UTC (rev 13241) @@ -0,0 +1,242 @@ +<?php +/** + * Pingtrax Database Class Handler module + * + * You may not change or alter any portion of this comment or credits + * of supporting developers from this source code or any supporting source code + * which is considered copyrighted (c) material of the original comment or credit authors. + * 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. + * + * @copyright Chronolabs Cooperative http://sourceforge.net/projects/chronolabs/ + * @license GNU GPL 3 (http://labs.coop/briefs/legal/general-public-licence/13,3.html) + * @author Simon Antony Roberts <wis...@us...> + * @see http://sourceforge.net/projects/xoops/ + * @see http://sourceforge.net/projects/chronolabs/ + * @see http://sourceforge.net/projects/chronolabsapi/ + * @see http://labs.coop + * @version 1.0.1 + * @since 1.0.1 + */ + + +/** + * Class PingtraxItems + * + * @subpackage pingtrax + * + * Database MySQL Table:- + * + * CREATE TABLE `pingtrax_items` ( + * `id` mediumint(20) NOT NULL AUTO_INCREMENT, + * `parent-id` mediumint(20) NOT NULL DEFAULT '0', + * `referer` varchar(44) NOT NULL DEFAULT '', + * `type` enum('local','remote','unknown') NOT NULL DEFAULT 'unknown', + * `module-dirname` varchar(30) NOT NULL DEFAULT '', + * `module-class` varchar(100) NOT NULL DEFAULT '', + * `module-item-id` mediumint(30) NOT NULL DEFAULT '0', + * `module-php-self` varchar(150) NOT NULL DEFAULT '', + * `module-get` tinytext, + * `item-author-uid` int(13) NOT NULL DEFAULT '0', + * `item-author-name` varchar(64) NOT NULL DEFAULT '', + * `item-category-id` int(20) NOT NULL DEFAULT '0', + * `item-title` varchar(180) NOT NULL DEFAULT '', + * `item-description` varchar(250) NOT NULL DEFAULT '', + * `item-protocol` enum('https://','http://') NOT NULL DEFAULT 'http://', + * `item-domain` varchar(150) NOT NULL DEFAULT '', + * `item-referer-uri` varchar(250) NOT NULL DEFAULT '', + * `item-php-self` varchar(250) NOT NULL DEFAULT '', + * `feed-protocol` enum('https://','http://') NOT NULL DEFAULT 'http://', + * `feed-domain` varchar(150) NOT NULL DEFAULT '', + * `feed-referer-uri` varchar(250) NOT NULL DEFAULT '', + * `discovery-hook` enum('php','preloader','smarty','combination','unknown') NOT NULL DEFAULT 'unknown', + * `user-session` enum('admin','user','guest','unknown') NOT NULL DEFAULT 'unknown', + * `created` int(12) NOT NULL DEFAULT '0', + * `updated` int(12) NOT NULL DEFAULT '0', + * `offlined` int(12) NOT NULL DEFAULT '0', + * PRIMARY KEY (`id`), + * KEY `SEARCH` (`referer`,`item-author-uid`,`item-author-name`,`module-dirname`,`item-protocol`,`item-domain`,`item-referer-uri`,`module-php-self`,`item-php-self`,`discovery-hook`,`id`) KEY_BLOCK_SIZE=128, + * KEY `CHRONOLOGISTICS` (`id`,`referer`,`created`,`updated`,`offlined`) USING BTREE KEY_BLOCK_SIZE=64 + * ) ENGINE=InnoDB DEFAULT CHARSET=utf8 PACK_KEYS=1 DELAY_KEY_WRITE=1 ROW_FORMAT=DYNAMIC KEY_BLOCK_SIZE=16; + */ +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('parent-id', XOBJ_DTYPE_INT, null, false); + $this->initVar('referer', XOBJ_DTYPE_OTHER, sha1(NULL), false, 44); + $this->initVar('type', XOBJ_DTYPE_ENUM, 'unknown', true, false, false, false, array('local','remote','unknown')); + $this->initVar('module-dirname', XOBJ_DTYPE_OTHER, '', false, 30); + $this->initVar('module-class', XOBJ_DTYPE_OTHER, '', false, 100); + $this->initVar('module-item-id', XOBJ_DTYPE_INT, 0, false); + $this->initVar('module-php-self', XOBJ_DTYPE_OTHER, '', false, 150); + $this->initVar('module-get', XOBJ_DTYPE_ARRAY, array(), false); + $this->initVar('item-author-uid', XOBJ_DTYPE_INT, 0, false); + $this->initVar('item-author-name', XOBJ_DTYPE_TXTBOX, '', false, 64); + $this->initVar('item-category-id', XOBJ_DTYPE_INT, null, false); + $this->initVar('item-title', XOBJ_DTYPE_TXTBOX, '', false, 180); + $this->initVar('item-description', XOBJ_DTYPE_TXTBOX, '', false, 250); + $this->initVar('item-protocol', XOBJ_DTYPE_ENUM, XOOPS_PROT, true, false, false, false, array('https://','http://')); + $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, 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); + $this->initVar('updated', XOBJ_DTYPE_INT, 0, false); + $this->initVar('offlined', 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; + } +} + +/** + * Class PingtraxItemsHandler + */ +class PingtraxItemsHandler extends XoopsPersistableObjectHandler +{ + + /** + * @param null|object $db + */ + function __construct(&$db) + { + parent::__construct($db, "pingtrax_items", 'PingtraxItems', 'id', 'referer'); + } + + + function insert($object = NULL, $force = true) + { + if ($object->isNew()) + { + $criteria = new Criteria('referer', $object->getVar('referer')); + if ($this->getCount($criteria)==0) + $object->setVar('created', time()); + else + { + $objs = $this->getObjects($criteria, false); + if (isset($objs[0])) + return $objs[0]->getVar('id'); + else + return false; + } + if ($object->getVar('type') == 'local') + { + $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('`offlined`', 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); + } + } + } else { + $object->setVar('updated', time()); + } + switch ($object->getVar('user-session')) + ... [truncated message content] |