1100111011100100110010101100111

Étiquette : typo3

TYPO3 : squelette d’eID

Voici un bout de code initiant le développement d’un eID avec TYPO3 :
<?php

require_once(PATH_tslib.’class.tslib_pibase.php’);

class tx_myext_eID extends tslib_pibase{

private function init(){

require_once(PATH_tslib.’class.tslib_content.php’);
require_once(PATH_t3lib.’class.t3lib_page.php’);
require_once(t3lib_extMgm::extPath(‘realurl’).’class.tx_realurl.php’);
tslib_eidtools::connectDB();
$this->realurl = t3lib_div::makeInstance(‘tx_realurl’);
$GLOBALS[‘TSFE’]->sys_page = t3lib_div::makeInstance(‘t3lib_pageSelect’);
$GLOBALS[‘TSFE’]->tmpl = t3lib_div::makeInstance(‘t3lib_TStemplate’);
$GLOBALS[‘TSFE’]->config[‘config’][‘tx_realurl_enable’] = 1;
$this->cObj = t3lib_div::makeInstance(‘tslib_cObj’);

}

private function main(){

$this->init();
// .. add you functionality here
// .. for links use $this->geturl($pid, $params): $params are $key => $value pairs

}

private function geturl($pid, $params){

$res = $GLOBALS[‘TYPO3_DB’]->exec_SELECTquery(‘*’, ‘pages’, ‘uid = ‘.(int)$pid);
$pagerow = $GLOBALS[‘TYPO3_DB’]->sql_fetch_assoc($res);
$conf[‘LD’] = $GLOBALS[‘TSFE’]->tmpl->linkData( $pagerow,  », 0,’index.php’,  »,t3lib_div::implodeArrayForUrl( »,$params);
$this->realurl->encodeSpURL($conf, $this);
$url = $conf[‘LD’][‘totalURL’];
return $url;

}

}

$eID = t3lib_div::makeIntance(‘tx_myext_eID’);
$content = $eID->main();
echo $content;
?>

TYPO3 : afficher la dernière requête exécutée

Petit bout de code permettant d’afficher la dernière requête effectuée par TYPO3 sur la base de données.

A mettre au début de code PHP :

$GLOBALS['TYPO3_DB']->store_lastBuiltQuery = 1;

A mettre là où bon nous semble (affichage de la dernière requête, donc après l’exécution de la requête à déboguer) :

echo $GLOBALS['TYPO3_DB']->debug_lastBuiltQuery;

Relations bidirectionnelles dans le TCA de TYPO3

En développant une extension sur ce cher TYPO3, je me suis confronté à un  problème simple de compréhension mais relativement abstrait lors de l’implémentation : créer une relation entre deux table dans le TCA.

L’exemple que je vais prendre est le suivant. Soient une table «employé» et une table «société» dont les champs sont les suivants (mis à part les champs traditionnels TYPO3) :

SOCIETE : nom, adresse
EMPLOYE : nom, prenom, societe_uid

Le problème est le suivant : comment faire le lien entre un employé et la société dans laquelle il travaille ? Si on a une relation 1:1, il n’y a pas de problème, il suffit de déclaré le champs « societe_uid » de la table « employe » de la manière suivante dans tca.php :

http://buzz.typo3.org/teams/core/article/bidirection-mm-relations/

Fièrement propulsé par WordPress & Thème par Anders Norén