在TYPO3 3的流体中还是在Fedext/vhs中,是否有一种可以转换的病毒?
http://www.stackoverflow.com/questions/ask转到
www.stackoverflow.comPS:这就是目标:
<f:format.raw><f:link.external uri="{item.link}">{item.just-display-the-domain}</f:link.external></f:format.raw>编辑(根据我得到的答案修改问题):如果我必须构建一个定制的视图助手,我该如何继续呢?
发布于 2013-12-10 19:55:29
我真的怀疑是否有任何合理的理由将这种VH添加到核心中,事实上,编写自定义VH就像小菜一碟(当您最终意识到这一点时),因此devs可以在几分钟内在他们的定制工具exts中创建简单的格式化器。
即。在TYPO3 4.x中,假设您有一个带有键urs的自定义扩展,只需创建一个适当的类,其中包含render($params)方法和扩展Tx_Fluid_Core_ViewHelper_AbstractViewHelper类:
/typo3conf/ext/urs/Classes/ViewHelpers/GetDomainViewHelper.php
<?php
class Tx_Urs_ViewHelpers_GetDomainViewHelper extends Tx_Fluid_Core_ViewHelper_AbstractViewHelper {
/**
* @param $link string Each `allowed` param need to have its line in PHPDoc
* @return string
*/
public function render($link) {
$link = str_replace('http://', '', $link);
$link = str_replace('https://', '', $link);
$segments = explode('/', $link);
return trim($segments[0]);
}
}
?>下一个在您的临时程序中声明它的命名空间和..。仅此而已,你可以用它:
{namespace urs=Tx_Urs_ViewHelpers}
<urs:getDomain link="http://stackoverflow.com/questions/20499453" />在诸如Tx_Urs_ViewHelpers...之类的事情上要特别注意字母箱。
关于http://docs.typo3.org/typo3cms/ExtbaseFluidBook/8-Fluid/8-developing-a-custom-viewhelper.html的更多细节
在TYPO3 ver.6.x
事情很相似,当然,主要的变化是新的名称空间。
/typo3conf/ext/urs/Classes/ViewHelpers/GetDomainViewHelper.php
<?php
namespace TYPO3\Urs\ViewHelpers;
class GetDomainViewHelper extends \TYPO3\CMS\Fluid\Core\ViewHelper\AbstractViewHelper {
/**
* @param $link string Each `allowed` param need to have its line in PHPDoc
* @return string
*/
public function render($link) {
$link = str_replace('http://', '', $link);
$link = str_replace('https://', '', $link);
$segments = explode('/', $link);
return trim($segments[0]);
}
}在模板中:
{namespace urs=TYPO3\Urs\ViewHelpers}
<urs:getDomain link="http://stackoverflow.com/questions/20499453" />当然,在这两种情况下,您不会使用硬编码链接,而是使用:
<urs:getDomain link="{item.link}" />发布于 2013-12-10 17:37:10
所有ViewHelper都位于typo3/sysext/fluid/Classess/ViewHelper。每个文件的头中也有示例。所有的Fedext的ViewHelper都可以在网站上进行回顾。
https://stackoverflow.com/questions/20499453
复制相似问题