diff --git a/_public.php b/_public.php index 37ca675..d93c487 100644 --- a/_public.php +++ b/_public.php @@ -10,616 +10,560 @@ # 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; +} -require_once dirname(__FILE__).'/_widgets.php'; +require_once dirname(__FILE__) . '/_widgets.php'; -$core->tpl->setPath($core->tpl->getPath(),dirname(__FILE__).'/default-templates'); +$core->tpl->setPath($core->tpl->getPath(), dirname(__FILE__) . '/default-templates'); -$core->addBehavior('publicBeforeDocument',array('pubKutrl','publicBeforeDocument')); -$core->addBehavior('publicHeadContent',array('pubKutrl','publicHeadContent')); -$core->addBehavior('publicBeforeContentFilter',array('pubKutrl','publicBeforeContentFilter')); -$core->addBehavior('templateBeforeValue',array('pubKutrl','templateBeforeValue')); -$core->addBehavior('templateAfterValue',array('pubKutrl','templateAfterValue')); +$core->addBehavior('publicBeforeDocument', ['pubKutrl', 'publicBeforeDocument']); +$core->addBehavior('publicHeadContent', ['pubKutrl', 'publicHeadContent']); +$core->addBehavior('publicBeforeContentFilter', ['pubKutrl', 'publicBeforeContentFilter']); +$core->addBehavior('templateBeforeValue', ['pubKutrl', 'templateBeforeValue']); +$core->addBehavior('templateAfterValue', ['pubKutrl', 'templateAfterValue']); -$core->tpl->addBlock('kutrlPageIf',array('tplKutrl','pageIf')); -$core->tpl->addBlock('kutrlMsgIf',array('tplKutrl','pageMsgIf')); +$core->tpl->addBlock('kutrlPageIf', ['tplKutrl', 'pageIf']); +$core->tpl->addBlock('kutrlMsgIf', ['tplKutrl', 'pageMsgIf']); -$core->tpl->addValue('kutrlPageURL',array('tplKutrl','pageURL')); -$core->tpl->addValue('kutrlMsg',array('tplKutrl','pageMsg')); -$core->tpl->addValue('kutrlHumanField',array('tplKutrl','humanField')); -$core->tpl->addValue('kutrlHumanFieldProtect',array('tplKutrl','humanFieldProtect')); +$core->tpl->addValue('kutrlPageURL', ['tplKutrl', 'pageURL']); +$core->tpl->addValue('kutrlMsg', ['tplKutrl', 'pageMsg']); +$core->tpl->addValue('kutrlHumanField', ['tplKutrl', 'humanField']); +$core->tpl->addValue('kutrlHumanFieldProtect', ['tplKutrl', 'humanFieldProtect']); -$core->tpl->addBlock('AttachmentKutrlIf',array('tplKutrl','AttachmentKutrlIf')); -$core->tpl->addValue('AttachmentKutrl',array('tplKutrl','AttachmentKutrl')); -$core->tpl->addBlock('MediaKutrlIf',array('tplKutrl','MediaKutrlIf')); -$core->tpl->addValue('MediaKutrl',array('tplKutrl','MediaKutrl')); -$core->tpl->addBlock('EntryAuthorKutrlIf',array('tplKutrl','EntryAuthorKutrlIf')); -$core->tpl->addValue('EntryAuthorKutrl',array('tplKutrl','EntryAuthorKutrl')); -$core->tpl->addBlock('EntryKutrlIf',array('tplKutrl','EntryKutrlIf')); -$core->tpl->addValue('EntryKutrl',array('tplKutrl','EntryKutrl')); -$core->tpl->addBlock('CommentAuthorKutrlIf',array('tplKutrl','CommentAuthorKutrlIf')); -$core->tpl->addValue('CommentAuthorKutrl',array('tplKutrl','CommentAuthorKutrl')); -$core->tpl->addBlock('CommentPostKutrlIf',array('tplKutrl','CommentPostKutrlIf')); -$core->tpl->addValue('CommentPostKutrl',array('tplKutrl','CommentPostKutrl')); +$core->tpl->addBlock('AttachmentKutrlIf', ['tplKutrl', 'AttachmentKutrlIf']); +$core->tpl->addValue('AttachmentKutrl', ['tplKutrl', 'AttachmentKutrl']); +$core->tpl->addBlock('MediaKutrlIf', ['tplKutrl', 'MediaKutrlIf']); +$core->tpl->addValue('MediaKutrl', ['tplKutrl', 'MediaKutrl']); +$core->tpl->addBlock('EntryAuthorKutrlIf', ['tplKutrl', 'EntryAuthorKutrlIf']); +$core->tpl->addValue('EntryAuthorKutrl', ['tplKutrl', 'EntryAuthorKutrl']); +$core->tpl->addBlock('EntryKutrlIf', ['tplKutrl', 'EntryKutrlIf']); +$core->tpl->addValue('EntryKutrl', ['tplKutrl', 'EntryKutrl']); +$core->tpl->addBlock('CommentAuthorKutrlIf', ['tplKutrl', 'CommentAuthorKutrlIf']); +$core->tpl->addValue('CommentAuthorKutrl', ['tplKutrl', 'CommentAuthorKutrl']); +$core->tpl->addBlock('CommentPostKutrlIf', ['tplKutrl', 'CommentPostKutrlIf']); +$core->tpl->addValue('CommentPostKutrl', ['tplKutrl', 'CommentPostKutrl']); class urlKutrl extends dcUrlHandlers { - # Redirect !!! local !!! service only - public static function redirectUrl($args) - { - global $core, $_ctx; - $s = $core->blog->settings->kUtRL; - - # Not active, go to default 404 - if (!$s->kutrl_active) - { - self::p404(); - return; - } - # Not a valid url, go to kutrl 404 - if (!preg_match('#^(|(/(.*?)))$#',$args,$m)) - { - self::kutrl404(); - return; - } - - $args = isset($m[3]) ? $m[3] : ''; - $_ctx->kutrl_msg = ''; - $_ctx->kutrl_hmf = hmfKutrl::create(); - $_ctx->kutrl_hmfp = hmfKutrl::protect($_ctx->kutrl_hmf); - - $kut = new localKutrlService($core); - - # Nothing on url - if ($m[1] == '/') - { - $_ctx->kutrl_msg = 'No link given.'; - } - # find suffix on redirect url - $suffix = ''; - if (preg_match('@^([^?/#]+)(.*?)$@',$args,$more)) - { - $args = $more[1]; - $suffix = $more[2]; - } - # No arg, go to kurtl page - if ($args == '') - { - self::pageKutrl($kut); - return; - } - # Not find, go to kutrl 404 - if (false === ($url = $kut->getUrl($args))) - { - //$_ctx->kutrl_msg = 'Failed to find short link.'; - //self::pageKutrl($kut); - - self::kutrl404(); - return; - } - # Removed (empty url), go to kutrl 404 - if (!$url) - { - self::kutrl404(); - return; - } - - $core->blog->triggerBlog(); - http::redirect($url.$suffix); - return; - } - - private static function pageKutrl($kut) - { - global $core, $_ctx; - $s = $core->blog->settings->kUtRL; - - # Not active, go to default 404 - if (!$s->kutrl_active) - { - self::p404(); - return; - } - # Public page not active, go to kutrl 404 - if (!$s->kutrl_srv_local_public) - { - self::kutrl404(); - return; - } - # Validation form - $url = !empty($_POST['longurl']) ? trim($core->con->escape($_POST['longurl'])) : ''; - if (!empty($url)) - { - $hmf = !empty($_POST['hmf']) ? $_POST['hmf'] : '!'; - $hmfu = !empty($_POST['hmfp']) ? hmfKutrl::unprotect($_POST['hmfp']) : '?'; - - $err = false; - if (!$err) - { - if ($hmf != $hmfu) - { - $err = true; - $_ctx->kutrl_msg = __('Failed to verify protected field.'); - } - } - if (!$err) - { - if (!$kut->testService()) - { - $err = true; - $_ctx->kutrl_msg = __('Service is not well configured.'); - } - } - if (!$err) - { - if (!$kut->isValidUrl($url)) - { - $err = true; - $_ctx->kutrl_msg = __('This string is not a valid URL.'); - } - } - if (!$err) - { - if (!$kut->isLongerUrl($url)) - { - $err = true; - $_ctx->kutrl_msg = __('This link is too short.'); - } - } - if (!$err) - { - if (!$kut->isProtocolUrl($url)) - { - $err = true; - $_ctx->kutrl_msg = __('This type of link is not allowed.'); - } - } + # Redirect !!! local !!! service only + public static function redirectUrl($args) + { + global $core, $_ctx; + $s = $core->blog->settings->kUtRL; - if (!$err) - { - if (!$kut->allow_external_url && !$kut->isBlogUrl($url)) - { - $err = true; - $_ctx->kutrl_msg = __('Short links are limited to this blog URL.'); - } - } - if (!$err) - { - if ($kut->isServiceUrl($url)) - { - $err = true; - $_ctx->kutrl_msg = __('This link is already a short link.'); - } - } - if (!$err) - { - if (false !== ($rs = $kut->isKnowUrl($url))) - { - $err = true; + # Not active, go to default 404 + if (!$s->kutrl_active) { + self::p404(); + return null; + } + # Not a valid url, go to kutrl 404 + if (!preg_match('#^(|(/(.*?)))$#', $args, $m)) { + self::kutrl404(); + return null; + } - $url = $rs->url; - $new_url = $kut->url_base.$rs->hash; + $args = isset($m[3]) ? $m[3] : ''; + $_ctx->kutrl_msg = ''; + $_ctx->kutrl_hmf = hmfKutrl::create(); + $_ctx->kutrl_hmfp = hmfKutrl::protect($_ctx->kutrl_hmf); - $_ctx->kutrl_msg = sprintf( - __('Short link for %s is %s'), - html::escapeHTML($url), - ''.$new_url.'' - ); - } - } - if (!$err) - { - if (false === ($rs = $kut->hash($url))) - { - $err = true; - $_ctx->kutrl_msg = __('Failed to create short link.'); - } - else - { - $url = $rs->url; - $new_url = $kut->url_base.$rs->hash; + $kut = new localKutrlService($core); - $_ctx->kutrl_msg = sprintf( - __('Short link for %s is %s'), - html::escapeHTML($url), - ''.$new_url.'' - ); - $core->blog->triggerBlog(); - - # ex: Send new url to messengers - if (!empty($rs)) - { - $core->callBehavior('publicAfterKutrlCreate',$core,$rs,__('New public short URL')); - } - } - } - } - - $core->tpl->setPath($core->tpl->getPath(),dirname(__FILE__).'/default-templates'); - self::serveDocument('kutrl.html'); - return; - } - - protected static function kutrl404() - { - global $core; - - if (!$core->blog->settings->kUtRL->kutrl_srv_local_404_active) - { - self::p404(); - return; - } - - $core->tpl->setPath($core->tpl->getPath(),dirname(__FILE__).'/default-templates'); - $_ctx =& $GLOBALS['_ctx']; - $core = $GLOBALS['core']; - - header('Content-Type: text/html; charset=UTF-8'); - http::head(404,'Not Found'); - $core->url->type = '404'; - $_ctx->current_tpl = 'kutrl404.html'; - $_ctx->content_type = 'text/html'; - - echo $core->tpl->getData($_ctx->current_tpl); - - # --BEHAVIOR-- publicAfterDocument - $core->callBehavior('publicAfterDocument',$core); - exit; - } + # Nothing on url + if ($m[1] == '/') { + $_ctx->kutrl_msg = 'No link given.'; + } + # find suffix on redirect url + $suffix = ''; + if (preg_match('@^([^?/#]+)(.*?)$@', $args, $more)) { + $args = $more[1]; + $suffix = $more[2]; + } + # No arg, go to kurtl page + if ($args == '') { + self::pageKutrl($kut); + return null; + } + # Not find, go to kutrl 404 + if (false === ($url = $kut->getUrl($args))) { + //$_ctx->kutrl_msg = 'Failed to find short link.'; + //self::pageKutrl($kut); + self::kutrl404(); + return null; + } + # Removed (empty url), go to kutrl 404 + if (!$url) { + self::kutrl404(); + return null; + } + + $core->blog->triggerBlog(); + http::redirect($url . $suffix); + return null; + } + + private static function pageKutrl($kut) + { + global $core, $_ctx; + $s = $core->blog->settings->kUtRL; + + # Not active, go to default 404 + if (!$s->kutrl_active) { + self::p404(); + return null; + } + # Public page not active, go to kutrl 404 + if (!$s->kutrl_srv_local_public) { + self::kutrl404(); + return null; + } + # Validation form + $url = !empty($_POST['longurl']) ? trim($core->con->escape($_POST['longurl'])) : ''; + if (!empty($url)) { + $hmf = !empty($_POST['hmf']) ? $_POST['hmf'] : '!'; + $hmfu = !empty($_POST['hmfp']) ? hmfKutrl::unprotect($_POST['hmfp']) : '?'; + + $err = false; + if (!$err) { + if ($hmf != $hmfu) { + $err = true; + $_ctx->kutrl_msg = __('Failed to verify protected field.'); + } + } + if (!$err) { + if (!$kut->testService()) { + $err = true; + $_ctx->kutrl_msg = __('Service is not well configured.'); + } + } + if (!$err) { + if (!$kut->isValidUrl($url)) { + $err = true; + $_ctx->kutrl_msg = __('This string is not a valid URL.'); + } + } + if (!$err) { + if (!$kut->isLongerUrl($url)) { + $err = true; + $_ctx->kutrl_msg = __('This link is too short.'); + } + } + if (!$err) { + if (!$kut->isProtocolUrl($url)) { + $err = true; + $_ctx->kutrl_msg = __('This type of link is not allowed.'); + } + } + + if (!$err) { + if (!$kut->allow_external_url && !$kut->isBlogUrl($url)) { + $err = true; + $_ctx->kutrl_msg = __('Short links are limited to this blog URL.'); + } + } + if (!$err) { + if ($kut->isServiceUrl($url)) { + $err = true; + $_ctx->kutrl_msg = __('This link is already a short link.'); + } + } + if (!$err) { + if (false !== ($rs = $kut->isKnowUrl($url))) { + $err = true; + + $url = $rs->url; + $new_url = $kut->url_base . $rs->hash; + + $_ctx->kutrl_msg = sprintf( + __('Short link for %s is %s'), + html::escapeHTML($url), + '' . $new_url . '' + ); + } + } + if (!$err) { + if (false === ($rs = $kut->hash($url))) { + $err = true; + $_ctx->kutrl_msg = __('Failed to create short link.'); + } else { + $url = $rs->url; + $new_url = $kut->url_base . $rs->hash; + + $_ctx->kutrl_msg = sprintf( + __('Short link for %s is %s'), + html::escapeHTML($url), + '' . $new_url . '' + ); + $core->blog->triggerBlog(); + + # ex: Send new url to messengers + if (!empty($rs)) { + $core->callBehavior('publicAfterKutrlCreate', $core, $rs, __('New public short URL')); + } + } + } + } + + $core->tpl->setPath($core->tpl->getPath(), dirname(__FILE__) . '/default-templates'); + self::serveDocument('kutrl.html'); + return null; + } + + protected static function kutrl404() + { + global $core; + + if (!$core->blog->settings->kUtRL->kutrl_srv_local_404_active) { + self::p404(); + return null; + } + + $core->tpl->setPath($core->tpl->getPath(), dirname(__FILE__) . '/default-templates'); + $_ctx =& $GLOBALS['_ctx']; + $core = $GLOBALS['core']; + + header('Content-Type: text/html; charset=UTF-8'); + http::head(404, 'Not Found'); + $core->url->type = '404'; + $_ctx->current_tpl = 'kutrl404.html'; + $_ctx->content_type = 'text/html'; + + echo $core->tpl->getData($_ctx->current_tpl); + + # --BEHAVIOR-- publicAfterDocument + $core->callBehavior('publicAfterDocument', $core); + exit; + } } class pubKutrl { - # List of template tag which content URL that can be shortenn - public static $know_tags = array( - 'AttachmentURL', - 'CategoryURL', - 'MediaURL', - 'EntryAuthorURL', - 'EntryURL', - 'EntryCategoryURL', - 'CommentAuthorURL', - 'CommentPostURL' - ); - - # Disable URL shoretning on filtered tag - public static function templateBeforeValue($core,$tag,$attr) - { - if (!empty($attr['disable_kutrl']) && in_array($tag,pubKutrl::$know_tags)) - { - return ''; - } - return; - } + # List of template tag which content URL that can be shortenn + public static $know_tags = [ + 'AttachmentURL', + 'CategoryURL', + 'MediaURL', + 'EntryAuthorURL', + 'EntryURL', + 'EntryCategoryURL', + 'CommentAuthorURL', + 'CommentPostURL' + ]; - # Re unable it after tag - public static function templateAfterValue($core,$tag,$attr) - { - if (!empty($attr['disable_kutrl']) && in_array($tag,pubKutrl::$know_tags)) - { - return ''; - } - return; - } - - # Replace long urls on the fly (on filter) for default tags - public static function publicBeforeContentFilter($core,$tag,$args) - { - # Unknow tag - if (!in_array($tag,pubKutrl::$know_tags)) return; - - # URL shortening is disabled by tag attribute - if (empty($GLOBALS['disable_kutrl'])) - { - # kUtRL is not activated - if (!$core->blog->settings->kUtRL->kutrl_active - || !$core->blog->settings->kUtRL->kutrl_tpl_active) return; - - global $_ctx; - - # Oups - if (!$_ctx->exists('kutrl')) return; - - # Existing - if (false !== ($kutrl_rs = $_ctx->kutrl->isKnowUrl($args[0]))) - { - $args[0] = $_ctx->kutrl->url_base.$kutrl_rs->hash; - } - # New - elseif (false !== ($kutrl_rs = $_ctx->kutrl->hash($args[0]))) - { - $args[0] = $_ctx->kutrl->url_base.$kutrl_rs->hash; - - # ex: Send new url to messengers - if (!empty($kutrl_rs)) - { - $core->callBehavior('publicAfterKutrlCreate',$core,$kutrl_rs,__('New public short URL')); - } - } - } - } - - public static function publicBeforeDocument($core) - { - global $_ctx; - $s = $core->blog->settings->kUtRL; + # Disable URL shoretning on filtered tag + public static function templateBeforeValue($core, $tag, $attr) + { + if (!empty($attr['disable_kutrl']) && in_array($tag,pubKutrl::$know_tags)) { + return ''; + } + return null; + } - # Passive : all kutrl tag return long url - $_ctx->kutrl_passive = (boolean) $s->kutrl_tpl_passive; - - if (!$s->kutrl_active || !$s->kutrl_tpl_service) return; - - if (null === ($kut = kutrl::quickPlace('tpl'))) return; - - $_ctx->kutrl = $kut; - } - - public static function publicHeadContent($core) - { - $css = $core->blog->settings->kUtRL->kutrl_srv_local_css; - if ($css) - { - echo - "\n \n". - "\n"; - } - } + # Re unable it after tag + public static function templateAfterValue($core, $tag, $attr) + { + if (!empty($attr['disable_kutrl']) && in_array($tag,pubKutrl::$know_tags)) { + return ''; + } + return null; + } + + # Replace long urls on the fly (on filter) for default tags + public static function publicBeforeContentFilter($core, $tag, $args) + { + # Unknow tag + if (!in_array($tag,pubKutrl::$know_tags)) { + return null; + } + # URL shortening is disabled by tag attribute + if (empty($GLOBALS['disable_kutrl'])) { + # kUtRL is not activated + if (!$core->blog->settings->kUtRL->kutrl_active + || !$core->blog->settings->kUtRL->kutrl_tpl_active) { + return null; + } + + global $_ctx; + + # Oups + if (!$_ctx->exists('kutrl')) { + return null; + } + # Existing + if (false !== ($kutrl_rs = $_ctx->kutrl->isKnowUrl($args[0]))) { + $args[0] = $_ctx->kutrl->url_base . $kutrl_rs->hash; + # New + } elseif (false !== ($kutrl_rs = $_ctx->kutrl->hash($args[0]))) { + $args[0] = $_ctx->kutrl->url_base . $kutrl_rs->hash; + + # ex: Send new url to messengers + if (!empty($kutrl_rs)) { + $core->callBehavior('publicAfterKutrlCreate', $core, $kutrl_rs, __('New public short URL')); + } + } + } + } + + public static function publicBeforeDocument($core) + { + global $_ctx; + $s = $core->blog->settings->kUtRL; + + # Passive : all kutrl tag return long url + $_ctx->kutrl_passive = (boolean) $s->kutrl_tpl_passive; + + if (!$s->kutrl_active || !$s->kutrl_tpl_service) { + return null; + } + if (null === ($kut = kutrl::quickPlace('tpl'))) { + return null; + } + $_ctx->kutrl = $kut; + } + + public static function publicHeadContent($core) + { + $css = $core->blog->settings->kUtRL->kutrl_srv_local_css; + if ($css) { + echo + "\n \n" . + "\n"; + } + } } class tplKutrl { - public static function pageURL($attr) - { - $f = $GLOBALS['core']->tpl->getFilters($attr); - return 'blog->url.$core->url->getBase("kutrl")').'; ?>'; - } - - public static function pageIf($attr,$content) - { - $operator = isset($attr['operator']) ? self::getOperator($attr['operator']) : '&&'; - - if (isset($attr['is_active'])) - { - $sign = (boolean) $attr['is_active'] ? '' : '!'; - $if[] = $sign.'$core->blog->settings->kUtRL->kutrl_srv_local_public'; - } - - if (empty($if)) - { - return $content; - } - - return - "\n". - $content. - "\n"; - } - - public static function pageMsgIf($attr,$content) - { - $operator = isset($attr['operator']) ? self::getOperator($attr['operator']) : '&&'; - - if (isset($attr['has_message'])) - { - $sign = (boolean) $attr['has_message'] ? '!' : '='; - $if[] = '"" '.$sign.'= $_ctx->kutrl_msg'; - } - - if (empty($if)) - { - return $content; - } - - return - "\n". - $content. - "\n"; - } - - public static function pageMsg($attr) - { - return 'kutrl_msg; ?>'; - } - - public static function humanField($attr) - { - return "kutrl_hmf); ?>"; - } - - public static function humanFieldProtect($attr) - { - return - "kutrl_hmfp; ?>\" />". - "formNonce(); ?>"; - } - - public static function AttachmentKutrlIf($attr,$content) - { - return self::genericKutrlIf('$attach_f->file_url',$attr,$content); - } - - public static function AttachmentKutrl($attr) - { - return self::genericKutrl('$attach_f->file_url',$attr); - } - - public static function MediaKutrlIf($attr,$content) - { - return self::genericKutrlIf('$_ctx->file_url',$attr,$content); - } - - public static function MediaKutrl($attr) - { - return self::genericKutrl('$_ctx->file_url',$attr); - } - - public static function EntryAuthorKutrlIf($attr,$content) - { - return self::genericKutrlIf('$_ctx->posts->user_url',$attr,$content); - } - - public static function EntryAuthorKutrl($attr) - { - return self::genericKutrl('$_ctx->posts->user_url',$attr); - } - - public static function EntryKutrlIf($attr,$content) - { - return self::genericKutrlIf('$_ctx->posts->getURL()',$attr,$content); - } - - public static function EntryKutrl($attr) - { - return self::genericKutrl('$_ctx->posts->getURL()',$attr); - } - - public static function CommentAuthorKutrlIf($attr,$content) - { - return self::genericKutrlIf('$_ctx->comments->getAuthorURL()',$attr,$content); - } - - public static function CommentAuthorKutrl($attr) - { - return self::genericKutrl('$_ctx->comments->getAuthorURL()',$attr); - } - - public static function CommentPostKutrlIf($attr,$content) - { - return self::genericKutrlIf('$_ctx->comments->getPostURL()',$attr,$content); - } - - public static function CommentPostKutrl($attr) - { - return self::genericKutrl('$_ctx->comments->getPostURL()',$attr); - } - - protected static function genericKutrlIf($str,$attr,$content) - { - $operator = isset($attr['operator']) ? self::getOperator($attr['operator']) : '&&'; - - if (isset($attr['is_active'])) - { - $sign = (boolean) $attr['is_active'] ? '' : '!'; - $if[] = $sign.'$_ctx->exists("kutrl")'; - } - - if (isset($attr['passive_mode'])) - { - $sign = (boolean) $attr['passive_mode'] ? '' : '!'; - $if[] = $sign.'$_ctx->kutrl_passive'; - } - - if (isset($attr['has_kutrl'])) - { - $sign = (boolean) $attr['has_kutrl'] ? '!' : '='; - $if[] = '($_ctx->exists("kutrl") && false '.$sign.'== $_ctx->kutrl->select('.$str.',null,null,"kutrl"))'; - } - - if (empty($if)) - { - return $content; - } - return - "\n". - $content. - "\n"; - } - - protected static function genericKutrl($str,$attr) - { - $f = $GLOBALS['core']->tpl->getFilters($attr); - return - "preview) { \n". - " echo ".sprintf($f,$str)."; ". - "} else { \n". - # Disable - "if (!\$_ctx->exists('kutrl')) { \n". - # Passive mode - " if (\$_ctx->kutrl_passive) { ". - " echo ".sprintf($f,$str)."; ". - " } \n". - "} else { \n". - # Existing - " if (false !== (\$kutrl_rs = \$_ctx->kutrl->isKnowUrl(".$str."))) { ". - " echo ".sprintf($f,'$_ctx->kutrl->url_base.$kutrl_rs->hash')."; ". - " } \n". - # New - " elseif (false !== (\$kutrl_rs = \$_ctx->kutrl->hash(".$str."))) { ". - " echo ".sprintf($f,'$_ctx->kutrl->url_base.$kutrl_rs->hash')."; ". - - # ex: Send new url to messengers - " if (!empty(\$kutrl_rs)) { ". - " \$core->callBehavior('publicAfterKutrlCreate',\$core,\$kutrl_rs,__('New public short URL')); ". - " } \n". - - " } \n". - " unset(\$kutrl_rs); \n". - "} \n". - "} \n". - "?>\n"; - } - - protected static function getOperator($op) - { - switch (strtolower($op)) - { - case 'or': - case '||': - return '||'; - case 'and': - case '&&': - default: - return '&&'; - } - } + public static function pageURL($attr) + { + $f = $GLOBALS['core']->tpl->getFilters($attr); + return 'blog->url.$core->url->getBase("kutrl")') . '; ?>'; + } + + public static function pageIf($attr, $content) + { + $operator = isset($attr['operator']) ? self::getOperator($attr['operator']) : '&&'; + + if (isset($attr['is_active'])) { + $sign = (boolean) $attr['is_active'] ? '' : '!'; + $if[] = $sign . '$core->blog->settings->kUtRL->kutrl_srv_local_public'; + } + if (empty($if)) { + return $content; + } + + return + "\n" . + $content . + "\n"; + } + + public static function pageMsgIf($attr, $content) + { + $operator = isset($attr['operator']) ? self::getOperator($attr['operator']) : '&&'; + + if (isset($attr['has_message'])) { + $sign = (boolean) $attr['has_message'] ? '!' : '='; + $if[] = '"" ' . $sign . '= $_ctx->kutrl_msg'; + } + if (empty($if)) { + return $content; + } + + return + "\n" . + $content . + "\n"; + } + + public static function pageMsg($attr) + { + return 'kutrl_msg; ?>'; + } + + public static function humanField($attr) + { + return "kutrl_hmf); ?>"; + } + + public static function humanFieldProtect($attr) + { + return + "kutrl_hmfp; ?>\" />". + "formNonce(); ?>"; + } + + public static function AttachmentKutrlIf($attr, $content) + { + return self::genericKutrlIf('$attach_f->file_url', $attr, $content); + } + + public static function AttachmentKutrl($attr) + { + return self::genericKutrl('$attach_f->file_url', $attr); + } + + public static function MediaKutrlIf($attr, $content) + { + return self::genericKutrlIf('$_ctx->file_url', $attr, $content); + } + + public static function MediaKutrl($attr) + { + return self::genericKutrl('$_ctx->file_url', $attr); + } + + public static function EntryAuthorKutrlIf($attr, $content) + { + return self::genericKutrlIf('$_ctx->posts->user_url', $attr, $content); + } + + public static function EntryAuthorKutrl($attr) + { + return self::genericKutrl('$_ctx->posts->user_url', $attr); + } + + public static function EntryKutrlIf($attr,$content) + { + return self::genericKutrlIf('$_ctx->posts->getURL()', $attr, $content); + } + + public static function EntryKutrl($attr) + { + return self::genericKutrl('$_ctx->posts->getURL()', $attr); + } + + public static function CommentAuthorKutrlIf($attr, $content) + { + return self::genericKutrlIf('$_ctx->comments->getAuthorURL()', $attr, $content); + } + + public static function CommentAuthorKutrl($attr) + { + return self::genericKutrl('$_ctx->comments->getAuthorURL()', $attr); + } + + public static function CommentPostKutrlIf($attr, $content) + { + return self::genericKutrlIf('$_ctx->comments->getPostURL()', $attr, $content); + } + + public static function CommentPostKutrl($attr) + { + return self::genericKutrl('$_ctx->comments->getPostURL()', $attr); + } + + protected static function genericKutrlIf($str, $attr, $content) + { + $operator = isset($attr['operator']) ? self::getOperator($attr['operator']) : '&&'; + + if (isset($attr['is_active'])) { + $sign = (boolean) $attr['is_active'] ? '' : '!'; + $if[] = $sign . '$_ctx->exists("kutrl")'; + } + if (isset($attr['passive_mode'])) { + $sign = (boolean) $attr['passive_mode'] ? '' : '!'; + $if[] = $sign . '$_ctx->kutrl_passive'; + } + if (isset($attr['has_kutrl'])) { + $sign = (boolean) $attr['has_kutrl'] ? '!' : '='; + $if[] = '($_ctx->exists("kutrl") && false ' . $sign . '== $_ctx->kutrl->select(' . $str . ',null,null,"kutrl"))'; + } + if (empty($if)) { + return $content; + } + return + "\n" . + $content . + "\n"; + } + + protected static function genericKutrl($str, $attr) + { + $f = $GLOBALS['core']->tpl->getFilters($attr); + return + "preview) { \n" . + " echo " . sprintf($f, $str) . "; " . + "} else { \n" . + # Disable + "if (!\$_ctx->exists('kutrl')) { \n" . + # Passive mode + " if (\$_ctx->kutrl_passive) { " . + " echo " . sprintf($f, $str) . "; " . + " } \n" . + "} else { \n" . + # Existing + " if (false !== (\$kutrl_rs = \$_ctx->kutrl->isKnowUrl(" . $str . "))) { " . + " echo " . sprintf($f, '$_ctx->kutrl->url_base.$kutrl_rs->hash') . "; " . + " } \n" . + # New + " elseif (false !== (\$kutrl_rs = \$_ctx->kutrl->hash(" . $str . "))) { " . + " echo " . sprintf($f, '$_ctx->kutrl->url_base.$kutrl_rs->hash') . "; " . + + # ex: Send new url to messengers + " if (!empty(\$kutrl_rs)) { " . + " \$core->callBehavior('publicAfterKutrlCreate',\$core,\$kutrl_rs,__('New public short URL')); " . + " } \n" . + + " } \n" . + " unset(\$kutrl_rs); \n" . + "} \n" . + "} \n" . + "?>\n"; + } + + protected static function getOperator($op) + { + switch (strtolower($op)) { + case 'or': + case '||': + return '||'; + case 'and': + case '&&': + default: + return '&&'; + } + } } class hmfKutrl { - public static $chars = 'abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ23456789'; - - public static function create($len=6) - { - $res = ''; - $chars = self::$chars; + public static $chars = 'abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ23456789'; - for($i = 0;$i < $len; $i++) - { - $res .= $chars[rand(0,strlen($chars)-1)]; - } - - return $res; - } - - public static function protect($str) - { - $res = ''; - $chars = self::$chars; + public static function create($len=6) + { + $res = ''; + $chars = self::$chars; + for($i = 0; $i < $len; $i++) { + $res .= $chars[rand(0, strlen($chars)-1)]; + } + return $res; + } - for($i = 0; $i < strlen($str);$i++) - { - $res .= $chars[rand(0,strlen($chars)-1)].$str[$i]; - } - - return $res; - } - - public static function unprotect($str) - { - $res = ''; + public static function protect($str) + { + $res = ''; + $chars = self::$chars; + for($i = 0; $i < strlen($str); $i++) + { + $res .= $chars[rand(0, strlen($chars)-1)] . $str[$i]; + } + return $res; + } - for($i = 0; $i < strlen($str);$i++) - { - $i++; - $res .= $str[$i]; - } - - return $res; - } -} -?> \ No newline at end of file + public static function unprotect($str) + { + $res = ''; + for($i = 0; $i < strlen($str); $i++) { + $i++; + $res .= $str[$i]; + } + return $res; + } +} \ No newline at end of file