cleanup index.xx files
This commit is contained in:
parent
d01496f5cf
commit
96fb6c7d23
9 changed files with 958 additions and 1067 deletions
|
@ -10,95 +10,92 @@
|
|||
# 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;
|
||||
}
|
||||
|
||||
# Generic class to play easily with services
|
||||
class kUtRL
|
||||
{
|
||||
# Load services list from behavior
|
||||
public static function getServices($core)
|
||||
{
|
||||
$list = $core->getBehaviors('kutrlService');
|
||||
|
||||
if (empty($list)) return array();
|
||||
|
||||
$service = array();
|
||||
foreach($list as $k => $callback)
|
||||
{
|
||||
try
|
||||
{
|
||||
list($service_id,$service_class) = call_user_func($callback);
|
||||
$services[(string) $service_id] = (string) $service_class;
|
||||
}
|
||||
catch (Exception $e) {}
|
||||
}
|
||||
return $services;
|
||||
}
|
||||
|
||||
# Silently try to load a service according to its id
|
||||
# Return null on error else service on success
|
||||
public static function quickService($id='')
|
||||
{
|
||||
global $core;
|
||||
|
||||
try
|
||||
{
|
||||
if (empty($id)) {
|
||||
return null;
|
||||
}
|
||||
$services = self::getServices($core);
|
||||
if (isset($services[$id])) {
|
||||
return new $services[$id]($core);
|
||||
}
|
||||
}
|
||||
catch(Exception $e) { }
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
# Silently try to load a service according to its place
|
||||
# Return null on error else service on success
|
||||
public static function quickPlace($place='plugin')
|
||||
{
|
||||
global $core;
|
||||
|
||||
try
|
||||
{
|
||||
if (!in_array($place,array('tpl','wiki','admin','plugin'))) {
|
||||
return null;
|
||||
}
|
||||
$id = $core->blog->settings->kUtRL->get('kutrl_'.$place.'_service');
|
||||
if (!empty($id)) {
|
||||
return self::quickService($id);
|
||||
}
|
||||
}
|
||||
catch(Exception $e) { }
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
# Silently try to reduce url (using 'plugin' place)
|
||||
# return long url on error else short url on success
|
||||
public static function quickReduce($url,$custom=null,$place='plugin')
|
||||
{
|
||||
global $core;
|
||||
|
||||
try
|
||||
{
|
||||
$srv = self::quickPlace($place);
|
||||
if (empty($srv)) {
|
||||
return $url;
|
||||
}
|
||||
$rs = $srv->hash($url,$custom);
|
||||
if (empty($rs)) {
|
||||
return $url;
|
||||
}
|
||||
|
||||
return $srv->url_base.$rs->hash;
|
||||
}
|
||||
catch(Exception $e) { }
|
||||
|
||||
return $url;
|
||||
}
|
||||
}
|
||||
?>
|
||||
# Load services list from behavior
|
||||
public static function getServices($core)
|
||||
{
|
||||
$list = $core->getBehaviors('kutrlService');
|
||||
|
||||
if (empty($list)) {
|
||||
return [];
|
||||
}
|
||||
$service = [];
|
||||
foreach($list as $k => $callback) {
|
||||
try {
|
||||
list($service_id,$service_class) = call_user_func($callback);
|
||||
$services[(string) $service_id] = (string) $service_class;
|
||||
} catch (Exception $e) {
|
||||
|
||||
}
|
||||
}
|
||||
return $services;
|
||||
}
|
||||
|
||||
# Silently try to load a service according to its id
|
||||
# Return null on error else service on success
|
||||
public static function quickService($id = '')
|
||||
{
|
||||
global $core;
|
||||
|
||||
try {
|
||||
if (empty($id)) {
|
||||
return null;
|
||||
}
|
||||
$services = self::getServices($core);
|
||||
if (isset($services[$id])) {
|
||||
return new $services[$id]($core);
|
||||
}
|
||||
} catch(Exception $e) {
|
||||
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
# Silently try to load a service according to its place
|
||||
# Return null on error else service on success
|
||||
public static function quickPlace($place = 'plugin')
|
||||
{
|
||||
global $core;
|
||||
|
||||
try {
|
||||
if (!in_array($place, ['tpl', 'wiki', 'admin', 'plugin'])) {
|
||||
return null;
|
||||
}
|
||||
$id = $core->blog->settings->kUtRL->get('kutrl_' . $place .'_service');
|
||||
if (!empty($id)) {
|
||||
return self::quickService($id);
|
||||
}
|
||||
} catch(Exception $e) {
|
||||
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
# Silently try to reduce url (using 'plugin' place)
|
||||
# return long url on error else short url on success
|
||||
public static function quickReduce($url, $custom = null, $place = 'plugin')
|
||||
{
|
||||
global $core;
|
||||
|
||||
try {
|
||||
$srv = self::quickPlace($place);
|
||||
if (empty($srv)) {
|
||||
return $url;
|
||||
}
|
||||
$rs = $srv->hash($url,$custom);
|
||||
if (empty($rs)) {
|
||||
return $url;
|
||||
}
|
||||
return $srv->url_base.$rs->hash;
|
||||
} catch(Exception $e) {
|
||||
|
||||
}
|
||||
return $url;
|
||||
}
|
||||
}
|
|
@ -12,142 +12,128 @@
|
|||
|
||||
# This file manage admin link creation of kUtRL (called from index.php)
|
||||
|
||||
if (!defined('DC_CONTEXT_ADMIN')){return;}
|
||||
if (!defined('DC_CONTEXT_ADMIN')) {
|
||||
return null;
|
||||
}
|
||||
|
||||
$kut = kutrl::quickPlace('admin');
|
||||
|
||||
# Create a new link
|
||||
if ($action == 'createlink') {
|
||||
try {
|
||||
if (null === $kut) {
|
||||
throw new Exception('Unknow service');
|
||||
}
|
||||
$url = trim($core->con->escape($_POST['str']));
|
||||
$hash = empty($_POST['custom']) ? null : $_POST['custom'];
|
||||
|
||||
if (empty($url)) {
|
||||
throw new Exception(__('There is nothing to shorten.'));
|
||||
}
|
||||
if (!$kut->testService()) {
|
||||
throw new Exception(__('Service is not well configured.'));
|
||||
}
|
||||
if (null !== $hash && !$kut->allow_custom_hash) {
|
||||
throw new Exception(__('This service does not allowed custom hash.'));
|
||||
}
|
||||
if (!$kut->isValidUrl($url)) {
|
||||
throw new Exception(__('This link is not a valid URL.'));
|
||||
}
|
||||
if (!$kut->isLongerUrl($url)) {
|
||||
throw new Exception(__('This link is too short.'));
|
||||
}
|
||||
if (!$kut->isProtocolUrl($url)) {
|
||||
throw new Exception(__('This type of link is not allowed.'));
|
||||
}
|
||||
if (!$kut->allow_external_url && !$kut->isBlogUrl($url)) {
|
||||
throw new Exception(__('Short links are limited to this blog URL.'));
|
||||
}
|
||||
if ($kut->isServiceUrl($url)) {
|
||||
throw new Exception(__('This link is already a short link.'));
|
||||
}
|
||||
if (null !== $hash && false !== ($rs = $kut->isKnowHash($hash))) {
|
||||
throw new Exception(__('This custom short url is already taken.'));
|
||||
}
|
||||
if (false !== ($rs = $kut->isKnowUrl($url))) {
|
||||
$url = $rs->url;
|
||||
$new_url = $kut->url_base .$rs->hash;
|
||||
$msg =
|
||||
'<p class="message">' .
|
||||
sprintf(
|
||||
__('Short link for %s is %s') ,
|
||||
'<strong>' . html::escapeHTML($url) .'</strong>',
|
||||
'<a href="' . $new_url . '">' . $new_url . '</a>'
|
||||
) . '</p>';
|
||||
} else {
|
||||
if (false === ($rs = $kut->hash($url, $hash))) {
|
||||
if ($kut->error->flag()) {
|
||||
throw new Exception($kut->error->toHTML());
|
||||
}
|
||||
throw new Exception(__('Failed to create short link. This could be caused by a service failure.'));
|
||||
} else {
|
||||
$url = $rs->url;
|
||||
$new_url = $kut->url_base . $rs->hash;
|
||||
$msg =
|
||||
'<p class="message">' .
|
||||
sprintf(
|
||||
__('Short link for %s is %s'),
|
||||
'<strong>' . html::escapeHTML($url) . '</strong>',
|
||||
'<a href="' . $new_url . '">' . $new_url . '</a>'
|
||||
) . '</p>';
|
||||
|
||||
try
|
||||
{
|
||||
if (null === $kut)
|
||||
throw new Exception('Unknow service');
|
||||
|
||||
$url = trim($core->con->escape($_POST['str']));
|
||||
$hash = empty($_POST['custom']) ? null : $_POST['custom'];
|
||||
|
||||
if (empty($url))
|
||||
throw new Exception(__('There is nothing to shorten.'));
|
||||
|
||||
if (!$kut->testService())
|
||||
throw new Exception(__('Service is not well configured.'));
|
||||
|
||||
if (null !== $hash && !$kut->allow_custom_hash)
|
||||
throw new Exception(__('This service does not allowed custom hash.'));
|
||||
|
||||
if (!$kut->isValidUrl($url))
|
||||
throw new Exception(__('This link is not a valid URL.'));
|
||||
|
||||
if (!$kut->isLongerUrl($url))
|
||||
throw new Exception(__('This link is too short.'));
|
||||
|
||||
if (!$kut->isProtocolUrl($url))
|
||||
throw new Exception(__('This type of link is not allowed.'));
|
||||
|
||||
if (!$kut->allow_external_url && !$kut->isBlogUrl($url))
|
||||
throw new Exception(__('Short links are limited to this blog URL.'));
|
||||
|
||||
if ($kut->isServiceUrl($url))
|
||||
throw new Exception(__('This link is already a short link.'));
|
||||
|
||||
if (null !== $hash && false !== ($rs = $kut->isKnowHash($hash)))
|
||||
throw new Exception(__('This custom short url is already taken.'));
|
||||
|
||||
if (false !== ($rs = $kut->isKnowUrl($url)))
|
||||
{
|
||||
$url = $rs->url;
|
||||
$new_url = $kut->url_base.$rs->hash;
|
||||
$msg =
|
||||
'<p class="message">'.
|
||||
sprintf(__('Short link for %s is %s'),
|
||||
'<strong>'.html::escapeHTML($url).'</strong>',
|
||||
'<a href="'.$new_url.'">'.$new_url.'</a>'
|
||||
).'</p>';
|
||||
}
|
||||
else
|
||||
{
|
||||
if (false === ($rs = $kut->hash($url,$hash)))
|
||||
{
|
||||
if ($kut->error->flag())
|
||||
{
|
||||
throw new Exception($kut->error->toHTML());
|
||||
}
|
||||
throw new Exception(__('Failed to create short link. This could be caused by a service failure.'));
|
||||
}
|
||||
else
|
||||
{
|
||||
$url = $rs->url;
|
||||
$new_url = $kut->url_base.$rs->hash;
|
||||
$msg =
|
||||
'<p class="message">'.
|
||||
sprintf(__('Short link for %s is %s'),
|
||||
'<strong>'.html::escapeHTML($url).'</strong>',
|
||||
'<a href="'.$new_url.'">'.$new_url.'</a>'
|
||||
).'</p>';
|
||||
|
||||
# ex: Send new url to messengers
|
||||
if (!empty($rs))
|
||||
{
|
||||
$core->callBehavior('adminAfterKutrlCreate',$core,$rs,__('New short URL'));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception $e)
|
||||
{
|
||||
$core->error->add($e->getMessage());
|
||||
}
|
||||
# ex: Send new url to messengers
|
||||
if (!empty($rs)) {
|
||||
$core->callBehavior('adminAfterKutrlCreate', $core, $rs,__('New short URL'));
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (Exception $e) {
|
||||
$core->error->add($e->getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
echo '
|
||||
<html>
|
||||
<head><title>kUtRL, '.__('Links shortener').'</title>'.$header.'</head>
|
||||
<head><title>kUtRL, ' . __('Links shortener') . '</title>' . $header . '</head>
|
||||
<body>
|
||||
<h2>kUtRL'.
|
||||
' › <a href="'.$p_url.'&part=links">'.__('Links').'</a>'.
|
||||
' › '.__('New link').
|
||||
'</h2>'.$msg;
|
||||
<h2>kUtRL' .
|
||||
' › <a href="' . $p_url . '&part=links">' . __('Links') . '</a>' .
|
||||
' › ' . __('New link') .
|
||||
'</h2>' . $msg;
|
||||
|
||||
if (null === $kut)
|
||||
{
|
||||
echo '<p>'.__('You must set an admin service.').'</p>';
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '
|
||||
<form id="create-link" method="post" action="'.$p_url.'">
|
||||
|
||||
<h3>'.sprintf(__('Shorten link using service "%s"'),$kut->name).'</h3>
|
||||
<p class="classic"><label for="str">'.__('Long link:').
|
||||
form::field('str',100,255,'').'</label></p>';
|
||||
|
||||
if ($kut->allow_custom_hash)
|
||||
{
|
||||
echo
|
||||
'<p class="classic"><label for="custom">'.
|
||||
__('Custom short link:').
|
||||
form::field('custom',50,32,'').'</label></p>'.
|
||||
'<p class="form-note">'.__('Only if you want a custom short link.').'</p>';
|
||||
|
||||
if ($s_admin_service == 'local')
|
||||
{
|
||||
echo '<p class="form-note">'.
|
||||
__('You can use "bob!!" if you want a semi-custom link, it starts with "bob" and "!!" will be replaced by an increment value.').
|
||||
'</p>';
|
||||
}
|
||||
}
|
||||
|
||||
echo '
|
||||
<div class="clear">
|
||||
<p><input type="submit" name="save" value="'.__('save').'" />'.
|
||||
$core->formNonce().
|
||||
form::hidden(array('p'),'kUtRL').
|
||||
form::hidden(array('part'),'link').
|
||||
form::hidden(array('action'),'createlink').'
|
||||
</p></div>
|
||||
</form>';
|
||||
if (null === $kut) {
|
||||
echo '<p>' . __('You must set an admin service.') . '</p>';
|
||||
} else {
|
||||
echo '
|
||||
<form id="create-link" method="post" action="' . $p_url . '">
|
||||
|
||||
<h3>' . sprintf(__('Shorten link using service "%s"'), $kut->name) . '</h3>
|
||||
<p class="classic"><label for="str">' . __('Long link:') .
|
||||
form::field('str', 100, 255, '') . '</label></p>';
|
||||
|
||||
if ($kut->allow_custom_hash) {
|
||||
echo
|
||||
'<p class="classic"><label for="custom">' .
|
||||
__('Custom short link:') .
|
||||
form::field('custom', 50, 32, '') . '</label></p>' .
|
||||
'<p class="form-note">' . __('Only if you want a custom short link.') . '</p>';
|
||||
|
||||
if ($s_admin_service == 'local') {
|
||||
echo '<p class="form-note">' .
|
||||
__('You can use "bob!!" if you want a semi-custom link, it starts with "bob" and "!!" will be replaced by an increment value.') .
|
||||
'</p>';
|
||||
}
|
||||
}
|
||||
|
||||
echo '
|
||||
<div class="clear">
|
||||
<p><input type="submit" name="save" value="' . __('save') . '" />' .
|
||||
$core->formNonce() .
|
||||
form::hidden(['p'], 'kUtRL') .
|
||||
form::hidden(['part'], 'link') .
|
||||
form::hidden(['action'], 'createlink') . '
|
||||
</p></div>
|
||||
</form>';
|
||||
}
|
||||
dcPage::helpBlock('kUtRL');
|
||||
echo $footer.'</body></html>';
|
||||
?>
|
||||
echo $footer . '</body></html>';
|
|
@ -12,86 +12,86 @@
|
|||
|
||||
# This file manage links of kUtRL (called from index.php)
|
||||
|
||||
if (!defined('DC_CONTEXT_ADMIN')){return;}
|
||||
if (!defined('DC_CONTEXT_ADMIN')) {
|
||||
return null;
|
||||
}
|
||||
|
||||
# Short links list
|
||||
class kutrlLinkslist extends adminGenericList
|
||||
{
|
||||
public function display($page,$nb_per_page,$url)
|
||||
{
|
||||
if ($this->rs->isEmpty())
|
||||
echo '<p><strong>'.__('No short link').'</strong></p>';
|
||||
|
||||
else {
|
||||
$pager = new pager($page,$this->rs_count,$nb_per_page,10);
|
||||
public function display($page, $nb_per_page, $url)
|
||||
{
|
||||
if ($this->rs->isEmpty()) {
|
||||
echo '<p><strong>' . __('No short link') . '</strong></p>';
|
||||
} else {
|
||||
$pager = new pager($page, $this->rs_count, $nb_per_page, 10);
|
||||
|
||||
$pager->base_url = $url;
|
||||
$pager->base_url = $url;
|
||||
|
||||
$html_block =
|
||||
'<table class="clear">'.
|
||||
'<thead>'.
|
||||
'<tr>'.
|
||||
'<th class="nowrap" colspan="2">'.__('Hash').'</th>'.
|
||||
'<th class="maximal">'.__('Link').'</th>'.
|
||||
'<th class="nowrap">'.__('Date').'</th>'.
|
||||
'<th class="nowrap">'.__('Service').'</th>'.
|
||||
'</tr>'.
|
||||
'</thead>'.
|
||||
'<tbody>%s</tbody>'.
|
||||
'</table>';
|
||||
|
||||
echo '<p>'.__('Page(s)').' : '.$pager->getLinks().'</p>';
|
||||
$blocks = explode('%s',$html_block);
|
||||
echo $blocks[0];
|
||||
|
||||
$this->rs->index(((integer)$page - 1) * $nb_per_page);
|
||||
$iter = 0;
|
||||
while ($iter < $nb_per_page) {
|
||||
|
||||
echo $this->line($url,$iter);
|
||||
|
||||
if ($this->rs->isEnd())
|
||||
break;
|
||||
else
|
||||
$this->rs->moveNext();
|
||||
|
||||
$iter++;
|
||||
}
|
||||
echo $blocks[1];
|
||||
echo '<p>'.__('Page(s)').' : '.$pager->getLinks().'</p>';
|
||||
}
|
||||
}
|
||||
|
||||
private function line($url,$loop)
|
||||
{
|
||||
$type = $this->rs->kut_type;
|
||||
$hash = $this->rs->kut_hash;
|
||||
|
||||
if (null !== ($o = kutrl::quickService($this->rs->kut_type)))
|
||||
{
|
||||
$type = '<a href="'.$o->home.'" title="'.$o->name.'">'.$o->name.'</a>';
|
||||
$hash = '<a href="'.$o->url_base.$hash.'" title="'.$o->url_base.$hash.'">'.$hash.'</a>';
|
||||
}
|
||||
|
||||
return
|
||||
'<tr class="line">'."\n".
|
||||
'<td class="nowrap">'.
|
||||
form::checkbox(array('entries['.$loop.']'),$this->rs->kut_id,0).
|
||||
'</td>'.
|
||||
'<td class="nowrap">'.
|
||||
$hash.
|
||||
"</td>\n".
|
||||
'<td class="maximal">'.
|
||||
'<a href="'.$this->rs->kut_url.'">'.$this->rs->kut_url.'</a>'.
|
||||
"</td>\n".
|
||||
'<td class="nowrap">'.
|
||||
dt::dt2str(__('%Y-%m-%d %H:%M'),$this->rs->kut_dt,$this->core->auth->getInfo('user_tz')).
|
||||
"</td>\n".
|
||||
'<td class="nowrap">'.
|
||||
$type.
|
||||
"</td>\n".
|
||||
'</tr>'."\n";
|
||||
}
|
||||
$html_block =
|
||||
'<table class="clear">' .
|
||||
'<thead>' .
|
||||
'<tr>' .
|
||||
'<th class="nowrap" colspan="2">' . __('Hash') . '</th>' .
|
||||
'<th class="maximal">' . __('Link') . '</th>' .
|
||||
'<th class="nowrap">' . __('Date') . '</th>' .
|
||||
'<th class="nowrap">' . __('Service') . '</th>' .
|
||||
'</tr>' .
|
||||
'</thead>' .
|
||||
'<tbody>%s</tbody>' .
|
||||
'</table>';
|
||||
|
||||
echo '<p>' . __('Page(s)') . ' : ' . $pager->getLinks() . '</p>';
|
||||
$blocks = explode('%s', $html_block);
|
||||
echo $blocks[0];
|
||||
|
||||
$this->rs->index(((integer)$page - 1) * $nb_per_page);
|
||||
$iter = 0;
|
||||
while ($iter < $nb_per_page) {
|
||||
|
||||
echo $this->line($url,$iter);
|
||||
|
||||
if ($this->rs->isEnd()) {
|
||||
break;
|
||||
} else {
|
||||
$this->rs->moveNext();
|
||||
}
|
||||
$iter++;
|
||||
}
|
||||
echo $blocks[1];
|
||||
echo '<p>' . __('Page(s)') . ' : ' . $pager->getLinks() . '</p>';
|
||||
}
|
||||
}
|
||||
|
||||
private function line($url, $loop)
|
||||
{
|
||||
$type = $this->rs->kut_type;
|
||||
$hash = $this->rs->kut_hash;
|
||||
|
||||
if (null !== ($o = kutrl::quickService($this->rs->kut_type))) {
|
||||
$type = '<a href="' . $o->home . '" title="' . $o->name . '">' . $o->name . '</a>';
|
||||
$hash = '<a href="' . $o->url_base . $hash . '" title="' . $o->url_base . $hash . '">' . $hash . '</a>';
|
||||
}
|
||||
|
||||
return
|
||||
'<tr class="line">' . "\n" .
|
||||
'<td class="nowrap">' .
|
||||
form::checkbox(['entries[' . $loop . ']'], $this->rs->kut_id, 0) .
|
||||
'</td>' .
|
||||
'<td class="nowrap">' .
|
||||
$hash .
|
||||
"</td>\n" .
|
||||
'<td class="maximal">' .
|
||||
'<a href="' . $this->rs->kut_url . '">' . $this->rs->kut_url . '</a>' .
|
||||
"</td>\n" .
|
||||
'<td class="nowrap">' .
|
||||
dt::dt2str(__('%Y-%m-%d %H:%M'), $this->rs->kut_dt, $this->core->auth->getInfo('user_tz')) .
|
||||
"</td>\n" .
|
||||
'<td class="nowrap">' .
|
||||
$type .
|
||||
"</td>\n" .
|
||||
'</tr>' . "\n";
|
||||
}
|
||||
}
|
||||
|
||||
# Logs class
|
||||
|
@ -106,162 +106,158 @@ $order = !empty($_GET['order']) ? $_GET['order'] : 'desc';
|
|||
$page = !empty($_GET['page']) ? (integer) $_GET['page'] : 1;
|
||||
$nb_per_page = 30;
|
||||
if (!empty($_GET['nb']) && (integer) $_GET['nb'] > 0) {
|
||||
if ($nb_per_page != $_GET['nb']) $show_filters = true;
|
||||
$nb_per_page = (integer) $_GET['nb'];
|
||||
if ($nb_per_page != $_GET['nb']) {
|
||||
$show_filters = true;
|
||||
}
|
||||
$nb_per_page = (integer) $_GET['nb'];
|
||||
}
|
||||
|
||||
# Combos
|
||||
$sortby_combo = array(
|
||||
__('Date') => 'kut_dt',
|
||||
__('Long link') => 'kut_url',
|
||||
__('Short link') => 'kut_hash'
|
||||
);
|
||||
$sortby_combo = [
|
||||
__('Date') => 'kut_dt',
|
||||
__('Long link') => 'kut_url',
|
||||
__('Short link') => 'kut_hash'
|
||||
];
|
||||
|
||||
$order_combo = array(
|
||||
__('Descending') => 'desc',
|
||||
__('Ascending') => 'asc'
|
||||
);
|
||||
$order_combo = [
|
||||
__('Descending') => 'desc',
|
||||
__('Ascending') => 'asc'
|
||||
];
|
||||
|
||||
$services_combo = array();
|
||||
$services_combo = [];
|
||||
foreach(kutrl::getServices($core) as $service_id => $service)
|
||||
{
|
||||
$o = new $service($core);
|
||||
$services_combo[__($o->name)] = $o->id;
|
||||
$o = new $service($core);
|
||||
$services_combo[__($o->name)] = $o->id;
|
||||
}
|
||||
$ext_services_combo = array_merge(array(__('Disabled')=>''),$services_combo);
|
||||
$lst_services_combo = array_merge(array('-'=>''),$services_combo);
|
||||
$ext_services_combo = array_merge([__('Disabled') => ''], $services_combo);
|
||||
$lst_services_combo = array_merge(['-' => ''], $services_combo);
|
||||
|
||||
# Params for list
|
||||
$params = array();
|
||||
$params['limit'] = array((($page-1)*$nb_per_page),$nb_per_page);
|
||||
$params = [];
|
||||
$params['limit'] = [(($page-1)*$nb_per_page), $nb_per_page];
|
||||
|
||||
if ($sortby != '' && in_array($sortby,$sortby_combo))
|
||||
{
|
||||
if ($urlsrv != '' && in_array($urlsrv,$lst_services_combo))
|
||||
$params['kut_type'] = $urlsrv;
|
||||
|
||||
if ($order != '' && in_array($order,$order_combo))
|
||||
$params['order'] = $sortby.' '.$order;
|
||||
|
||||
if ($sortby != 'kut_dt' || $order != 'desc' || $urlsrv != '')
|
||||
$show_filters = true;
|
||||
if ($sortby != '' && in_array($sortby, $sortby_combo)) {
|
||||
if ($urlsrv != '' && in_array($urlsrv, $lst_services_combo)) {
|
||||
$params['kut_type'] = $urlsrv;
|
||||
}
|
||||
if ($order != '' && in_array($order, $order_combo)) {
|
||||
$params['order'] = $sortby . ' ' . $order;
|
||||
}
|
||||
if ($sortby != 'kut_dt' || $order != 'desc' || $urlsrv != '') {
|
||||
$show_filters = true;
|
||||
}
|
||||
}
|
||||
|
||||
$pager_base_url =
|
||||
$p_url.
|
||||
'&tab=list'.
|
||||
'&urlsrv='.$urlsrv.
|
||||
'&sortby='.$sortby.
|
||||
'&order='.$order.
|
||||
'&nb='.$nb_per_page.
|
||||
'&page=%s';
|
||||
|
||||
$p_url .
|
||||
'&tab=list' .
|
||||
'&urlsrv=' . $urlsrv .
|
||||
'&sortby=' . $sortby .
|
||||
'&order=' . $order .
|
||||
'&nb=' . $nb_per_page .
|
||||
'&page=%s';
|
||||
|
||||
# Delete links from list
|
||||
if ($action == 'deletelinks')
|
||||
{
|
||||
try
|
||||
{
|
||||
foreach($_POST['entries'] as $k => $id)
|
||||
{
|
||||
$rs = $log->getLogs(array('kut_id'=>$id));
|
||||
if ($rs->isEmpty()) continue;
|
||||
|
||||
if (null === ($o = kutrl::quickService($rs->kut_type))) continue;
|
||||
$o->remove($rs->kut_url);
|
||||
}
|
||||
|
||||
$core->blog->triggerBlog();
|
||||
http::redirect($p_url.'&part=links&urlsrv='.$urlsrv.'&sortby='.$sortby.'&order='.$order.'&nb='.$nb_per_page.'&page='.$page.'&msg='.$action);
|
||||
}
|
||||
catch (Exception $e) {
|
||||
$core->error->add($e->getMessage());
|
||||
}
|
||||
if ($action == 'deletelinks') {
|
||||
try {
|
||||
foreach($_POST['entries'] as $k => $id) {
|
||||
$rs = $log->getLogs(['kut_id' => $id]);
|
||||
if ($rs->isEmpty()) {
|
||||
continue;
|
||||
}
|
||||
if (null === ($o = kutrl::quickService($rs->kut_type))) {
|
||||
continue;
|
||||
}
|
||||
$o->remove($rs->kut_url);
|
||||
}
|
||||
|
||||
$core->blog->triggerBlog();
|
||||
http::redirect($p_url . '&part=links&urlsrv=' . $urlsrv . '&sortby=' . $sortby . '&order=' . $order . '&nb=' . $nb_per_page . '&page=' . $page . '&msg=' . $action);
|
||||
} catch (Exception $e) {
|
||||
$core->error->add($e->getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
# Get links and pager
|
||||
try
|
||||
{
|
||||
$list_all = $log->getLogs($params);
|
||||
$list_counter = $log->getLogs($params,true)->f(0);
|
||||
$list_current = new kutrlLinksList($core,$list_all,$list_counter,$pager_base_url);
|
||||
try {
|
||||
$list_all = $log->getLogs($params);
|
||||
$list_counter = $log->getLogs($params, true)->f(0);
|
||||
$list_current = new kutrlLinksList($core, $list_all, $list_counter, $pager_base_url);
|
||||
} catch (Exception $e) {
|
||||
$core->error->add($e->getMessage());
|
||||
}
|
||||
catch (Exception $e)
|
||||
{
|
||||
$core->error->add($e->getMessage());
|
||||
}
|
||||
|
||||
if (!$show_filters) {
|
||||
$header .= dcPage::jsLoad('js/filter-controls.js');
|
||||
$header .= dcPage::jsLoad('js/filter-controls.js');
|
||||
}
|
||||
|
||||
echo '
|
||||
<html>
|
||||
<head><title>kUtRL, '.__('Links shortener').'</title>'.
|
||||
"\n<script type=\"text/javascript\"> \n".
|
||||
"$(function(){ $('.checkboxes-helpers').each(function(){dotclear.checkboxesHelpers(this);}); }); \n".
|
||||
"</script>\n".
|
||||
$header.'</head>
|
||||
<head><title>kUtRL, ' . __('Links shortener') . '</title>' .
|
||||
"\n<script type=\"text/javascript\"> \n" .
|
||||
"$(function(){ $('.checkboxes-helpers').each(function(){dotclear.checkboxesHelpers(this);}); }); \n" .
|
||||
"</script>\n" .
|
||||
$header . '</head>
|
||||
<body>
|
||||
<h2>kUtRL'.
|
||||
' › '.__('Links').
|
||||
' - <a class="button" href="'.$p_url.'&part=link">'.__('New link').'</a>'.
|
||||
'</h2>'.$msg;
|
||||
<h2>kUtRL' .
|
||||
' › ' . __('Links') .
|
||||
' - <a class="button" href="' . $p_url . '&part=link">' . __('New link') . '</a>' .
|
||||
'</h2>' . $msg;
|
||||
|
||||
if (!$show_filters) {
|
||||
echo '<p><a id="filter-control" class="form-control" href="#">'.
|
||||
__('Filters').'</a></p>';
|
||||
echo '<p><a id="filter-control" class="form-control" href="#">' .
|
||||
__('Filters') . '</a></p>';
|
||||
}
|
||||
|
||||
echo '
|
||||
<form action="'.$p_url.'&part=links" method="get" id="filters-form">
|
||||
<fieldset><legend>'.__('Filters').'</legend>
|
||||
<form action="' . $p_url . '&part=links" method="get" id="filters-form">
|
||||
<fieldset><legend>' . __('Filters') . '</legend>
|
||||
<div class="three-cols">
|
||||
<div class="col">
|
||||
<label>'.__('Service:').form::combo('urlsrv',$lst_services_combo,$urlsrv).'
|
||||
<label>' . __('Service:') . form::combo('urlsrv', $lst_services_combo, $urlsrv) . '
|
||||
</label>
|
||||
</div>
|
||||
<div class="col">
|
||||
<label>'.__('Order by:').form::combo('sortby',$sortby_combo,$sortby).'
|
||||
<label>' . __('Order by:') . form::combo('sortby', $sortby_combo, $sortby) . '
|
||||
</label>
|
||||
<label>'.__('Sort:').form::combo('order',$order_combo,$order).'
|
||||
<label>' . __('Sort:') . form::combo('order', $order_combo, $order) . '
|
||||
</label>
|
||||
</div>
|
||||
<div class="col">
|
||||
<p>
|
||||
<label class="classic">'.form::field('nb',3,3,$nb_per_page).' '.__('Entries per page').'
|
||||
<label class="classic">' . form::field('nb', 3, 3, $nb_per_page) . ' ' . __('Entries per page') . '
|
||||
</label>
|
||||
<input type="submit" value="'.__('filter').'" />'.
|
||||
form::hidden(array('p'),'kUtRL').
|
||||
form::hidden(array('part'),'links').'
|
||||
<input type="submit" value="' . __('filter') . '" />' .
|
||||
form::hidden(['p'], 'kUtRL') .
|
||||
form::hidden(['part'], 'links') . '
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<br class="clear" />
|
||||
</fieldset>
|
||||
</form>
|
||||
<form action="'.$p_url.'&part=links" method="post" id="form-actions">';
|
||||
<form action="' . $p_url . '&part=links" method="post" id="form-actions">';
|
||||
|
||||
$list_current->display($page,$nb_per_page,$pager_base_url);
|
||||
$list_current->display($page, $nb_per_page, $pager_base_url);
|
||||
|
||||
echo '
|
||||
<div class="two-cols">
|
||||
<p class="col checkboxes-helpers"></p>
|
||||
<p class="col right">
|
||||
<input type="submit" value="'.__('Delete selected short links').'" />'.
|
||||
form::hidden(array('action'),'deletelinks').
|
||||
form::hidden(array('urlsrv'),$urlsrv).
|
||||
form::hidden(array('sortby'),$sortby).
|
||||
form::hidden(array('order'),$order).
|
||||
form::hidden(array('page'),$page).
|
||||
form::hidden(array('nb'),$nb_per_page).
|
||||
form::hidden(array('p'),'kUtRL').
|
||||
form::hidden(array('part'),'links').
|
||||
$core->formNonce().'
|
||||
<input type="submit" value="' . __('Delete selected short links') . '" />' .
|
||||
form::hidden(['action'], 'deletelinks') .
|
||||
form::hidden(['urlsrv'], $urlsrv) .
|
||||
form::hidden(['sortby'], $sortby) .
|
||||
form::hidden(['order'], $order) .
|
||||
form::hidden(['page'], $page) .
|
||||
form::hidden(['nb'], $nb_per_page) .
|
||||
form::hidden(['p'], 'kUtRL') .
|
||||
form::hidden(['part'], 'links') .
|
||||
$core->formNonce() . '
|
||||
</p>
|
||||
</div>
|
||||
</form>';
|
||||
|
||||
dcPage::helpBlock('kUtRL');
|
||||
echo $footer.'</body></html>';
|
||||
echo $footer . '</body></html>';
|
||||
?>
|
|
@ -12,66 +12,58 @@
|
|||
|
||||
# This file manage services of kUtRL (called from index.php)
|
||||
|
||||
if (!defined('DC_CONTEXT_ADMIN')){return;}
|
||||
if (!defined('DC_CONTEXT_ADMIN')) {
|
||||
return null;
|
||||
}
|
||||
|
||||
# Save services settings
|
||||
if ($action == 'saveservice')
|
||||
{
|
||||
try
|
||||
{
|
||||
foreach(kutrl::getServices($core) as $service_id => $service)
|
||||
{
|
||||
if ($action == 'saveservice') {
|
||||
try {
|
||||
foreach(kutrl::getServices($core) as $service_id => $service) {
|
||||
$o = new $service($core);
|
||||
$o->saveSettings();
|
||||
}
|
||||
$core->blog->triggerBlog();
|
||||
http::redirect($p_url.'&part=service§ion='.$section.'&msg='.$action);
|
||||
}
|
||||
catch (Exception $e)
|
||||
{
|
||||
http::redirect($p_url . '&part=service§ion=' . $section . '&msg=' . $action);
|
||||
} catch (Exception $e) {
|
||||
$core->error->add($e->getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
echo '
|
||||
<html>
|
||||
<head><title>kUtRL, '.__('Links shortener').'</title>'.$header.
|
||||
dcPage::jsLoad('index.php?pf=kUtRL/js/service.js').
|
||||
"<script type=\"text/javascript\">\n//<![CDATA[\n".
|
||||
dcPage::jsVar('jcToolsBox.prototype.section',$section).
|
||||
"\n//]]>\n</script>\n".
|
||||
<head><title>kUtRL, ' . __('Links shortener') . '</title>' . $header .
|
||||
dcPage::jsLoad('index.php?pf=kUtRL/js/service.js') .
|
||||
"<script type=\"text/javascript\">\n//<![CDATA[\n" .
|
||||
dcPage::jsVar('jcToolsBox.prototype.section', $section) .
|
||||
"\n//]]>\n</script>\n" .
|
||||
'</head>
|
||||
<body>
|
||||
<h2>kUtRL'.
|
||||
' › <a href="'.$p_url.'&part=links">'.__('Links').'</a>'.
|
||||
' › '.__('Services').
|
||||
' - <a class="button" href="'.$p_url.'&part=link">'.__('New link').'</a>'.
|
||||
'</h2>'.$msg.'
|
||||
<form id="service-form" method="post" action="'.$p_url.'">';
|
||||
<h2>kUtRL' .
|
||||
' › <a href="' . $p_url . '&part=links">' . __('Links') . '</a>' .
|
||||
' › ' . __('Services') .
|
||||
' - <a class="button" href="' . $p_url . '&part=link">' . __('New link') . '</a>' .
|
||||
'</h2>' . $msg . '
|
||||
<form id="service-form" method="post" action="' . $p_url . '">';
|
||||
|
||||
foreach(kutrl::getServices($core) as $service_id => $service)
|
||||
{
|
||||
foreach(kutrl::getServices($core) as $service_id => $service) {
|
||||
$o = new $service($core);
|
||||
|
||||
echo '<fieldset id="setting-'.$service_id.'"><legend>'.$o->name.'</legend>';
|
||||
echo '<fieldset id="setting-' . $service_id . '"><legend>' . $o->name . '</legend>';
|
||||
|
||||
if (!empty($msg))
|
||||
{
|
||||
echo '<p><em>'.(
|
||||
if (!empty($msg)) {
|
||||
echo '<p><em>' . (
|
||||
$o->testService() ?
|
||||
$img_green.' '.sprintf(__('%s API is well configured and runing.'),$o->name) :
|
||||
$img_red.' '.sprintf(__('Failed to test %s API.'),$o->name)
|
||||
).'</em></p>';
|
||||
$img_green . ' ' . sprintf(__('%s API is well configured and runing.'), $o->name) :
|
||||
$img_red . ' ' . sprintf(__('Failed to test %s API.'), $o->name)
|
||||
) . '</em></p>';
|
||||
//if ($o->error->flag()) {
|
||||
echo $o->error->toHTML();
|
||||
//}
|
||||
}
|
||||
|
||||
if (!empty($o->home))
|
||||
{
|
||||
echo '<p><a title="'.__('homepage').'" href="'.$o->home.'">'.sprintf(__('Learn more about %s.'),$o->name).'</a></p>';
|
||||
if (!empty($o->home)) {
|
||||
echo '<p><a title="' . __('homepage') . '" href="' . $o->home . '">' . sprintf(__('Learn more about %s.'), $o->name) . '</a></p>';
|
||||
}
|
||||
|
||||
$o->settingsForm();
|
||||
|
||||
echo '</fieldset>';
|
||||
|
@ -79,14 +71,13 @@ foreach(kutrl::getServices($core) as $service_id => $service)
|
|||
|
||||
echo '
|
||||
<div class="clear">
|
||||
<p><input type="submit" name="save" value="'.__('save').'" />'.
|
||||
$core->formNonce().
|
||||
form::hidden(array('p'),'kUtRL').
|
||||
form::hidden(array('part'),'service').
|
||||
form::hidden(array('action'),'saveservice').
|
||||
form::hidden(array('section'),$section).'
|
||||
<p><input type="submit" name="save" value="' . __('save') . '" />' .
|
||||
$core->formNonce() .
|
||||
form::hidden(['p'], 'kUtRL') .
|
||||
form::hidden(['part'], 'service') .
|
||||
form::hidden(['action'], 'saveservice') .
|
||||
form::hidden(['section'], $section) . '
|
||||
</p></div>
|
||||
</form>';
|
||||
dcPage::helpBlock('kUtRL');
|
||||
echo $footer.'</body></html>';
|
||||
?>
|
||||
echo $footer . '</body></html>';
|
|
@ -12,7 +12,9 @@
|
|||
|
||||
# This file manage settings of kUtRL (called from index.php)
|
||||
|
||||
if (!defined('DC_CONTEXT_ADMIN')){return;}
|
||||
if (!defined('DC_CONTEXT_ADMIN')) {
|
||||
return null;
|
||||
}
|
||||
|
||||
$s_active = (boolean) $s->kutrl_active;
|
||||
$s_plugin_service = (string) $s->kutrl_plugin_service;
|
||||
|
@ -24,8 +26,7 @@ $s_tpl_passive = (boolean) $s->kutrl_tpl_passive;
|
|||
$s_tpl_active = (boolean) $s->kutrl_tpl_active;
|
||||
$s_admin_entry_default = (string) $s->kutrl_admin_entry_default;
|
||||
|
||||
if ($default_part == 'setting' && $action == 'savesetting')
|
||||
{
|
||||
if ($default_part == 'setting' && $action == 'savesetting') {
|
||||
try {
|
||||
$s_active = !empty($_POST['s_active']);
|
||||
$s_admin_service = $_POST['s_admin_service'];
|
||||
|
@ -36,129 +37,126 @@ if ($default_part == 'setting' && $action == 'savesetting')
|
|||
$s_tpl_passive = !empty($_POST['s_tpl_passive']);
|
||||
$s_tpl_active = !empty($_POST['s_tpl_active']);
|
||||
$s_admin_entry_default = !empty($_POST['s_admin_entry_default']);
|
||||
|
||||
$s->put('kutrl_active',$s_active);
|
||||
$s->put('kutrl_plugin_service',$s_plugin_service);
|
||||
$s->put('kutrl_admin_service',$s_admin_service);
|
||||
$s->put('kutrl_tpl_service',$s_tpl_service);
|
||||
$s->put('kutrl_wiki_service',$s_wiki_service);
|
||||
$s->put('kutrl_allow_external_url',$s_allow_external_url);
|
||||
$s->put('kutrl_tpl_passive',$s_tpl_passive);
|
||||
$s->put('kutrl_tpl_active',$s_tpl_active);
|
||||
$s->put('kutrl_admin_entry_default',$s_admin_entry_default);
|
||||
|
||||
|
||||
$s->put('kutrl_active', $s_active);
|
||||
$s->put('kutrl_plugin_service', $s_plugin_service);
|
||||
$s->put('kutrl_admin_service', $s_admin_service);
|
||||
$s->put('kutrl_tpl_service', $s_tpl_service);
|
||||
$s->put('kutrl_wiki_service', $s_wiki_service);
|
||||
$s->put('kutrl_allow_external_url', $s_allow_external_url);
|
||||
$s->put('kutrl_tpl_passive', $s_tpl_passive);
|
||||
$s->put('kutrl_tpl_active', $s_tpl_active);
|
||||
$s->put('kutrl_admin_entry_default', $s_admin_entry_default);
|
||||
|
||||
$core->blog->triggerBlog();
|
||||
|
||||
http::redirect($p_url.'&part=setting&msg='.$action.'§ion='.$section);
|
||||
}
|
||||
catch (Exception $e) {
|
||||
|
||||
http::redirect($p_url . '&part=setting&msg=' . $action . '§ion=' . $section);
|
||||
} catch (Exception $e) {
|
||||
$core->error->add($e->getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
$services_combo = array();
|
||||
foreach(kutrl::getServices($core) as $service_id => $service)
|
||||
{
|
||||
$services_combo = [];
|
||||
foreach(kutrl::getServices($core) as $service_id => $service) {
|
||||
$o = new $service($core);
|
||||
$services_combo[__($o->name)] = $o->id;
|
||||
}
|
||||
$ext_services_combo = array_merge(array(__('Disabled')=>''),$services_combo);
|
||||
$lst_services_combo = array_merge(array('-'=>''),$services_combo);
|
||||
$ext_services_combo = array_merge([__('Disabled')=>''], $services_combo);
|
||||
$lst_services_combo = array_merge(['-'=>''], $services_combo);
|
||||
|
||||
echo '
|
||||
<html>
|
||||
<head><title>kUtRL, '.__('Links shortener').'</title>'.$header.
|
||||
dcPage::jsLoad('index.php?pf=kUtRL/js/setting.js').
|
||||
"<script type=\"text/javascript\">\n//<![CDATA[\n".
|
||||
dcPage::jsVar('jcToolsBox.prototype.section',$section).
|
||||
"\n//]]>\n</script>\n".
|
||||
<head><title>kUtRL, ' . __('Links shortener') . '</title>' . $header .
|
||||
dcPage::jsLoad('index.php?pf=kUtRL/js/setting.js') .
|
||||
"<script type=\"text/javascript\">\n//<![CDATA[\n" .
|
||||
dcPage::jsVar('jcToolsBox.prototype.section', $section) .
|
||||
"\n//]]>\n</script>\n" .
|
||||
'</head>
|
||||
<body>
|
||||
<h2>kUtRL'.
|
||||
' › <a href="'.$p_url.'&part=links">'.__('Links').'</a>'.
|
||||
' › '.__('Settings').
|
||||
' - <a class="button" href="'.$p_url.'&part=link">'.__('New link').'</a>'.
|
||||
'</h2>'.$msg.'
|
||||
<form id="setting-form" method="post" action="'.$p_url.'">
|
||||
<h2>kUtRL' .
|
||||
' › <a href="' . $p_url . '&part=links">' . __('Links') . '</a>' .
|
||||
' › ' . __('Settings') .
|
||||
' - <a class="button" href="' . $p_url . '&part=link">' . __('New link') . '</a>' .
|
||||
'</h2>' . $msg . '
|
||||
<form id="setting-form" method="post" action="' . $p_url . '">
|
||||
|
||||
<fieldset id="setting-plugin"><legend>'. __('Plugin activation').'</legend>
|
||||
<p><label class="classic">'.
|
||||
form::checkbox(array('s_active'),'1',$s_active).
|
||||
__('Enable plugin').'</label></p>
|
||||
<fieldset id="setting-plugin"><legend>' . __('Plugin activation') . '</legend>
|
||||
<p><label class="classic">' .
|
||||
form::checkbox(['s_active'], '1', $s_active) .
|
||||
__('Enable plugin') . '</label></p>
|
||||
</fieldset>
|
||||
|
||||
<fieldset id="setting-option"><legend>'. __('General rules').'</legend>
|
||||
<p><label class="classic">'.
|
||||
form::checkbox(array('s_allow_external_url'),'1',$s_allow_external_url).
|
||||
__('Allow short link for external URL').'</label></p>
|
||||
<p class="form-note">'.__('Not only link started with this blog URL could be shortened.').'</p>
|
||||
<p><label class="classic">'.
|
||||
form::checkbox(array('s_tpl_passive'),'1',$s_tpl_passive).
|
||||
__('Passive mode').'</label></p>
|
||||
<p class="form-note">'.__('If this extension is disabled and the passive mode is enabled, "kutrl" tags (like EntryKurl) will display long urls instead of nothing on templates.').'</p>
|
||||
<p><label class="classic">'.
|
||||
form::checkbox(array('s_tpl_active'),'1',$s_tpl_active).
|
||||
__('Active mode').'</label></p>
|
||||
<p class="form-note">'.__('If the active mode is enabled, all know default template tags (like EntryURL) will display short urls instead of long ones on templates.').'<br />'.
|
||||
__('You can disable URL shortening for a specific template tag by adding attribute disable_kutrl="1" to it.').'</p>
|
||||
<p><label class="classic">'.
|
||||
form::checkbox(array('s_admin_entry_default'),'1',$s_admin_entry_default).
|
||||
__('Create short link for new entries').'</label></p>
|
||||
<p class="form-note">'.__('This can be changed on page of creation/edition of an entry.').'</p>
|
||||
<fieldset id="setting-option"><legend>' . __('General rules') . '</legend>
|
||||
<p><label class="classic">' .
|
||||
form::checkbox(['s_allow_external_url'], '1', $s_allow_external_url) .
|
||||
__('Allow short link for external URL') . '</label></p>
|
||||
<p class="form-note">' . __('Not only link started with this blog URL could be shortened.') . '</p>
|
||||
<p><label class="classic">' .
|
||||
form::checkbox(['s_tpl_passive'], '1', $s_tpl_passive) .
|
||||
__('Passive mode') . '</label></p>
|
||||
<p class="form-note">' . __('If this extension is disabled and the passive mode is enabled, "kutrl" tags (like EntryKurl) will display long urls instead of nothing on templates.') . '</p>
|
||||
<p><label class="classic">' .
|
||||
form::checkbox(['s_tpl_active'], '1', $s_tpl_active) .
|
||||
__('Active mode') . '</label></p>
|
||||
<p class="form-note">' . __('If the active mode is enabled, all know default template tags (like EntryURL) will display short urls instead of long ones on templates.') . '<br />' .
|
||||
__('You can disable URL shortening for a specific template tag by adding attribute disable_kutrl="1" to it . ') . '</p>
|
||||
<p><label class="classic">' .
|
||||
form::checkbox(['s_admin_entry_default'], '1', $s_admin_entry_default) .
|
||||
__('Create short link for new entries') . '</label></p>
|
||||
<p class="form-note">' . __('This can be changed on page of creation/edition of an entry.') . '</p>
|
||||
</fieldset>
|
||||
|
||||
<fieldset id="setting-service"><legend>'. __('Default services').'</legend>
|
||||
<fieldset id="setting-service"><legend>' . __('Default services') . '</legend>
|
||||
<p><label>';
|
||||
if (!empty($msg)) {
|
||||
if (null !== ($o = kutrl::quickPlace($s_admin_service))) {
|
||||
echo $o->testService() ? $img_green : $img_red;
|
||||
}
|
||||
}
|
||||
echo ' '.__('Administration:').'<br />'.
|
||||
form::combo(array('s_admin_service'),$services_combo,$s_admin_service).'
|
||||
echo ' ' . __('Administration:') . '<br />' .
|
||||
form::combo(['s_admin_service'], $services_combo, $s_admin_service) . '
|
||||
</label></p>
|
||||
<p class="form-note">'.__('Service to use in this admin page and on edit page of an entry.').'</p>
|
||||
<p class="form-note">' . __('Service to use in this admin page and on edit page of an entry.') . '</p>
|
||||
<p><label>';
|
||||
if (!empty($msg)) {
|
||||
if (null !== ($o = kutrl::quickPlace($s_plugin_service))) {
|
||||
echo $o->testService() ? $img_green : $img_red;
|
||||
}
|
||||
}
|
||||
echo ' '.__('Extensions:').'<br />'.
|
||||
form::combo(array('s_plugin_service'),$services_combo,$s_plugin_service).'
|
||||
echo ' ' . __('Extensions:') . '<br />' .
|
||||
form::combo(['s_plugin_service'], $services_combo, $s_plugin_service) . '
|
||||
</label></p>
|
||||
<p class="form-note">'.__('Service to use on third part plugins.').'</p>
|
||||
<p class="form-note">' . __('Service to use on third part plugins.') . '</p>
|
||||
<p><label>';
|
||||
if (!empty($msg)) {
|
||||
if (null !== ($o = kutrl::quickPlace($s_tpl_service))) {
|
||||
echo $o->testService() ? $img_green : $img_red;
|
||||
}
|
||||
}
|
||||
echo ' '.__('Templates:').'<br />'.
|
||||
form::combo(array('s_tpl_service'),$ext_services_combo,$s_tpl_service).'
|
||||
echo ' ' . __('Templates:') . '<br />' .
|
||||
form::combo(['s_tpl_service'], $ext_services_combo, $s_tpl_service) . '
|
||||
</label></p>
|
||||
<p class="form-note">'.__('Shorten links automatically when using template value like "EntryKutrl".').'</p>
|
||||
<p class="form-note">' . __('Shorten links automatically when using template value like "EntryKutrl".') . '</p>
|
||||
<p><label>';
|
||||
if (!empty($msg)) {
|
||||
if (null !== ($o = kutrl::quickPlace($s_wiki_service))) {
|
||||
echo $o->testService() ? $img_green : $img_red;
|
||||
}
|
||||
}
|
||||
echo ' '.__('Contents:').'<br />'.
|
||||
form::combo(array('s_wiki_service'),$ext_services_combo,$s_wiki_service).'
|
||||
echo ' ' . __('Contents:') . '<br />' .
|
||||
form::combo(['s_wiki_service'], $ext_services_combo, $s_wiki_service) . '
|
||||
</label></p>
|
||||
<p class="form-note">'.__('Shorten links automatically found in contents using wiki synthax.').'</p>
|
||||
<p class="form-note">' . __('Shorten links automatically found in contents using wiki synthax.') . '</p>
|
||||
</fieldset>
|
||||
|
||||
<div class="clear">
|
||||
<p><input type="submit" name="save" value="'.__('save').'" />'.
|
||||
$core->formNonce().
|
||||
form::hidden(array('p'),'kUtRL').
|
||||
form::hidden(array('part'),'setting').
|
||||
form::hidden(array('action'),'savesetting').
|
||||
form::hidden(array('section'),$section).'
|
||||
<p><input type="submit" name="save" value="' . __('save') . '" />' .
|
||||
$core->formNonce() .
|
||||
form::hidden(['p'], 'kUtRL') .
|
||||
form::hidden(['part'], 'setting') .
|
||||
form::hidden(['action'], 'savesetting') .
|
||||
form::hidden(['section'], $section) . '
|
||||
</p></div>
|
||||
</form>';
|
||||
dcPage::helpBlock('kUtRL');
|
||||
echo $footer.'</body></html>';
|
||||
?>
|
||||
echo $footer . '</body></html>';
|
|
@ -12,27 +12,28 @@
|
|||
|
||||
# This file is used with plugin activityReport
|
||||
|
||||
if (!defined('DC_RC_PATH')){return;}
|
||||
if (!defined('DC_RC_PATH')) {
|
||||
return null;
|
||||
}
|
||||
|
||||
$core->activityReport->addGroup('kutrl',__('Plugin kUtRL'));
|
||||
$core->activityReport->addGroup('kutrl', __('Plugin kUtRL'));
|
||||
|
||||
# from BEHAVIOR kutrlAfterCreateShortUrl in kUtRL/inc/lib.kutrl.srv.php
|
||||
$core->activityReport->addAction(
|
||||
'kutrl',
|
||||
'create',
|
||||
__('Short link creation'),
|
||||
__('New short link of type "%s" and hash "%s" was created.'),
|
||||
'kutrlAfterCreateShortUrl',
|
||||
array('kutrlActivityReportBehaviors','kutrlCreate')
|
||||
'kutrl',
|
||||
'create',
|
||||
__('Short link creation'),
|
||||
__('New short link of type "%s" and hash "%s" was created.'),
|
||||
'kutrlAfterCreateShortUrl',
|
||||
['kutrlActivityReportBehaviors', 'kutrlCreate']
|
||||
);
|
||||
|
||||
class kutrlActivityReportBehaviors
|
||||
{
|
||||
public static function kutrlCreate($rs)
|
||||
{
|
||||
$logs = array($rs->type,$rs->hash);
|
||||
public static function kutrlCreate($rs)
|
||||
{
|
||||
$logs = [$rs->type,$rs->hash];
|
||||
|
||||
$GLOBALS['core']->activityReport->addLog('kutrl','create',$logs);
|
||||
}
|
||||
}
|
||||
?>
|
||||
$GLOBALS['core']->activityReport->addLog('kutrl', 'create', $logs);
|
||||
}
|
||||
}
|
|
@ -14,301 +14,244 @@
|
|||
|
||||
class kutrlLog
|
||||
{
|
||||
public $core;
|
||||
public $table;
|
||||
public $blog;
|
||||
public $con;
|
||||
public $core;
|
||||
public $table;
|
||||
public $blog;
|
||||
public $con;
|
||||
|
||||
public function __construct($core)
|
||||
{
|
||||
$this->core = $core;
|
||||
$this->table = $core->prefix.'kutrl';
|
||||
$this->blog = $core->con->escape($core->blog->id);
|
||||
$this->con = $core->con;
|
||||
}
|
||||
public function __construct($core)
|
||||
{
|
||||
$this->core = $core;
|
||||
$this->table = $core->prefix . 'kutrl';
|
||||
$this->blog = $core->con->escape($core->blog->id);
|
||||
$this->con = $core->con;
|
||||
}
|
||||
|
||||
public function nextId()
|
||||
{
|
||||
return $this->con->select(
|
||||
'SELECT MAX(kut_id) FROM '.$this->table
|
||||
)->f(0) + 1;
|
||||
}
|
||||
public function nextId()
|
||||
{
|
||||
return $this->con->select(
|
||||
'SELECT MAX(kut_id) FROM ' . $this->table
|
||||
)->f(0) + 1;
|
||||
}
|
||||
|
||||
public function insert($url,$hash,$type,$service='kutrl')
|
||||
{
|
||||
$cur = $this->con->openCursor($this->table);
|
||||
$this->con->writeLock($this->table);
|
||||
public function insert($url, $hash, $type, $service = 'kutrl')
|
||||
{
|
||||
$cur = $this->con->openCursor($this->table);
|
||||
$this->con->writeLock($this->table);
|
||||
|
||||
try {
|
||||
$cur->kut_id = $this->nextId();
|
||||
$cur->blog_id = $this->blog;
|
||||
$cur->kut_url = (string) $url;
|
||||
$cur->kut_hash = (string) $hash;
|
||||
$cur->kut_type = (string) $type;
|
||||
$cur->kut_service = (string) $service;
|
||||
$cur->kut_dt = date('Y-m-d H:i:s');
|
||||
$cur->kut_counter = 0;
|
||||
try {
|
||||
$cur->kut_id = $this->nextId();
|
||||
$cur->blog_id = $this->blog;
|
||||
$cur->kut_url = (string) $url;
|
||||
$cur->kut_hash = (string) $hash;
|
||||
$cur->kut_type = (string) $type;
|
||||
$cur->kut_service = (string) $service;
|
||||
$cur->kut_dt = date('Y-m-d H:i:s');
|
||||
$cur->kut_counter = 0;
|
||||
|
||||
$cur->insert();
|
||||
$this->con->unlock();
|
||||
$cur->insert();
|
||||
$this->con->unlock();
|
||||
|
||||
return array(
|
||||
'id' => $cur->kut_id,
|
||||
'url' => $url,
|
||||
'hash' => $hash,
|
||||
'type' => $type,
|
||||
'service' => $service,
|
||||
'counter '=> 0
|
||||
);
|
||||
}
|
||||
catch (Exception $e)
|
||||
{
|
||||
$this->con->unlock();
|
||||
throw $e;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
return [
|
||||
'id' => $cur->kut_id,
|
||||
'url' => $url,
|
||||
'hash' => $hash,
|
||||
'type' => $type,
|
||||
'service' => $service,
|
||||
'counter '=> 0
|
||||
];
|
||||
} catch (Exception $e) {
|
||||
$this->con->unlock();
|
||||
throw $e;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public function select($url=null,$hash=null,$type=null,$service='kutrl')
|
||||
{
|
||||
//$this->con->writeLock($this->table);
|
||||
public function select($url = null, $hash = null, $type =null, $service = 'kutrl')
|
||||
{
|
||||
//$this->con->writeLock($this->table);
|
||||
|
||||
$req =
|
||||
'SELECT kut_id as id, kut_hash as hash, kut_url as url, '.
|
||||
'kut_type as type, kut_service as service, kut_counter as counter '.
|
||||
'FROM '.$this->table.' '.
|
||||
"WHERE blog_id = '".$this->blog."' ".
|
||||
"AND kut_service = '".$this->con->escape($service)."' ";
|
||||
$req =
|
||||
'SELECT kut_id as id, kut_hash as hash, kut_url as url, ' .
|
||||
'kut_type as type, kut_service as service, kut_counter as counter ' .
|
||||
'FROM ' . $this->table . ' ' .
|
||||
"WHERE blog_id = '" . $this->blog . "' " .
|
||||
"AND kut_service = '" . $this->con->escape($service) . "' ";
|
||||
|
||||
if (null !== $url)
|
||||
$req .= "AND kut_url = '".$this->con->escape($url)."' ";
|
||||
if (null !== $url) {
|
||||
$req .= "AND kut_url = '" . $this->con->escape($url) . "' ";
|
||||
}
|
||||
if (null !== $hash) {
|
||||
$req .= "AND kut_hash = '" . $this->con->escape($hash) . "' ";
|
||||
}
|
||||
if (null !== $type) {
|
||||
if (is_array($type)) {
|
||||
$req .= "AND kut_type '" . $this->con->in($type) ."' ";
|
||||
} else {
|
||||
$req .= "AND kut_type = '" . $this->con->escape($type) . "' ";
|
||||
}
|
||||
}
|
||||
|
||||
if (null !== $hash)
|
||||
$req .= "AND kut_hash = '".$this->con->escape($hash)."' ";
|
||||
$req .= 'ORDER BY kut_dt DESC ' . $this->con->limit(1);
|
||||
|
||||
if (null !== $type) {
|
||||
if (is_array($type)) {
|
||||
$req .= "AND kut_type '".$this->con->in($type)."' ";
|
||||
}
|
||||
else {
|
||||
$req .= "AND kut_type = '".$this->con->escape($type)."' ";
|
||||
}
|
||||
}
|
||||
$rs = $this->con->select($req);
|
||||
//$this->con->unlock();
|
||||
|
||||
$req .= 'ORDER BY kut_dt DESC '.$this->con->limit(1);
|
||||
return $rs->isEmpty() ? false : $rs;
|
||||
}
|
||||
|
||||
$rs = $this->con->select($req);
|
||||
//$this->con->unlock();
|
||||
public function clear($id)
|
||||
{
|
||||
$id = (integer) $id;
|
||||
|
||||
return $rs->isEmpty() ? false : $rs;
|
||||
}
|
||||
|
||||
public function clear($id)
|
||||
{
|
||||
$id = (integer) $id;
|
||||
|
||||
$cur = $this->con->openCursor($this->table);
|
||||
$this->con->writeLock($this->table);
|
||||
|
||||
try
|
||||
{
|
||||
$cur->kut_url = '';
|
||||
$cur->kut_dt = date('Y-m-d H:i:s');
|
||||
$cur->kut_counter = 0;
|
||||
|
||||
$cur->update(
|
||||
"WHERE blog_id='".$this->blog."' ".
|
||||
"AND kut_id='".$id."' "
|
||||
);
|
||||
$this->con->unlock();
|
||||
|
||||
return true;
|
||||
}
|
||||
catch (Exception $e)
|
||||
{
|
||||
$this->con->unlock();
|
||||
throw $e;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
$cur = $this->con->openCursor($this->table);
|
||||
$this->con->writeLock($this->table);
|
||||
|
||||
public function delete($id)
|
||||
{
|
||||
$id = (integer) $id;
|
||||
try {
|
||||
$cur->kut_url = '';
|
||||
$cur->kut_dt = date('Y-m-d H:i:s');
|
||||
$cur->kut_counter = 0;
|
||||
|
||||
$cur->update(
|
||||
"WHERE blog_id='" . $this->blog . "' " .
|
||||
"AND kut_id='" . $id . "' "
|
||||
);
|
||||
$this->con->unlock();
|
||||
|
||||
return $this->con->execute(
|
||||
'DELETE FROM '.$this->table.' '.
|
||||
"WHERE blog_id='".$this->blog."' ".
|
||||
"AND kut_id='".$id."' "
|
||||
);
|
||||
}
|
||||
return true;
|
||||
} catch (Exception $e) {
|
||||
$this->con->unlock();
|
||||
throw $e;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public function counter($id,$do='get')
|
||||
{
|
||||
$id = (integer) $id;
|
||||
public function delete($id)
|
||||
{
|
||||
$id = (integer) $id;
|
||||
|
||||
$rs = $this->con->select(
|
||||
'SELECT kut_counter '.
|
||||
'FROM '.$this->table.' '.
|
||||
"WHERE blog_id='".$this->blog."' ".
|
||||
"AND kut_id='".$id."' "
|
||||
);
|
||||
return $this->con->execute(
|
||||
'DELETE FROM ' . $this->table . ' ' .
|
||||
"WHERE blog_id='" . $this->blog . "' " .
|
||||
"AND kut_id='" . $id . "' "
|
||||
);
|
||||
}
|
||||
|
||||
$counter = $rs->isEmpty() ? 0 : $rs->kut_counter;
|
||||
public function counter($id, $do = 'get')
|
||||
{
|
||||
$id = (integer) $id;
|
||||
|
||||
if ('get' == $do)
|
||||
{
|
||||
return $counter;
|
||||
}
|
||||
elseif ('up' == $do)
|
||||
{
|
||||
$counter += 1;
|
||||
}
|
||||
elseif ('reset' == $do)
|
||||
{
|
||||
$counter = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
$rs = $this->con->select(
|
||||
'SELECT kut_counter ' .
|
||||
'FROM ' . $this->table . ' ' .
|
||||
"WHERE blog_id='" . $this->blog . "' " .
|
||||
"AND kut_id='" . $id . "' "
|
||||
);
|
||||
|
||||
$cur = $this->con->openCursor($this->table);
|
||||
$this->con->writeLock($this->table);
|
||||
$counter = $rs->isEmpty() ? 0 : $rs->kut_counter;
|
||||
|
||||
$cur->kut_counter = (integer) $counter;
|
||||
$cur->update(
|
||||
"WHERE blog_id='".$this->blog."' ".
|
||||
"AND kut_id='".$id."'"
|
||||
);
|
||||
$this->con->unlock();
|
||||
if ('get' == $do) {
|
||||
return $counter;
|
||||
} elseif ('up' == $do) {
|
||||
$counter += 1;
|
||||
} elseif ('reset' == $do) {
|
||||
$counter = 0;
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
|
||||
return $counter;
|
||||
}
|
||||
$cur = $this->con->openCursor($this->table);
|
||||
$this->con->writeLock($this->table);
|
||||
|
||||
public function getLogs($p,$count_only=false)
|
||||
{
|
||||
if ($count_only)
|
||||
{
|
||||
$r = 'SELECT count(S.kut_id) ';
|
||||
}
|
||||
else
|
||||
{
|
||||
$content_req = '';
|
||||
|
||||
if (!empty($p['columns']) && is_array($p['columns']))
|
||||
{
|
||||
$content_req .= implode(', ',$p['columns']).', ';
|
||||
}
|
||||
$r =
|
||||
'SELECT S.kut_id, S.kut_type, S.kut_hash, S.kut_url, '.
|
||||
$content_req.'S.kut_dt ';
|
||||
}
|
||||
$cur->kut_counter = (integer) $counter;
|
||||
$cur->update(
|
||||
"WHERE blog_id='" . $this->blog . "' " .
|
||||
"AND kut_id='" . $id . "'"
|
||||
);
|
||||
$this->con->unlock();
|
||||
|
||||
$r .= 'FROM '.$this->table.' S ';
|
||||
return $counter;
|
||||
}
|
||||
|
||||
if (!empty($p['from']))
|
||||
{
|
||||
$r .= $p['from'].' ';
|
||||
}
|
||||
$r .= "WHERE S.blog_id = '".$this->blog."' ";
|
||||
|
||||
if (isset($p['kut_service']))
|
||||
{
|
||||
$r .= "AND kut_service='".$this->con->escape($p['kut_service'])."' ";
|
||||
}
|
||||
else
|
||||
{
|
||||
$r .= "AND kut_service='kutrl' ";
|
||||
}
|
||||
|
||||
if (isset($p['kut_type']))
|
||||
{
|
||||
if (is_array($p['kut_type']) && !empty($p['kut_type']))
|
||||
{
|
||||
$r .= 'AND kut_type '.$this->con->in($p['kut_type']);
|
||||
}
|
||||
elseif ($p['kut_type'] != '')
|
||||
{
|
||||
$r .= "AND kut_type = '".$this->con->escape($p['kut_type'])."' ";
|
||||
}
|
||||
}
|
||||
|
||||
if (isset($p['kut_id']))
|
||||
{
|
||||
if (is_array($p['kut_id']) && !empty($p['kut_id']))
|
||||
{
|
||||
$r .= 'AND kut_id '.$this->con->in($p['kut_id']);
|
||||
}
|
||||
elseif ($p['kut_id'] != '')
|
||||
{
|
||||
$r .= "AND kut_id = '".$this->con->escape($p['kut_id'])."' ";
|
||||
}
|
||||
}
|
||||
|
||||
if (isset($p['kut_hash']))
|
||||
{
|
||||
if (is_array($p['kut_hash']) && !empty($p['kut_hash']))
|
||||
{
|
||||
$r .= 'AND kut_hash '.$this->con->in($p['kut_hash']);
|
||||
}
|
||||
elseif ($p['kut_hash'] != '')
|
||||
{
|
||||
$r .= "AND kut_hash = '".$this->con->escape($p['kut_hash'])."' ";
|
||||
}
|
||||
}
|
||||
|
||||
if (isset($p['kut_url']))
|
||||
{
|
||||
if (is_array($p['kut_url']) && !empty($p['kut_url']))
|
||||
{
|
||||
$r .= 'AND kut_url '.$this->con->in($p['kut_url']);
|
||||
}
|
||||
elseif ($p['kut_url'] != '')
|
||||
{
|
||||
$r .= "AND kut_url = '".$this->con->escape($p['kut_url'])."' ";
|
||||
}
|
||||
}
|
||||
|
||||
if (!empty($p['kut_year']))
|
||||
{
|
||||
$r .=
|
||||
'AND '.$this->con->dateFormat('kut_dt','%Y').' = '.
|
||||
"'".sprintf('%04d',$p['kut_year'])."' ";
|
||||
}
|
||||
|
||||
if (!empty($p['kut_month']))
|
||||
{
|
||||
$r .=
|
||||
'AND '.$this->con->dateFormat('kut_dt','%m').' = '.
|
||||
"'".sprintf('%02d',$p['kut_month'])."' ";
|
||||
}
|
||||
|
||||
if (!empty($p['kut_day']))
|
||||
{
|
||||
$r .=
|
||||
'AND '.$this->con->dateFormat('kut_dt','%d').' = '.
|
||||
"'".sprintf('%02d',$p['kut_day'])."' ";
|
||||
}
|
||||
|
||||
if (!empty($p['sql']))
|
||||
{
|
||||
$r .= $p['sql'].' ';
|
||||
}
|
||||
|
||||
if (!$count_only)
|
||||
{
|
||||
$r .= empty($p['order']) ?
|
||||
'ORDER BY kut_dt DESC ' :
|
||||
'ORDER BY '.$this->con->escape($p['order']).' ';
|
||||
}
|
||||
|
||||
if (!$count_only && !empty($p['limit']))
|
||||
{
|
||||
$r .= $this->con->limit($p['limit']);
|
||||
}
|
||||
|
||||
return $this->con->select($r);
|
||||
}
|
||||
}
|
||||
?>
|
||||
public function getLogs($p, $count_only = false)
|
||||
{
|
||||
if ($count_only) {
|
||||
$r = 'SELECT count(S.kut_id) ';
|
||||
} else {
|
||||
$content_req = '';
|
||||
|
||||
if (!empty($p['columns']) && is_array($p['columns'])) {
|
||||
$content_req .= implode(', ', $p['columns']) . ', ';
|
||||
}
|
||||
$r =
|
||||
'SELECT S.kut_id, S.kut_type, S.kut_hash, S.kut_url, ' .
|
||||
$content_req . 'S.kut_dt ';
|
||||
}
|
||||
$r .= 'FROM ' . $this->table . ' S ';
|
||||
if (!empty($p['from'])) {
|
||||
$r .= $p['from'] . ' ';
|
||||
}
|
||||
$r .= "WHERE S.blog_id = '" . $this->blog . "' ";
|
||||
if (isset($p['kut_service'])) {
|
||||
$r .= "AND kut_service='" . $this->con->escape($p['kut_service']) . "' ";
|
||||
} else {
|
||||
$r .= "AND kut_service='kutrl' ";
|
||||
}
|
||||
if (isset($p['kut_type'])) {
|
||||
if (is_array($p['kut_type']) && !empty($p['kut_type']))
|
||||
{
|
||||
$r .= 'AND kut_type ' . $this->con->in($p['kut_type']);
|
||||
} elseif ($p['kut_type'] != '') {
|
||||
$r .= "AND kut_type = '" . $this->con->escape($p['kut_type']) . "' ";
|
||||
}
|
||||
}
|
||||
if (isset($p['kut_id'])) {
|
||||
if (is_array($p['kut_id']) && !empty($p['kut_id'])) {
|
||||
$r .= 'AND kut_id ' . $this->con->in($p['kut_id']);
|
||||
} elseif ($p['kut_id'] != '') {
|
||||
$r .= "AND kut_id = '" . $this->con->escape($p['kut_id']) . "' ";
|
||||
}
|
||||
}
|
||||
if (isset($p['kut_hash'])) {
|
||||
if (is_array($p['kut_hash']) && !empty($p['kut_hash'])) {
|
||||
$r .= 'AND kut_hash ' . $this->con->in($p['kut_hash']);
|
||||
} elseif ($p['kut_hash'] != '') {
|
||||
$r .= "AND kut_hash = '" . $this->con->escape($p['kut_hash']) . "' ";
|
||||
}
|
||||
}
|
||||
if (isset($p['kut_url'])) {
|
||||
if (is_array($p['kut_url']) && !empty($p['kut_url'])) {
|
||||
$r .= 'AND kut_url ' . $this->con->in($p['kut_url']);
|
||||
} elseif ($p['kut_url'] != '') {
|
||||
$r .= "AND kut_url = '" . $this->con->escape($p['kut_url']) . "' ";
|
||||
}
|
||||
}
|
||||
if (!empty($p['kut_year'])) {
|
||||
$r .=
|
||||
'AND ' . $this->con->dateFormat('kut_dt', '%Y') . ' = ' .
|
||||
"'" . sprintf('%04d', $p['kut_year']) . "' ";
|
||||
}
|
||||
if (!empty($p['kut_month'])) {
|
||||
$r .=
|
||||
'AND ' . $this->con->dateFormat('kut_dt', '%m') . ' = ' .
|
||||
"'" . sprintf('%02d', $p['kut_month']) . "' ";
|
||||
}
|
||||
if (!empty($p['kut_day'])) {
|
||||
$r .=
|
||||
'AND ' . $this->con->dateFormat('kut_dt', '%d') . ' = ' .
|
||||
"'" . sprintf('%02d', $p['kut_day']) . "' ";
|
||||
}
|
||||
if (!empty($p['sql'])) {
|
||||
$r .= $p['sql'] . ' ';
|
||||
}
|
||||
if (!$count_only) {
|
||||
$r .= empty($p['order']) ?
|
||||
'ORDER BY kut_dt DESC ' :
|
||||
'ORDER BY ' . $this->con->escape($p['order']) . ' ';
|
||||
}
|
||||
if (!$count_only && !empty($p['limit'])) {
|
||||
$r .= $this->con->limit($p['limit']);
|
||||
}
|
||||
return $this->con->select($r);
|
||||
}
|
||||
}
|
|
@ -14,241 +14,223 @@
|
|||
# A service class must extends this one
|
||||
class kutrlService
|
||||
{
|
||||
public $core;
|
||||
public $error;
|
||||
public $settings;
|
||||
public $log;
|
||||
|
||||
protected $config = array();
|
||||
|
||||
public function __construct($core)
|
||||
{
|
||||
$this->core = $core;
|
||||
$this->settings = $core->blog->settings->kUtRL;
|
||||
$this->log = new kutrlLog($core);
|
||||
$this->error = new dcError();
|
||||
$this->error->setHTMLFormat('%s',"%s\n");
|
||||
|
||||
$this->init();
|
||||
|
||||
// Force setting
|
||||
$allow_external_url = $this->settings->kutrl_allow_external_url;
|
||||
$this->config['$allow_external_url'] = null === $allow_external_url ?
|
||||
true : $allow_external_url;
|
||||
|
||||
$this->config = array_merge(
|
||||
array(
|
||||
'id' => 'undefined',
|
||||
'name' => 'undefined',
|
||||
'home' => '',
|
||||
|
||||
'allow_external_url' => true,
|
||||
'allow_custom_hash' => false,
|
||||
'allow_protocols' => array('http://'),
|
||||
|
||||
'url_test' => 'http://dotclear.jcdenis.com/go/kUtRL',
|
||||
'url_api' => '',
|
||||
'url_base' => '',
|
||||
'url_min_len' => 0
|
||||
),
|
||||
$this->config
|
||||
);
|
||||
}
|
||||
|
||||
# Magic get for config values
|
||||
public function __get($k)
|
||||
{
|
||||
return isset($this->config[$k]) ? $this->config[$k] : null;
|
||||
}
|
||||
|
||||
# Additionnal actions on child start
|
||||
protected function init()
|
||||
{
|
||||
//
|
||||
}
|
||||
public $core;
|
||||
public $error;
|
||||
public $settings;
|
||||
public $log;
|
||||
|
||||
# Save settings from admin page
|
||||
public function saveSettings()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
protected $config = array();
|
||||
|
||||
# Settings form for admin page
|
||||
public function settingsForm()
|
||||
{
|
||||
echo
|
||||
'<p class="form-note">'.
|
||||
__('There is nothing to configure for this service.').
|
||||
'</p>';
|
||||
}
|
||||
public function __construct($core)
|
||||
{
|
||||
$this->core = $core;
|
||||
$this->settings = $core->blog->settings->kUtRL;
|
||||
$this->log = new kutrlLog($core);
|
||||
$this->error = new dcError();
|
||||
$this->error->setHTMLFormat('%s', "%s\n");
|
||||
|
||||
# Test if service is well configured
|
||||
public function testService()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
$this->init();
|
||||
|
||||
# Test if an url is valid
|
||||
public function isValidUrl($url)
|
||||
{
|
||||
return (boolean) filter_var($url,FILTER_VALIDATE_URL);
|
||||
}
|
||||
// Force setting
|
||||
$allow_external_url = $this->settings->kutrl_allow_external_url;
|
||||
$this->config['$allow_external_url'] = null === $allow_external_url ?
|
||||
true : $allow_external_url;
|
||||
|
||||
# Test if an url contents know prefix
|
||||
public function isServiceUrl($url)
|
||||
{
|
||||
return strpos($url,$this->url_base) === 0;
|
||||
}
|
||||
$this->config = array_merge(
|
||||
[
|
||||
'id' => 'undefined',
|
||||
'name' => 'undefined',
|
||||
'home' => '',
|
||||
|
||||
# Test if an url is long enoutgh
|
||||
public function isLongerUrl($url)
|
||||
{
|
||||
return ((integer) $this->url_min_len >= $url);
|
||||
}
|
||||
'allow_external_url' => true,
|
||||
'allow_custom_hash' => false,
|
||||
'allow_protocols' => ['http://'],
|
||||
|
||||
# Test if an url protocol (eg: http://) is allowed
|
||||
public function isProtocolUrl($url)
|
||||
{
|
||||
foreach($this->allow_protocols as $protocol)
|
||||
{
|
||||
if (empty($protocol)) continue;
|
||||
'url_test' => 'http://dotclear.jcdenis.com/go/kUtRL',
|
||||
'url_api' => '',
|
||||
'url_base' => '',
|
||||
'url_min_len' => 0
|
||||
],
|
||||
$this->config
|
||||
);
|
||||
}
|
||||
|
||||
if (strpos($url,$protocol) === 0) return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
# Magic get for config values
|
||||
public function __get($k)
|
||||
{
|
||||
return isset($this->config[$k]) ? $this->config[$k] : null;
|
||||
}
|
||||
|
||||
# Test if an url is from current blog
|
||||
public function isBlogUrl($url)
|
||||
{
|
||||
$base = $this->core->blog->url;
|
||||
$url = substr($url,0,strlen($base));
|
||||
# Additionnal actions on child start
|
||||
protected function init()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
return $url == $base;
|
||||
}
|
||||
# Save settings from admin page
|
||||
public function saveSettings()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
# Test if an url is know
|
||||
public function isKnowUrl($url)
|
||||
{
|
||||
return $this->log->select($url,null,$this->id,'kutrl');
|
||||
}
|
||||
# Settings form for admin page
|
||||
public function settingsForm()
|
||||
{
|
||||
echo
|
||||
'<p class="form-note">' .
|
||||
__('There is nothing to configure for this service.') .
|
||||
'</p>';
|
||||
}
|
||||
|
||||
# Test if an custom short url is know
|
||||
public function isKnowHash($hash)
|
||||
{
|
||||
return $this->log->select(null,$hash,$this->id,'kutrl');
|
||||
}
|
||||
# Test if service is well configured
|
||||
public function testService()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
# Create hash from url
|
||||
public function hash($url,$hash=null)
|
||||
{
|
||||
$url = trim($this->core->con->escape($url));
|
||||
if ('undefined' === $this->id)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if ($hash && !$this->allow_custom_hash)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if ($this->isServiceUrl($url))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if (!$this->isLongerUrl($url))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if (!$this->allow_external_url && $this->isBlogUrl($url))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if ($hash && false !== ($rs = $this->isKnowHash($hash)))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if (false === ($rs = $this->isKnowUrl($url)))
|
||||
{
|
||||
if (false === ($rs = $this->createHash($url,$hash)))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
# Test if an url is valid
|
||||
public function isValidUrl($url)
|
||||
{
|
||||
return (boolean) filter_var($url, FILTER_VALIDATE_URL);
|
||||
}
|
||||
|
||||
$this->log->insert($rs->url,$rs->hash,$rs->type,'kutrl');
|
||||
$this->core->blog->triggerBlog();
|
||||
# Test if an url contents know prefix
|
||||
public function isServiceUrl($url)
|
||||
{
|
||||
return strpos($url, $this->url_base) === 0;
|
||||
}
|
||||
|
||||
# Test if an url is long enoutgh
|
||||
public function isLongerUrl($url)
|
||||
{
|
||||
return ((integer) $this->url_min_len >= $url);
|
||||
}
|
||||
|
||||
# --BEHAVIOR-- kutrlAfterCreateShortUrl
|
||||
$this->core->callBehavior('kutrlAfterCreateShortUrl',$rs);
|
||||
# Test if an url protocol (eg: http://) is allowed
|
||||
public function isProtocolUrl($url)
|
||||
{
|
||||
foreach($this->allow_protocols as $protocol) {
|
||||
if (empty($protocol)) {
|
||||
continue;
|
||||
}
|
||||
if (strpos($url,$protocol) === 0) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
# Test if an url is from current blog
|
||||
public function isBlogUrl($url)
|
||||
{
|
||||
$base = $this->core->blog->url;
|
||||
$url = substr($url, 0, strlen($base));
|
||||
|
||||
}
|
||||
return $rs;
|
||||
}
|
||||
return $url == $base;
|
||||
}
|
||||
|
||||
# Create a hash for a given url (and its custom hash)
|
||||
public function createHash($url,$hash=null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
# Test if an url is know
|
||||
public function isKnowUrl($url)
|
||||
{
|
||||
return $this->log->select($url, null, $this->id, 'kutrl');
|
||||
}
|
||||
|
||||
# Remove an url from list of know urls
|
||||
public function remove($url)
|
||||
{
|
||||
if (!($rs = $this->isKnowUrl($url))) return false;
|
||||
echo 'la';
|
||||
$this->deleteUrl($url);
|
||||
$this->log->delete($rs->id);
|
||||
return true;
|
||||
}
|
||||
# Test if an custom short url is know
|
||||
public function isKnowHash($hash)
|
||||
{
|
||||
return $this->log->select(null, $hash, $this->id, 'kutrl');
|
||||
}
|
||||
|
||||
# Delete url on service (second argument really delete urls)
|
||||
public function deleteUrl($url,$delete=false)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
# Create hash from url
|
||||
public function hash($url, $hash = null)
|
||||
{
|
||||
$url = trim($this->core->con->escape($url));
|
||||
if ('undefined' === $this->id) {
|
||||
return false;
|
||||
}
|
||||
if ($hash && !$this->allow_custom_hash) {
|
||||
return false;
|
||||
}
|
||||
if ($this->isServiceUrl($url)) {
|
||||
return false;
|
||||
}
|
||||
if (!$this->isLongerUrl($url)) {
|
||||
return false;
|
||||
}
|
||||
if (!$this->allow_external_url && $this->isBlogUrl($url)) {
|
||||
return false;
|
||||
}
|
||||
if ($hash && false !== ($rs = $this->isKnowHash($hash))) {
|
||||
return false;
|
||||
}
|
||||
if (false === ($rs = $this->isKnowUrl($url))) {
|
||||
if (false === ($rs = $this->createHash($url, $hash))) {
|
||||
return false;
|
||||
}
|
||||
|
||||
# Retrieve long url from hash
|
||||
public function getUrl($hash)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
$this->log->insert($rs->url, $rs->hash, $rs->type, 'kutrl');
|
||||
$this->core->blog->triggerBlog();
|
||||
|
||||
# Post request
|
||||
public static function post($server,$data,$verbose=true,$get=false,$headers=array())
|
||||
{
|
||||
$url = (string) $server;
|
||||
$client = netHttp::initClient($url,$url);
|
||||
$client->setUserAgent('kUtRL - http://kutrl.fr');
|
||||
$client->setPersistReferers(false);
|
||||
# --BEHAVIOR-- kutrlAfterCreateShortUrl
|
||||
$this->core->callBehavior('kutrlAfterCreateShortUrl', $rs);
|
||||
|
||||
if (is_array($headers) && !empty($headers))
|
||||
{
|
||||
foreach($headers as $header)
|
||||
{
|
||||
$client->setMoreHeader($header);
|
||||
}
|
||||
}
|
||||
|
||||
if ($get)
|
||||
{
|
||||
$client->get($url,$data);
|
||||
}
|
||||
else
|
||||
{
|
||||
$client->post($url,$data);
|
||||
}
|
||||
}
|
||||
return $rs;
|
||||
}
|
||||
|
||||
if (!$verbose && $client->getStatus() != 200)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
# Create a hash for a given url (and its custom hash)
|
||||
public function createHash($url, $hash = null)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if ($verbose)
|
||||
{
|
||||
return $client->getContent();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
?>
|
||||
# Remove an url from list of know urls
|
||||
public function remove($url)
|
||||
{
|
||||
if (!($rs = $this->isKnowUrl($url))) {
|
||||
return false;
|
||||
}
|
||||
$this->deleteUrl($url);
|
||||
$this->log->delete($rs->id);
|
||||
return true;
|
||||
}
|
||||
|
||||
# Delete url on service (second argument really delete urls)
|
||||
public function deleteUrl($url, $delete = false)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
# Retrieve long url from hash
|
||||
public function getUrl($hash)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
# Post request
|
||||
public static function post($server, $data, $verbose = true, $get = false, $headers = [])
|
||||
{
|
||||
$url = (string) $server;
|
||||
$client = netHttp::initClient($url, $url);
|
||||
$client->setUserAgent('kUtRL - http://kutrl.fr');
|
||||
$client->setPersistReferers(false);
|
||||
|
||||
if (is_array($headers) && !empty($headers)) {
|
||||
foreach($headers as $header) {
|
||||
$client->setMoreHeader($header);
|
||||
}
|
||||
}
|
||||
if ($get) {
|
||||
$client->get($url, $data);
|
||||
} else {
|
||||
$client->post($url, $data);
|
||||
}
|
||||
if (!$verbose && $client->getStatus() != 200) {
|
||||
return false;
|
||||
}
|
||||
if ($verbose) {
|
||||
return $client->getContent();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
|
@ -12,69 +12,66 @@
|
|||
|
||||
# This file contents class to shorten url pass through wiki
|
||||
|
||||
if (!defined('DC_RC_PATH')){return;}
|
||||
if (!defined('DC_RC_PATH')) {
|
||||
return null;
|
||||
}
|
||||
|
||||
class kutrlWiki
|
||||
{
|
||||
public static function coreInitWiki($wiki2xhtml)
|
||||
{
|
||||
global $core;
|
||||
$s = $core->blog->settings->kUtRL;
|
||||
public static function coreInitWiki($wiki2xhtml)
|
||||
{
|
||||
global $core;
|
||||
$s = $core->blog->settings->kUtRL;
|
||||
|
||||
# Do nothing on comment preview and post preview
|
||||
if (!empty($_POST['preview'])
|
||||
|| !empty($GLOBALS['_ctx']) && $GLOBALS['_ctx']->preview
|
||||
|| !$s->kutrl_active) return;
|
||||
|
||||
if (null === ($kut = kutrl::quickPlace('wiki'))) return;
|
||||
|
||||
foreach($kut->allow_protocols as $protocol)
|
||||
{
|
||||
$wiki2xhtml->registerFunction(
|
||||
'url:'.$protocol,
|
||||
array('kutrlWiki','transform')
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
public static function transform($url,$content)
|
||||
{
|
||||
global $core;
|
||||
$s = $core->blog->settings->kUtRL;
|
||||
|
||||
if (!$s->kutrl_active) return;
|
||||
|
||||
if (null === ($kut = kutrl::quickPlace('wiki'))) return array();
|
||||
|
||||
# Test if long url exists
|
||||
$is_new = false;
|
||||
$rs = $kut->isKnowUrl($url);
|
||||
if (!$rs)
|
||||
{
|
||||
$is_new = true;
|
||||
$rs = $kut->hash($url);
|
||||
}
|
||||
# Do nothing on comment preview and post preview
|
||||
if (!empty($_POST['preview'])
|
||||
|| !empty($GLOBALS['_ctx']) && $GLOBALS['_ctx']->preview
|
||||
|| !$s->kutrl_active) {
|
||||
return null;
|
||||
}
|
||||
if (null === ($kut = kutrl::quickPlace('wiki'))) {
|
||||
return null;
|
||||
}
|
||||
foreach($kut->allow_protocols as $protocol) {
|
||||
$wiki2xhtml->registerFunction(
|
||||
'url:' . $protocol,
|
||||
['kutrlWiki', 'transform']
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
if (!$rs)
|
||||
{
|
||||
return array();
|
||||
}
|
||||
else
|
||||
{
|
||||
$res = array();
|
||||
$testurl = strlen($rs->url) > 35 ? substr($rs->url,0,35).'...' : $rs->url;
|
||||
$res['url'] = $kut->url_base.$rs->hash;
|
||||
$res['title'] = sprintf(__('%s (Shorten with %s)'),$rs->url,__($kut->name));
|
||||
if ($testurl == $content) $res['content'] = $res['url'];
|
||||
|
||||
# ex: Send new url to messengers
|
||||
if (!empty($rs))
|
||||
{
|
||||
$core->callBehavior('wikiAfterKutrlCreate',$core,$rs,__('New short URL'));
|
||||
}
|
||||
|
||||
return $res;
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
public static function transform($url, $content)
|
||||
{
|
||||
global $core;
|
||||
$s = $core->blog->settings->kUtRL;
|
||||
|
||||
if (!$s->kutrl_active) {
|
||||
return null;
|
||||
}
|
||||
if (null === ($kut = kutrl::quickPlace('wiki'))) {
|
||||
return [];
|
||||
}
|
||||
# Test if long url exists
|
||||
$is_new = false;
|
||||
$rs = $kut->isKnowUrl($url);
|
||||
if (!$rs) {
|
||||
$is_new = true;
|
||||
$rs = $kut->hash($url);
|
||||
}
|
||||
if (!$rs) {
|
||||
return [];
|
||||
} else {
|
||||
$res = [];
|
||||
$testurl = strlen($rs->url) > 35 ? substr($rs->url, 0, 35) . '...' : $rs->url;
|
||||
$res['url'] = $kut->url_base . $rs->hash;
|
||||
$res['title'] = sprintf(__('%s (Shorten with %s)'), $rs->url, __($kut->name));
|
||||
if ($testurl == $content) $res['content'] = $res['url'];
|
||||
|
||||
# ex: Send new url to messengers
|
||||
if (!empty($rs)) {
|
||||
$core->callBehavior('wikiAfterKutrlCreate', $core, $rs, __('New short URL'));
|
||||
}
|
||||
return $res;
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue