В расширении extbase у меня есть объект FileReference. Первоначально он был создан с помощью extension_builder. Из модели:
/**
* apprenticeshipDocument
*
@var \TYPO3\CMS\Extbase\Domain\Model\FileReference
*/
protected $apprenticeshipDocument = NULL;
и т.п.
В интерфейсе <f:debug>{institution.apprenticeshipDocument}</f:debug>
дает мне следующее:
Первое: originalResource
отсутствует.
Во-вторых: при прямом вызове {agency.apprenticeshipDocument.uidLocal} значение равно NULL! Хотя говорят, что на 450 выше.
Третье: допустим, мы можем получить uidLocal, который соответствует uid в sys_file.
Решение для googlable:
<f:link.page pageUid="{f:uri.image(src:450)}" target="_blank">Text</f:link.page>
указывает не на сам файл PDF, а на визуализированный файл PDF в формате GIF. Все, что я хочу сделать, это вывести путь к файлу (sys_file.identifier
) в виде ссылки ... должен же быть способ, не так ли?
РЕДАКТИРОВАТЬ: Решение, предоставленное Йостом:
<f:if condition="{institution.apprenticeshipDocument}">
<li>
<f:link.page pageUid="{institution.apprenticeshipDocument.originalResource.publicUrl}" target="_blank">Text</f:link.page>
</li>
</f:if>
originalResource
загружается лениво, поэтому правильно бытьNULL
. Просто получите к нему доступ. Я считаю, что вы также можете получить к нему доступ, а затем выполнить f: debug, чтобы увидеть все его поля. Одним из них будетoriginalFile
, который также загружается лениво. - person Jost   schedule 01.05.2015uidLocal
, вероятно, заключается в том, что для него нет геттера, поэтому жидкость не может его прочитать. Чтобы связать файл, я обычно используюv:link.typolink
ViewHelper из EXT: vhs, который можно использовать следующим образом:<v:link.typolink configuration="{parameter: 'file:{variableContainingUid}'}>Linktext</v:link.typoscript>
. В качестве альтернативы вы можете использовать{institution.apprenticeshipDocument.originalResource.publicUrl}
для получения URL (не уверены в точном имени). - person Jost   schedule 01.05.2015<f:link.page pageUid="fileadmin/{institution.apprenticeshipDocument.originalResource.originalFile.identifier}" target="_blank"><f:translate key="tx_stellen_domain_model_institution.apprenticeship_document" /></f:link.page>
, и это нормально, так как на этом сайте только одно файловое хранилище. Я пытался получить полный путь с помощью<f:debug>{institution.apprenticeshipDocument.originalResource.originalFile.storage}</f:debug>
-, но снова не повезло - person Urs   schedule 02.05.2015EXT:vhs
- вы зависите от информации о том, что в папкеfileadmin
находится хранилище, и это единственное хранилище, в котором находится ваш файл. Вы также предполагаете, что идентификатор файла имеет какое-то отношение к URL-адрес файла, наличие которого не гарантируется. - person Jost   schedule 02.05.2015publicUrl
-свойство файла (или ссылки) - есть для него в fileInterface, поэтому и файл, и ссылка на файл имеют это свойство. Кроме того, доступно больше свойств, которые вы не видите в выводе отладки, в основном метаданные - доступ к ним осуществляется с помощью магического получателя. - person Jost   schedule 02.05.2015