Najłatwiej chyba kupić płatną wersję, bo tam taka funkcja się znajduje. Równie dobrze można zainstalować sobie statystyki Analitycs i jak umiejętnie będziesz się poruszał po zakładkach to i taką funkcję tam znajdziesz lub imitującą tą funkcję.
Przecież to jest bajecznie proste. Wszystkie potrzebne komponenty są dostępne za free. Składniki: Komponent I. --> QC4x Free Komponent II. plugin productsMostVisits (też Free. A w QC 42add już jest zawarty)
Receptura (dla widoku w liście produktów admina): Tworzysz nową kolumnę w liście ze zmienną - dajmy na to - $aData[iViewed] W funkcji listingu produktów w adminie wywołujesz pole 'iCount' z tabeli DB_PRODUCTS_VISITS dla danego produktu. Jeśli nie ma (bo jeszcze nikt nie otwierał widoku tego produktu) wbijasz wartość 0 i wpisujesz do zmiennej przed chwilą dodanej do templatki.
Ale to pokazuje tylko sumaryczną ilość odsłon produktu. Jeśli chcesz widzieć jakąś średnią (dzienną, tygodniową, miesięczną itd.) to trzeba znaleźć jakiś punkt odniesienia - czyli datę otwarcia sklepu. Albo pamiętasz (bo założę się, że w configu sobie nie wpisałeś), albo przyjmiemy datę pierwszego zamówienia jako datę otwarcia sklepu. Jak znaleźć I zamówienie? 2 sposoby: obejrzyj funkcję: throwLastId i napisz sobie na jej podstawie "throwFirstId", albo uwierz sortowaniu zamówień i pobierz ostatnią linijkę z tabeli DB_ORDERS. Stamtąd wyciągnij timestamp, wylicz różnicę czasu do "teraz", zrób z tego ilość dni, tygodni albo miesięcy i podziel $aData['iViewed'] przez tę ilość. Otzymasz średnią wyświetleń na dany okres czasu.
Najpierw musimy pobrać linijkę (array) z bazy VISITS dla danego produktu: Czyli szukamy w polu 'iProduct' czegoś z numerem $iProduct. $aDataTemp=throwData(DB_PRODUCTS_VISITS,$iProduct,'iProduct');
W tym momencie $aDataTemp ma postać: array('iProduct'=>X,'iCount'=>Y)
Teraz pobieramy ilość klików: $aData['iLicznik']=$aDataTemp['iCount'];
ano tak, zapomniałem, że to jest w klasie FlatFiles. (pisałem z głowy) Oczywiście ma być: $aDataTemp=$oFF->throwData(DB_PRODUCTS_VISITS,$iProduct,'iProduct'); No i trzeba zadeklarować na początku funkcji: $oFF=FlatFiles::getInstance(); Ale problem w tym, że w funkcji listProductsAdmin nie ma zmiennej $iProduct, więc throwData bierze z pierwszej (zerowej) linijki. ID produktu jest w: $aData['iProduct'] Czyli będzie: $aDataTemp=$oFF->throwData(DB_PRODUCTS_VISITS,$aData['iProduct'],'iProduct');