clean services files and remove un-ping-able ones
This commit is contained in:
parent
2acf82b4e0
commit
cba24bc78c
20
_prepend.php
20
_prepend.php
@ -45,26 +45,26 @@ $__autoload['kutrlLog'] = $d . 'lib.kutrl.log.php';
|
||||
# Services
|
||||
$__autoload['bilbolinksKutrlService'] = $d . 'services/class.bilbolinks.service.php';
|
||||
$core->addBehavior('kutrlService', function() { return ["bilbolinks","bilbolinksKutrlService"]; } );
|
||||
$__autoload['bitlyKutrlService'] = $d . 'services/class.bitly.service.php';
|
||||
$core->addBehavior('kutrlService', function() { return ["bitly","bitlyKutrlService"]; } );
|
||||
//$__autoload['bitlyKutrlService'] = $d . 'services/class.bitly.service.php';
|
||||
//$core->addBehavior('kutrlService', function() { return ["bitly","bitlyKutrlService"]; } );
|
||||
$__autoload['customKutrlService'] = $d . 'services/class.custom.service.php';
|
||||
$core->addBehavior('kutrlService', function() { return ["custom","customKutrlService"]; } );
|
||||
$__autoload['defaultKutrlService'] = $d . 'services/class.default.service.php';
|
||||
$core->addBehavior('kutrlService', function() { return ["default","defaultKutrlService"]; } );
|
||||
$__autoload['googlKutrlService'] = $d . 'services/class.googl.service.php';
|
||||
$core->addBehavior('kutrlService', function() { return ["googl","googlKutrlService"]; } );
|
||||
//$__autoload['googlKutrlService'] = $d . 'services/class.googl.service.php';
|
||||
//$core->addBehavior('kutrlService', function() { return ["googl","googlKutrlService"]; } );
|
||||
$__autoload['isgdKutrlService'] = $d . 'services/class.isgd.service.php';
|
||||
$core->addBehavior('kutrlService', function() { return ["isgd","isgdKutrlService"]; } );
|
||||
$__autoload['localKutrlService'] = $d . 'services/class.local.service.php';
|
||||
$core->addBehavior('kutrlService', function() { return ["local","localKutrlService"]; } );
|
||||
$__autoload['shorttoKutrlService'] = $d . 'services/class.shortto.service.php';
|
||||
$core->addBehavior('kutrlService', function() { return ["shortto","shorttoKutrlService"]; } );
|
||||
$__autoload['trimKutrlService'] = $d . 'services/class.trim.service.php';
|
||||
$core->addBehavior('kutrlService', function() { return ["trim","trimKutrlService"]; } );
|
||||
//$__autoload['shorttoKutrlService'] = $d . 'services/class.shortto.service.php';
|
||||
//$core->addBehavior('kutrlService', function() { return ["shortto","shorttoKutrlService"]; } );
|
||||
//$__autoload['trimKutrlService'] = $d . 'services/class.trim.service.php';
|
||||
//$core->addBehavior('kutrlService', function() { return ["trim","trimKutrlService"]; } );
|
||||
$__autoload['yourlsKutrlService'] = $d . 'services/class.yourls.service.php';
|
||||
$core->addBehavior('kutrlService', function() { return ["yourls","yourlsKutrlService"]; } );
|
||||
$__autoload['suprKutrlService'] = $d . 'services/class.supr.service.php';
|
||||
$core->addBehavior('kutrlService', function() { return ["supr","suprKutrlService"]; } );
|
||||
//$__autoload['suprKutrlService'] = $d . 'services/class.supr.service.php';
|
||||
//$core->addBehavior('kutrlService', function() { return ["supr","suprKutrlService"]; } );
|
||||
|
||||
# Shorten url passed through wiki functions
|
||||
$__autoload['kutrlWiki'] = $d . 'lib.wiki.kutrl.php';
|
||||
|
@ -10,88 +10,85 @@
|
||||
# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
||||
# -- END LICENSE BLOCK ------------------------------------
|
||||
|
||||
if (!defined('DC_RC_PATH')){return;}
|
||||
if (!defined('DC_RC_PATH')) {
|
||||
return null;
|
||||
}
|
||||
|
||||
class bilbolinksKutrlService extends kutrlService
|
||||
{
|
||||
protected $config = array(
|
||||
'id' => 'bilbolinks',
|
||||
'name' => 'BilboLinks',
|
||||
'home' => 'http://www.tux-planet.fr/bilbobox/'
|
||||
);
|
||||
|
||||
protected function init()
|
||||
{
|
||||
$base = (string) $this->settings->kutrl_srv_bilbolinks_base;
|
||||
if (!empty($base) && substr($base,-1,1) != '/') $base .= '/';
|
||||
|
||||
$this->config['url_api'] = $base.'api.php';
|
||||
$this->config['url_base'] = $base;
|
||||
$this->config['url_min_len'] = 25;
|
||||
}
|
||||
|
||||
public function saveSettings()
|
||||
{
|
||||
$base = '';
|
||||
if (!empty($_POST['kutrl_srv_bilbolinks_base']))
|
||||
{
|
||||
$base = $_POST['kutrl_srv_bilbolinks_base'];
|
||||
if (substr($base,-1,1) != '/') $base .= '/';
|
||||
}
|
||||
|
||||
$this->settings->put('kutrl_srv_bilbolinks_base',$base);
|
||||
}
|
||||
|
||||
public function settingsForm()
|
||||
{
|
||||
echo
|
||||
'<p><label class="classic">'.
|
||||
__('Url of the service:').'<br />'.
|
||||
form::field(array('kutrl_srv_bilbolinks_base'),50,255,$this->settings->kutrl_srv_bilbolinks_base).
|
||||
'</label></p>'.
|
||||
'<p class="form-note">'.
|
||||
__('This is the root URL of the "bilbolinks" service you want to use. Ex: "http://tux-pla.net/".').
|
||||
'</p>';
|
||||
}
|
||||
|
||||
public function testService()
|
||||
{
|
||||
if (empty($this->url_base))
|
||||
{
|
||||
$this->error->add(__('Service is not well configured.'));
|
||||
return false;
|
||||
}
|
||||
|
||||
$arg = array('longurl' => urlencode($this->url_test));
|
||||
if (!self::post($this->url_api,$arg,true,true))
|
||||
{
|
||||
$this->error->add(__('Service is unavailable.'));
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public function createHash($url,$hash=null)
|
||||
{
|
||||
$arg = array('longurl' => $url);
|
||||
|
||||
if (!($response = self::post($this->url_api,$arg,true,true)))
|
||||
{
|
||||
$this->error->add(__('Service is unavailable.'));
|
||||
return false;
|
||||
}
|
||||
if ($response == 'You are too speed!')
|
||||
{
|
||||
$this->error->add(__('Service rate limit exceeded.'));
|
||||
return false;
|
||||
}
|
||||
|
||||
$rs = new ArrayObject();
|
||||
$rs->hash = str_replace($this->url_base,'',$response);
|
||||
$rs->url = $url;
|
||||
$rs->type = $this->id;
|
||||
|
||||
return $rs;
|
||||
}
|
||||
}
|
||||
?>
|
||||
protected $config = [
|
||||
'id' => 'bilbolinks',
|
||||
'name' => 'BilboLinks',
|
||||
'home' => 'http://www.tux-planet.fr/bilbobox/'
|
||||
];
|
||||
|
||||
protected function init()
|
||||
{
|
||||
$base = (string) $this->settings->kutrl_srv_bilbolinks_base;
|
||||
if (!empty($base) && substr($base, -1, 1) != '/') {
|
||||
$base .= '/';
|
||||
}
|
||||
$this->config['url_api'] = $base . 'api.php';
|
||||
$this->config['url_base'] = $base;
|
||||
$this->config['url_min_len'] = 25;
|
||||
}
|
||||
|
||||
public function saveSettings()
|
||||
{
|
||||
$base = '';
|
||||
if (!empty($_POST['kutrl_srv_bilbolinks_base'])) {
|
||||
$base = $_POST['kutrl_srv_bilbolinks_base'];
|
||||
if (substr($base, -1, 1) != '/') {
|
||||
$base .= '/';
|
||||
}
|
||||
}
|
||||
$this->settings->put('kutrl_srv_bilbolinks_base', $base);
|
||||
}
|
||||
|
||||
public function settingsForm()
|
||||
{
|
||||
echo
|
||||
'<p><label class="classic">' .
|
||||
__('Url of the service:') . '<br />' .
|
||||
form::field(['kutrl_srv_bilbolinks_base'], 50, 255, $this->settings->kutrl_srv_bilbolinks_base) .
|
||||
'</label></p>' .
|
||||
'<p class="form-note">' .
|
||||
__('This is the root URL of the "bilbolinks" service you want to use. Ex: "http://tux-pla.net/".') .
|
||||
'</p>';
|
||||
}
|
||||
|
||||
public function testService()
|
||||
{
|
||||
if (empty($this->url_base)) {
|
||||
$this->error->add(__('Service is not well configured.'));
|
||||
return false;
|
||||
}
|
||||
|
||||
$arg = ['longurl' => urlencode($this->url_test)];
|
||||
if (!self::post($this->url_api, $arg, true,true)) {
|
||||
$this->error->add(__('Service is unavailable.'));
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public function createHash($url, $hash = null)
|
||||
{
|
||||
$arg = ['longurl' => $url];
|
||||
|
||||
if (!($response = self::post($this->url_api, $arg, true, true))) {
|
||||
$this->error->add(__('Service is unavailable.'));
|
||||
return false;
|
||||
}
|
||||
if ($response == 'You are too speed!') {
|
||||
$this->error->add(__('Service rate limit exceeded.'));
|
||||
return false;
|
||||
}
|
||||
$rs = new ArrayObject();
|
||||
$rs->hash = str_replace($this->url_base, '', $response);
|
||||
$rs->url = $url;
|
||||
$rs->type = $this->id;
|
||||
|
||||
return $rs;
|
||||
}
|
||||
}
|
@ -10,118 +10,116 @@
|
||||
# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
||||
# -- END LICENSE BLOCK ------------------------------------
|
||||
|
||||
if (!defined('DC_RC_PATH')){return;}
|
||||
if (!defined('DC_RC_PATH')) {
|
||||
return null;
|
||||
}
|
||||
|
||||
class bitlyKutrlService extends kutrlService
|
||||
{
|
||||
protected $config = array(
|
||||
'id' => 'bitly',
|
||||
'name' => 'bit.ly',
|
||||
'home' => 'http://bit.ly',
|
||||
|
||||
'url_api' => 'http://api.bit.ly/v3/',
|
||||
'url_base' => 'http://bit.ly/',
|
||||
'url_min_len' => 25
|
||||
);
|
||||
|
||||
private $args = array(
|
||||
'format' => 'xml',
|
||||
'login' => '',
|
||||
'apiKey' => '',
|
||||
'history' => 0
|
||||
);
|
||||
|
||||
protected function init()
|
||||
{
|
||||
$this->args['login'] = $this->settings->kutrl_srv_bitly_login;
|
||||
$this->args['apiKey'] = $this->settings->kutrl_srv_bitly_apikey;
|
||||
$this->args['history'] = $this->settings->kutrl_srv_bitly_history ? 1 : 0;
|
||||
}
|
||||
|
||||
public function saveSettings()
|
||||
{
|
||||
$this->settings->put('kutrl_srv_bitly_login',$_POST['kutrl_srv_bitly_login']);
|
||||
$this->settings->put('kutrl_srv_bitly_apikey',$_POST['kutrl_srv_bitly_apikey']);
|
||||
$this->settings->put('kutrl_srv_bitly_history',isset($_POST['kutrl_srv_bitly_history']));
|
||||
}
|
||||
|
||||
public function settingsForm()
|
||||
{
|
||||
echo
|
||||
'<p><label class="classic">'.__('Login:').'<br />'.
|
||||
form::field(array('kutrl_srv_bitly_login'),50,255,$this->settings->kutrl_srv_bitly_login).
|
||||
'</label></p>'.
|
||||
'<p class="form-note">'.
|
||||
sprintf(__('This is your login to sign up to %s'),$this->config['name']).
|
||||
'</p>'.
|
||||
'<p><label class="classic">'.__('API Key:').'<br />'.
|
||||
form::field(array('kutrl_srv_bitly_apikey'),50,255,$this->settings->kutrl_srv_bitly_apikey).
|
||||
'</label></p>'.
|
||||
'<p class="form-note">'.
|
||||
sprintf(__('This is your personnal %s API key. You can find it on your account page.'),$this->config['name']).
|
||||
'</p>'.
|
||||
'<p><label class="classic">'.
|
||||
form::checkbox(array('kutrl_srv_bitly_history'),'1',$this->settings->kutrl_srv_bitly_history).' '.
|
||||
__('Publish history').
|
||||
'</label></p>'.
|
||||
'<p class="form-note">'.
|
||||
__('This publish all short links on your bit.ly public page.').
|
||||
'</p>';
|
||||
}
|
||||
|
||||
public function testService()
|
||||
{
|
||||
if (empty($this->args['login']) || empty($this->args['apiKey']))
|
||||
{
|
||||
$this->error->add(__('Service is not well configured.'));
|
||||
return false;
|
||||
}
|
||||
protected $config = [
|
||||
'id' => 'bitly',
|
||||
'name' => 'bit.ly',
|
||||
'home' => 'http://bit.ly',
|
||||
|
||||
'url_api' => 'http://api.bit.ly/v3/',
|
||||
'url_base' => 'http://bit.ly/',
|
||||
'url_min_len' => 25
|
||||
];
|
||||
|
||||
$args = $this->args;
|
||||
$args['hash'] = 'WP9vc';
|
||||
if (!($response = self::post($this->url_api.'expand',$args,true)))
|
||||
{
|
||||
$this->error->add(__('Failed to call service.'));
|
||||
return false;
|
||||
}
|
||||
|
||||
$rsp = simplexml_load_string($response);
|
||||
|
||||
$err_msg = (string) $rsp->status_txt;
|
||||
if ($err_msg != 'OK') {
|
||||
$err_no = (integer) $rsp->status_code;
|
||||
$this->error->add(sprintf(__('An error occured with code %s and message "%s"'),$err_no,$err_msg));
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public function createHash($url,$hash=null)
|
||||
{
|
||||
$args = $this->args;
|
||||
$args['longUrl'] = $url;
|
||||
|
||||
if (!($response = self::post($this->url_api.'shorten',$args,true)))
|
||||
{
|
||||
$this->error->add(__('Failed to call service.'));
|
||||
return false;
|
||||
}
|
||||
|
||||
$rsp = simplexml_load_string($response);
|
||||
|
||||
$err_msg = (string) $rsp->status_txt;
|
||||
if ($err_msg != 'OK') {
|
||||
$err_no = (integer) $rsp->status_code;
|
||||
$this->error->add(sprintf(__('An error occured with code %s and message "%s"'),$err_no,$err_msg));
|
||||
return false;
|
||||
}
|
||||
|
||||
$rs = new ArrayObject();
|
||||
$rs->hash = (string) $rsp->data[0]->hash;
|
||||
$rs->url = (string) $rsp->data[0]->long_url;
|
||||
$rs->type = $this->id;
|
||||
|
||||
return $rs;
|
||||
}
|
||||
}
|
||||
?>
|
||||
private $args = [
|
||||
'format' => 'xml',
|
||||
'login' => '',
|
||||
'apiKey' => '',
|
||||
'history' => 0
|
||||
];
|
||||
|
||||
protected function init()
|
||||
{
|
||||
$this->args['login'] = $this->settings->kutrl_srv_bitly_login;
|
||||
$this->args['apiKey'] = $this->settings->kutrl_srv_bitly_apikey;
|
||||
$this->args['history'] = $this->settings->kutrl_srv_bitly_history ? 1 : 0;
|
||||
}
|
||||
|
||||
public function saveSettings()
|
||||
{
|
||||
$this->settings->put('kutrl_srv_bitly_login', $_POST['kutrl_srv_bitly_login']);
|
||||
$this->settings->put('kutrl_srv_bitly_apikey', $_POST['kutrl_srv_bitly_apikey']);
|
||||
$this->settings->put('kutrl_srv_bitly_history', isset($_POST['kutrl_srv_bitly_history']));
|
||||
}
|
||||
|
||||
public function settingsForm()
|
||||
{
|
||||
echo
|
||||
'<p><label class="classic">' . __('Login:') . '<br />' .
|
||||
form::field(['kutrl_srv_bitly_login'], 50, 255, $this->settings->kutrl_srv_bitly_login) .
|
||||
'</label></p>' .
|
||||
'<p class="form-note">' .
|
||||
sprintf(__('This is your login to sign up to %s'), $this->config['name']) .
|
||||
'</p>' .
|
||||
'<p><label class="classic">' . __('API Key:') . '<br />' .
|
||||
form::field(['kutrl_srv_bitly_apikey'], 50, 255, $this->settings->kutrl_srv_bitly_apikey) .
|
||||
'</label></p>' .
|
||||
'<p class="form-note">' .
|
||||
sprintf(__('This is your personnal %s API key. You can find it on your account page.'), $this->config['name']) .
|
||||
'</p>' .
|
||||
'<p><label class="classic">' .
|
||||
form::checkbox(['kutrl_srv_bitly_history'], '1', $this->settings->kutrl_srv_bitly_history) . ' ' .
|
||||
__('Publish history') .
|
||||
'</label></p>' .
|
||||
'<p class="form-note">' .
|
||||
__('This publish all short links on your bit.ly public page.') .
|
||||
'</p>';
|
||||
}
|
||||
|
||||
public function testService()
|
||||
{
|
||||
if (empty($this->args['login']) || empty($this->args['apiKey'])) {
|
||||
$this->error->add(__('Service is not well configured.'));
|
||||
return false;
|
||||
}
|
||||
|
||||
$args = $this->args;
|
||||
$args['hash'] = 'WP9vc';
|
||||
if (!($response = self::post($this->url_api . 'expand', $args, true))) {
|
||||
$this->error->add(__('Failed to call service.'));
|
||||
return false;
|
||||
}
|
||||
|
||||
$rsp = simplexml_load_string($response);
|
||||
|
||||
$err_msg = (string) $rsp->status_txt;
|
||||
if ($err_msg != 'OK') {
|
||||
$err_no = (integer) $rsp->status_code;
|
||||
$this->error->add(sprintf(__('An error occured with code %s and message "%s"'), $err_no, $err_msg));
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public function createHash($url, $hash = null)
|
||||
{
|
||||
$args = $this->args;
|
||||
$args['longUrl'] = $url;
|
||||
|
||||
if (!($response = self::post($this->url_api . 'shorten', $args, true))) {
|
||||
$this->error->add(__('Failed to call service.'));
|
||||
return false;
|
||||
}
|
||||
|
||||
$rsp = simplexml_load_string($response);
|
||||
|
||||
$err_msg = (string) $rsp->status_txt;
|
||||
if ($err_msg != 'OK') {
|
||||
$err_no = (integer) $rsp->status_code;
|
||||
$this->error->add(sprintf(__('An error occured with code %s and message "%s"'), $err_no, $err_msg));
|
||||
return false;
|
||||
}
|
||||
|
||||
$rs = new ArrayObject();
|
||||
$rs->hash = (string) $rsp->data[0]->hash;
|
||||
$rs->url = (string) $rsp->data[0]->long_url;
|
||||
$rs->type = $this->id;
|
||||
|
||||
return $rs;
|
||||
}
|
||||
}
|
@ -10,111 +10,109 @@
|
||||
# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
||||
# -- END LICENSE BLOCK ------------------------------------
|
||||
|
||||
if (!defined('DC_RC_PATH')){return;}
|
||||
if (!defined('DC_RC_PATH')) {
|
||||
return null;
|
||||
}
|
||||
|
||||
class customKutrlService extends kutrlService
|
||||
{
|
||||
protected $config = array(
|
||||
'id' => 'custom',
|
||||
'name' => 'Custom'
|
||||
);
|
||||
|
||||
protected function init()
|
||||
{
|
||||
$config = unserialize(base64_decode($this->settings->kutrl_srv_custom));
|
||||
if (!is_array($config))
|
||||
{
|
||||
$config = array();
|
||||
}
|
||||
|
||||
$this->config['url_api'] = !empty($config['url_api']) ? $config['url_api'] : '';
|
||||
$this->config['url_base'] = !empty($config['url_base']) ? $config['url_base'] : '';
|
||||
$this->config['url_param'] = !empty($config['url_param']) ? $config['url_param'] : '';
|
||||
$this->config['url_encode'] = !empty($config['url_api']);
|
||||
|
||||
$this->config['url_min_length'] = strlen($this->url_base) + 2;
|
||||
}
|
||||
|
||||
public function saveSettings()
|
||||
{
|
||||
$config = array(
|
||||
'url_api' => $_POST['kutrl_srv_custom_url_api'],
|
||||
'url_base' => $_POST['kutrl_srv_custom_url_base'],
|
||||
'url_param' => $_POST['kutrl_srv_custom_url_param'],
|
||||
'url_encode' => !empty($_POST['kutrl_srv_custom_url_encode'])
|
||||
);
|
||||
$this->settings->put('kutrl_srv_custom',base64_encode(serialize($config)));
|
||||
}
|
||||
|
||||
public function settingsForm()
|
||||
{
|
||||
$default = array(
|
||||
'url_api' => '',
|
||||
'url_base' => '',
|
||||
'url_param' => '',
|
||||
'url_encode' => true
|
||||
);
|
||||
$config = unserialize(base64_decode($this->settings->kutrl_srv_custom));
|
||||
if (!is_array($config))
|
||||
{
|
||||
$config = array();
|
||||
}
|
||||
$config = array_merge($default,$config);
|
||||
|
||||
echo
|
||||
'<p>'.__('You can set a configurable service.').'<br />'.
|
||||
__('It consists on a simple query to an URL with only one param.').'<br />'.
|
||||
__('It must respond with a http code 200 on success.').'<br />'.
|
||||
__('It must returned the short URL (or only hash) in clear text.').'</p>' .
|
||||
'<p><label class="classic">'.__('API URL:').'<br />'.
|
||||
form::field(array('kutrl_srv_custom_url_api'),50,255,$config['url_api']).
|
||||
'</label></p>'.
|
||||
'<p class="form-note">'.__('Full path to API of the URL shortener. ex: "http://is.gd/api.php"').'</p>'.
|
||||
'<p><label class="classic">'.__('Short URL domain:').'<br />'.
|
||||
form::field(array('kutrl_srv_custom_url_base'),50,255,$config['url_base']).
|
||||
'</label></p>'.
|
||||
'<p class="form-note">'.__('Common part of the short URL. ex: "http://is.gd/"').'</p>'.
|
||||
'<p><label class="classic">'.__('API URL param:').'<br />'.
|
||||
form::field(array('kutrl_srv_custom_url_param'),50,255,$config['url_param']).
|
||||
'</label></p>'.
|
||||
'<p class="form-note">'.__('Param of the query. ex: "longurl"').'</p>'.
|
||||
'<p><label class="classic">'.
|
||||
form::checkbox(array('kutrl_srv_custom_url_encode'),'1',$config['url_encode']).' '.
|
||||
__('Encode URL').
|
||||
'</label></p>';
|
||||
}
|
||||
|
||||
public function testService()
|
||||
{
|
||||
if (empty($this->url_api)) return false;
|
||||
|
||||
$url = $this->url_encode ? urlencode($this->url_test) : $this->url_test;
|
||||
$arg = array($this->url_param => $url);
|
||||
if (!self::post($this->url_api,$arg,true,true))
|
||||
{
|
||||
$this->error->add(__('Service is unavailable.'));
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public function createHash($url,$hash=null)
|
||||
{
|
||||
$enc = $this->url_encode ? urlencode($url) : $url;
|
||||
$arg = array($this->url_param => $enc);
|
||||
|
||||
if (!($response = self::post($this->url_api,$arg,true,true)))
|
||||
{
|
||||
$this->error->add(__('Service is unavailable.'));
|
||||
return false;
|
||||
}
|
||||
|
||||
$rs = new ArrayObject();
|
||||
$rs->hash = str_replace($this->url_base,'',$response);
|
||||
$rs->url = $url;
|
||||
$rs->type = $this->id;
|
||||
protected $config = [
|
||||
'id' => 'custom',
|
||||
'name' => 'Custom'
|
||||
];
|
||||
|
||||
protected function init()
|
||||
{
|
||||
$config = unserialize(base64_decode($this->settings->kutrl_srv_custom));
|
||||
if (!is_array($config))
|
||||
{
|
||||
$config = [];
|
||||
}
|
||||
|
||||
$this->config['url_api'] = !empty($config['url_api']) ? $config['url_api'] : '';
|
||||
$this->config['url_base'] = !empty($config['url_base']) ? $config['url_base'] : '';
|
||||
$this->config['url_param'] = !empty($config['url_param']) ? $config['url_param'] : '';
|
||||
$this->config['url_encode'] = !empty($config['url_api']);
|
||||
|
||||
$this->config['url_min_length'] = strlen($this->url_base) + 2;
|
||||
}
|
||||
|
||||
return $rs;
|
||||
}
|
||||
}
|
||||
?>
|
||||
public function saveSettings()
|
||||
{
|
||||
$config = [
|
||||
'url_api' => $_POST['kutrl_srv_custom_url_api'],
|
||||
'url_base' => $_POST['kutrl_srv_custom_url_base'],
|
||||
'url_param' => $_POST['kutrl_srv_custom_url_param'],
|
||||
'url_encode' => !empty($_POST['kutrl_srv_custom_url_encode'])
|
||||
];
|
||||
$this->settings->put('kutrl_srv_custom', base64_encode(serialize($config)));
|
||||
}
|
||||
|
||||
public function settingsForm()
|
||||
{
|
||||
$default = [
|
||||
'url_api' => '',
|
||||
'url_base' => '',
|
||||
'url_param' => '',
|
||||
'url_encode' => true
|
||||
];
|
||||
$config = unserialize(base64_decode($this->settings->kutrl_srv_custom));
|
||||
if (!is_array($config)) {
|
||||
$config = [];
|
||||
}
|
||||
$config = array_merge($default, $config);
|
||||
|
||||
echo
|
||||
'<p>' . __('You can set a configurable service.') . '<br />' .
|
||||
__('It consists on a simple query to an URL with only one param.') . '<br />' .
|
||||
__('It must respond with a http code 200 on success.') . '<br />' .
|
||||
__('It must returned the short URL (or only hash) in clear text.') . '</p>' .
|
||||
'<p><label class="classic">' . __('API URL:') . '<br />' .
|
||||
form::field(['kutrl_srv_custom_url_api'], 50, 255, $config['url_api']) .
|
||||
'</label></p>' .
|
||||
'<p class="form-note">' . __('Full path to API of the URL shortener. ex: "http://is.gd/api.php"') . '</p>' .
|
||||
'<p><label class="classic">' . __('Short URL domain:') . '<br />' .
|
||||
form::field(['kutrl_srv_custom_url_base'], 50, 255, $config['url_base']) .
|
||||
'</label></p>' .
|
||||
'<p class="form-note">' . __('Common part of the short URL. ex: "http://is.gd/"') . '</p>' .
|
||||
'<p><label class="classic">' . __('API URL param:') . '<br />' .
|
||||
form::field(['kutrl_srv_custom_url_param'], 50, 255, $config['url_param']) .
|
||||
'</label></p>' .
|
||||
'<p class="form-note">' . __('Param of the query. ex: "longurl"') . '</p>' .
|
||||
'<p><label class="classic">' .
|
||||
form::checkbox(['kutrl_srv_custom_url_encode'], '1', $config['url_encode']) . ' ' .
|
||||
__('Encode URL') .
|
||||
'</label></p>';
|
||||
}
|
||||
|
||||
public function testService()
|
||||
{
|
||||
if (empty($this->url_api)) {
|
||||
return false;
|
||||
}
|
||||
$url = $this->url_encode ? urlencode($this->url_test) : $this->url_test;
|
||||
$arg = [$this->url_param => $url];
|
||||
if (!self::post($this->url_api, $arg, true, true)) {
|
||||
$this->error->add(__('Service is unavailable.'));
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public function createHash($url, $hash = null)
|
||||
{
|
||||
$enc = $this->url_encode ? urlencode($url) : $url;
|
||||
$arg = array($this->url_param => $enc);
|
||||
|
||||
if (!($response = self::post($this->url_api, $arg, true, true))) {
|
||||
$this->error->add(__('Service is unavailable.'));
|
||||
return false;
|
||||
}
|
||||
$rs = new ArrayObject();
|
||||
$rs->hash = str_replace($this->url_base, '', $response);
|
||||
$rs->url = $url;
|
||||
$rs->type = $this->id;
|
||||
|
||||
return $rs;
|
||||
}
|
||||
}
|
@ -10,7 +10,9 @@
|
||||
# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
||||
# -- END LICENSE BLOCK ------------------------------------
|
||||
|
||||
if (!defined('DC_RC_PATH')){return;}
|
||||
if (!defined('DC_RC_PATH')) {
|
||||
return null;
|
||||
}
|
||||
|
||||
# nb: "default" ne veut pas dire service par défaut
|
||||
# mais service simple et rapide configuré par des constantes
|
||||
@ -19,73 +21,70 @@ if (!defined('DC_RC_PATH')){return;}
|
||||
|
||||
class defaultKutrlService extends kutrlService
|
||||
{
|
||||
protected function init()
|
||||
{
|
||||
$this->config = array(
|
||||
'id' => 'default',
|
||||
'name' => 'Default',
|
||||
'home' => '',
|
||||
|
||||
'url_api' => SHORTEN_SERVICE_API,
|
||||
'url_base' => SHORTEN_SERVICE_BASE,
|
||||
'url_min_len' => strlen(SHORTEN_SERVICE_BASE) + 2,
|
||||
|
||||
'url_param' => SHORTEN_SERVICE_PARAM,
|
||||
'url_encode' => SHORTEN_SERVICE_ENCODE
|
||||
);
|
||||
}
|
||||
|
||||
public function settingsForm()
|
||||
{
|
||||
echo
|
||||
'<p class="form-note">'.
|
||||
__('There is nothing to configure for this service.').
|
||||
'</p>'.
|
||||
'<p>'.__('This service is set to:').'</p>'.
|
||||
'<dl>'.
|
||||
'<dt>'.__('Service name:').'</dt>'.
|
||||
'<dd>'.SHORTEN_SERVICE_NAME.'</dd>'.
|
||||
'<dt>'.__('Full API URL:').'</dt>'.
|
||||
'<dd>'.SHORTEN_SERVICE_API.'</dd>'.
|
||||
'<dt>'.__('Query param:').'</dt>'.
|
||||
'<dd>'.SHORTEN_SERVICE_PARAM.'</dd>'.
|
||||
'<dt>'.__('Short URL domain:').'</dt>'.
|
||||
'<dd>'.SHORTEN_SERVICE_BASE.'</dd>'.
|
||||
'<dt>'.__('Encode URL:').'</dt>'.
|
||||
'<dd>'.(SHORTEN_SERVICE_ENCODE ? __('yes') : __('no')).'</dd>'.
|
||||
'</dl>';
|
||||
}
|
||||
|
||||
public function testService()
|
||||
{
|
||||
$url = $this->url_encode ? urlencode($this->url_test) : $this->url_test;
|
||||
$arg = array($this->url_param => urlencode($this->url_test));
|
||||
|
||||
if (!self::post($this->url_api,$arg,true,true))
|
||||
{
|
||||
$this->error->add(__('Service is unavailable.'));
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public function createHash($url,$hash=null)
|
||||
{
|
||||
$enc = $this->url_encode ? urlencode($url) : $url;
|
||||
$arg = array($this->url_param => $url);
|
||||
|
||||
if (!($response = self::post($this->url_api,$arg,true,true)))
|
||||
{
|
||||
$this->error->add(__('Service is unavailable.'));
|
||||
return false;
|
||||
}
|
||||
|
||||
$rs = new ArrayObject();
|
||||
$rs->hash = str_replace($this->url_base,'',$response);
|
||||
$rs->url = $url;
|
||||
$rs->type = $this->id;
|
||||
|
||||
return $rs;
|
||||
}
|
||||
}
|
||||
?>
|
||||
protected function init()
|
||||
{
|
||||
$this->config = [
|
||||
'id' => 'default',
|
||||
'name' => 'Default',
|
||||
'home' => '',
|
||||
|
||||
'url_api' => SHORTEN_SERVICE_API,
|
||||
'url_base' => SHORTEN_SERVICE_BASE,
|
||||
'url_min_len' => strlen(SHORTEN_SERVICE_BASE) + 2,
|
||||
|
||||
'url_param' => SHORTEN_SERVICE_PARAM,
|
||||
'url_encode' => SHORTEN_SERVICE_ENCODE
|
||||
];
|
||||
}
|
||||
|
||||
public function settingsForm()
|
||||
{
|
||||
echo
|
||||
'<p class="form-note">' .
|
||||
__('There is nothing to configure for this service.') .
|
||||
'</p>' .
|
||||
'<p>' . __('This service is set to:') . '</p>' .
|
||||
'<dl>' .
|
||||
'<dt>' . __('Service name:') . '</dt>' .
|
||||
'<dd>' . SHORTEN_SERVICE_NAME . '</dd>' .
|
||||
'<dt>' . __('Full API URL:') . '</dt>' .
|
||||
'<dd>' . SHORTEN_SERVICE_API . '</dd>' .
|
||||
'<dt>' . __('Query param:') . '</dt>' .
|
||||
'<dd>' . SHORTEN_SERVICE_PARAM . '</dd>' .
|
||||
'<dt>' . __('Short URL domain:') . '</dt>' .
|
||||
'<dd>' . SHORTEN_SERVICE_BASE . '</dd>' .
|
||||
'<dt>' . __('Encode URL:') . '</dt>' .
|
||||
'<dd>' . (SHORTEN_SERVICE_ENCODE ? __('yes') : __('no')) . '</dd>' .
|
||||
'</dl>';
|
||||
}
|
||||
|
||||
public function testService()
|
||||
{
|
||||
$url = $this->url_encode ? urlencode($this->url_test) : $this->url_test;
|
||||
$arg = array($this->url_param => urlencode($this->url_test));
|
||||
|
||||
if (!self::post($this->url_api, $arg, true, true)) {
|
||||
$this->error->add(__('Service is unavailable.'));
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public function createHash($url, $hash = null)
|
||||
{
|
||||
$enc = $this->url_encode ? urlencode($url) : $url;
|
||||
$arg = array($this->url_param => $url);
|
||||
|
||||
if (!($response = self::post($this->url_api, $arg, true, true))) {
|
||||
$this->error->add(__('Service is unavailable.'));
|
||||
return false;
|
||||
}
|
||||
|
||||
$rs = new ArrayObject();
|
||||
$rs->hash = str_replace($this->url_base, '', $response);
|
||||
$rs->url = $url;
|
||||
$rs->type = $this->id;
|
||||
|
||||
return $rs;
|
||||
}
|
||||
}
|
@ -10,71 +10,70 @@
|
||||
# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
||||
# -- END LICENSE BLOCK ------------------------------------
|
||||
|
||||
if (!defined('DC_RC_PATH')){return;}
|
||||
if (!defined('DC_RC_PATH')) {
|
||||
return null;
|
||||
}
|
||||
|
||||
class googlKutrlService extends kutrlService
|
||||
{
|
||||
public $id = 'googl';
|
||||
public $name = 'goo.gl';
|
||||
public $home = 'http://goo.gl';
|
||||
public $id = 'googl';
|
||||
public $name = 'goo.gl';
|
||||
public $home = 'http://goo.gl';
|
||||
|
||||
private $url_api = 'https://www.googleapis.com/urlshortener/v1/url';
|
||||
private $url_test = 'http://dotclear.jcdenis.com/go/kUtRL';
|
||||
private $args = array(
|
||||
'key' => 'AIzaSyDE1WfOMdnrnX8p51jSmVodenaNk385asc'
|
||||
);
|
||||
private $headers = array('Content-Type: application/json');
|
||||
|
||||
protected function init()
|
||||
{
|
||||
$this->url_base = 'http://goo.gl/';
|
||||
$this->url_min_length = 20;
|
||||
}
|
||||
private $url_api = 'https://www.googleapis.com/urlshortener/v1/url';
|
||||
private $url_test = 'http://dotclear.jcdenis.com/go/kUtRL';
|
||||
private $args = [
|
||||
'key' => 'AIzaSyDE1WfOMdnrnX8p51jSmVodenaNk385asc'
|
||||
];
|
||||
private $headers = array('Content-Type: application/json');
|
||||
|
||||
protected function init()
|
||||
{
|
||||
$this->url_base = 'http://goo.gl/';
|
||||
$this->url_min_length = 20;
|
||||
}
|
||||
|
||||
public function testService()
|
||||
{
|
||||
$args = $this->args;
|
||||
$args['shortUrl'] = $this->url_base.'PLovn';
|
||||
if (!($response = self::post($this->url_api,$args,true,true,$this->headers)))
|
||||
{
|
||||
$this->error->add(__('Failed to call service.'));
|
||||
return false;
|
||||
}
|
||||
|
||||
$rsp = json_decode($response);
|
||||
|
||||
if (empty($rsp->status)) {
|
||||
$this->error->add(__('An error occured'));
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
public function testService()
|
||||
{
|
||||
$args = $this->args;
|
||||
$args['shortUrl'] = $this->url_base . 'PLovn';
|
||||
if (!($response = self::post($this->url_api, $args, true, true, $this->headers))) {
|
||||
$this->error->add(__('Failed to call service.'));
|
||||
return false;
|
||||
}
|
||||
|
||||
public function createHash($url,$hash=null)
|
||||
{
|
||||
$args = $this->args;
|
||||
$args['longUrl'] = $url;
|
||||
$args = json_encode($args);
|
||||
$rsp = json_decode($response);
|
||||
|
||||
if (!($response = self::post($this->url_api,$args,true,false,$this->headers)))
|
||||
{
|
||||
$this->error->add(__('Failed to call service.'));
|
||||
return false;
|
||||
}
|
||||
|
||||
$rsp = json_decode($response);
|
||||
|
||||
if (empty($rsp->id)) {
|
||||
$this->error->add(__('An error occured'));
|
||||
return false;
|
||||
}
|
||||
|
||||
$rs = new ArrayObject();
|
||||
$rs->hash = str_replace($this->url_base,'',$rsp->id);
|
||||
$rs->url = $rsp->longUrl;
|
||||
$rs->type = $this->id;
|
||||
|
||||
return $rs;
|
||||
}
|
||||
}
|
||||
?>
|
||||
if (empty($rsp->status)) {
|
||||
$this->error->add(__('An error occured'));
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public function createHash($url, $hash = null)
|
||||
{
|
||||
$args = $this->args;
|
||||
$args['longUrl'] = $url;
|
||||
$args = json_encode($args);
|
||||
|
||||
if (!($response = self::post($this->url_api, $args, true, false, $this->headers))) {
|
||||
$this->error->add(__('Failed to call service.'));
|
||||
return false;
|
||||
}
|
||||
|
||||
$rsp = json_decode($response);
|
||||
|
||||
if (empty($rsp->id)) {
|
||||
$this->error->add(__('An error occured'));
|
||||
return false;
|
||||
}
|
||||
|
||||
$rs = new ArrayObject();
|
||||
$rs->hash = str_replace($this->url_base, '', $rsp->id);
|
||||
$rs->url = $rsp->longUrl;
|
||||
$rs->type = $this->id;
|
||||
|
||||
return $rs;
|
||||
}
|
||||
}
|
@ -14,43 +14,40 @@ if (!defined('DC_RC_PATH')){return;}
|
||||
|
||||
class isgdKutrlService extends kutrlService
|
||||
{
|
||||
protected $config = array(
|
||||
'id' => 'isgd',
|
||||
'name' => 'is.gd',
|
||||
'home' => 'http://is.gd/',
|
||||
|
||||
'url_api' => 'http://is.gd/api.php',
|
||||
'url_base' => 'http://is.gd/',
|
||||
'url_min_length' => 25
|
||||
);
|
||||
|
||||
public function testService()
|
||||
{
|
||||
$arg = array('longurl' => urlencode($this->url_test));
|
||||
if (!self::post($this->url_api,$arg,true,true))
|
||||
{
|
||||
$this->error->add(__('Service is unavailable.'));
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public function createHash($url,$hash=null)
|
||||
{
|
||||
$arg = array('longurl' => $url);
|
||||
|
||||
if (!($response = self::post($this->url_api,$arg,true,true)))
|
||||
{
|
||||
$this->error->add(__('Service is unavailable.'));
|
||||
return false;
|
||||
}
|
||||
|
||||
$rs = new ArrayObject();
|
||||
$rs->hash = str_replace($this->url_base,'',$response);
|
||||
$rs->url = $url;
|
||||
$rs->type = $this->id;
|
||||
|
||||
return $rs;
|
||||
}
|
||||
}
|
||||
?>
|
||||
protected $config = [
|
||||
'id' => 'isgd',
|
||||
'name' => 'is.gd',
|
||||
'home' => 'http://is.gd/',
|
||||
|
||||
'url_api' => 'http://is.gd/api.php',
|
||||
'url_base' => 'http://is.gd/',
|
||||
'url_min_length' => 25
|
||||
];
|
||||
|
||||
public function testService()
|
||||
{
|
||||
$arg = ['longurl' => urlencode($this->url_test)];
|
||||
if (!self::post($this->url_api, $arg, true, true)) {
|
||||
$this->error->add(__('Service is unavailable.'));
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public function createHash($url, $hash = null)
|
||||
{
|
||||
$arg = ['longurl' => $url];
|
||||
|
||||
if (!($response = self::post($this->url_api, $arg, true, true))) {
|
||||
$this->error->add(__('Service is unavailable.'));
|
||||
return false;
|
||||
}
|
||||
|
||||
$rs = new ArrayObject();
|
||||
$rs->hash = str_replace($this->url_base, '', $response);
|
||||
$rs->url = $url;
|
||||
$rs->type = $this->id;
|
||||
|
||||
return $rs;
|
||||
}
|
||||
}
|
@ -10,262 +10,228 @@
|
||||
# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
||||
# -- END LICENSE BLOCK ------------------------------------
|
||||
|
||||
if (!defined('DC_RC_PATH')){return;}
|
||||
if (!defined('DC_RC_PATH')) {
|
||||
return null;
|
||||
}
|
||||
|
||||
class localKutrlService extends kutrlService
|
||||
{
|
||||
protected $config = array(
|
||||
'id' => 'local',
|
||||
'name' => 'kUtRL',
|
||||
'home' => 'http://kutrl.fr',
|
||||
|
||||
'allow_custom_hash' => true
|
||||
);
|
||||
|
||||
protected function init()
|
||||
{
|
||||
$protocols = (string) $this->settings->kutrl_srv_local_protocols;
|
||||
$this->config['allow_protocols'] = empty($protocols) ? array() : explode(',',$protocols);
|
||||
protected $config = [
|
||||
'id' => 'local',
|
||||
'name' => 'kUtRL',
|
||||
'home' => 'http://kutrl.fr',
|
||||
|
||||
'allow_custom_hash' => true
|
||||
];
|
||||
|
||||
protected function init()
|
||||
{
|
||||
$protocols = (string) $this->settings->kutrl_srv_local_protocols;
|
||||
$this->config['allow_protocols'] = empty($protocols) ? [] : explode(',', $protocols);
|
||||
|
||||
$this->config['url_base'] = $this->core->blog->url.$this->core->url->getBase('kutrl').'/';
|
||||
$this->config['url_min_len'] = strlen($this->url_base) + 2;
|
||||
|
||||
}
|
||||
|
||||
public function saveSettings()
|
||||
{
|
||||
$this->settings->put('kutrl_srv_local_protocols',$_POST['kutrl_srv_local_protocols'],'string');
|
||||
$this->settings->put('kutrl_srv_local_public',isset($_POST['kutrl_srv_local_public']),'boolean');
|
||||
$this->settings->put('kutrl_srv_local_css',$_POST['kutrl_srv_local_css'],'string');
|
||||
$this->settings->put('kutrl_srv_local_404_active',isset($_POST['kutrl_srv_local_404_active']),'boolean');
|
||||
}
|
||||
$this->config['url_base'] = $this->core->blog->url . $this->core->url->getBase('kutrl') . '/';
|
||||
$this->config['url_min_len'] = strlen($this->url_base) + 2;
|
||||
|
||||
}
|
||||
|
||||
public function saveSettings()
|
||||
{
|
||||
$this->settings->put('kutrl_srv_local_protocols', $_POST['kutrl_srv_local_protocols'], 'string');
|
||||
$this->settings->put('kutrl_srv_local_public', isset($_POST['kutrl_srv_local_public']), 'boolean');
|
||||
$this->settings->put('kutrl_srv_local_css', $_POST['kutrl_srv_local_css'], 'string');
|
||||
$this->settings->put('kutrl_srv_local_404_active', isset($_POST['kutrl_srv_local_404_active']), 'boolean');
|
||||
}
|
||||
|
||||
public function settingsForm()
|
||||
{
|
||||
echo
|
||||
'<div class="two-cols"><div class="col">'.
|
||||
|
||||
'<p><strong>'.__('Settings:').'</strong></p>'.
|
||||
'<p><label class="classic">'.
|
||||
__('Allowed protocols:').'<br />'.
|
||||
form::field(array('kutrl_srv_local_protocols'),50,255,$this->settings->kutrl_srv_local_protocols).
|
||||
'</label></p>'.
|
||||
public function settingsForm()
|
||||
{
|
||||
echo
|
||||
'<div class="two-cols"><div class="col">' .
|
||||
|
||||
'<p><strong>' . __('Settings:') . '</strong></p>' .
|
||||
'<p><label class="classic">' .
|
||||
__('Allowed protocols:') . '<br />' .
|
||||
form::field(['kutrl_srv_local_protocols'], 50, 255, $this->settings->kutrl_srv_local_protocols) .
|
||||
'</label></p>' .
|
||||
|
||||
'<p class="form-note">'.
|
||||
__('Use comma seperated list like: "http:,https:,ftp:"').
|
||||
'</p>'.
|
||||
'<p class="form-note">' .
|
||||
__('Use comma seperated list like: "http:,https:,ftp:"') .
|
||||
'</p>' .
|
||||
|
||||
'<p><label class="classic">'.
|
||||
form::checkbox(array('kutrl_srv_local_public'),'1',$this->settings->kutrl_srv_local_public).' '.
|
||||
__('Enable public page for visitors to shorten links').
|
||||
'</label></p>'.
|
||||
'<p><label class="classic">' .
|
||||
form::checkbox(['kutrl_srv_local_public'], '1', $this->settings->kutrl_srv_local_public) . ' ' .
|
||||
__('Enable public page for visitors to shorten links') .
|
||||
'</label></p>' .
|
||||
|
||||
'<p class="area" id="style-area"><label for="_style">'.__('CSS:').'</label>'.
|
||||
form::textarea('kutrl_srv_local_css',50,3,html::escapeHTML($this->settings->kutrl_srv_local_css),'',2).
|
||||
'</p>'.
|
||||
'<p class="form-note">'.__('You can add here special cascading style sheet. Body of page has class "dc-kutrl" and widgets have class "shortenkutrlwidget" and "rankkutrlwidget".').'</p>'.
|
||||
'<p class="area" id="style-area"><label for="_style">' . __('CSS:') . '</label>' .
|
||||
form::textarea('kutrl_srv_local_css',50,3,html::escapeHTML($this->settings->kutrl_srv_local_css), '', 2) .
|
||||
'</p>' .
|
||||
'<p class="form-note">' . __('You can add here special cascading style sheet. Body of page has class "dc-kutrl" and widgets have class "shortenkutrlwidget" and "rankkutrlwidget".') . '</p>' .
|
||||
|
||||
'<p><label class="classic">'.
|
||||
form::checkbox(array('kutrl_srv_local_404_active'),'1',$this->settings->kutrl_srv_local_404_active).' '.
|
||||
__('Enable special 404 error public page for unknow urls').
|
||||
'</label></p>'.
|
||||
'<p class="form-note">'.__('If this is not activated, the default 404 page of the theme will be display.').'</p>'.
|
||||
'<p><label class="classic">' .
|
||||
form::checkbox(['kutrl_srv_local_404_active'], '1', $this->settings->kutrl_srv_local_404_active) . ' ' .
|
||||
__('Enable special 404 error public page for unknow urls') .
|
||||
'</label></p>' .
|
||||
'<p class="form-note">' . __('If this is not activated, the default 404 page of the theme will be display.') . '</p>' .
|
||||
|
||||
'</div><div class="col">'.
|
||||
|
||||
'<p><strong>'.__('Note:').'</strong></p>'.
|
||||
'<p>'.
|
||||
__('This service use your own Blog to shorten and serve URL.').'<br />'.
|
||||
sprintf(__('This means that with this service short links start with "%s".'),$this->url_base).
|
||||
'</p>'.
|
||||
'<p>'.
|
||||
__("You can use Dotclear's plugin called myUrlHandlers to change short links prefix on your blog.");
|
||||
'</div><div class="col">' .
|
||||
|
||||
'<p><strong>' . __('Note:') . '</strong></p>' .
|
||||
'<p>' .
|
||||
__('This service use your own Blog to shorten and serve URL.') . '<br />' .
|
||||
sprintf(__('This means that with this service short links start with "%s".'), $this->url_base) .
|
||||
'</p>' .
|
||||
'<p>' .
|
||||
__("You can use Dotclear's plugin called myUrlHandlers to change short links prefix on your blog.");
|
||||
|
||||
if (preg_match('/index\.php/',$this->url_base))
|
||||
{
|
||||
echo
|
||||
'<p>'.
|
||||
__("We recommand that you use a rewrite engine in order to remove 'index.php' from your blog's URL.").
|
||||
'<br /><a href="http://fr.dotclear.org/documentation/2.0/usage/blog-parameters">'.
|
||||
__("You can find more about this on the Dotclear's documentation.").
|
||||
'</a></p>';
|
||||
}
|
||||
echo
|
||||
'</p>'.
|
||||
'<p>'.__('There are two templates delivered with kUtRL, if you do not use default theme, you may adapt them to yours.').'<br />'.
|
||||
__('Files are in plugin directory /default-templates, just copy them into your theme and edit them.').'</p>'.
|
||||
|
||||
'</div></div>';
|
||||
}
|
||||
if (preg_match('/index\.php/', $this->url_base)) {
|
||||
echo
|
||||
'<p>' .
|
||||
__("We recommand that you use a rewrite engine in order to remove 'index.php' from your blog's URL.") .
|
||||
'<br /><a href="http://fr.dotclear.org/documentation/2.0/usage/blog-parameters">' .
|
||||
__("You can find more about this on the Dotclear's documentation.") .
|
||||
'</a></p>';
|
||||
}
|
||||
echo
|
||||
'</p>' .
|
||||
'<p>' . __('There are two templates delivered with kUtRL, if you do not use default theme, you may adapt them to yours.') . '<br />' .
|
||||
__('Files are in plugin directory /default-templates, just copy them into your theme and edit them.') . '</p>' .
|
||||
|
||||
'</div></div>';
|
||||
}
|
||||
|
||||
public function testService()
|
||||
{
|
||||
$ap = $this->allow_protocols;
|
||||
if (!empty($ap))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
else {
|
||||
$this->error->add(__('Service is not well configured.'));
|
||||
return false;
|
||||
}
|
||||
}
|
||||
public function testService()
|
||||
{
|
||||
$ap = $this->allow_protocols;
|
||||
if (!empty($ap)) {
|
||||
return true;
|
||||
} else {
|
||||
$this->error->add(__('Service is not well configured.'));
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public function createHash($url,$hash=null)
|
||||
{
|
||||
# Create response object
|
||||
$rs = new ArrayObject();
|
||||
$rs->type = 'local';
|
||||
$rs->url = $url;
|
||||
public function createHash($url, $hash = null)
|
||||
{
|
||||
# Create response object
|
||||
$rs = new ArrayObject();
|
||||
$rs->type = 'local';
|
||||
$rs->url = $url;
|
||||
|
||||
# Normal link
|
||||
if ($hash === null)
|
||||
{
|
||||
$type = 'localnormal';
|
||||
$rs->hash = $this->next($this->last('localnormal'));
|
||||
}
|
||||
# Normal link
|
||||
if ($hash === null) {
|
||||
$type = 'localnormal';
|
||||
$rs->hash = $this->next($this->last('localnormal'));
|
||||
|
||||
# Mixed custom link
|
||||
elseif (preg_match('/^([A-Za-z0-9]{2,})\!\!$/',$hash,$m))
|
||||
{
|
||||
$type = 'localmix';
|
||||
$rs->hash = $m[1].$this->next(-1,$m[1]);
|
||||
}
|
||||
# Mixed custom link
|
||||
} elseif (preg_match('/^([A-Za-z0-9]{2,})\!\!$/', $hash, $m)) {
|
||||
$type = 'localmix';
|
||||
$rs->hash = $m[1] . $this->next(-1, $m[1]);
|
||||
|
||||
# Custom link
|
||||
elseif (preg_match('/^[A-Za-z0-9\.\-\_]{2,}$/',$hash))
|
||||
{
|
||||
if (false !== $this->log->select(null,$hash,null,'local'))
|
||||
{
|
||||
$this->error->add(__('Custom short link is already taken.'));
|
||||
return false;
|
||||
}
|
||||
$type = 'localcustom';
|
||||
$rs->hash = $hash;
|
||||
}
|
||||
# Custom link
|
||||
} elseif (preg_match('/^[A-Za-z0-9\.\-\_]{2,}$/', $hash)) {
|
||||
if (false !== $this->log->select(null, $hash, null, 'local')) {
|
||||
$this->error->add(__('Custom short link is already taken.'));
|
||||
return false;
|
||||
}
|
||||
$type = 'localcustom';
|
||||
$rs->hash = $hash;
|
||||
|
||||
# Wrong char in custom hash
|
||||
else
|
||||
{
|
||||
$this->error->add(__('Custom short link is not valid.'));
|
||||
return false;
|
||||
}
|
||||
|
||||
# Save link
|
||||
try {
|
||||
$this->log->insert($rs->url,$rs->hash,$type,$rs->type);
|
||||
return $rs;
|
||||
}
|
||||
catch (Exception $e)
|
||||
{
|
||||
$this->error->add(__('Failed to save link.'));
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
protected function last($type)
|
||||
{
|
||||
return
|
||||
false === ($rs = $this->log->select(null,null,$type,'local')) ?
|
||||
-1 : $rs->hash;
|
||||
}
|
||||
|
||||
protected function next($last_id,$prefix='')
|
||||
{
|
||||
if ($last_id == -1)
|
||||
{
|
||||
$next_id = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
for($x = 1; $x <= strlen($last_id); $x++)
|
||||
{
|
||||
$pos = strlen($last_id) - $x;
|
||||
|
||||
if ($last_id[$pos] != 'z')
|
||||
{
|
||||
$next_id = $this->increment($last_id,$pos);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!isset($next_id))
|
||||
{
|
||||
$next_id = $this->append($last_id);
|
||||
}
|
||||
}
|
||||
|
||||
return
|
||||
false === $this->log->select(null,$prefix.$next_id,null,'local') ?
|
||||
$next_id : $this->next($next_id,$prefix);
|
||||
}
|
||||
|
||||
protected function append($id)
|
||||
{
|
||||
$id = str_split($id);
|
||||
for ($x = 0; $x < count($id); $x++)
|
||||
{
|
||||
$id[$x] = 0;
|
||||
}
|
||||
return implode($id).'0';
|
||||
}
|
||||
|
||||
protected function increment($id,$pos)
|
||||
{
|
||||
$id = str_split($id);
|
||||
$char = $id[$pos];
|
||||
|
||||
if (is_numeric($char))
|
||||
{
|
||||
$new_char = $char < 9 ? $char + 1 : 'a';
|
||||
}
|
||||
else
|
||||
{
|
||||
$new_char = chr(ord($char) + 1);
|
||||
}
|
||||
$id[$pos] = $new_char;
|
||||
|
||||
if ($pos != (count($id) - 1))
|
||||
{
|
||||
for ($x = ($pos + 1); $x < count($id); $x++)
|
||||
{
|
||||
$id[$x] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
return implode($id);
|
||||
}
|
||||
|
||||
public function getUrl($hash)
|
||||
{
|
||||
if (false === ($rs = $this->log->select(null,$hash,null,'local')))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if (!$rs->url) //previously removed url
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
$this->log->counter($rs->id,'up');
|
||||
return $rs->url;
|
||||
}
|
||||
|
||||
public function deleteUrl($url,$delete=false)
|
||||
{
|
||||
if (false === ($rs = $this->log->select($url,null,null,'local')))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if ($delete)
|
||||
{
|
||||
$this->log->delete($rs->id);
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->log->clear($rs->id,'');
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
?>
|
||||
# Wrong char in custom hash
|
||||
} else {
|
||||
$this->error->add(__('Custom short link is not valid.'));
|
||||
return false;
|
||||
}
|
||||
|
||||
# Save link
|
||||
try {
|
||||
$this->log->insert($rs->url, $rs->hash, $type, $rs->type);
|
||||
return $rs;
|
||||
} catch (Exception $e) {
|
||||
$this->error->add(__('Failed to save link.'));
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
protected function last($type)
|
||||
{
|
||||
return
|
||||
false === ($rs = $this->log->select(null, null, $type, 'local')) ?
|
||||
-1 : $rs->hash;
|
||||
}
|
||||
|
||||
protected function next($last_id, $prefix = '')
|
||||
{
|
||||
if ($last_id == -1) {
|
||||
$next_id = 0;
|
||||
} else {
|
||||
for($x = 1; $x <= strlen($last_id); $x++) {
|
||||
$pos = strlen($last_id) - $x;
|
||||
|
||||
if ($last_id[$pos] != 'z') {
|
||||
$next_id = $this->increment($last_id, $pos);
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!isset($next_id)) {
|
||||
$next_id = $this->append($last_id);
|
||||
}
|
||||
}
|
||||
return
|
||||
false === $this->log->select(null,$prefix . $next_id, null, 'local') ?
|
||||
$next_id : $this->next($next_id, $prefix);
|
||||
}
|
||||
|
||||
protected function append($id)
|
||||
{
|
||||
$id = str_split($id);
|
||||
for ($x = 0; $x < count($id); $x++) {
|
||||
$id[$x] = 0;
|
||||
}
|
||||
return implode($id) . '0';
|
||||
}
|
||||
|
||||
protected function increment($id, $pos)
|
||||
{
|
||||
$id = str_split($id);
|
||||
$char = $id[$pos];
|
||||
|
||||
if (is_numeric($char)) {
|
||||
$new_char = $char < 9 ? $char + 1 : 'a';
|
||||
} else {
|
||||
$new_char = chr(ord($char) + 1);
|
||||
}
|
||||
$id[$pos] = $new_char;
|
||||
|
||||
if ($pos != (count($id) - 1)) {
|
||||
for ($x = ($pos + 1); $x < count($id); $x++) {
|
||||
$id[$x] = 0;
|
||||
}
|
||||
}
|
||||
return implode($id);
|
||||
}
|
||||
|
||||
public function getUrl($hash)
|
||||
{
|
||||
if (false === ($rs = $this->log->select(null, $hash, null, 'local'))) {
|
||||
return false;
|
||||
}
|
||||
if (!$rs->url) { //previously removed url
|
||||
return false;
|
||||
}
|
||||
$this->log->counter($rs->id, 'up');
|
||||
return $rs->url;
|
||||
}
|
||||
|
||||
public function deleteUrl($url, $delete = false)
|
||||
{
|
||||
if (false === ($rs = $this->log->select($url, null, null, 'local'))) {
|
||||
return false;
|
||||
}
|
||||
if ($delete) {
|
||||
$this->log->delete($rs->id);
|
||||
} else {
|
||||
$this->log->clear($rs->id, '');
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
@ -10,47 +10,46 @@
|
||||
# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
||||
# -- END LICENSE BLOCK ------------------------------------
|
||||
|
||||
if (!defined('DC_RC_PATH')){return;}
|
||||
if (!defined('DC_RC_PATH')) {
|
||||
return null;
|
||||
}
|
||||
|
||||
class shorttoKutrlService extends kutrlService
|
||||
{
|
||||
protected $config = array(
|
||||
'id' => 'shortto',
|
||||
'name' => 'short.to',
|
||||
'home' => 'http://short.to',
|
||||
|
||||
'url_api' => 'http://short.to/s.txt',
|
||||
'url_base' => 'http://short.to/',
|
||||
'url_min_len' => 25
|
||||
);
|
||||
|
||||
public function testService()
|
||||
{
|
||||
$arg = array('url' => urlencode($this->url_test));
|
||||
if (!self::post($this->url_api,$arg,true,true))
|
||||
{
|
||||
$this->error->add(__('Service is unavailable.'));
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public function createHash($url,$hash=null)
|
||||
{
|
||||
$arg = array('url' => $url);
|
||||
protected $config = [
|
||||
'id' => 'shortto',
|
||||
'name' => 'short.to',
|
||||
'home' => 'http://short.to',
|
||||
|
||||
if (!($response = self::post($this->url_api,$arg,true,true)))
|
||||
{
|
||||
$this->error->add(__('Service is unavailable.'));
|
||||
return false;
|
||||
}
|
||||
|
||||
$rs = new ArrayObject();
|
||||
$rs->hash = str_replace($this->url_base,'',$response);
|
||||
$rs->url = $url;
|
||||
$rs->type = $this->id;
|
||||
|
||||
return $rs;
|
||||
}
|
||||
}
|
||||
?>
|
||||
'url_api' => 'http://short.to/s.txt',
|
||||
'url_base' => 'http://short.to/',
|
||||
'url_min_len' => 25
|
||||
];
|
||||
|
||||
public function testService()
|
||||
{
|
||||
$arg = ['url' => urlencode($this->url_test)];
|
||||
if (!self::post($this->url_api, $arg, true, true)) {
|
||||
$this->error->add(__('Service is unavailable.'));
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public function createHash($url, $hash = null)
|
||||
{
|
||||
$arg = ['url' => $url];
|
||||
|
||||
if (!($response = self::post($this->url_api, $arg, true, true))) {
|
||||
$this->error->add(__('Service is unavailable.'));
|
||||
return false;
|
||||
}
|
||||
|
||||
$rs = new ArrayObject();
|
||||
$rs->hash = str_replace($this->url_base, '', $response);
|
||||
$rs->url = $url;
|
||||
$rs->type = $this->id;
|
||||
|
||||
return $rs;
|
||||
}
|
||||
}
|
@ -10,117 +10,113 @@
|
||||
# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
|
||||
# -- END LICENSE BLOCK ------------------------------------
|
||||
|
||||
if (!defined('DC_RC_PATH')){return;}
|
||||
if (!defined('DC_RC_PATH')) {
|
||||
return null;
|
||||
}
|
||||
|
||||
class yourlsKutrlService extends kutrlService
|
||||
{
|
||||
protected $config = array(
|
||||
'id' => 'yourls',
|
||||
'name' => 'YOURLS',
|
||||
'home' => 'http://yourls.org'
|
||||
);
|
||||
|
||||
private $args = array(
|
||||
'username' => '',
|
||||
'password' => '',
|
||||
'format' => 'xml',
|
||||
'action' => 'shorturl'
|
||||
);
|
||||
|
||||
protected function init()
|
||||
{
|
||||
$this->args['username'] = $this->settings->kutrl_srv_yourls_username;
|
||||
$this->args['password'] = $this->settings->kutrl_srv_yourls_password;
|
||||
|
||||
$base = (string) $this->settings->kutrl_srv_yourls_base;
|
||||
//if (!empty($base) && substr($base,-1,1) != '/') $base .= '/';
|
||||
|
||||
$this->config['url_api'] = $base;
|
||||
$this->config['url_base'] = $base;
|
||||
$this->config['url_min_len'] = strlen($base)+3;
|
||||
}
|
||||
|
||||
public function saveSettings()
|
||||
{
|
||||
$this->settings->put('kutrl_srv_yourls_username',$_POST['kutrl_srv_yourls_username']);
|
||||
$this->settings->put('kutrl_srv_yourls_password',$_POST['kutrl_srv_yourls_password']);
|
||||
$this->settings->put('kutrl_srv_yourls_base',$_POST['kutrl_srv_yourls_base']);
|
||||
}
|
||||
|
||||
public function settingsForm()
|
||||
{
|
||||
echo
|
||||
'<p><label class="classic">'.
|
||||
__('Url of the service:').'<br />'.
|
||||
form::field(array('kutrl_srv_yourls_base'),50,255,$this->settings->kutrl_srv_yourls_base).
|
||||
'</label></p>'.
|
||||
'<p class="form-note">'.
|
||||
__('This is the URL of the YOURLS service you want to use. Ex: "http://www.smaller.org/api.php".').
|
||||
'</p>'.
|
||||
'<p><label class="classic">'.__('Login:').'<br />'.
|
||||
form::field(array('kutrl_srv_yourls_username'),50,255,$this->settings->kutrl_srv_yourls_username).
|
||||
'</label></p>'.
|
||||
'<p class="form-note">'.
|
||||
__('This is your user name to sign up to this YOURLS service.').
|
||||
'</p>'.
|
||||
'<p><label class="classic">'.__('Password:').'<br />'.
|
||||
form::field(array('kutrl_srv_yourls_password'),50,255,$this->settings->kutrl_srv_yourls_password).
|
||||
'</label></p>'.
|
||||
'<p class="form-note">'.
|
||||
__('This is your password to sign up to this YOURLS service.').
|
||||
'</p>';
|
||||
}
|
||||
|
||||
public function testService()
|
||||
{
|
||||
if (empty($this->url_api))
|
||||
{
|
||||
$this->error->add(__('Service is not well configured.'));
|
||||
return false;
|
||||
}
|
||||
|
||||
$args = $this->args;
|
||||
$args['url'] = $this->url_test;
|
||||
|
||||
if (!($response = self::post($this->url_api,$this->args,true)))
|
||||
{
|
||||
$this->error->add(__('Service is unavailable.'));
|
||||
return false;
|
||||
}
|
||||
$rsp = @simplexml_load_string($response);
|
||||
|
||||
if ($rsp && $rsp->status == 'success')
|
||||
{
|
||||
return true;
|
||||
}
|
||||
$this->error->add(__('Authentication to service failed.'));
|
||||
return false;
|
||||
}
|
||||
|
||||
public function createHash($url,$hash=null)
|
||||
{
|
||||
$args = $this->args;
|
||||
$args['url'] = $url;
|
||||
|
||||
if (!($response = self::post($this->url_api,$args,true)))
|
||||
{
|
||||
$this->error->add(__('Service is unavailable.'));
|
||||
return false;
|
||||
}
|
||||
|
||||
$rsp = @simplexml_load_string($response);
|
||||
|
||||
if ($rsp && $rsp->status == 'success')
|
||||
{
|
||||
$rs = new ArrayObject();
|
||||
$rs->hash = $rsp->url[0]->keyword;
|
||||
$rs->url = $url;
|
||||
$rs->type = $this->id;
|
||||
|
||||
return $rs;
|
||||
}
|
||||
$this->error->add(__('Unreadable service response.'));
|
||||
return false;
|
||||
}
|
||||
}
|
||||
?>
|
||||
protected $config = [
|
||||
'id' => 'yourls',
|
||||
'name' => 'YOURLS',
|
||||
'home' => 'http://yourls.org'
|
||||
];
|
||||
|
||||
private $args = [
|
||||
'username' => '',
|
||||
'password' => '',
|
||||
'format' => 'xml',
|
||||
'action' => 'shorturl'
|
||||
];
|
||||
|
||||
protected function init()
|
||||
{
|
||||
$this->args['username'] = $this->settings->kutrl_srv_yourls_username;
|
||||
$this->args['password'] = $this->settings->kutrl_srv_yourls_password;
|
||||
|
||||
$base = (string) $this->settings->kutrl_srv_yourls_base;
|
||||
//if (!empty($base) && substr($base,-1,1) != '/') $base .= '/';
|
||||
|
||||
$this->config['url_api'] = $base;
|
||||
$this->config['url_base'] = $base;
|
||||
$this->config['url_min_len'] = strlen($base)+3;
|
||||
}
|
||||
|
||||
public function saveSettings()
|
||||
{
|
||||
$this->settings->put('kutrl_srv_yourls_username', $_POST['kutrl_srv_yourls_username']);
|
||||
$this->settings->put('kutrl_srv_yourls_password', $_POST['kutrl_srv_yourls_password']);
|
||||
$this->settings->put('kutrl_srv_yourls_base', $_POST['kutrl_srv_yourls_base']);
|
||||
}
|
||||
|
||||
public function settingsForm()
|
||||
{
|
||||
echo
|
||||
'<p><label class="classic">' .
|
||||
__('Url of the service:') . '<br />' .
|
||||
form::field(['kutrl_srv_yourls_base'], 50, 255, $this->settings->kutrl_srv_yourls_base) .
|
||||
'</label></p>' .
|
||||
'<p class="form-note">' .
|
||||
__('This is the URL of the YOURLS service you want to use. Ex: "http://www.smaller.org/api.php".') .
|
||||
'</p>' .
|
||||
'<p><label class="classic">' . __('Login:') . '<br />' .
|
||||
form::field(['kutrl_srv_yourls_username'], 50, 255, $this->settings->kutrl_srv_yourls_username) .
|
||||
'</label></p>' .
|
||||
'<p class="form-note">' .
|
||||
__('This is your user name to sign up to this YOURLS service.') .
|
||||
'</p>' .
|
||||
'<p><label class="classic">' . __('Password:') . '<br />' .
|
||||
form::field(['kutrl_srv_yourls_password'], 50, 255, $this->settings->kutrl_srv_yourls_password) .
|
||||
'</label></p>' .
|
||||
'<p class="form-note">' .
|
||||
__('This is your password to sign up to this YOURLS service.') .
|
||||
'</p>';
|
||||
}
|
||||
|
||||
public function testService()
|
||||
{
|
||||
if (empty($this->url_api)) {
|
||||
$this->error->add(__('Service is not well configured.'));
|
||||
return false;
|
||||
}
|
||||
|
||||
$args = $this->args;
|
||||
$args['url'] = $this->url_test;
|
||||
|
||||
if (!($response = self::post($this->url_api, $this->args, true))) {
|
||||
$this->error->add(__('Service is unavailable.'));
|
||||
return false;
|
||||
}
|
||||
$rsp = @simplexml_load_string($response);
|
||||
|
||||
if ($rsp && $rsp->status == 'success') {
|
||||
return true;
|
||||
}
|
||||
$this->error->add(__('Authentication to service failed.'));
|
||||
return false;
|
||||
}
|
||||
|
||||
public function createHash($url, $hash = null)
|
||||
{
|
||||
$args = $this->args;
|
||||
$args['url'] = $url;
|
||||
|
||||
if (!($response = self::post($this->url_api, $args, true))) {
|
||||
$this->error->add(__('Service is unavailable.'));
|
||||
return false;
|
||||
}
|
||||
|
||||
$rsp = @simplexml_load_string($response);
|
||||
|
||||
if ($rsp && $rsp->status == 'success') {
|
||||
$rs = new ArrayObject();
|
||||
$rs->hash = $rsp->url[0]->keyword;
|
||||
$rs->url = $url;
|
||||
$rs->type = $this->id;
|
||||
|
||||
return $rs;
|
||||
}
|
||||
$this->error->add(__('Unreadable service response.'));
|
||||
return false;
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user