I have written a custom widget. It's run on my local installation (1.8.1), but not in my remote installation (same system).
If i select my widget from the select box i get a fatal error:
Fatal error: Call to a member function toOptionArray() on a non-object in /var/www/vhosts/.../.../app/code/core/Mage/Widget/Block/Adminhtml/Widget/Options.php on line 171
That is my ChooserModel, located in app/code/local/[Namespace]/[Module]/Model/ChooserCategories.php:
class [Namespace]_[Module]_Model_ChooserCategories {
public function toOptionArray() {
$arrOption;
$arrOptions;
$objCategories;
if (Mage::registry('[Namespace]_[Module]_Model_ChooserCategories_value')) {
$arrOptions = Mage::registry('[Namespace]_[Module]_Model_ChooserCategories_value');
} else {
$objCategories = Mage::getModel('catalog/category')->getCollection();
$arrOptions = array();
$arrOption = array();
$arrOption['label'] = '(no filter)';
$arrOption['value'] = 'none';
array_push($arrOptions, $arrOption);
foreach ($objCategories as $objCategory) {
$objCategory->load();
$arrOption = array();
$arrOption['label'] = str_repeat("---", $objCategory->getLevel()) . ' ' . $objCategory->getName();
$arrOption['value'] = $objCategory->getId();
array_push($arrOptions, $arrOption);
}
Mage::register('[Namespace]_[Module]_Model_ChooserCategories_value', $arrOptions);
}
return $arrOptions;
}
}
On line 171 in app/code/core/Mage/Widget/Block/Adminhtml/Widget/Options.php try magento to load the source_model by name. It's look like magento have the model not loaded. If i return the model-name i get the correct one:
[Module]/choosercategories
Take a look into the config.xml for the module:
<?xml version="1.0"?>
<config>
<modules>
<[Namespace]_[Module]>
<version>0.1.0</version>
</[Namespace]_[Module]>
</modules>
<global>
<helpers>
<[module]>
<class>[Namespace]_[Module]_Helper</class>
</[module]>
</helpers>
<blocks>
<[module]>
<class>[Namespace]_[Module]_Block</class>
</[module]>
</blocks>
<models>
<[module]>
<class>[Namespace]_[Module]_Model</class>
</[module]>
</models>
</global>
</config>
Can anybody find the bug, or does someone have a tip for me?
Thanks!