protected function GetAuthorName($sUserPostName = false)
    {
        $oModuleConfiguration = $this->GetModuleConfiguration();
        $oAuthor = TdbDataExtranetUser::GetInstance();
        if ($this->NeedUserFieldForName()) {
            $sAuthor = $sUserPostName;
        } else {
            switch ($oModuleConfiguration->fieldOptionShowAuthorName) {
                case AuthorDisplayConstants::AUTHOR_DISPLAY_TYPE_FULL_NAME:
                    $sAuthor = $oAuthor->fieldFirstname.' '.$oAuthor->fieldLastname;
                    break;
                case AuthorDisplayConstants::AUTHOR_DISPLAY_TYPE_INITIALS:
                    $sAuthor = $oAuthor->fieldFirstname.' '.substr($oAuthor->fieldLastname, 0, 1).'.';
                    break;
                case AuthorDisplayConstants::AUTHOR_DISPLAY_TYPE_ALIAS:
                    $sAuthor = $oAuthor->fieldAliasName;
                    if (empty($sAuthor)) {
                        $sAuthor = $sUserPostName;
                    }
                    if (0 !== strcmp($sUserPostName, $oAuthor->fieldAliasName) && $oAuthor->IsLoggedIn() && $oAuthor->validateUserAlias($sUserPostName)) {
                        $oAuthor->SaveFieldsFast(array('alias_name' => $sUserPostName));
                    }
                    break;
                case AuthorDisplayConstants::AUTHOR_DISPLAY_TYPE_ANONYMOUS:
                default:
                    $sAuthor = TGlobal::Translate('chameleon_system_shop_article_review.text.anonymous');
                    break;
            }
        }
        if (empty($sAuthor)) {
            $sAuthor = TGlobal::Translate('chameleon_system_shop_article_review.text.anonymous');
        }

        return $sAuthor;
    }