Tvorba odkazov vo FE moduloch
Jednoduché odkazy
Podľa originálu: Creating links in frontend plugins, Robert Lemke
Uvedieme príklad pre každú funkciu. Sú to jednoduché príklady, ktoré nevyužijú všetky možnosti triedy pi_base a parametre funkcií.
pi_getPageLink:
// Odkaz na rodičovskú stránku, ak neexistuje
// tak odkaz na aktuálnu stránku:
if (intval($GLOBALS['TSFE']->page['pid'])) {
$label = 'parent page';
$id = $GLOBALS['TSFE']->page['pid'];
} else {
$label = 'this page';
$id = $GLOBALS['TSFE']->id;
}
// URL pre formulár:
$link = $this->pi_getPageLink($id);
$out = '
<form action="'.$link.'">
<input type="submit" value="' . $label . '" />
</form>
';
pi_linkToPage:
// Príprava premenných:
$label = 'Do the magic on a different page';
$id = 43; // ID stránky
$params = array (
'doTheMagic' => 1
);
// Vytvorenie odkazu:
$out = $this->pi_linkToPage($label, $id, '', $params);
pi_linkTP:
// Príprava premenných:
$counter = intval (t3lib_div::_GP('tx_myext_counter'));
$label = 'Increase by 1';
$params = array (
'tx_myext_counter' => $counter + 1,
'tx_myext_mood' => t3lib_div::_GP('tx_myext_mood'),
);
// Vytvorenie odkazu:
$out = 'The current value is ' . $counter;
$out .= $this->pi_linkTP ($label, $params);
Poznámka: Niektoré príklady používajú funkciu t3lib_div::_GP(), ktorá vracia GET and POST premenné. Ak nepoznáte triedu t3lib_div, pozrite si ju v adresári t3lib/. Obsahuje celú kolekciu veľmi užitočšných funkcií pre tvorbu nových modulov.
piVars
Toto nie je funkcia,. ale pole triedy pi_base, ktoré môžeme použiť v našich moduloch. Vložíme do neho nejaké informácie (ktoré budú vygenerované ako GET pole v URL):
$this->piVars['mood'] = 'great';
$this->piVars['boardingSkillLevel'] = 'neverSeenSnow';
Teraz použijeme na vytvorenie odkazu funkciu s postfixom ...keepPIvars v jej názve:
$out = pi_linkTP_keepPIvars ('link to myself');
vygeneruje sa takýto odkaz:
<a href="index.php?id=3&tx_myext[mood]=great&tx_myext[boardingSkillLevel]=neverSeenSnow">link to myself</a>
… alebo volanie funkcie s modifikovanými parametrami:
$out = pi_linkTP_keepPIvars ('link to myself', array ('mood'=>'overwhelmed', 'boardingSkillLevel' => null));
<a href="index.php?id=3&tx_myext[mood]=overwhelmed>link to myself</a>
Tvorba odkazov pomocou cObjGetSingle a typolink
Funkcia cObjGetSingle automaticky rozpozná podlľa parametra $item['url'] či ide o internú alebo externú URL alebo mailovú adresu a podľa toho vygeneruje príslušný odkaz (kompletný anchor element). Konfiguračné pole $confUrl je samozrejme možné načítať z typoscriptu.
// URL address
if( $item['url'] != '' ) {
$confUrl = array(
'url' => 'TEXT',
'url.' => array(
'value' => $item['url'],
'typolink.' => array(
'parameter' => $item['url']
)
)
);
$marks['###URL###'] = $this->cObj->cObjGetSingle( $confUrl['url'], $confUrl['url.'] );
}
// Email address
if( $item['url'] != '' ) {
$confUrl['url.']['value'] = $item['email'];
$confUrl['url.']['typolink.']['parameter'] = $item['email'];
$marks['###EMAIL###'] = $this->cObj->cObjGetSingle( $confUrl['url'], $confUrl['url.'] );
}
| Žiadne dokumenty ani odkazy k tejto stránke. | ||
Generátor typoscriptu
Vytvára typoscript pre bežné použitie. Generátor je jednoduchý na obsluhu, stačí vyplniť zopár položiek formulára.