$this->assign('url', ob_get_contents());
     ob_end_clean();
     echo '<';
     echo is_array($_tmp = @$this->_tpl_vars['pageData']['tag'][$this->_tpl_vars['id']][$this->_tpl_vars['params']['ACLTag']]) ? $this->_run_mod_handler('default', true, $_tmp, @$this->_tpl_vars['pageData']['tag'][$this->_tpl_vars['id']]['MAIN']) : smarty_modifier_default($_tmp, @$this->_tpl_vars['pageData']['tag'][$this->_tpl_vars['id']]['MAIN']);
     echo ' href="';
     echo smarty_function_sugar_ajax_url(array('url' => $this->_tpl_vars['url']), $this);
     echo '">';
 }
 echo '';
 if ($this->_tpl_vars['params']['customCode']) {
     echo '';
     echo smarty_function_sugar_evalcolumn_old(array('var' => $this->_tpl_vars['params']['customCode'], 'rowData' => $this->_tpl_vars['rowData']), $this);
     echo '';
 } else {
     echo '';
     echo smarty_function_sugar_field(array('parentFieldArray' => $this->_tpl_vars['rowData'], 'vardef' => $this->_tpl_vars['params'], 'displayType' => 'ListView', 'field' => $this->_tpl_vars['col']), $this);
     echo '';
 }
 echo '';
 if (empty($this->_tpl_vars['rowData'][$this->_tpl_vars['col']]) && empty($this->_tpl_vars['params']['customCode'])) {
     echo '&nbsp;';
 }
 echo '';
 if ($this->_tpl_vars['params']['link'] && !$this->_tpl_vars['params']['customCode']) {
     echo '</';
     echo is_array($_tmp = @$this->_tpl_vars['pageData']['tag'][$this->_tpl_vars['id']][$this->_tpl_vars['params']['ACLTag']]) ? $this->_run_mod_handler('default', true, $_tmp, @$this->_tpl_vars['pageData']['tag'][$this->_tpl_vars['id']]['MAIN']) : smarty_modifier_default($_tmp, @$this->_tpl_vars['pageData']['tag'][$this->_tpl_vars['id']]['MAIN']);
     echo '>';
 }
 echo '';
 if ($this->_tpl_vars['col'] == 'NAME' || $this->_tpl_vars['params']['bold']) {
     echo '</b>';
                                ?>
				{counter name="panelFieldCount"}
				<?php 
                                echo smarty_function_sugar_evalcolumn(array('var' => $this->_tpl_vars['colData']['field']['customCode'], 'colData' => $this->_tpl_vars['colData'], 'accesskey' => $this->_tpl_vars['ACCKEY'], 'tabindex' => $this->_tpl_vars['tabindex']), $this);
                                ?>

			<?php 
                            } elseif ($this->_tpl_vars['fields'][$this->_tpl_vars['colData']['field']['name']]) {
                                ?>
				{counter name="panelFieldCount"}
			    <?php 
                                echo $this->_tpl_vars['colData']['displayParams'];
                                ?>

				<?php 
                                echo smarty_function_sugar_field(array('parentFieldArray' => 'fields', 'accesskey' => $this->_tpl_vars['ACCKEY'], 'tabindex' => $this->_tpl_vars['tabindex'], 'vardef' => $this->_tpl_vars['fields'][$this->_tpl_vars['colData']['field']['name']], 'displayType' => 'EditView', 'displayParams' => $this->_tpl_vars['colData']['field']['displayParams'], 'typeOverride' => $this->_tpl_vars['colData']['field']['type'], 'formName' => $this->_tpl_vars['form_name'], 'module' => $this->_tpl_vars['module']), $this);
                                ?>

			<?php 
                            }
                            ?>
	<?php 
                            if (!empty($this->_tpl_vars['colData']['field']['customCode']) && !empty($this->_tpl_vars['colData']['field']['customCodeRenderField'])) {
                                ?>
	    {counter name="panelFieldCount"}
	    <?php 
                                echo smarty_function_sugar_evalcolumn(array('var' => $this->_tpl_vars['colData']['field']['customCode'], 'colData' => $this->_tpl_vars['colData'], 'tabindex' => $this->_tpl_vars['tabindex']), $this);
                                ?>

    <?php 
                            }
                                            ?>

				        <?php 
                                        }
                                        ?>
				    <?php 
                                    }
                                }
                                unset($_from);
                                ?>
				<?php 
                            } elseif ($this->_tpl_vars['fields'][$this->_tpl_vars['colData']['field']['name']]) {
                                ?>
					{counter name="panelFieldCount"}
					<?php 
                                echo smarty_function_sugar_field(array('parentFieldArray' => 'fields', 'vardef' => $this->_tpl_vars['fields'][$this->_tpl_vars['colData']['field']['name']], 'displayType' => 'DetailView', 'displayParams' => $this->_tpl_vars['colData']['field']['displayParams'], 'typeOverride' => $this->_tpl_vars['colData']['field']['type']), $this);
                                ?>

				<?php 
                            }
                            ?>
				<?php 
                            if (!empty($this->_tpl_vars['colData']['field']['customCode']) && $this->_tpl_vars['colData']['field']['customCodeRenderField']) {
                                ?>
				    {counter name="panelFieldCount"}
				    <span id="<?php 
                                echo $this->_tpl_vars['colData']['field']['name'];
                                ?>
" class="sugar_field"><?php 
                                echo smarty_function_sugar_evalcolumn(array('var' => $this->_tpl_vars['colData']['field'], 'colData' => $this->_tpl_vars['colData']), $this);
                                ?>
/**
 * Smarty {sugar_evalcolumn} function plugin
 *
 * Type:     function<br>
 * Name:     sugar_evalcolumn<br>
 * Purpose:  evaluate a string by substituting values in the rowData parameter. Used for ListViews<br>
 * 
 * @author Wayne Pan {wayne at sugarcrm.com
 * @param array
 * @param Smarty
 */
function smarty_function_sugar_evalcolumn($params, &$smarty)
{
    if (!isset($params['colData']['field'])) {
        if (empty($params['colData'])) {
            $smarty->trigger_error("evalcolumn: missing 'colData' parameter");
        }
        if (!isset($params['colData']['field'])) {
            $smarty->trigger_error("evalcolumn: missing 'colData.field' parameter");
        }
        return;
    }
    if (empty($params['colData']['field'])) {
        return;
    }
    $params['var'] = $params['colData']['field'];
    if (isset($params['toJSON'])) {
        $json = getJSONobj();
        $params['var'] = $json->encode($params['var']);
    }
    if (!empty($params['var']['assign'])) {
        return '{$' . $params['colData']['field']['name'] . '}';
    } else {
        $code = $params['var']['customCode'];
        if (isset($params['tabindex']) && preg_match_all("'(<[ ]*?)(textarea|input|select)([^>]*?)(>)'si", $code, $matches, PREG_PATTERN_ORDER)) {
            $str_replace = array();
            $tabindex = ' tabindex="' . $params['tabindex'] . '" ';
            foreach ($matches[3] as $match) {
                $str_replace[$match] = $tabindex . $match;
            }
            $code = str_replace(array_keys($str_replace), array_values($str_replace), $code);
        }
        // Add a string replace to swap out @@FIELD@@ for the actual field,
        // we can't do this through customCode directly because the sugar_field smarty function returns smarty code to run on the second pass
        if (!empty($code) && strpos($code, '@@FIELD@@') !== FALSE) {
            // First we need to fetch extra data about the field
            // sfp == SugarFieldParams
            $sfp = $params;
            $sfp['parentFieldArray'] = 'fields';
            $vardefs = $smarty->get_template_vars('fields');
            $sfp['vardef'] = $vardefs[$params['colData']['field']['name']];
            $sfp['displayType'] = 'EditView';
            $sfp['displayParams'] = $params['colData']['field']['displayParams'];
            $sfp['typeOverride'] = $params['colData']['field']['type'];
            $sfp['formName'] = $smarty->get_template_vars('form_name');
            $fieldText = smarty_function_sugar_field($sfp, $smarty);
            $code = str_replace('@@FIELD@@', $fieldText, $code);
        }
        //eggsurplus bug 28321: add support for rendering customCode AND normal field rendering
        if (!empty($params['var']['displayParams']['enableConnectors']) && empty($params['var']['customCodeRenderField'])) {
            require_once 'include/connectors/utils/ConnectorUtils.php';
            $code .= '&nbsp;' . ConnectorUtils::getConnectorButtonScript($params['var']['displayParams'], $smarty);
        }
        return $code;
    }
}