Exemple #1
0
 public function onRun()
 {
     if (Session::has('disable_cookie')) {
         return false;
     }
     if (!Auth::check()) {
         return null;
     }
     $user = Auth::getUser();
     // @deprecated remove if year >= 2015
     $deprecatedSlug = $this->propertyOrParam('idParam');
     $slug = $this->property('slug', $deprecatedSlug);
     $item = Ad::isPublished()->where('slug', '=', $slug)->first();
     if (empty($item)) {
         return null;
     }
     // Get current ad cookie
     $cookie_obj = new \stdClass();
     $cookie = Cookie::get('dln_ad_cookie');
     if ($cookie) {
         // Check current user has exist in cookie
         $cookie_obj = json_decode($cookie);
         $current_time = time();
         if (!empty($cookie_obj->{$item->id}) && $cookie_obj->{$item->id}) {
             if ($current_time >= $cookie_obj->{$item->id} + TIME_DELAY_COUNT_VIEW) {
                 $cookie_obj->{$item->id} = time();
                 $cookie = json_encode($cookie_obj);
                 Cookie::queue('dln_ad_cookie', $cookie, 1440);
                 AdRead::add_read($item, $user);
             }
         } else {
             $cookie_obj->{$item->id} = time();
             $cookie = json_encode($cookie_obj);
             Cookie::queue('dln_ad_cookie', $cookie, 1440);
             AdRead::add_read($item, $user);
         }
     } else {
         $cookie_obj->{$item->id} = time();
         $cookie = json_encode($cookie_obj);
         Cookie::queue('dln_ad_cookie', $cookie, 1440);
         AdRead::add_read($item, $user);
     }
 }