Как сделать «недавно просмотренные» элементы в codeigniter (v2) - PullRequest
1 голос
/ 10 февраля 2012

Кто-нибудь может предложить лучшее решение для создания недавно просмотренной логики элементов / страниц с использованием codeigniter? Я бы предпочел использовать сеансы codeigniter, а не стандартный $ _SESSION, если это возможно.

Также - добавить в сеанс, но как только я нажму 10 элементов в массиве, чтобы удалить самый старый элемент в массиве.

Ответы [ 2 ]

4 голосов
/ 29 июля 2014
    $recentlyViewed = $this->session->userdata('recentlyViewed');
    if(!is_array($recentlyViewed)){
        $recentlyViewed = array();  
    }
    //change this to 10
    if(sizeof($recentlyViewed)>3){
        array_shift($recentlyViewed);
    }
    //here set your id or page or whatever
    if(!in_array($data['id'],$recentlyViewed)){
        array_push($recentlyViewed,$data['id']);
    }
    $this->session->set_userdata('recentlyViewed', $recentlyViewed);    
    $recentlyViewed = array_reverse($recentlyViewed);
    //var_dump($recentlyViewed);

Теперь используйте foreach для недавно просмотренных запросов or_where

1 голос
/ 18 февраля 2012

Я понятия не имею, будет ли этот подход работать для вас, но вы можете сбросить данные такого рода в базу данных SQL с отметкой времени, а затем использовать свойство «Ascending» / «Descending» запроса SQL в сочетании с свойство limit (10) ... это может быть слишком много усилий для того, что вы пытаетесь выполнить, но вы также можете синхронизировать данные запроса с вашим объектом сеанса CI? Не знаю, просто мысль: D

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...