检查液压油中的TYPO3连杆类型 [英] Check TYPO3 link type in fluid

查看:62
本文介绍了检查液压油中的TYPO3连杆类型的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想绘制一个错字链接,但是我需要检查它是否是下载文件(t3://file?uid = 1),页面链接(t3://page?uid = 1)还是外部链接( https://www.abc.de _blank).有没有一种方法或Viewhelper可以检查流体中的链接类型?

I want to render a typolink in fluid, but i need to check if it is a download file (t3://file?uid=1), a page link (t3://page?uid=1) or an external link (https://www.abc.de _blank). Is there a way or viewhelper to check the linktype in fluid?

我发现的只是打字错误或像VHS这样的骇客方式

What i found were only via typoscript or a hacky way with VHS like

<f:if condition="{target -> v:math.round()} > 0">

用于TYPO3 9.x

It's for TYPO3 9.x

推荐答案

这是我现在正在使用的ViewHelper:

This is the ViewHelper i am using now:

/**
 * A view helper for rendering the linktype
 *
 * = Examples =
 *
 * <code>
 * {nc:linkType(parameter: link)}
 * </code>
 * <output>
 * page, file, url, email, folder, unknown
 * </output>
 */
class LinkTypeViewHelper extends AbstractViewHelper
{
    use CompileWithRenderStatic;

    /**
     * Initialize arguments
     */
    public function initializeArguments()
    {
        $this->registerArgument('parameter', 'string', 'stdWrap.typolink style parameter string', true);
    }

    /**
     * @param array $arguments
     * @param \Closure $renderChildrenClosure
     * @param RenderingContextInterface $renderingContext
     * @return string Linktype (page, file, url, email, folder, unknown)
     */
    public static function renderStatic(array $arguments, \Closure $renderChildrenClosure, RenderingContextInterface $renderingContext)
    {
        $parameter = $arguments['parameter'];

        // workaround if parameter has _blank or other additional params
        $arr = explode(' ',trim($parameter));
        $firstparameter = $arr[0];

        $linkService = GeneralUtility::makeInstance(LinkService::class);
        $linkDetails = $linkService->resolve($firstparameter);

        return $linkDetails['type'];

    }
}

这篇关于检查液压油中的TYPO3连杆类型的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆