rtgx

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.