/** * * * @param $template * @param null $variation * * @return $this|bool * * @throws \Exception */ public function register($template, $variation = null) { $id = self::getVisitId(); $uri = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : ''; if (!Template::exists($template)) { return false; } if ($variation && !Template::isVariation($template, $variation)) { return false; } // Registro visita general $visit = new Visits(); $visit->register($id, $uri, $template, $variation); // Registro visitas plantilla $this->load(array('template' => $template, 'variation' => $variation)); if ($this->getId()) { $this->setData('views', $this->getViews() + 1); $conversions = new Conversions(); $conversions->recalculateRates($template, $variation, $this->getViews()); } else { $this->setData('template', $template); $this->setData('variation', $variation); $this->setData('views', 1); $this->setData('conversions', 0); } return $this->save(); }