protected function ParseColumnHtml($objColumn, $objObject)
{
$_ITEM = $objObject;
$_FORM = $this->objForm;
$_CONTROL = $this;
$_COLUMN = $objColumn;
$strHtml = $objColumn->Html;
$intPosition = 0;
while (($intStartPosition = strpos($strHtml, '<?=', $intPosition)) !== false) {
$intEndPosition = strpos($strHtml, '?>', $intStartPosition);
if ($intEndPosition === false) {
return $strHtml;
}
$strToken = substr($strHtml, $intStartPosition + 3, $intEndPosition - $intStartPosition - 3);
$strToken = trim($strToken);
if ($strToken) {
// Because Eval doesn't utilize exception management, we need to provide the QErrorHandler with additional
// information in case soething goes wrong
QErrorHandler::$AdditionalMessage = sprintf("Incorrectly formatted DataGridColumn HTML in %s '%s': %s", get_class($this), $this->strControlId, $strHtml);
try {
$strEvaledToken = eval(sprintf('return %s;', $strToken));
} catch (QCallerException $objExc) {
$objExc->DecrementOffset();
throw $objExc;
}
// Clear additional information from error handler
QErrorHandler::$AdditionalMessage = null;
} else {
$strEvaledToken = '';
}
$strHtml = sprintf("%s%s%s", substr($strHtml, 0, $intStartPosition), $strEvaledToken, substr($strHtml, $intEndPosition + 2));
$intPosition = $intStartPosition + strlen($strEvaledToken);
}
return $strHtml;
}