Index: branches/5.2.x/units/posts/post_tp.php =================================================================== diff -u -N -r14252 -r14430 --- branches/5.2.x/units/posts/post_tp.php (.../post_tp.php) (revision 14252) +++ branches/5.2.x/units/posts/post_tp.php (.../post_tp.php) (revision 14430) @@ -1,6 +1,6 @@ getObject($params); + /* @var $object kDBItem */ - if (!isset($posters)) { - $poster_ids = array_unique($object->GetCol('CreatedById')); + $poster =& $this->Application->recallObject('u.poster', null, Array('skip_autoload' => true)); + /* @var $poster UsersItem */ - $user_idfield = $this->Application->getUnitOption('u', 'IDField'); - $user_table = $this->Application->getUnitOption('u', 'TableName'); + if ( !isset($posters) ) { + $poster_ids = array_unique( $object->GetCol('CreatedById') ); - $sql = 'SELECT u.*, g.Name AS PrimaryGroup - FROM '.$user_table.' u - LEFT JOIN '.TABLE_PREFIX.'UserGroup ug ON ug.PortalUserId = u.PortalUserId AND ug.PrimaryGroup = 1 - LEFT JOIN '.TABLE_PREFIX.'PortalGroup g ON g.GroupId = ug.GroupId - WHERE u.'.$user_idfield.' IN ('.implode(',', $poster_ids).')'; - $posters = $this->Conn->Query($sql, $user_idfield); + $sql = $poster->GetSelectSQL() . ' + WHERE ' . $poster->TableName . '.' . $poster->IDField . ' IN (' . implode(',', $poster_ids) . ')'; + $posters = $this->Conn->Query($sql, $poster->IDField); } - $poster =& $this->Application->recallObject('u.poster', null, Array('skip_autoload' => true)); - /* @var $poster UsersItem */ - $poster_id = $object->GetDBField('CreatedById'); - if ($poster_id > 0) { - // not Guest & root - if ($poster->GetID() != $poster_id) { - // previous poster differs from requested - $poster->SetDBFieldsFromHash($posters[$poster_id]); - $poster->setID($poster_id); - } - return $this->Application->ProcessParsedTag('u.poster', 'Field', $params); + + if ($poster_id <= 0) { + // guest and root users + return ''; } - return ''; + if ($poster->GetID() != $poster_id) { + // previous poster differs from requested + $poster->LoadFromHash( $posters[$poster_id] ); + } + + return $this->Application->ProcessParsedTag('u.poster', 'Field', $params); } /**