- WordPress core y plugins - Tema Twenty Twenty-Four configurado - Plugin allow-unfiltered-html.php simplificado - .gitignore configurado para excluir wp-config.php y uploads 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
639 lines
17 KiB
PHP
Executable File
639 lines
17 KiB
PHP
Executable File
<?php
|
|
|
|
/**
|
|
* All plugin constants should be defined here
|
|
* Use this file to define only constants
|
|
*/
|
|
class TVE_Ult_Const {
|
|
/**
|
|
* TU plugin version
|
|
*/
|
|
const PLUGIN_VERSION = '10.6';
|
|
|
|
/**
|
|
* Database version for current TU version
|
|
*/
|
|
const DB_VERSION = '1.3';
|
|
|
|
/**
|
|
* Required TCB version
|
|
*/
|
|
const REQUIRED_TCB_VERSION = '2.1.11';
|
|
|
|
/**
|
|
* Database prefix for all TU tables
|
|
*/
|
|
const DB_PREFIX = 'tve_ult_';
|
|
|
|
/**
|
|
* Post types
|
|
*/
|
|
const POST_TYPE_NAME_FOR_CAMPAIGN = 'tve_ult_campaign';
|
|
const POST_TYPE_NAME_FOR_SCHEDULE = 'tve_ult_schedule';
|
|
|
|
/**
|
|
* Trigger Types
|
|
*/
|
|
const TRIGGER_TYPE_FIRST_VISIT = 'first';
|
|
const TRIGGER_TYPE_PROMOTION = 'promotion';
|
|
const TRIGGER_TYPE_LEADS_CONVERSION = 'conversion';
|
|
const TRIGGER_TYPE_PAGE_VISIT = 'url';
|
|
const TRIGGER_TYPE_WEBHOOK = 'webhook';
|
|
|
|
/**
|
|
* Trigger Options
|
|
*/
|
|
const TRIGGER_OPTION_MOVE = 'move';
|
|
const TRIGGER_OPTION_END = 'end';
|
|
const TRIGGER_OPTION_SPECIFIC = 'specific';
|
|
const TRIGGER_OPTION_CONVERSION = 'conversion';
|
|
|
|
/**
|
|
* Campaigns types
|
|
*/
|
|
const CAMPAIGN_STATUS_RUNNING = 'running';
|
|
const CAMPAIGN_STATUS_PAUSED = 'paused';
|
|
|
|
/**
|
|
* Campaigns types
|
|
*/
|
|
const CAMPAIGN_TYPE_ABSOLUTE = 'absolute';
|
|
const CAMPAIGN_TYPE_ROLLING = 'rolling';
|
|
const CAMPAIGN_TYPE_EVERGREEN = 'evergreen';
|
|
|
|
/**
|
|
* Campaigns rolling types
|
|
*/
|
|
const CAMPAIGN_ROLLING_TYPE_DAILY = 'daily';
|
|
const CAMPAIGN_ROLLING_TYPE_WEEKLY = 'weekly';
|
|
const CAMPAIGN_ROLLING_TYPE_MONTHLY = 'monthly';
|
|
const CAMPAIGN_ROLLING_TYPE_YEARLY = 'yearly';
|
|
|
|
/**
|
|
* Settings constants for get_option
|
|
*/
|
|
const SETTINGS_TIME_ZONE = 'tve_ult_time_zone';
|
|
const SETTINGS_TIME_ZONE_OFFSET = 'tve_ult_gmt_offset';
|
|
const SETTINGS_DATE_FORMAT = 'tve_ult_date_format';
|
|
const SETTINGS_TIME_FORMAT = 'tve_ult_time_format';
|
|
|
|
/**
|
|
* Design types
|
|
*/
|
|
const DESIGN_TYPE_HEADER_BAR = 'header-bar';
|
|
const DESIGN_TYPE_FOOTER_BAR = 'footer-bar';
|
|
const DESIGN_TYPE_WIDGET = 'widget';
|
|
const DESIGN_TYPE_SHORTCODE = 'shortcode';
|
|
/**
|
|
* Translate domain string to be used in translation functions
|
|
*/
|
|
const T = 'thrive-ult';
|
|
|
|
/**
|
|
* Statuses
|
|
*/
|
|
const STATUS_PUBLISH = 'publish';
|
|
const STATUS_TRASH = 'trash';
|
|
|
|
/**
|
|
* Fields
|
|
*/
|
|
const FIELD_TEMPLATE = 'tpl';
|
|
const FIELD_GLOBALS = 'globals';
|
|
const FIELD_CONTENT = 'content';
|
|
const FIELD_INLINE_CSS = 'inline_css';
|
|
const FIELD_USER_CSS = 'user_css';
|
|
const FIELD_CUSTOM_FONTS = 'fonts';
|
|
const FIELD_ICON_PACK = 'icons';
|
|
const FIELD_MASONRY = 'masonry';
|
|
const FIELD_TYPEFOCUS = 'typefocus';
|
|
const FIELD_STATE_INDEX = 'state_index';
|
|
const FIELD_STATE_VISIBILITY = 'visibility';
|
|
const FIELD_DISPLAY_POSITION = 'display_position';
|
|
|
|
/**
|
|
* All kind of constants that cannot be classified
|
|
*/
|
|
const DESIGN_QUERY_KEY_NAME = 'tud_id';
|
|
|
|
/**
|
|
* Actions
|
|
*/
|
|
const ACTION_TEMPLATE = 'tve_ult_tpl';
|
|
const ACTION_STATE = 'tve_ult_state';
|
|
const ACTION_SAVE_DESIGN_CONTENT = 'tve_ult_save_design_content';
|
|
|
|
/**
|
|
* METAs
|
|
*/
|
|
const META_NAME_FOR_CAMPAIGN_TYPE = 'tve_ult_campaign_type';
|
|
const META_NAME_FOR_ROLLING_TYPE = 'tve_ult_rolling_type';
|
|
const META_NAME_FOR_STATUS = 'tve_ult_status';
|
|
const META_NAME_FOR_CAMPAIGN_SETTINGS = 'tve_ult_campaign_settings';
|
|
const META_NAME_FOR_SCHEDULE = 'tve_ult_schedule';
|
|
const META_NAME_FOR_CAMPAIGN_ORDER = 'tve_campaign_order';
|
|
const META_NAME_FOR_CAMPAIGN_LINK = 'tve_campaign_linked_to';
|
|
const META_NAME_FOR_LOCKDOWN = 'tve_campaign_lockdown';
|
|
const META_NAME_FOR_LOCKDOWN_SETTINGS = 'tve_campaign_lockdown_settings';
|
|
const META_PREFIX_NAME_FOR_EDIT_STATE = 'tve_ult_edit_state_';
|
|
|
|
/**
|
|
* Event types
|
|
*/
|
|
const EVENT_TYPE_START = 'start';
|
|
const EVENT_TYPE_TIME = 'time';
|
|
const EVENT_TYPE_CONV = 'conv';
|
|
const EVENT_TYPE_END = 'end';
|
|
|
|
/**
|
|
* DATES formats
|
|
*/
|
|
const FULL_DATE_FORMAT = 'Y-m-d H:i';
|
|
const DATE_FORMAT = 'Y-m-d';
|
|
|
|
/**
|
|
* Event log constants
|
|
*/
|
|
const LOG_TYPE_IMPRESSION = 1;
|
|
const LOG_TYPE_CONVERSION = 2;
|
|
|
|
/**
|
|
* Cookie names
|
|
*/
|
|
const COOKIE_IMPRESSION = 'tu_campaign_impression_';
|
|
const COOKIE_CONVERSION = 'tu_campaign_conversion_';
|
|
const COOKIE_NAME = 'tu_campaign_';
|
|
const COOKIE_END_NAME = 'tu_campaign_end_';
|
|
const COOKIE_FORCE_DISPLAY = 'tu_force_campaign_';
|
|
const COOKIE_REDIRECT = 'tu_campaign_redirect_';
|
|
|
|
|
|
/**
|
|
* Full path to the plugin folder (!includes a trailing slash if the $file argument is missing)
|
|
*
|
|
* @param string $file
|
|
*
|
|
* @return string
|
|
*/
|
|
public static function plugin_path( $file = '' ) {
|
|
return plugin_dir_path( __FILE__ ) . ltrim( $file, '\\/' );
|
|
}
|
|
|
|
/**
|
|
* Full plugin url
|
|
*
|
|
* @param string $file if sent, it will return the full URL to the file
|
|
*
|
|
* @return string
|
|
*/
|
|
public static function plugin_url( $file = '' ) {
|
|
return plugin_dir_url( __FILE__ ) . ltrim( $file, '\\/' );
|
|
}
|
|
|
|
/**
|
|
* All campaign types
|
|
*
|
|
* @return array
|
|
*/
|
|
public static function campaign_types() {
|
|
return array(
|
|
static::CAMPAIGN_TYPE_ABSOLUTE,
|
|
static::CAMPAIGN_TYPE_ROLLING,
|
|
static::CAMPAIGN_TYPE_EVERGREEN,
|
|
);
|
|
}
|
|
|
|
/**
|
|
* trigger types
|
|
*
|
|
* @return string[]
|
|
*/
|
|
public static function trigger_types() {
|
|
return array(
|
|
static::TRIGGER_TYPE_FIRST_VISIT,
|
|
static::TRIGGER_TYPE_LEADS_CONVERSION,
|
|
static::TRIGGER_TYPE_PAGE_VISIT,
|
|
static::TRIGGER_TYPE_PROMOTION,
|
|
);
|
|
}
|
|
|
|
/**
|
|
* All campaign statuses
|
|
*
|
|
* @return array
|
|
*/
|
|
public static function campaign_statuses() {
|
|
return array(
|
|
static::CAMPAIGN_STATUS_PAUSED,
|
|
static::CAMPAIGN_STATUS_RUNNING,
|
|
);
|
|
}
|
|
|
|
/**
|
|
* Design types without details
|
|
*
|
|
* @return array
|
|
*/
|
|
public static function design_types() {
|
|
return array(
|
|
static::DESIGN_TYPE_HEADER_BAR,
|
|
static::DESIGN_TYPE_FOOTER_BAR,
|
|
static::DESIGN_TYPE_WIDGET,
|
|
);
|
|
}
|
|
|
|
/**
|
|
* Get the date formats
|
|
*
|
|
* @param $format
|
|
*
|
|
* @return array
|
|
*/
|
|
public static function date_format_details( $format ) {
|
|
$all_formats = array(
|
|
'dS F Y' => array(
|
|
'description' => 'dd Month yyyy',
|
|
'date' => date( 'dS F Y', time() ),
|
|
),
|
|
'F d Y' => array(
|
|
'description' => 'Month dd yyyy',
|
|
'date' => date( 'F d Y', time() ),
|
|
),
|
|
'Y-m-d' => array(
|
|
'description' => 'yyyy-mm-dd',
|
|
'date' => date( 'Y-m-d', time() ),
|
|
),
|
|
'Y/m/d' => array(
|
|
'description' => 'yyyy/mm/dd',
|
|
'date' => date( 'Y/m/d', time() ),
|
|
),
|
|
'd/m/Y' => array(
|
|
'description' => 'dd/mm/yyyy',
|
|
'date' => date( 'd/m/Y', time() ),
|
|
),
|
|
);
|
|
|
|
if ( $format == 'all' ) {
|
|
return $all_formats;
|
|
}
|
|
$extracted = array();
|
|
foreach ( $all_formats as $k => $v ) {
|
|
if ( $format == $k ) {
|
|
$extracted[ $k ] = $v;
|
|
}
|
|
}
|
|
|
|
return $extracted;
|
|
|
|
}
|
|
|
|
/**
|
|
* Get the timezone int
|
|
*
|
|
* @param $tzstring
|
|
*
|
|
* @return mixed
|
|
*/
|
|
public static function get_timezone( $tzstring ) {
|
|
$timezone = 0;
|
|
if ( $tzstring ) {
|
|
if ( preg_match( '/^UTC[+-]/', $tzstring ) ) {
|
|
$timezone = preg_replace( '/UTC\+?/', '', $tzstring );
|
|
} else {
|
|
$timezone_obj = new DateTimeZone( $tzstring );
|
|
$timezone = timezone_offset_get( $timezone_obj, date_create() ) / 3600;
|
|
}
|
|
}
|
|
|
|
return $timezone;
|
|
}
|
|
|
|
/**
|
|
* Design types with details
|
|
* name translated name
|
|
* description translated description
|
|
*
|
|
* @return array
|
|
*/
|
|
public static function campaign_types_details() {
|
|
return array(
|
|
static::CAMPAIGN_TYPE_ABSOLUTE => array(
|
|
'name' => __( 'Fixed Dates Campaign', 'thrive-ult' ),
|
|
'image' => 'tvd-absolute-campaign.png',
|
|
'tooltip' => __( 'Use this campaign type for an offer with predefined start and end dates. For instance, an offer available between the 5th and 12th of November.', 'thrive-ult' ),
|
|
),
|
|
static::CAMPAIGN_TYPE_ROLLING => array(
|
|
'name' => __( 'Recurring Campaign', 'thrive-ult' ),
|
|
'image' => 'tvd-rolling-campaign.png',
|
|
'tooltip' => __( 'Use this campaign type for an offer with a definite repetition cycle. For instance, an offer that starts on November 5th and is repeated monthly.', 'thrive-ult' ),
|
|
),
|
|
static::CAMPAIGN_TYPE_EVERGREEN => array(
|
|
'name' => __( 'Evergreen Campaign', 'thrive-ult' ),
|
|
'image' => 'tvd-evergreen-campaign.png',
|
|
'tooltip' => __( 'Use this campaign type for offers triggered by user actions, not by dates. For instance, an offer showing for 7 days after a new user subscribes to a newsletter', 'thrive-ult' ),
|
|
),
|
|
);
|
|
}
|
|
|
|
/**
|
|
* Design types with details
|
|
* name translated name
|
|
* description translated description
|
|
*
|
|
* @return array
|
|
*/
|
|
public static function design_types_details() {
|
|
return array(
|
|
static::DESIGN_TYPE_HEADER_BAR => array(
|
|
'name' => __( 'Top ribbon', 'thrive-ult' ),
|
|
'description' => __( 'shows at the top of the screen', 'thrive-ult' ),
|
|
'image' => 'tvu-header-bar-design.png',
|
|
'edit_selector' => '.thrv_ult_bar',
|
|
),
|
|
static::DESIGN_TYPE_FOOTER_BAR => array(
|
|
'name' => __( 'Bottom ribbon', 'thrive-ult' ),
|
|
'description' => __( 'shows at the bottom of the screen', 'thrive-ult' ),
|
|
'image' => 'tvu-footer-bar-design.png',
|
|
'edit_selector' => '.thrv_ult_bar',
|
|
),
|
|
static::DESIGN_TYPE_WIDGET => array(
|
|
'name' => __( 'Widget', 'thrive-ult' ),
|
|
'description' => __( 'displays in any widget area on your site', 'thrive-ult' ),
|
|
'image' => 'tvu-widget-design.png',
|
|
'edit_selector' => '.thrv_ult_widget',
|
|
),
|
|
static::DESIGN_TYPE_SHORTCODE => array(
|
|
'name' => __( 'Shortcode', 'thrive-ult' ),
|
|
'description' => __( 'display shortcode design in your content', 'thrive-ult' ),
|
|
'image' => 'tvu-shortcode-design.png',
|
|
'edit_selector' => '.thrv_ult_shortcode',
|
|
),
|
|
);
|
|
}
|
|
|
|
/**
|
|
* Gets details for a specific design type
|
|
*
|
|
* @param $design_type
|
|
*
|
|
* @return null|array
|
|
*/
|
|
public static function design_details( $design_type ) {
|
|
$designs = static::design_types_details();
|
|
if ( ! array_key_exists( $design_type, $designs ) ) {
|
|
return null;
|
|
}
|
|
|
|
return $designs[ $design_type ];
|
|
}
|
|
|
|
/**
|
|
* Campaign attribute templates with details
|
|
* name translated name
|
|
* description translated description
|
|
*
|
|
* @return array
|
|
*/
|
|
public static function campaign_attribute_templates() {
|
|
$event = TU_Event_Action::get_details( TU_Event_Action::DESIGN_SHOW );
|
|
|
|
return array(
|
|
'0' => array(
|
|
'id' => '0',
|
|
'is_empty' => true,
|
|
'name' => __( 'Build from scratch', 'thrive-ult' ),
|
|
'description' => 'Build a campaign from scratch with no predefined settings',
|
|
'image' => static::plugin_url( 'admin/img/tvu-campaign-template1.png' ),
|
|
'type' => '',
|
|
'rolling_type' => '',
|
|
'status' => static::CAMPAIGN_STATUS_PAUSED,
|
|
'settings' => '',
|
|
),
|
|
'1' => array(
|
|
'id' => '1',
|
|
'name' => __( '7 day offer', 'thrive-ult' ),
|
|
'description' => __( '7 day Evergreen offer triggered when a user first visits the site. 3 days before the end of the 7 day period, the state is changed to display that the offer is in its last 3 days.', 'thrive-ult' ),
|
|
'image' => static::plugin_url( 'admin/img/tvu-campaign-template2.png' ),
|
|
'type' => static::CAMPAIGN_TYPE_EVERGREEN,
|
|
'rolling_type' => '',
|
|
'status' => static::CAMPAIGN_STATUS_PAUSED,
|
|
'settings' => array(
|
|
'start' => array(
|
|
'date' => tve_ult_current_time( 'j F Y' ),
|
|
'time' => '00:00',
|
|
),
|
|
'end' => '10000',
|
|
'duration' => '7',
|
|
'repeat' => 0,
|
|
'real' => 0,
|
|
'repeatOn' => array(),
|
|
'trigger' => array(
|
|
'type' => static::TRIGGER_TYPE_FIRST_VISIT,
|
|
'ids' => '',
|
|
),
|
|
),
|
|
'designs' => array(
|
|
'design_0' => array(
|
|
'post_type' => static::DESIGN_TYPE_HEADER_BAR,
|
|
'post_title' => '7 day offer',
|
|
'post_parent' => '',
|
|
'post_status' => TVE_Ult_Const::STATUS_PUBLISH,
|
|
'parent_id' => 0,
|
|
'tcb_fields' => array(),
|
|
'tpl' => 'ribbon|set_01',
|
|
'states' => array(
|
|
'state_0' => array(
|
|
'post_title' => 'Last 3 days',
|
|
'post_type' => static::DESIGN_TYPE_HEADER_BAR,
|
|
'post_parent' => '',
|
|
'post_status' => TVE_Ult_Const::STATUS_PUBLISH,
|
|
'parent_id' => 0,
|
|
'tcb_fields' => array(),
|
|
'tpl' => 'ribbon|set_01',
|
|
),
|
|
),
|
|
),
|
|
),
|
|
'events' => array(
|
|
'event_0' => array(
|
|
'campaign_id' => 0,
|
|
'actions' => array(
|
|
'0' => array(
|
|
'key' => $event['key'],
|
|
'design' => 'design_0',
|
|
'state' => 'state_0',
|
|
'name' => $event['name'] . ' <strong>7 day offer (Last 3 days!)',
|
|
),
|
|
),
|
|
'days' => 3,
|
|
'hours' => 0,
|
|
),
|
|
),
|
|
),
|
|
'2' => array(
|
|
'id' => '2',
|
|
'name' => __( 'Christmas special', 'thrive-ult' ),
|
|
'description' => __( 'Triggered to start and end on specific dates. When the offer has 2 days left, the state is changed to reflect the small amount of time before the offer expires.', 'thrive-ult' ),
|
|
'image' => static::plugin_url( 'admin/img/tvu-campaign-template3.png' ),
|
|
'type' => static::CAMPAIGN_TYPE_ABSOLUTE,
|
|
'rolling_type' => '',
|
|
'status' => static::CAMPAIGN_STATUS_PAUSED,
|
|
'settings' => array(
|
|
'start' => array(
|
|
'date' => '17 December ' . tve_ult_current_time( 'Y' ),
|
|
'time' => '00:00',
|
|
),
|
|
'end' => array(
|
|
'date' => '24 December ' . tve_ult_current_time( 'Y' ),
|
|
'time' => '00:00',
|
|
),
|
|
'duration' => '1',
|
|
'repeat' => '1',
|
|
'repeatOn' => array(),
|
|
'trigger' => array(
|
|
'type' => '',
|
|
'ids' => '',
|
|
),
|
|
),
|
|
'designs' => array(
|
|
'design_0' => array(
|
|
'post_type' => static::DESIGN_TYPE_HEADER_BAR,
|
|
'post_title' => 'Christmas special',
|
|
'post_parent' => '',
|
|
'post_status' => TVE_Ult_Const::STATUS_PUBLISH,
|
|
'parent_id' => 0,
|
|
'tcb_fields' => array(),
|
|
'tpl' => 'ribbon|set_01',
|
|
'states' => array(
|
|
'state_0' => array(
|
|
'post_title' => '2 days left!',
|
|
'post_type' => static::DESIGN_TYPE_HEADER_BAR,
|
|
'post_parent' => '',
|
|
'post_status' => TVE_Ult_Const::STATUS_PUBLISH,
|
|
'parent_id' => 0,
|
|
'tcb_fields' => array(),
|
|
'tpl' => 'ribbon|set_01',
|
|
),
|
|
),
|
|
),
|
|
),
|
|
'events' => array(
|
|
'event_0' => array(
|
|
'campaign_id' => 0,
|
|
'actions' => array(
|
|
'0' => array(
|
|
'key' => $event['key'],
|
|
'design' => 'design_0',
|
|
'state' => 'state_0',
|
|
'name' => $event['name'] . ' <strong>Christmas special (2 days left!)</strong>',
|
|
),
|
|
),
|
|
'days' => 2,
|
|
'hours' => 0,
|
|
),
|
|
),
|
|
),
|
|
'3' => array(
|
|
'id' => '3',
|
|
'name' => __( 'End of month specials', 'thrive-ult' ),
|
|
'description' => __( 'Triggered to start on a certain day of the month and to last for 2 days.', 'thrive-ult' ),
|
|
'image' => static::plugin_url( 'admin/img/tvu-campaign-template4.png' ),
|
|
'type' => static::CAMPAIGN_TYPE_ROLLING,
|
|
'rolling_type' => static::CAMPAIGN_ROLLING_TYPE_MONTHLY,
|
|
'status' => static::CAMPAIGN_STATUS_PAUSED,
|
|
'settings' => array(
|
|
'start' => array(
|
|
'date' => tve_ult_current_time( 'j F Y' ),
|
|
'time' => '00:00',
|
|
),
|
|
'end' => '',
|
|
'duration' => '2',
|
|
'repeat' => '1',
|
|
'repeatOn' => array( 28 ),
|
|
'trigger' => array(
|
|
'type' => '',
|
|
'ids' => '',
|
|
),
|
|
),
|
|
'designs' => array(
|
|
'design_0' => array(
|
|
'post_type' => static::DESIGN_TYPE_HEADER_BAR,
|
|
'post_parent' => '',
|
|
'post_status' => TVE_Ult_Const::STATUS_PUBLISH,
|
|
'parent_id' => 0,
|
|
'tcb_fields' => array(),
|
|
'tpl' => 'ribbon|set_01',
|
|
'states' => array(),
|
|
),
|
|
),
|
|
'events' => array(),
|
|
),
|
|
);
|
|
}
|
|
|
|
/**
|
|
* Gets details for a specific campaign attribute template
|
|
*
|
|
* @param $template_key
|
|
*
|
|
* @return null|array
|
|
*/
|
|
public static function campaign_template_details( $template_key ) {
|
|
$templates = static::campaign_attribute_templates();
|
|
if ( ! array_key_exists( $template_key, $templates ) ) {
|
|
return null;
|
|
}
|
|
|
|
return $templates[ $template_key ];
|
|
}
|
|
|
|
/**
|
|
* A list with all fields that TCB uses to store various pieces of content / flags
|
|
*
|
|
* @return array
|
|
*/
|
|
public static function editor_fields() {
|
|
return array(
|
|
static::FIELD_CUSTOM_FONTS,
|
|
static::FIELD_GLOBALS,
|
|
static::FIELD_MASONRY,
|
|
static::FIELD_TYPEFOCUS,
|
|
static::FIELD_ICON_PACK,
|
|
static::FIELD_INLINE_CSS,
|
|
static::FIELD_CONTENT,
|
|
static::FIELD_USER_CSS,
|
|
static::FIELD_TEMPLATE,
|
|
static::FIELD_STATE_INDEX,
|
|
static::FIELD_STATE_VISIBILITY,
|
|
static::FIELD_DISPLAY_POSITION,
|
|
);
|
|
}
|
|
|
|
/**
|
|
* All possible event types
|
|
*
|
|
* @return array
|
|
*/
|
|
public static function event_types() {
|
|
return array(
|
|
static::EVENT_TYPE_START => static::EVENT_TYPE_START,
|
|
static::EVENT_TYPE_TIME => static::EVENT_TYPE_TIME,
|
|
static::EVENT_TYPE_CONV => static::EVENT_TYPE_CONV,
|
|
static::EVENT_TYPE_END => static::EVENT_TYPE_END,
|
|
);
|
|
}
|
|
|
|
/**
|
|
* Possible log types.
|
|
*
|
|
* @return array
|
|
*/
|
|
public static function log_types() {
|
|
return array(
|
|
static::LOG_TYPE_CONVERSION,
|
|
static::LOG_TYPE_IMPRESSION,
|
|
);
|
|
}
|
|
|
|
}
|