/** * Log click to link reference and return click id * * @param Mzax_Emarketing_Model_Link $link * @param integer $eventId Optional event id * @return integer click id */ public function captureClick(Mzax_Emarketing_Model_Link_Reference $reference, $eventId = null) { if ($reference->getId()) { $adapter = $this->_getWriteAdapter(); $adapter->insert($this->getTable('link_reference_click'), array('reference_id' => $reference->getId(), 'event_id' => $eventId ? $eventId : null, 'clicked_at' => now())); $id = $adapter->lastInsertId($this->getTable('link_reference_click')); } return $id; }
/** * Add a click reference to the seesion * * This reference is used by the observer to check if any goal events like * a order, signup ocurred durring this session * * @see Mzax_Emarketing_Model_Observer_Goal * @param Mzax_Emarketing_Model_Link_Reference $linkReference * @param integer $clickId * @return Mzax_Emarketing_Model_Session */ public function addClickReference(Mzax_Emarketing_Model_Link_Reference $linkReference, $clickId) { $this->setLastLinkReferenceId($linkReference->getId()); $this->setLastRecipientId($linkReference->getRecipientId()); $this->setLastAddress($linkReference->getRecipient()->getAddress()); $this->_lastRecipient = null; $clicks = $this->getClickReferences(); $clicks[] = array('link_reference_id' => (int) $linkReference->getId(), 'recipient_id' => (int) $linkReference->getRecipientId(), 'click_id' => (int) $clickId); $this->setData('click_references', $clicks); return $this; }