I am trying to validate my configuration before save but it does not work on website scope.
It works if i choose default config scope.
Here is my code.
<?xml version="1.0"?>
<config>
<sections>
<payment>
<groups>
<banktransfer>
<fields>
<showinfrontend translate="label">
<label>Enabled On Front-End</label>
<frontend_type>select</frontend_type>
<source_model>adminhtml/system_config_source_yesno</source_model>
<sort_order>1</sort_order>
<show_in_default>1</show_in_default>
<show_in_website>1</show_in_website>
<show_in_store>1</show_in_store>
</showinfrontend>
<partpayment translate="label">
<label>Partpayment Method</label>
<frontend_type>select</frontend_type>
<source_model>bankpayment/partpayment</source_model>
<backend_model>bankpayment/system_config_backend_validatepayment</backend_model>
<sort_order>1</sort_order>
<show_in_default>1</show_in_default>
<show_in_website>1</show_in_website>
<show_in_store>1</show_in_store>
</partpayment>
</fields>
</banktransfer>
</groups>
</payment>
</sections>
</config>
Model file is as below.
<?php
class Kgn_Bankpayment_Model_System_Config_Backend_Validatepayment extends Mage_Core_Model_Config_Data
{
protected function _beforeSave()
{
echo "<pre/>";print_r(Mage::app()->getRequest()->getPost());exit;
$value = $this->getValue();
$totalpartCollection = Mage::getModel('pdftemplate/totalpart')->getCollection()
->addFieldToFilter('payment_id','banktransfer');
$resource = Mage::getSingleton('core/resource');
$writeConnection = $resource->getConnection('core_write');
$table = $resource->getTableName('pdftemplate/totalpart');
foreach($totalpartCollection as $totalpart){
$id = $totalpart->getId();
if($value == $id){
$query = "UPDATE {$table} SET status = 1,is_default=1 WHERE totalpartrule_id = "
. (int)$id;
$writeConnection->query($query);
}else{
$query = "UPDATE {$table} SET status = 2,is_default=0 WHERE totalpartrule_id = ". (int)$id;
$writeConnection->query($query);
}
}
}
}
1 Answer 1
Got the answer.
But it is strange when i choose website or store view scope and only one of checkbox checked near form field then it is not working if i uncheck all the checkbox and save then it is working. If anyone know how this is actually working please write note here for understand.