class Popup_announcement_visitor in Pop-up announcement 7
Class for visitor
Hierarchy
- class \Popup_announcement_visitor
Expanded class hierarchy of Popup_announcement_visitor
File
- ./
popup_announcement.module, line 396 - Primarily Drupal hooks and custom functions for creating block with pop-up announcement.
View source
class Popup_announcement_visitor {
protected $sid;
function __construct($sid) {
$this->sid = $sid;
}
/**
* Get visit number for this visitor.
*
* @return int or bool
* Visit number for this visitor
* If returned FALSE - this visitor first time here
* or was last time more than cleaning old records by cron period
*/
public function get_visit_number() {
return db_select('popup_announcement', 'a')
->condition('sid', $this->sid)
->fields('a', array(
'visit_number',
))
->execute()
->fetchField();
}
/**
* Check if announcement is visible for this visit.
*
* @return int
* 1 - if for this visitor announcement can be created
* 0 - if not, for example because he made some action
* from these announcement yet
*/
public function is_visible() {
return db_select('popup_announcement', 'a')
->condition('sid', $this->sid)
->fields('a', array(
'is_visible',
))
->execute()
->fetchField();
}
/**
* Check if announcement is visible for this visitor.
* @return int
* 1 - if for this visitor announcement can be created
* 0 - if not, for example because he made some action
* from thise announcement yet
*/
public function is_visible_permanent() {
return db_select('popup_announcement', 'a')
->condition('sid', $this->sid)
->fields('a', array(
'is_visible_permanent',
))
->execute()
->fetchField();
}
/**
* Create record for new visitor.
*
* Just insert new row in tables.
*/
public function create_visitor_info() {
$q = db_insert('popup_announcement')
->fields(array(
'sid' => $this->sid,
'visit_number' => 1,
'is_visible' => 1,
'is_visible_permanent' => 1,
'timestamp_first_visit' => REQUEST_TIME,
'timestamp_last_visit' => REQUEST_TIME,
))
->execute();
}
/**
* Update visitor info.
*
* Increment visit number and update visit time.
*/
public function update_visitor_info() {
$last_request = db_select('popup_announcement', 'a')
->condition('sid', $this->sid)
->fields('a', array(
'timestamp_last_visit',
))
->execute()
->fetchField();
// If more then one hour - so, lets think it is new visit.
if ($last_request < REQUEST_TIME - 60 * 60) {
$q = db_update('popup_announcement')
->expression('visit_number', 'visit_number + :increment', array(
':increment' => 1,
))
->fields(array(
'is_visible' => 1,
))
->condition('sid', $this->sid)
->execute();
}
$q = db_update('popup_announcement')
->fields(array(
'timestamp_last_visit' => REQUEST_TIME,
))
->condition('sid', $this->sid)
->execute();
}
}
Members
Name![]() |
Modifiers | Type | Description | Overrides |
---|---|---|---|---|
Popup_announcement_visitor:: |
protected | property | ||
Popup_announcement_visitor:: |
public | function | Create record for new visitor. | |
Popup_announcement_visitor:: |
public | function | Get visit number for this visitor. | |
Popup_announcement_visitor:: |
public | function | Check if announcement is visible for this visit. | |
Popup_announcement_visitor:: |
public | function | Check if announcement is visible for this visitor. | |
Popup_announcement_visitor:: |
public | function | Update visitor info. | |
Popup_announcement_visitor:: |
function |