Наистина се съмнявам дали ще има някаква разумна причина за добавяне на този вид VH в ядрото, де факто, писането на персонализиран VH е като парче торта (когато най-накрая го осъзнаете), така че прости формати могат да бъдат създадени от разработчиците в техните разширения на персонализирани инструменти само за минути.
т.е. в 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]);
}
}
?>
След това във вашия templae декларирайте неговото пространство от имена и... това е всичко, можете да го използвате:
{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}" />
person
biesior
schedule
10.12.2013