[TYPO3-UG Dutch] storage pid

Leen Strijk leenstrijk at tomaatnet.nl
Wed Nov 7 10:14:22 CET 2007


Hoi Patrick,

Heel erg bedankt voor jouw verhelderende uitleg.
Ik ben dus aan de hand van de form_extension_tut aan het oefenen(leren).
Wordt wel goed uitgelegd maar in deze uitleg wordt weinig gebruik 
gemaakt van de api. Dat valt me wel op omdat ik dacht dat goed extensies 
schrijven, inhield dat je eerst de api gebruik en dan pas alternatieven.
Ik begrijp ook niet zo goed waarom er in die tut's, ook die film van 
kasper, normale select en insert query's gebruikt worden terwijl er in 
de api functies voor zijn.
Hetzelfde geld voor de storagepage. In deze tut wordt het uitgelegd met 
gebruik van een sysmap, maar de code gebruikt $GLOBALS['TSFE']->id
En dan wordt het toch echt alleen opgeslagen in de pagina waar de plugin 
staat. Als je kennis/ervarings niveau, zoals bij mij, laag is dan is dat 
soms wel verwarrend.
Voor ervaren php-ers die ook gewend zijn aan api's zal het wel wat 
logischer zijn maar voor mij voorlopig nog niet.

In ieder geval zat ik met mijn if statement bijna op het goede spoor.
En het is niet het werk wat me doet twijfelen maar meer de angst om het 
verkeerd aan te leren.

Nogmaals bedankt

gr Leen



Patrick Broens schreef:
> Leen,
> 
> Het is beter om de storagePid op te nemen in de configuratie van de 
> extensie (Typoscript en/of Flexform), eventueel recursief. Op die manier 
> houdt je de configuratie voor de extensie centraler. Bijna alle 
> extensies die gebruik maken van sysfolders als opslagplaats maken hier 
> gebruik van. In je extensie kun je dan opnemen dat wanneer 
> $this->conf['storagePid'} leeg is, de records gelezen moeten worden van 
> de pagina waarop de plugin geplaatst is, dus $GLOBALS['TSFE']->id;
> 
> Ik ben zelf geen voorstander van het gebruik van de General Storage 
> Page. Als er meerdere plugins gebruik van maken, dan dienen de records 
> van al deze extensies in deze map opgeslagen te worden, terwijl ik ze 
> juist allemaal in een eigen toebedeelde map wil plaatsen.
> 
> In jouw situatie moet je de plugin in de pagina plaatsen en vervolgens 
> de storagePid opgeven in de page record. Dat maakt het overzicht er niet 
> duidelijk op omdat de configuratie niet centraal geregeld wordt maar 
> over meerdere plaatsen. En ja, ook in deze situatie dien je een if 
> statement te gebruiken om te kijken of er een waarde ingevuld is in de 
> page['storage_pid'], maar is dat nou zoveel werk? :-)
> 
> Mijn advies dus: storagePid opnemen in de extensie.
> 
> Patrick
> 
> Leen Strijk wrote:
>> Hallo,
>>
>> Ik heb in een formulier (met kickstarter gemaakt)
>> in de insertquery :
>> 'pid'=> $GLOBALS['TSFE']->id
>> dit is pid waar de gegevens worden opgeslagen.
>>
>> Alleen  $GLOBALS['TSFE']->id staat voor de pid van de pagina waar de 
>> plugin staat.
>>
>> Ik wil dit vervangen door de storage_pid uit de pages tabel.
>>
>> Nu heb ik met debug($GLOBALS['TSFE']); wel het volgende gevonden:
>>
>> $GLOBALS['TSFE']->page['storage_pid']
>>
>> Deze geeft de juiste waarde terug, alleen nu is het zo dat als er geen 
>> sysmap wordt opgegeven krijgt hij geen waarde mee (0 dus)
>>
>> Ik kan me niet voorstellen dat ik nu een if statemant moet maken om 
>> eerst te kijken of $GLOBALS['TSFE']->page['storage_pid'] 0 is en else
>> 'pid'=> $GLOBALS['TSFE']->id te gebruiken.
>>
>> Mijn vraag:
>> Hoe kan ik nu het beste de pid opgeven?
>>
>> Alvast bedankt


-- 
<style type="text/css">
<!--
body,td,th {
	font-family: Georgia, Times New Roman, Times, serif;
	font-size: 12px;
	color: #660000;
}
a:link {
	color: #660000;
}
-->
</style>
<table width="200px" border="1" cellpadding="5" cellspacing="0" 
bordercolor="#660000" bgcolor="#CCCCCC">
   <tr>
     <td>Leen Strijk<br>
www.strijkinternetdiensten.nl<br>
info at strijkinternetdiensten.nl<br>
tel. 0513707415 <br>
gsm. 06-19079010</td>
   </tr>
</table>



More information about the TYPO3-UG-dutch mailing list