blog->settings->kUtRL; # Do nothing on comment preview and post preview if (!empty($_POST['preview']) || isset(dcCore::app()->ctx) && dcCore::app()->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'] ); } } public static function transform($url, $content) { $s = dcCore::app()->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 []; } $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)) { dcCore::app()->callBehavior('wikiAfterKutrlCreate', $rs, __('New short URL')); } return $res; } }