Fixed ‘Bug’ in RemoveRelatedRecordForm.php

Archived from the Xataface Developers forum.

graeme1950 — Thu Oct 05, 2006 3:30 am

Sorry if I post this in the wrong forum or place but didn’t know what else to do.

Problem:

Selected recordset checkboxes ~ if none selected and ‘Remove Selected Records’ is clicked you get a ‘for each error on line 181’

Solution:

To stop this I put in an if statement on the function display() on thre RemoveRelatedRecordForm.php
as follows

function display(){
if ( $this->_toBeRemoved !=’’ ){ // Added to stop ‘for each error on empty result
$this->_build();
$domainTable = $this->_relationship->getDomainTable();
if ( PEAR::isError($domainTable) ){
$domainTable = $this->_relationship->_schema[‘selected_tables’][0];
}
$domainTable = Dataface_Table::loadTable($domainTable);
$io =& new Dataface_IO($domainTable->tablename);

echo “

Are you sure you want to remove the following records from the relationship ‘”.$this->_relationshipName.”’?

”;
echo “

”;
//print_r($this->_toBeRemoved);
foreach ($this->_toBeRemoved as $remKeys){
$keyvals = explode(‘-‘, $remKeys);
$query = array();

foreach (array_keys($domainTable->keys()) as $keyname){
$query[$keyname] = array_shift($keyvals);
}
$record = new Dataface_Record($domainTable->tablename, array());
//print_r($query);

$io->read($query, $record);
echo “- “.$record->getTitle().” \n”;
unset($record);

}
echo “ “;

// Added to stop ‘for each error on empty result
} else {

echo “

No records selected from the relationship ‘”.$this->_relationshipName.”’?

”;
}

parent::display();
}

I hope this helps and if some one could tell me where to go (politely!) I’ll go.
Best Regards
Graeme Hird


shannah — Thu Oct 05, 2006 8:31 am

Thanks for posting this fix, Graeme. I’ll add it to the Dataface source to be available in the next version.

Best regards

Steve


graeme1950 — Fri Oct 06, 2006 6:54 am

You’re welcome and thank you for an excellent product, it’s definately making my life easier for creating user data interfaces to my systems.
Best Regards
Graeme