如何在SocialEngine模块中包括外部文件

时间:2018-08-14 13:36:58

标签: socialengine

我创建了一个名为MyAwesomeModule的SocialEngine模块,该模块向现有的SocialEngine注册过程添加了注册步骤。它在application/modules/Myawesomemodule中。除了此目录中的文件外,它还取决于其他文件,例如专门为此模块创建的几个文件放置在application/modules/User中。我的问题是,当我在http://example.com/install/sdk/build中为此模块构建软件包时,它仅包含模块目录本身中的文件。软件包中不包含此模块正常工作所需的其他文件,并且需要将其复制到外部目录(application/modules/User)。

在构建软件包之前,我尝试在软件包信息文件即application/packages/module-myawesomemodule-4.0.0.json中添加外部文件列表:

"application\/modules\/User": {
    "type": "directory",
    "path": "application\/modules\/User",
    "structure": [
        {
            "path": "Plugin\/Signup\/Phone.php",
            "dir": false,
            "file": true,
            "perms": "0644",
            "size": 0,
            "sha1": null
        },
        {
            "path": "Form\/Signup\/Phone.php",
            "dir": false,
            "file": true,
            "perms": "0644",
            "size": 0,
            "sha1": null
        },
        {
            "path": "controllers\/PhoneController.php",
            "dir": false,
            "file": true,
            "perms": "0644",
            "size": 0,
            "sha1": null
        }
    ]
}

但是,上述片段中命名的外部文件在构建时不会复制到软件包中。另外,似乎我在JSON文件中命名的外部文件在安装后已消失在目标软件包中。 我怎么解决这个问题?

1 个答案:

答案 0 :(得分:0)

这要比我想象的要容易得多,这要感谢this SocialEngine Community post
将您想要的每个文件添加到包中,只需要将其包含在模块的manifest.php文件中即可。因此:

return array(
    'package' =>
    array(
        'type' => 'module',
        'name' => 'advancedsmsplugin',
        'version' => '4.0.0',
        'sku' => 'com.company.sms',
        'path' => 'application/modules/Advancedsmsplugin',
        'title' => 'Advanced SMS Plugin',
        'description' => 'Advanced SMS Plugin',
        'author' => 'Company Ltd.',
        'callback' =>
        array(
            'class' => 'Engine_Package_Installer_Module',
        ),
        'actions' =>
        array(
            0 => 'install',
            1 => 'upgrade',
            2 => 'refresh',
            3 => 'enable',
            4 => 'disable',
        ),
        'directories' =>
        array(
            0 => 'application/modules/Advancedsmsplugin',
        ),
        'files' =>
        array(
            0 => 'application/languages/en/advancedsmsplugin.csv',
            1 => 'application/modules/User/Form/Signup/Phone.php',
            2 => 'application/modules/User/Plugin/Signup/Phone.php',
            3 => 'application/testpackage.html'
        ),
    ),
);
?>