public function GetArticleViewHistory()
    {
        if (is_null($this->aArticleViewHistory)) {
            $this->aArticleViewHistory = array();
            $iMaxQueueLength = 100;
            $shop = $this->getShopService()->getActiveShop();
            if ($shop->fieldDataExtranetUserShopArticleHistoryMaxArticleCount < $iMaxQueueLength && $shop->fieldDataExtranetUserShopArticleHistoryMaxArticleCount > 0) {
                $iMaxQueueLength = $shop->fieldDataExtranetUserShopArticleHistoryMaxArticleCount;
            }

            if ($this->IsLoggedIn()) {
                // fetch from user
                $iNumRecsAdded = 0;
                $oHistoryList = &$this->GetFieldDataExtranetUserShopArticleHistoryList();
                while (($oHistoryItem = $oHistoryList->Next()) && $iNumRecsAdded <= $iMaxQueueLength) {
                    $this->aArticleViewHistory[] = $oHistoryItem->sqlData;
                }
            } else {
                // fetch from cookie
                $aTmpHist = null;
                if (array_key_exists(TdbDataExtranetUser::COOKIE_NAME_HISTORY, $_COOKIE)) {
                    $sHistory = base64_decode($_COOKIE[TdbDataExtranetUser::COOKIE_NAME_HISTORY]);
                    $aTmpHist = json_decode($sHistory, true);
                }
                if (is_array($aTmpHist)) {
                    reset($aTmpHist);
                    foreach ($aTmpHist as $iKey => $aHistItemData) {
                        $oHistoryItem = TdbDataExtranetUserShopArticleHistory::GetNewInstance();
                        $oHistoryItem->LoadFromRow($aHistItemData);
                        $this->aArticleViewHistory[] = $oHistoryItem->sqlData;
                    }
                }
            }
        }

        $historyList = array();
        foreach ($this->aArticleViewHistory as $item) {
            $historyList[] = TdbDataExtranetUserShopArticleHistory::GetNewInstance($item);
        }

        return $historyList;
    }