首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TYPO3 extbase文件下载

TYPO3 extbase文件下载
EN

Stack Overflow用户
提问于 2013-06-24 15:44:37
回答 1查看 4.4K关注 0票数 2

使用Extbase插件,我想显示文件下载链接。我使用的是TYPO3 v6.1FAL文件结构。但是我无法获得原始文件的下载链接。

在文件ext_tables.sql中

代码语言:javascript
复制
CREATE TABLE tx_myext_domain_model_test (
    # ...
    files varchar(255) DEFAULT '' NOT NULL,
    # ...
);

在配置文件/TCA/Test.php中

代码语言:javascript
复制
$TCA['tx_myext_domain_model_test'] = array(
    // ...
    'files' => array(
        'exclude' => 1,
        'label' => 'Files',
        'config' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getFileFieldTCAConfig(
            'files',
            array(
                'appearance' => array(
                    'createNewRelationLinkTitle' => 'LLL:EXT:cms/locallang_ttc.xlf:images.addFileReference'
                ),
            ),
            $GLOBALS['TYPO3_CONF_VARS']['GFX']['imagefile_ext']
        ),
    ),
    // ...
);

在文件Classes/Domain/Model/Test.php中

代码语言:javascript
复制
class Test extends \TYPO3\CMS\Extbase\DomainObject\AbstractEntity
{
    // ...
    /**
     * Files
     * @var \TYPO3\CMS\Extbase\Persistence\ObjectStorage<\TYPO3\CMS\Extbase\Domain\Model\FileReference>
     */
    protected $files;

    /**
     * Returns the files
     *
     * @return \TYPO3\CMS\Extbase\Persistence\ObjectStorage<\TYPO3\CMS\Extbase\Domain\Model\FileReference> $files
     */
    public function getFiles()
    {
        return $this->files;
    }       
}

在文件Classes/Controller/TestController.php中

代码语言:javascript
复制
class TestController extends \TYPO3\CMS\Extbase\Mvc\Controller\ActionController
{
    // ..
    public function listAction() {
        $tests = $this->testRepository->findAll();
        $this->view->assign('tests', $tests);           
    }
    // ..
}

在文件Resources/Private/Templates/Test/List.html中

代码语言:javascript
复制
<f:for each="{tests}" as="test" iteration="itemIterator">
    <f:debug title="Debug of test">{test.files}</f:debug>
    <f:for each="{test.files}" as="file">
    <a href="{f:uri.image(src:file.uid,treatIdAsReference:1)}">
        <f:image src="{file.uid}" alt="" width='101' height="67" treatIdAsReference="1"/>
    </a>
    <p>{file.originalResource.originalFile.title}</p>
</f:for>

这里,如果在调试中,"originalResource“为空。有人知道如何在这里获得原始文件链接吗?谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-24 23:59:30

您是否尝试过:

代码语言:javascript
复制
public function getFiles() {
    $result = array();
    foreach($this->files as $file) {
        $result[] = $file->getOriginalResource();
    }
    return $result;
}

完全未经测试。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17270382

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档