概念證明。修改你的需求:
<?php
/**
* Model for Working with the backend cron configuration for export
*
* @author bryan
*/
class Company_Export_Model_Config_Cron extends Mage_Core_Model_Config_Data
{
protected function _afterSave(){
$groupId = $this->getGroupId();
$cronStringPath = 'crontab/jobs/company_export_send_' . $groupId . '/schedule/cron_expr';
$cronModelPath = 'crontab/jobs/company_export_send_' . $groupId . '/run/model';
$value = $this->getData('groups/' . $groupId . '/fields/cron_setting/value');
Mage::getModel('core/config_data')
->load($cronStringPath, 'path')
->setValue($value)
->setPath($cronStringPath)
->save();
Mage::getModel('core/config_data')
->load($cronModelPath, 'path')
->setValue((string) Mage::getConfig()->getNode($cronModelPath))
->setPath($cronModelPath)
->save();
}
}
和config.xml文件:
<?xml version="1.0"?>
<config>
<modules>
<Company_Export>
<version>0.1.0</version>
</Company_Export>
</modules>
<global>
<models>
<company_export>
<class>Company_Export_Model</class>
</company_export>
</models>
<helpers>
<export>
<class>Company_Export_Helper</class>
</export>
</helpers>
<resources>
<export_setup>
<setup>
<module>Company_Export</module>
</setup>
<connection>
<use>core_setup</use>
</connection>
</export_setup>
<export_write>
<connection>
<use>core_write</use>
</connection>
</export_write>
<export_read>
<connection>
<use>core_read</use>
</connection>
</export_read>
</resources>
</global>
<adminhtml>
<acl>
<resources>
<admin>
<children>
<system>
<children>
<config>
<children>
<export>
<title>Order Export Configuration</title>
</export>
</children>
</config>
</children>
</system>
</children>
</admin>
</resources>
</acl>
</adminhtml>
<crontab>
<jobs>
<company_export_send_order>
<run><model>company_export/observer::exportOrderData</model></run>
</company_export_send_order>
</jobs>
</crontab>
</config>
和System.Xml:
<?xml version="1.0"?>
<config>
<tabs>
<feedsconfig translate="label" module="export">
<label>Feeds Configuration</label>
<sort_order>99999</sort_order>
</feedsconfig>
</tabs>
<sections>
<export translate="label" module="export">
<label>Export</label>
<tab>feedsconfig</tab>
<frontend_type>text</frontend_type>
<sort_order>10000</sort_order>
<show_in_default>1</show_in_default>
<show_in_website>0</show_in_website>
<show_in_store>0</show_in_store>
<groups>
<order translate="label">
<label>Order</label>
<frontend_type>text</frontend_type>
<sort_order>2</sort_order>
<show_in_default>1</show_in_default>
<show_in_website>0</show_in_website>
<show_in_store>0</show_in_store>
<fields>
<cron_setting>
<label>How often do you want the cron to run?</label>
<frontend_type>text</frontend_type>
<backend_model>company_export/config_cron</backend_model>
<sort_order>40</sort_order>
<comment>Use Crontab Format (Eg. "*/5 * * * *" for every 5 minutes)</comment>
<show_in_default>1</show_in_default>
<show_in_website>0</show_in_website>
<show_in_store>0</show_in_store>
</cron_setting>
</fields>
</order>
</groups>
</export>
</sections>
</config>
而且,對於所有認爲這必須是新語法的人來說,自1.1.1(大約2009年)以來一直是這種方式 –
爲什麼地球上這實際上沒有任何官方記錄? – ScottSB
非常好找,謝謝李先生! – Jongosi