嘿,我正在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)添加文件夹吗?
答案 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方法。