Dotclear

source: plugins/pings/index.php @ 3428:fccd82354a90

Revision 3428:fccd82354a90, 3.3 KB checked in by franck <carnet.franck.paul@…>, 9 years ago (diff)

Add an option to auto ping on 1st publication, closes #871 and #548, addresses #970 and #784

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_CONTEXT_ADMIN')) { return; }
13
14dcPage::checkSuper();
15
16try
17{
18     $pings_uris = $core->blog->settings->pings->pings_uris;
19     if (!$pings_uris) {
20          $pings_uris = array();
21     }
22
23     if (isset($_POST['pings_srv_name']))
24     {
25          $pings_srv_name = is_array($_POST['pings_srv_name']) ? $_POST['pings_srv_name'] : array();
26          $pings_srv_uri = is_array($_POST['pings_srv_uri']) ? $_POST['pings_srv_uri'] : array();
27          $pings_uris = array();
28
29          foreach ($pings_srv_name as $k => $v) {
30               if (trim($v) && trim($pings_srv_uri[$k])) {
31                    $pings_uris[trim($v)] = trim($pings_srv_uri[$k]);
32               }
33          }
34
35          $core->blog->settings->addNamespace('pings');
36          // Settings for all blogs
37          $core->blog->settings->pings->put('pings_active',!empty($_POST['pings_active']),null,null,true,true);
38          $core->blog->settings->pings->put('pings_uris',$pings_uris,null,null,true,true);
39          // Settings for current blog only
40          $core->blog->settings->pings->put('pings_auto',!empty($_POST['pings_auto']),null,null,true,false);
41
42          dcPage::addSuccessNotice(__('Settings have been successfully updated.'));
43          http::redirect($p_url);
44     }
45}
46catch (Exception $e)
47{
48     $core->error->add($e->getMessage());
49}
50?>
51<html>
52<head>
53  <title><?php echo __('Pings'); ?></title>
54</head>
55
56<body>
57<?php
58
59echo dcPage::breadcrumb(
60     array(
61          __('Plugins') => '',
62          __('Pings configuration') => ''
63     ));
64
65echo
66'<form action="'.$p_url.'" method="post">'.
67'<p><label for="pings_active" class="classic">'.form::checkbox('pings_active',1,$core->blog->settings->pings->pings_active).
68__('Activate pings extension').'</label></p>';
69
70$i = 0;
71foreach ($pings_uris as $n => $u)
72{
73     echo
74     '<p><label for="pings_srv_name-'.$i.'" class="classic">'.__('Service name:').'</label> '.
75     form::field(array('pings_srv_name[]','pings_srv_name-'.$i),20,128,html::escapeHTML($n)).' '.
76     '<label for="pings_srv_uri-'.$i.'" class="classic">'.__('Service URI:').'</label> '.
77     form::field(array('pings_srv_uri[]','pings_srv_uri-'.$i),40,255,html::escapeHTML($u));
78
79     if (!empty($_GET['test']))
80     {
81          try {
82               pingsAPI::doPings($u,'Example site','http://example.com');
83               echo ' <img src="images/check-on.png" alt="OK" />';
84          } catch (Exception $e) {
85               echo ' <img src="images/check-off.png" alt="'.__('Error').'" /> '.$e->getMessage();
86          }
87     }
88
89     echo '</p>';
90     $i++;
91}
92
93echo
94'<p><label for="pings_srv_name2" class="classic">'.__('Service name:').'</label> '.
95form::field(array('pings_srv_name[]','pings_srv_name2'),20,128).' '.
96'<label for="pings_srv_uri2" class="classic">'.__('Service URI:').'</label> '.
97form::field(array('pings_srv_uri[]','pings_srv_uri2'),40,255).
98'</p>'.
99
100'<p><label for="pings_auto" class="classic">'.form::checkbox('pings_auto',1,$core->blog->settings->pings->pings_auto).
101__('Auto pings all services on first publication of entry (current blog only)').'</label></p>'.
102
103'<p><input type="submit" value="'.__('Save').'" />'.
104$core->formNonce().'</p>'.
105'</form>';
106
107echo '<p><a class="button" href="'.$p_url.'&amp;test=1">'.__('Test ping services').'</a></p>';
108?>
109
110<?php dcPage::helpBlock('pings'); ?>
111
112</body>
113</html>
Note: See TracBrowser for help on using the repository browser.

Sites map