扩展用于视频的SilverStripe文件类

扩展用于视频的SilverStripe文件类,silverstripe,Silverstripe,我正在尝试扩展文件/图像类,以将.mp4文件识别为视频类,而不是文件类 我的代码是: VideoExtension.php class VideoExtension extends DataExtension { private static $db = array( 'IsAnimation' => 'Boolean', 'AssociatedStaticPage' => 'Text', 'BarCode' => 'Te

我正在尝试扩展
文件
/
图像
类,以将
.mp4
文件识别为
视频
类,而不是
文件

我的代码是:

VideoExtension.php

class VideoExtension extends DataExtension
{
    private static $db = array(
        'IsAnimation' => 'Boolean',
        'AssociatedStaticPage' => 'Text',
        'BarCode' => 'Text'
    );

    public function updateCMSFields(FieldList $fields)
    {
        $fields->addFieldToTab('Root.Main', TextField::create('BarCode', 'Bar Code'));
        $fields->addFieldToTab('Root.Main', TextField::create('AssociatedStaticPage', 'URL'));
    }
}
mysite/_config/config.yml

Name: mysite
After:
  - 'framework/*'
  - 'cms/*'
---
# YAML configuration for SilverStripe
# See http://doc.silverstripe.org/framework/en/topics/configuration
# Caution: Indentation through two spaces, not tabs
SSViewer:
  theme: 'simple'

File:
  extensions:
    - VideoExtension
这样我就犯了一个错误。如果我在
config.yml
中将文件更改为图像,它就会工作。我想要这个,这样我就可以在管理部分添加自定义字段


非常感谢您的帮助。

我相信您希望创建一个扩展
文件的类,而不是创建
数据扩展名。如下所示:

class Video extends File {

    private static $allowed_extensions = array(
        'mpeg', 'mpg', 'mp4', 'm1v', 'mp2', 'mpa', 'mpe', 'ifo', 
        'vob','avi', 'wmv', 'asf', 'm2v', 'qt', 'ogv', 'webm'
    );

    private static $db = array(
        'IsAnimation' => 'Boolean',
        'AssociatedStaticPage' => 'Text',
        'BarCode' => 'Text'
    );


    public function getCMSFields() {
        $fields = parent::getCMSFields();

        $fields->addFieldToTab('Root.Main', TextField::create('BarCode', 'Bar Code'));
        $fields->addFieldToTab('Root.Main', TextField::create('AssociatedStaticPage', 'URL'));

        return $fields;
    }

}
然后,我们需要通过为文件扩展名设置
文件
类来为这些文件扩展名设置此类。我们可以在我们的
mysite/_config/config.yml
文件中执行此操作:

File:
  class_for_file_extension:
    'mpeg': 'Video'
    'mpg': 'Video'
    'mp4': 'Video'
    'm1v': 'Video'
    'mp2': 'Video'
    'mpa': 'Video'
    'mpe': 'Video'
    'ifo': 'Video'
    'vob': 'Video'
    'avi': 'Video'
    'wmv': 'Video'
    'asf': 'Video'
    'm2v': 'Video'
    'qt': 'Video'
    'ogv': 'Video'
    'webm': 'Video'

请您在问题中包括代码的相关部分好吗?还有:你犯了什么错误?谢谢@3dgoo清理我的帖子,你可以看到我在发帖时不知道自己在做什么。很高兴为你提供帮助。我们都是从某个地方开始的。仅仅扩展文件并不能将其剪切…您还必须正确地将
视频
类分配给asset admin上传。谢谢@bummzack,您是对的。我为文件扩展名添加了
class\u,需要设置该扩展名才能将
Video
类分配给正确的文件扩展名。谢谢你的回答