首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >正确使用Extbase中的FAL

正确使用Extbase中的FAL
EN

Stack Overflow用户
提问于 2015-05-23 15:02:39
回答 2查看 1.4K关注 0票数 1

域模型

代码语言:javascript
复制
class Image extends AbstractContent {

    /**
     * @var \TYPO3\CMS\Extbase\Domain\Model\FileReference
     */
    protected $file;

    /**
     * Gets the image file
     *
     * @return \TYPO3\CMS\Extbase\Domain\Model\FileReference
     */
    public function getFile() {
        return $this->file;
    }

    /**
     * Sets the image file
     *
     * @param \TYPO3\CMS\Extbase\Domain\Model\FileReference $file
     * @return void
     */
    public function setFile($file) {
        $this->file = $file;
    }
}

导入服务片段

代码语言:javascript
复制
/**
 * @var \TYPO3\CMS\Core\Resource\ResourceStorage
 */
protected $defaultStorage;

[...]

$this->defaultStorage = ResourceFactory::getInstance()->getDefaultStorage();

[...]

$file = $this->defaultStorage->addFile(
    '/tmp/4711', 
    $this->defaultStorage->getRootLevelFolder(), 
    'foo.jpg', 
    'overrideExistingFile'
);

$falReference = ResourceFactory::getInstance()->createFileReferenceObject(
    array(
        'uid_local' => $file->getUid(),
        'uid_foreign' => uniqid('NEW_'),
        'uid' => uniqid('NEW_'),
    )
);

$reference = GeneralUtility::makeInstance(FileReference::class);
$reference->setOriginalResource($falReference);

$content = GeneralUtility::makeInstance(Image::class);
$content->setFile($reference);

保存$content后,图像可以通过记录和文件获得,但是BE > FILE > File List中的Ref列是-,而不是>= 1。所以它看起来像是参考文献,是多么的破碎。当我使用BE将一个图像添加到记录中时,这一切都很好。我使用的是TYPO3 CMS 7.3-dev。

我的密码怎么了?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-05-23 18:50:50

我在TYPO3的松弛信道中得到了提示。

您只需要分别设置plugin.tx_myext.persistence.updateReferenceIndex = 1 module.tx_myext.persistence.updateReferenceIndex = 1,索引就会更新。

或者,您可以使用\TYPO3\CMS\Core\Database\ReferenceIndex::updateRefIndexTable()

票数 2
EN

Stack Overflow用户

发布于 2015-05-26 21:39:37

当我不得不在扩展中使用FAL时,我找到了以下链接:http://t3-developer.com/extbase-fluid/extensions-erweitern/fal-in-eigenen-extensions/fal-in-typo3-extensions-verwenden/

既然是德语,我将在最短的时间内解释一下那里所做的事情:

  1. 扩展ext_tables.sql中的数据模型,添加一个字符类型的列(例如varchar)
  2. 将列添加到ext_tables.php中TCA数组的列节 ‘'mypictures’\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getFileFieldTCAConfig('image',数组(‘不包括’=> 1‘、标签’=> 'My Pictures‘、'config’=> =>数组(‘=>’=>数组( 'createNewRelationLinkTitle‘=>=>) ),=> 0,=> 99,$GLOBALS‘’TYPO3 3_CONF_VARS‘’imagefile_ext‘),),
  3. 扩展模型文件。注意注解!
  4. 您可以在流体模板中使用媒体。
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30414173

复制
相关文章

相似问题

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