如何在安装模块时在媒体管理器中创建文件夹

时间:2017-10-31 20:26:49

标签: joomla joomla3.0

嘿,我正在Joomla制作我的第一个模块!

当有人安装我的模块时,我想在Joomla!的媒体管理器中创建一个新文件夹。我一直在偷看鸭子,发现了一些信息。但我无法让它发挥作用。可能是因为这些信息可能适用于年长的Joomla!版本。或者我可能已经错误地实施了它。

无论如何,我想出了以下内容:

mod_mymodule.xml

<extension type="module" version="3.8.1" client="site" method="upgrade">
    <files>
        <scriptfile>install.componentname.php</scriptfile> 
    </files>
</extension>

install.createmap.php

<?php 
$destination = JPATH_SITE."/images/mynewmap";
JFolder::create($destination);
?>

有人可以解释一下如何在Joomla 3中安装模块时向媒体管理器(root / images)添加文件夹吗?

1 个答案:

答案 0 :(得分:2)

您需要一个执行安装任务的script.php文件:

https://docs.joomla.org/J3.x:Creating_a_simple_module/Adding_an_install-uninstall-update_script_file

以下是script.php:

的示例内容
<?php
// No direct access to this file
defined('_JEXEC') or die;

class mod_helloWorldInstallerScript
{
    function install($parent) 
    {
        echo '<p>The module has been installed</p>';
    }

    function uninstall($parent) 
    {
        echo '<p>The module has been uninstalled</p>';
    }

    function update($parent) 
    {
        echo '<p>The module has been updated to version' . $parent->get('manifest')->version . '</p>';
    }

    function preflight($type, $parent) 
    {
        echo '<p>Anything here happens before the installation/update/uninstallation of the module</p>';
    }

    function postflight($type, $parent) 
    {
        echo '<p>Anything here happens after the installation/update/uninstallation of the module</p>';
    }
}

它包含一个带有一些方法的类,因此您可以创建必要的文件夹结构。你想扩展postflight方法。