我需要能够在模块的config.xml中指定Magento版本兼容性:
<config>
<modules>
<MyCompany_MyModule>
<version>0.9.0</version>
<minimum_version>1.7</minimum_version>
</MyCompany_MyModule>
</modules>
...
这看起来不错吗?
答案 0 :(得分:0)
因此,在简单的Magento中,config.xml中没有minimum_version
标记可以实现这种功能。
我亲自使用了最后一步,而不是在检查版本时,而是在Magento管理系统配置中为扩展添加活动标志时。
答案 1 :(得分:0)
在一天结束时,我意识到我可以随心所欲地放置我需要的东西。据我所知,目前还没有Magento的最佳实践。我的问题来自于需要使用modman从Github部署模块列表。这里有一些hacky代码,这个xml最终被使用了:
... //after cloning the repositories, for each module:
$modules = glob('.modman/$moduleName/app/etc/modules/*.xml');
$filename = $modules[0];
$xmlString = file_get_contents($filename, FILE_TEXT);
$xml = simplexml_load_string($xmlString);
$jsonStr = json_encode($xml);
$obj = json_decode($jsonStr);
$modules = $obj->modules;
foreach ($modules as $key=>$module){}
$fullName = explode('_', $key);
$namespace = $fullName[0];
$codePool = $module->codePool;
$channel = $codePool;
$configFile = ".modman/$moduleName/app/code/$channel/$namespace/$moduleName/etc/config.xml";
$configXml = file_get_contents($configFile, FILE_TEXT);
$xml = simplexml_load_string($configXml);
$jsonStr = json_encode($xml);
$obj = json_decode($jsonStr);
$modules = $obj->modules;
$module = reset($modules);
if (isset($module->minimum_version)) {
$minimumVersion = $module->minimum_version;
$magentoVersion = Mage::getVersion();
$tooOld = version_compare($magentoVersion, $minimumVersion, '<');
if ($tooOld < 0) {
$exec = "modman remove $name";
exec($exec, $output);
}
}
完成。