I am using the TYPO3 extension feupload, which relies on extbase. This is my first contact with extbase. But the question is about extbase in general.
I expect TYPO3 to include the usual "IN (current-page)" pid check by default in queries, unless told otherwise - but in extbase that seems to be different. Or at least in my case, it's not working.
In the extension, there is a constants / setup setting, where the storagePid can be set. This works. But we don't want to adapt that parameter manually for each page.
persistence {
# cat=feupload/persistence; type=integer; label=Storage PID of records
storagePid =
}
So how do I make extbase get the PID of the current page automatically as expected?
(Sub-question: I've tried to set plugin.tx_pluginname.persistence.storagePid.data = {page:uid} in setup, but that wouldn't work. What would the TS have to look like to work?)
Well, what you did should work, but you have to write it like this:
plugin.tx_pluginname.persistence.storagePid.data = page:uid
(the {} is only necessary when you insert a data field in an ordinary wrap)
As others pointed out, you have to make sure you include the extension's configuration in your template.
If the above fails, you can programatically set the storagePid in your controller's initializeAction, like so:
$querySettings = $this->myRepository->createQuery()->getQuerySettings();
$querySettings->setStoragePageIds(array($GLOBALS["TSFE"]->id));
$this->myRepository->setDefaultQuerySettings($querySettings);