Dotclear

source: plugins/pings/lib.pings.php @ 2849:97e1b334e54b

Revision 2849:97e1b334e54b, 2.4 KB checked in by Dsls, 11 years ago (diff)

Deprecated $core->adminurl->decode, use $core->adminurl->get instead (with urlencode set to false)

Added dcPage::getPF to shortcut plugin file inclusion

Line 
1<?php
2# -- BEGIN LICENSE BLOCK ---------------------------------------
3#
4# This file is part of Dotclear 2.
5#
6# Copyright (c) 2003-2013 Olivier Meunier & Association Dotclear
7# Licensed under the GPL version 2.0 license.
8# See LICENSE file or
9# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
10#
11# -- END LICENSE BLOCK -----------------------------------------
12if (!defined('DC_RC_PATH')) { return; }
13
14class pingsAPI extends xmlrpcClient
15{
16     public static function doPings($srv_uri,$site_name,$site_url)
17     {
18          $o = new self($srv_uri);
19          $o->timeout = 3;
20
21          $rsp = $o->query('weblogUpdates.ping',$site_name,$site_url);
22
23          if (isset($rsp['flerror']) && $rsp['flerror']) {
24               throw new Exception($rsp['message']);
25          }
26
27          return true;
28     }
29}
30
31class pingsBehaviors
32{
33     public static function pingJS()
34     {
35          global $core;
36
37          $res =
38          "<script type=\"text/javascript\">\n//<![CDATA[\n".
39          dcPage::jsVar('dotclear.msg.check_all',__('Check all'))."\n".
40          "</script>\n".dcPage::jsLoad(dcPage::getPF('pings/post.js'));
41
42          return $res;
43     }
44
45     public static function pingsFormItems($main,$sidebar,$post)
46     {
47          $core =& $GLOBALS['core'];
48          if (!$core->blog->settings->pings->pings_active) {
49               return;
50          }
51
52          $pings_uris = @unserialize($core->blog->settings->pings->pings_uris);
53          if (empty($pings_uris) || !is_array($pings_uris)) {
54               return;
55          }
56
57          if (!empty($_POST['pings_do']) && is_array($_POST['pings_do'])) {
58               $pings_do = $_POST['pings_do'];
59          } else {
60               $pings_do = array();
61          }
62
63          $item = '<h5 class="ping-services">'.__('Pings').'</h5>';
64          $i = 0;
65          foreach ($pings_uris as $k => $v)
66          {
67               $item .=
68               '<p class="ping-services"><label for="pings_do-'.$i.'" class="classic">'.
69               form::checkbox(array('pings_do[]','pings_do-'.$i),html::escapeHTML($v),in_array($v,$pings_do), 'check-ping-services').' '.
70               html::escapeHTML($k).'</label></p>';
71               $i++;
72          }
73          $sidebar['options-box']['items']['pings']=$item;
74
75     }
76
77     public static function doPings($cur,$post_id)
78     {
79          if (empty($_POST['pings_do']) || !is_array($_POST['pings_do'])) {
80               return;
81          }
82
83          $core =& $GLOBALS['core'];
84          if (!$core->blog->settings->pings->pings_active) {
85               return;
86          }
87
88          $pings_uris = @unserialize($core->blog->settings->pings->pings_uris);
89          if (empty($pings_uris) || !is_array($pings_uris)) {
90               return;
91          }
92
93          foreach ($_POST['pings_do'] as $uri)
94          {
95               if (in_array($uri,$pings_uris)) {
96                    try {
97                         pingsAPI::doPings($uri,$core->blog->name,$core->blog->url);
98                    } catch (Exception $e) {}
99               }
100          }
101     }
102}
Note: See TracBrowser for help on using the repository browser.

Sites map